1 / 54

CSML (Climate Science Modelling Language)

CSML (Climate Science Modelling Language). Dr Andrew Woolf ( A.Woolf@rl.ac.uk ) Environmental e-Science & Spatial Informatics e-Science Centre STFC Rutherford Appleton Laboratory. CSML: Context. The data integration problem

janae
Download Presentation

CSML (Climate Science Modelling Language)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSML (Climate Science Modelling Language) Dr Andrew Woolf (A.Woolf@rl.ac.uk) Environmental e-Science & Spatial Informatics e-Science Centre STFC Rutherford Appleton Laboratory

  2. CSML: Context • The data integration problem • multiple organisations, formats, storage mechanisms (file, relational) • only commonality is data semantics

  3. CSML – benefits of explicit semantics • Aim is to be as explicit as possible about semantics of information classes • Offer significant potential for advanced processing workflows • Reduce representation errors (e.g. omitting key attributes) • ‘Conventions’ approach is fragile

  4. CSML – benefits of geospatial standards • Interoperability!! • Expanded user-base • Enhanced ROI • Compliance to emerging infrastructures

  5. ECOOP CSML v2 MyOcean IOOS CDM ??? ... O&M INSPIRE GEOSS WIS The potential

  6. Emerging ISO standards TC211 – around 40 standards for geographic information Cover activity spectrum: discovery  access  use …and described by metadata. …in a defined logical structure… …delivered through services… A geospatial dataset… …consists of features and related objects… Background: ‘feature types’ ISO 19101 Domain Reference Model

  7. Background: ‘feature types’ • Geographic ‘features’ • “abstraction of real world phenomena” [ISO 19101] • Type or instance • Encapsulate important semantics in universe of discourse • Application schema • Defines semantic content and logical structure of datasets • ISO standards provide toolkit: • spatial/temporal referencing • geometry (1-, 2-, 3-D) • topology • dictionaries (phenomena, units, etc.) • GML – canonical encoding [from ISO 19109 “Geographic information – Rules for Application Schema”]

  8. <gml:definitionMember> <om:Phenomenon gml:id="taxon"> <gml:description>The taxon name</gml:description> <gml:name codeSpace="http://www.vliz.be">taxon</gml:name> </om:Phenomenon> </gml:definitionMember> </NDGPhenomenonDefinitions> <!--===================================================================--> <gml:FeatureCollection> <!-- ============================================================== --> <gml:featureMember> <NDGPointFeature gml:id="ICES_100"> <NDGPointDomain> <domainReference> <NDGPosition srsName="urn:EPSG:geographicCRS:4979" axisLabels="Lat Long" uomLabels="degree degree"> <location>55.25 6.5</location> </NDGPosition> </domainReference> </NDGPointDomain> <gml:rangeSet> <gml:DataBlock> <gml:rangeParameters> <gml:CompositeValue> <gml:valueComponents> <gml:measure uom="#tn"/> <gml:measure uom="#amount"/> <gml:measure uom="#gsm"/> </gml:valueComponents> </gml:CompositeValue> </gml:rangeParameters> <gml:tupleList> 'ANTHOZOA',63.1,missing 'Scoloplos armiger',66.1,missing 'Spio filicornis',10,missing 'Spiophanes bombyx',60.3,missing 'Capitellidae',131.8,missing 'Pholoe',10,missing 'Owenia fusiformis',23.4,missing 'Hypereteone lactea',6.8,missing 'Anaitides groenlandica',13.2,missing 'Anaitides mucosa',6.8,missing ‘GML Application schema’ ISO 19136 ISO 19109 ‘Feature types’ ISO 19110 ISO 19118 Standards-based data modelling e.g. information modelling... ‘Universe of discourse’ “Conceptual modelling is the process of creating an abstract description of some portion of the real world and/or a set of related concepts.” (ISO 19101)

  9. The “general feature model”

  10. ISO 19111 ISO 19107 ISO 19108 GML Obs & Meas feature types ISO/OGC data modelling • Components for data modelling: • Feature subtypes: • geometry • coverage ISO 19107: Spatial schema ISO 19108: Temporal schema ISO 19111: Spatial referencing by coordinates ISO 19136: Geography Markup Language OGC 03-022r3: Observations and Measurements

  11. abstract generic highly specialised feature types spectrum <measurement type=“Radiosonde” measurand=“temperature”/> <temperatureProfile/> <Sonde parameter=“temperature”/> Governance in standards-based modelling • The importance of governance • Information community defined by shared semantics • Need community process to manage those semantics (definitions, models, vocabularies, taxonomies, etc.) • e.g. CF conventions for netCDF files • Role of Feature Type Catalogues [ISO 19110] and registers [ISO 19135] • Governance as driver for granularity • Remit / interest determines appropriate granularity • e.g. IOC, IHO, WMO

  12. CSML ambition • The CSML ‘niche’ • set of base feature types for specialising or using as-is

  13. <?xml version="1.0" encoding="UTF-8"?> <schema targetNamespace="http://ndg.nerc.ac.uk/csml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:csml="http://ndg.nerc.ac.uk/csml" xmlns:om="http://www.opengis.net/om" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1"> <annotation> <documentation>CSML application schema</documentation> </annotation> <!--====================================================================== --> <import namespace="http://www.opengis.net/gml" schemaLocation="GML-3.1.0/base/gml.xsd"/> <import namespace="http://www.opengis.net/om" schemaLocation="phenomenon.xsd"/> <!--====================================================================== --> <!--===== Root element for CSML dataset =====--> <!--====================================================================== --> <complexType name="DatasetType"> <complexContent> <extension base="gml:AbstractGMLType"> <sequence> <element ref="csml:UnitDefinitions" minOccurs="0" maxOccurs="unbounded"/> <element ref="csml:ReferenceSystemDefinitions" minOccurs="0" maxOccurs="unbounded"/> <element ref="csml:PhenomenonDefinitions" minOccurs="0"/> <element ref="csml:_ArrayDescriptor" minOccurs="0" maxOccurs="unbounded"/> <element ref="gml:FeatureCollection" minOccurs="0" maxOccurs="unbounded"/> </sequence> </extension> </complexContent> </complexType> <element name="Dataset" type="csml:DatasetType"/> <!--====================================================================== --> <!--===== Dictionary/definition elements =====--> <!--====================================================================== --> <complexType name="ReferenceSystemDefinitionsType"> <complexContent> <extension base="gml:DictionaryType"/> </complexContent> </complexType> <element name="ReferenceSystemDefinitions" type="csml:ReferenceSystemDefinitionsType"/> <complexType name="ReferenceSystemDefinitionsPropertyType"> <sequence> <element ref="csml:ReferenceSystemDefinitions" minOccurs="0"/> </sequence> <attributeGroup ref="gml:AssociationAttributeGroup"/> </complexType> British Oceanographic Data Centre British Atmospheric Data Centre ‘Governance Principle’ ISO standards Tooling Conceptual model Schemas What is CSML? Climate Science Modelling Language

  14. CSML Version Two • CSML v2 (compared to v1) • More explicit/expanded feature types: • Swath • ProfileSeries{Radar, Section, ProfileSeries} • Lost ‘composite domain pattern’ • GML 3.2 ( ISO 19136) • removed ‘storage descriptors’ from core CSML schema • ‘affordance’ (i.e. FT behaviour) • O&M

  15. CSML v2 Feature Types

  16. CSML and O&M • OGC ‘Observations and Measurements’ CSML An Observation is an Event whose result is an estimate of the value of some Property of the Feature-of-interest, obtained using a specified Procedure

  17. CSML AbstractFeature • Provides common model for all CSML feature types • Supports OGC Observations and Measurements model • Each CSML feature: • has a type (with operations and required attributes), the ‘affordance’ concept • represents some physical ‘parameter’ (Phenomenon) • has a ‘value’ property which is a coverage (with domain and range) – the domain is often a subclass of ReferenceableGrid • may have additional attributes providing ‘reference’ spatio-temporal location parameters

  18. CSML Abstract Feature

  19. CSML ReferenceableGrid • Implementation of ISO 19123 CV_ReferenceableGrid, missing from GML • Subject of OGC GML Change Request (doc 06-160) • Analagous to CF – grid locations specified for each axis of CRS • Efficiency allowed when CRS axis aligned with grid axis • Supports both spatial and temporal (and compound) CRS

  20. ReferenceableGrid subclasses

  21. CSML v2 Feature Types

  22. PointFeature

  23. PointSeriesFeature

  24. ProfileFeature

  25. PointCollectionFeature

  26. ProfileSeriesFeature

  27. RaggedProfileSeriesFeature

  28. SectionFeature

  29. RaggedSectionFeature

  30. SwathFeature

  31. GridFeature

  32. GridSeriesFeature

  33. TrajectoryFeature

  34. ScanningRadarFeature

  35. Integration with files • Want to expose information, not format...

  36. Integration with files • Information structures may be composed across files

  37. Integration with files • Common pattern with file-data: • need to integrate information structures within and across multiple files • (relational tables provide this implicitly) • Semantics provide an integration key • e.g. an oceanographer and meteorologist can share a conversation about data despite format differences

  38. A model for file-based interoperability • Retain file-based persistence format • Supplement with feature-based conceptual model • ‘Cast’ legacy data onto conceptual model • interoperableData = (featureModel) legacyData • Legacy file data + GML-encoded conceptual ‘metadata’ = ‘interoperable view’ • may be exposed through W*S

  39. A model for file-based interoperability • GML provides conceptual feature ‘skeleton’ • File provides ‘flesh’ • GML ‘by-reference’ pattern for property values • uses simple xlink • “The value of a GML property that carries an xlink:href attribute is the resource returned by traversing the link”

  40. 10111001001011001100101000100111000110111001010100010110010100010010101110101111010011100101011000010101001001011011100100101100110010100010011100011011100101010001011001010001001010111010111101001110010101100001010100100101 Conceptual skeleton 0010111011010100110111010010010100010111100110101000101010101110101111110101001001011110110100101010101101001111 1011100101101010000101111101110010101010010101011101010101110101001010101010010101010101010100101011010101110101 Storage mapping CSML ‘interoperability model’

  41. xlink review simple xlink [role] [title] local resource [role] [title] [label] remote resource [href] [role] [title] [label] arc [arcrole] [title] [show] [actuate]

  42. xlink review • ‘role’ (URI): • indicates a property of the remote resource • must be a URI reference that “identifies some resource that describes the intended property” • ‘arcrole’ (URI): • describes the “meaning of the arc’s ending resource relative to its starting resource” • corresponds to RDF notion of a property • starting-resource HAS arc-role ending-resource

  43. xlink patterns for files extended xlink GML feature instance Aggregation semantics determined by xlink arc traversal rules

  44. xlink patterns for files simple xlink GML feature instance Aggregation semantics determined by storage descriptor

  45. CSML storage descriptor

  46. xlink proposal <someGMLElement xlink:arcrole="hasRemoteContentEmbeddedAt#localXpath" xlink:href="storageDescriptor#portion" xlink:role="storageSchemaIdentifier" xlink:show="embed" xlink:actuate="onRequest | onLoad"/> • href examples: • netCDF#variable • RDBMS#SQLQuery • GRIBFile#recordNumber • CSMLStorageDescriptor#arrayID

  47. Example • <gml:ReferenceableGrid gml:id="ID001" srsName="urn:ogc:def:crs:EPSG:6.6:4326" dimension="2"> • <gml:limits> • <gml:GridEnvelope> • <gml:low>0 0</gml:low> • <gml:high>7 4</gml:high> • </gml:GridEnvelope> • </gml:limits> • <gml:axisLabels>x y</gml:axisLabels> • <gml:coordTransformTable> • <gml:GridCoordinatesTable> • <gml:gridOrdinate> • <gml:GridOrdinateDescription> • <gml:coordAxisLabel>Geodetic longitude</gml:coordAxisLabel> • <gml:coordAxisValues> • <gml:SpatialOrTemporalPositionList> • <gml:coordinateList>13.5 24.9 32.4 37.7 41.5 46.8 54.4 65.7</gml:coordinateList> • </gml:SpatialOrTemporalPositionList> • </gml:coordAxisValues> • <gml:gridAxesSpanned>x</gml:gridAxesSpanned > • <gml:sequenceRule axisOrder="+1">Linear</gml:sequenceRule> • </gml:GridOrdinateDescription> • </gml:gridOrdinate> • <gml:gridOrdinate> • <gml:GridOrdinateDescription> • <gml:coordAxisLabel>Geodetic latitude</gml:coordAxisLabel> • <gml:coordAxisValues> • <gml:SpatialOrTemporalPositionList> • <gml:coordinateList> • 53.1 48.7 46.2 44.7 43.9 43.3 43.1 44.0 • 46.2 43.2 41.5 40.6 40.2 40.0 40.3 41.7 • 37.1 36.1 35.6 35.5 35.7 36.0 37.1 39.5 • 30.4 30.2 30.4 30.7 31.1 32.0 33.8 37.2 • 24.3 24.8 25.3 26.0 26.6 27.7 29.7 33.4 • </gml:coordinateList> • </gml:SpatialOrTemporalPositionList> • </gml:coordAxisValues> • <gml:gridAxesSpanned>x y</gml:gridAxesSpanned > • <gml:sequenceRule axisOrder="+1 -2">Linear</gml:sequenceRule> • </gml:GridOrdinateDescription> • </gml:gridOrdinate> • </gml:GridCoordinatesTable> • </gml:coordTransformTable> • </gml:ReferenceableGrid> • GML CR 06-160 • ISO 19123 CV_ReferenceableGrid

  48. Example netcdf myfile { dimensions: x = 8 ; y = 5 ; variables: float lon(x) ; lon:long_name = “longitude” ; lon:units = “degrees_east” ; float lat(x,y) ; lat:long_name = “latitude” ; lat:units = “degrees_north” ; float temp(x,y) ; temp:coordinates = “lon lat” ; temp:long_name = “temperature” ; temp:units = “degC” ; data: lon = 13.5, 24.9, 32.4, 37.7, 41.5, 46.8, 54.4, 65.7 ; lat = 53.1, 48.7, 46.2, 44.7, 43.9, 43.3, 43.1, 44.0, 46.2, 43.2, 41.5, ... • netCDF ASCII dump:

  49. CSML instances – xlink example <csml:gridOrdinate> <csml:GridOrdinateDescription> <csml:coordAxisLabel>Geodetic longitude</csml:coordAxisLabel> <csml:coordAxisValues> <csml:SpatialOrTemporalPositionList> <csml:coordinateList srsName=“WGS84”>13.5 24.9 32.4 37.7 41.5 46.8 54.4 65.7 </csml:coordinateList> </csml:SpatialOrTemporalPositionList> </csml:coordAxisValues> <csml:gridAxesSpanned>x</csml:gridAxesSpanned > <csml:sequenceRule axisOrder="+1">Linear</csml:sequenceRule> </csml:GridOrdinateDescription> </csml:gridOrdinate> <csml:coordAxisValues xlink:arcrole=“http://ndg.nerc.ac.uk/xlinkUsage/insert#SpatialOrTemporalPositionList/coordinateList” xlink:href=“file://myfile.nc#lon” xlink:role=“http://ndg.nerc.ac.uk/fileFormat/netcdf” xlink:show=“embed”> <csml:SpatialOrTemporalPositionList> <csml:coordinateList srsName=“WGS84”/> </csml:SpatialOrTemporalPositionList> </csml:coordAxisValues> <csml:coordAxisValues xlink:arcrole=“http://ndg.nerc.ac.uk/xlinkUsage/insert#SpatialOrTemporalPositionList/coordinateList” xlink:href="CSMLStorageDescriptorExample.xml#coapec_u_2" xlink:role= "http://ndg.nerc.ac.uk/fileFormat/csmlStorageDescriptor" xlink:show=“embed”> <csml:SpatialOrTemporalPositionList> <csml:coordinateList srsName=“WGS84”/> </csml:SpatialOrTemporalPositionList> </csml:coordAxisValues>

More Related