® Hosted and Sponsored by ESA/ESRIN The WCS2.0 Met-Ocean Profile 86th OGC Technical Committee Frascati, Italy Peter Trevelyan 23rd September 2013 Copyright © 2013 Open Geospatial Consortium Agenda • Agenda items • Progress so far this year: • An explanation of the WCS2.0 core profile: • A brief description of each of the WCS2.0 operations: • The key findings of the working group that met in Stennis space centre; • Specific encodings; OGC ® Copyright © 2013 Open Geospatial Consortium The Route to a WCS2.0 profile for Met-Ocean?:• • • • • A set of use cases has been created and was submitted to the Met-Ocean dwg. Formed a “working group” to look at creating a core Met Ocean profile and if necessary propose changes to the WCS2.0 core definition and if required extend the core profile. Work within the OGC WCS swg (chaired by Peter Baumann); The Met Ocean dwg group to ensure any proposals are “fit for purpose”. A workshop was held at USN (Stennis NASA USA) and the outcomes of the meeting have been published. OGC ® Copyright © 2013 Open Geospatial Consortium The Route to a WCS2.0 profile for Met-Ocean?:• List of Attendees:– – – – – – – – – – – – Dr Roy Ladner, US Navy, Naval Meteorology and Oceanography Command Peter Baumann, Jacobs University Pete Trevelyan, UK MetOffice Jeremy Tandy, UK MetOffice Yann Genin, Meteo-France Eric Wise, US Air Force Weather Agency Chris Kuhl, US Air Force Weather Agency (Northrup Grumman) Joe Work, US Air Force Weather Agency (Raytheon) Bryant Obando AFLCMC (Mitre) Jason Pyron () Henry Pugh (USN) Chris Moreau (GD OGC ® Copyright © 2013 Open Geospatial Consortium What is The WCS2.0 Core ?:• The WCS interface supports retrieval of geospatial coverage data – i.e. digital geospatial information representing a space/time-varying phenomena. • The WCS interface specifies the following operations that may be invoked by a WCS client and performed by a WCS server: – GetCapabilities – This operation allows a client to request information about the server’s capabilities and coverage's offered. – DescribeCoverage – This operation allows a client to request detailed metadata on a selected coverage's offered by a server. – GetCoverage – This operation allows a client to request a coverage comprised of selected range properties at a selected set of spatiotemporal locations, expedited in some coverage encoding format. OGC ® Copyright © 2013 Open Geospatial Consortium Some Key Challenges:• A model run is not a coverage in itself as, for example, the same parameter may well have different vertical coordinates systems, e.g. isobaric, height above ground, height of sea level, ICAO height, maximum wind level etc. A model run is really a collection of coverage's. • NWP output often being irregular in time so it is difficult to even describe a coverage e.g. temperature on isobaric levels as 4D coverage. The following diagram illustrates this:- OGC ® Copyright © 2013 Open Geospatial Consortium Some Key Challenges:200.0hPa (8,6) 250.0hPa 300.0hPa 500.0hPa 850.0hPa (1,1) 950.0hPa 1000.0hPa (0,0) (1,0) T+0 T+6 Missing Present T+12 T+18 Time T+24 T+30 T+36 T+42 T+48 Some Key Challenges:• The typical output of a NWP model run will have thousands of fields, each of which can be considered to be “a coverage”, this number is unmanageable and a method of grouping them is needed. • A concept was introduced that treats the contents of NWP (a numerical weather prediction model) as a collection of coverage's grouped by common vertical coordinate. This will reduce the number of coverage's to a manageable level. These “coverage collections” will have an identifier or Collectionid’s, this identifier may have a semantic meaning, e.g. a model name, it is used in GetCapabilities and DescribeModelRun • The vertical level types is based on the Met-Ocean WMS best practice. ® OGC Copyright © 2013 Open Geospatial Consortium Some Key Challenges:• These are expressed as “coverage Subtypes in the DescribeModelRun response (see later), – – – – ComputedSurface; VerticalDependency; NoVerticalDependency; NamedRange; • The grouping of coverage's by vertical level type enables the description of a “4D” coverage. • The GetCapabilities response to list the reference times for each collectionId. The collectionId may be semantic. • Models may be grouped together to indicate a common characteristic e.g. Atmospheric models”, “Aviation services” etc. OGC ® Copyright © 2013 Open Geospatial Consortium Some Key Challenges:• A new service called “DescribeModelRun” is needed to list the coverage’s contained (CoverageIds’) for a given a CollectionId. • A NWP model will have a “reference” time indicating a start time . The forecast time is always relative to this time. • A simple service e.g. “latest convection forecast” may be considered as a forecast run with only one available reference time. • In order to overcome the problem of NWP output often being irregular in time and in the vertical a mask will be used in the “Describe Coverage response” to mask out missing data. OGC ® Copyright © 2013 Open Geospatial Consortium GetCapabilities Response The following is a fragment showing the Met-Ocean extension <metocean:ModelrunSummary> <metocean:memberList> <metocean:ModelRunCollectionSummary> <metocean:CollectionId>UK-Global_model</metocean:CollectionId> <gml:name>The UK operational Global Model</gml:name> <ows:WGS84BoundingBox> <ows:LowerCorner>-180 -90</ows:LowerCorner> <ows:UpperCorner>180 90</ows:UpperCorner> </ows:WGS84BoundingBox> <metocean:ReferenceTime> <metocean:referenceTimeListProperty> <metocean:ReferenceTimeList> <metocean:referenceTime>2012-12-15T00:00:00Z</metocean:referenceTime> <metocean:referenceTime>2012-12-15T12:00:00Z</metocean:referenceTime> <metocean:referenceTime>2012-12-16T00:00:00Z</metocean:referenceTime> Copyright © 2013 Open <metocean:referenceTime>2012-12-16T12:00:00Z</metocean:referenceTime> Geospatial Consortium Describe Model Run :• • • Example Request:– http://metofficeserver.gov.uk/demo/ows? service=wcs&version=2.0.0& request=DescribeModelRun& ReferenceTime ="2012-05-15T00:00:00Z"& collectionId=UK_Global_model Note the use of the O&M model for the response document; <metocean:ModelRunDescription> <metocean:collectionId>UK_Global_model</metocean:collectionId> <gml:name>The UK operational Global Model</gml:name> <ows:WGS84BoundingBox> <ows:LowerCorner>-180 -90</ows:LowerCorner> <ows:UpperCorner>180 90</ows:UpperCorner> </ows:WGS84BoundingBox> <metocean:referenceTime> <gml:TimeInstant>2013-05-15T12:00:00Z</gml:TimeInstant> </metocean:referenceTime> <metocean:sourceObservationProperty> • Copyright © 2013 Open Geospatial Consortium Describe Model Run :• Note the use of the coverage subtype for the CoverageId • The CoverageId is a an identifier and should not be parsed as all the qualifying information is encoded. • <metocean:coverageIdList> <metocean:CoverageSummary> <wcs:CoverageId>UK_GLOBAL_2013-05-15T12:00:00Z_ISBL</wcs:CoverageId> <wcs:CoverageSubtype>VerticalDependency</wcs:CoverageSubtype> <metocean:CoverageDescription coverageDescription="IsobaricSurface" xlink:href="www.codes.wmo.int/GRIB2/table4.5/IsobaricSurface"/> </metocean:CoverageSummary > <wcs:CoverageSummary> • Copyright © 2013 Open Geospatial Consortium Describe Model Run Response GML ModelRunDescription SF_SamplingFeature «FeatureType» spatialSamplingFeature::SF_SpatialSamplingFeature + positionalAccuracy :DQ_PositionalAccuracy [0..2] «FeatureType» «FeatureType» observ ation::OM_Observ ation General Feature +featureOfInterest +propertyValueProvider Domain + parameter :NamedValue [0..*] Instance::GFI_Feature 1 0..* + phenomenonTime :TM_Object + resultQuality :DQ_Element [0..*] + resultTime :TM_Instant + validTime :TM_Period [0..1] +sampled_Feature «instanceOf» «FeatureType» samplingSurface:: SF_SamplingSurface «instanceOf» «metaclass» General Feature Model:: GF_FeatureType +featureOfInterest + + + AbstractGML definition :CharacterString isAbstract :Boolean = false typeName :LocalName «FeatureType» feature::AbstractFeature + boundedBy :GM_Envelope [0..1] «DataType» ModelRunDescription - +sourceObservationProperty «FeatureType» SourceObserv ation collectionid :NCName gml:boundedby :gml:Envelope referenceTime :gml:TimeInstant «Composition» +coverageIdList «DataType» ModelRunDescriptions 1..* «DataType» Cov erageSummary «property» - CoverageDescription :string OGC ® Copyright © 2013 Open Geospatial Consortium «DataType» w cs:Cov erageSummary DescribeCoverage:• Example Request:– http://metofficeserver.gov.uk/demo/ows? service=wcs& version=2.0.0& DescribeCoverage & subset=ReferenceTime("2013-05-01T00:00:00Z")& CoverageId=Atmospheric_NWP_Models_2013-05-15T00:00:00Z_ISBL request= • The big addition is the use of data masks: • A data mask is in fact a coverage (ReferenceableGridCoverage) • The domain set is a ReferenceableGridByArray • <metocean:dataMaskProperty> <metocean:DataMasks> <metocean:dataMasksProperty> <metocean:DataMaskmemberList> <metocean:fieldMask fieldName="sensibleTemperature" xlink:href="#maskId_AT"> <gmlcov:ReferenceableGridCoverage gml:id="maskId_AT"> OGC ® Copyright © 2013 Open Geospatial Consortium DescribeCoverage:• A field is associated with a data mask:• Note that a mask can be re-used:<metocean:MemberList> <metocean:dataMask fieldName="airTemperature" xlink:href="#maskId_AT/"> <metocean:dataMask fieldName="airTemperature" xlink:href="#maskId_AT/"> <metocean:dataMask fieldName="relativeHumidity" xlink:href="#maskId_HP/"> </metocean:MemberList> OGC ® Copyright © 2013 Open Geospatial Consortium Describe Coverage Response GML DecribeCov erage SF_SamplingFeature «FeatureType» «FeatureType» observ ation::OM_Observ ation General Feature +featureOfInterest Domain Instance::GFI_Feature +propertyValueProvider + parameter :NamedValue [0..*] 1 0..* + phenomenonTime :TM_Object + resultQuality :DQ_Element [0..*] + resultTime :TM_Instant + validTime :TM_Period [0..1] «FeatureType» spatialSamplingFeature::SF_SpatialSamplingFeature + positionalAccuracy :DQ_PositionalAccuracy [0..2] +sampled_Feature «FeatureType» samplingSurface:: SF_SamplingSurface +featureOfInterest «instanceOf» «instanceOf» AbstractGML «FeatureType» feature::AbstractFeature + «FeatureType» SourceObserv ation «metaclass» General Feature Model:: GF_FeatureType boundedBy :GM_Envelope [0..1] + + + definition :CharacterString isAbstract :Boolean = false typeName :LocalName +sourceObservationProperty «DataType» Cov erageDescription - +gmlcov:metadata «DataType» gmlcov :extension «DataType» MetOceanCov erageMetadata +extensionProperty coverageid :NCName - dataMaskProperty :DataMasks dataMaskReferenceProperty :DataMaskReferences «Composition» «DataType» Cov erageDescriptions «DataType» DataMasks +dataMasksProperty «DataType» DataMaskReferences +dataMaskReferenceProperty «DataType» DataMaskmemberList «property» - fieldMask :gmlcov:ReferenceableGridCoverage [1..*] OGC ® Copyright © 2013 Open Geospatial Consortium «DataType» MemberList - dataMask :string [1..*] Describe Coverage Data Mask (metocean:dataMaskProperty) ReferenceableGridByArray 1000.0 0 1000.0 6 1000.0 12 1000.0 18 1000.0 24 1000.0 30 1000.0 36 1000.0 42 1000.0 48 950.0 0 950.0 NaN 950.0 12 950.0 18 950.0 24 950.0 30 950.0 36 950.0 NaN 950.0 48 850.0 0 850.0 6 850.0 12 850.0 18 850.0 24 850.0 30 850.0 36 850.0 42 850.0 48 500.0 0 500.0 6 500.0 12 500.0 18 500.0 24 500.0 30 500.0 36 500.0 42 500.0 48 300.0 0 300.0 6 300.0 NaN 300.0 18 300.0 24 300.0 30 300.0 36 300.0 42 300.0 48 250.0 0 250.0 6 250.0 12 250.0 18 250.0 24 250.0 30 250.0 36 250.0 42 250.0 48 200.0 0 200.0 6 200.0 12 200.0 18 200.0 24 200.0 30 200.0 36 200.0 42 200.0 48 gml:rangeSet 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 Extra GetCoverage Operations:• The Met-Ocean community has made extensive use of a data model used by NetCDF (CDM) that is closely related to CSML (Climate Science Markup Language). • The most common feature types are:-Point Collection, GRID, GRID series, Trajectories, Profiles and Time/Cross Sections. • Many use cases are based on these feature types. • The goal was to design a web interface (built on WCS2.0) to support these feature types i.e. GetCoverage operations need to support these feature types. OGC ® Copyright © 2013 Open Geospatial Consortium GetCoverage: • The GetCoverage request encodes the type of extraction based on a simple trim or slice; it consists of:• The Coverage id (mandatory); • A Trim operation that requires a low and high trim point; • A Slice operation that reduces the dimension by one and requires the slice axis; • The dimension or axis name that is to be trimmed or sliced. • Service Parameters; OGC ® Copyright © 2013 Open Geospatial Consortium GetCoverage: class GetCov erage «Data Type» RequestBase + + + service: string = WCS {readOnly} version: string extension: Any [0..*] • The basic Trim and Slice Operations «DataType» GetCov erage + + request: CharacterString = GetCoverage {readOnly} coverageId: NCName +dimensionSubset 0..* «DataType» DimensionSubset + dimension: NCname Trim «DataType» DimensionTrim + + trimLow: Real [0..1] trimHigh: Real [0..1] OGC «DataType» DimensionSlice + slicePoint: Real The primary use of trimming is to sub-set the data on the original grid ® Copyright © 2013 Open Geospatial Consortium Slice Reducing the dimensions i.e. extracting a point, profile or 2D level using a simple slice GetCoverage MetOC: • The extensions are designed to – To extend the output feature types e.g. • Cross sections; • Vertical profiles; • 2/3/4D trajectories; • Time Series – To extend operations e.g. • Interpolation; • Re-projection; • Aggregation. • It is not the intention to go thro each extension, but to outline the principles. OGC ® Copyright © 2013 Open Geospatial Consortium GetCoverage MetOC Adaption: • Extending the simple slice and trim:– Add a UOM attribute to SlicePoint. • SlicePoint has type “string” which is not easy to validate: – Use Parameter Subset:• This allows the user to introduce extra output coverages such as trajectory and cross sections that require a base line defines as a set of way points. • Introduce a new element fieldSubset:– fieldSubset allows the extraction of a specific parameter name belonging to a Coverage identified by a unique CoverageId. OGC ® Copyright © 2013 Open Geospatial Consortium GetCoverage MetOC: • Interpolation and re-projection: – Use the existing work from the image community to define a subsetting CRS and output CRS. • The subsetting CRS defines the CRS on which the subsetting parameters are based. If it is omitted then the original CRS is used. • The subsetting CRS may be compound e.g. Map CRS (54004) combined with another axis e.g. a vertical CRS (isobaric) • An output CRS that defines the re-projection CRS. – New Element: TrimGridOffset:- Interpolation interval • This is used to define the interpolation interval: • <wcsmo:TrimGridOffset uomLabels=" Deg ">1.0</wcsmo:TrimGridOffset> OGC ® Copyright © 2013 Open Geospatial Consortium GetCoverage MetOC: • An example:- This trajectory has three dimensions i.e. a width, a height and a specified number of sample points along the direction of travel. • The way points of the trajectory are defined (in this example) in latitude, longitude, height and time. The sample points are equally spaced in time i.e. Using the time of the first and last points. OGC ® Courtesy of NCAR Copyright © 2013 Open Geospatial Consortium GetCoverage MetOC: • The fieldSubset is used to specify the parameters e.g. temperature and wind • The subsetting CRS is used to specify the CRS of the Trim bounds e.g. epsg 4326 and Geographic height. • The Trim bounds are used to specify the depth and lateral extents, in this example the axis names are Corridor lateral (UOM Km), Corridor vertical (UOM Km) and Corridor_Axis_Sample_Size i.e. the number of sample points. • The gridOffsets represent the resolution of the resulting corridor grid in each of the three dimensions, in this example 0.5Km in the vertical and 5Km in the horizontal. • The OutputFeatureDefinition that is used to specify the way points specified in the subsetting CRS. OGC ® Courtesy of NCAR Copyright © 2013 Open Geospatial Consortium Questions:- Thanks OGC ® Copyright © 2013 Open Geospatial Consortium