WCS 2.0 MetOcean Profile ? ? CF-NetCDF MetOcean Coverage Data MetOcean Application Profile MetOcean Coverage Data MetOcean Coverages • Numerical model data • Multi-dimensional (... , t, z, y, x) • Each coverage represents a single phenomena (e.g. Air temperature / sea surface salinity) Example format encodings include: GRIB, CF-NetCDF, BUFR and others Here we will focus on data encoded in CF-NetCDF as an example of MetOcean coverage data MetOcean Coverages The purpose of the CF conventions is to require conforming datasets to contain sufficient metadata that they are self-describing... including physical units if appropriate, and that each value can be located in space (relative to earth-based coordinates) and time. Climate and Forecast (CF) Metadata Conventions MetOcean Coverages Example 1 MetOcean Coverages Example 2 MaskedCoverage MetOcean MaskedCoverage 2D Time-height mask Example: 1D Height mask height (T+12) (T+6) MetOcean MaskedCoverage height mask 3D Coverage 1D Mask (broadcasted) (T+6) MetOcean MaskedCoverage 4D Coverage 2D Mask (broadcasted) (T+6) (T+6) (T+12) (T+12) height mask (T+6) (T+12) MetOcean MaskedCoverage MaskedCoverage 4D Coverage (T+6) Coverage 2D Mask (broadcasted) (T+6) (T+6) (T+12) (T+12) (T+12) MetOcean MaskedCoverage (T+12) MetOcean Application Profile MaskedCoverage 4D Coverage (t, h, y, x), 2D TimeHeightMask (t, h) MetOcean MaskedCoverage Phenomena Mask WCS 2.0 MaskedCoverage Extension nD Coverage, nD Mask CoverageCollection Coverage Collections • The Coverage collection pattern can be as deep as required • The lowest layer contains the actual coverage identifiers • A new operation “DescribeCoverageCollection” exposes this structure • Nesting is arbitrary • Not concerned with discovery (anticipate the use of catalogue to discover which CoverageId you require) GetCoverageByPolygon GetCoverageByPolygon GetCoverageByCorridor GetCoverageByCorridor A GetCoverageByCorridor request extracts data from a MaskedCoverage along a specified path and returns them as a coverage. The result coverage can have different dimensions, depending on the type of corridor extraction. GetCoverageByCorridor Name Definition Data type Multiplicity climateCubeId Coverage identifier of the Climate Cube to extract corridor from NCName One (mandatory) path Path along which to extract the corridor GML::ReferenceableG ridByArray One (mandatory) extent Specification of buffer around path non-empty list of AxisExtent One (mandatory) axis Axis name indicating direction of buffer extent NCName One (mandatory) bufferExtent extent around path in specified axis direction Data type depending on type of axis measurement One (mandatory) interpolation Interpolation method to be applied along this axis, if needed (default: unspecified, left to server) anyURI Zero or one (optional) GetCoverageByCorridor Evaluation of subsetting path ((-1,1), (2,2), (4,6)) and no extent specification against voxels using “voxel-in-center” semantics and “nearest-neighbor” interpolation Testing and Visualisation Application Profile Draft proposal and prototype Use Cases Sample XML Requests Web Clients Prototype Web Client Applications HPC Visual Weather OpenLayers/Cesium JSON WCS 2.0 Prototype Web Client Applications Browser (Javascript) Server (WCS 2.0) XML Post JSON Cesium OpenLayers Flight Planner OpenLayers Wind Speed OpenLayers Route Planner OpenLayers Statistics Python Test Harness Test Environment HPC Visual Weather Test Harness (Python) Google Earth KML Iris WCS 2.0 NetCDF3 Iris http://scitools.org.uk/ Dimension Slice Slice Request <?xml version="1.0" encoding="UTF-8"?> <wcs:GetCoverage xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:wcsCRS="http://www.opengis.net/wcs_service-extension_crs/1.0" xmlns:int="http://www.opengis.net/WCS_service-extension_interpolation/1.0" xmlns:rsub="http://www.opengis.net/wcs/range-subsetting/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:metocean="http://def.wmo.int/metce/2013/metocean" service="WCS" version="2.0.0"> <wcs:Extension> <!--Range--> <rsub:rangeSubset> Results <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <Style id="plainNumberIconStyle"> <IconStyle> <Icon/> </IconStyle> </Style> <Placemark> <description>UKPPNOW_10m_Max_Gust_Speed_KT</description> <styleUrl>#plainNumberIconStyle</styleUrl> <name>11.0 kt</name> Visualisation Trim Request Trim Request <?xml version="1.0" encoding="UTF-8"?> <wcs:GetCoverage xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:wcsCRS="http://www.opengis.net/wcs_service-extension_crs/1.0" xmlns:int="http://www.opengis.net/WCS_service-extension_interpolation/1.0" xmlns:rsub="http://www.opengis.net/wcs/range-subsetting/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:metocean="http://def.wmo.int/metce/2013/metocean" service="WCS" version="2.0.0"> <wcs:Extension> <rsub:rangeSubset> <rsub:rangeComponent> UKMO_Global_Temperature</rsub:rangeComponent> </rsub:rangeSubset> <wcsCRS:GetCoverageCrs> Results <?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <Style id="plainNumberIconStyle"> <IconStyle> <Icon/> </IconStyle> </Style> <Placemark> <description>UKMO_Global_Temperature</description> <styleUrl>#plainNumberIconStyle</styleUrl> <name>14.4 ??C</name> <TimeStamp> <when>2014-09-18T00:00:00Z</when> </TimeStamp> Visualisation Polygon Use Case Polygon Request <?xml version="1.0" encoding="UTF-8"?> <metocean:GetPolygonCoverage xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:metocean="http://def.wmo.int/metce/2013/metocean" xmlns:wcsCRS="http://www.opengis.net/wcs_service-extension_crs/1.0" xmlns:int="http://www.opengis.net/WCS_service-extension_interpolation/1.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:rsub="http://www.opengis.net/wcs/range-subsetting/1.0" xmlns:gmlrgrid="http://www.opengis.net/gml/3.3/rgrid" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WCS" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.ne http://www.opengis.net/wcs/crs/1.0 https://raw.github.com/EOxServer/schemas/ http://www.opengis.net/WCS_service-extension_interpolation/1.0 file:/C:/Users/R http://def.wmo.int/metce/2013/metocean file:/C:/Users/Rocky/WCS/MOWCS3/sc http://www.opengis.net/wcs/range-subsetting/1.0 file:/C:/Users/Rocky/WCS/MO <wcs:Extension> <rsub:rangeSubset> Results { "coveragePolygonData": [ { "values": [ 285.7590317726137, 286.1252427101137, 286.3693833351137, 286.6135239601137, 286.4914536476137, T}? }?0E?!Z!Z!Z!Z!Z!Z"?%?'?'?'?'?'?'?'?'??????????p?p?p?p?p?p?????p?p?p? p??????????????????????????????????????$?$?$?$?$?$???????????$?$?$? $?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$? $?$?$?$?$?????????????????????????p?p?p?p?p?p?????p?p?p? p??????????????????????????????????????$?$?$?$?$?$?????????????$?$? $?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$? $?$?$?$?$?$?$?????????????????????p?p?p?p?p?p?????p?p?p? p???????????????????????????????????$?$?$?$?$?$?$?$?$?$?$?$?$?$?$? $?$?$?$?$?$?$?$?$?$?$?$?$?$?$?$???$?$?$?$???????$?$?$?$???????$?$? Visualisation (Iris) Corridor Use Cases Planes, Trains and Automobiles Volume = dLat x dLon x dAlt x dTime Ship Tracks Data -75.000,36.500,201401220000 -74.983,36.497,201401220600 -72.558,36.001,201401221132 -71.273,35.716,201401221200 -70.112,35.930,201401221800 -67.594,36.352,201401222309 -66.339,36.541,201401230000 -65.050,36.797,201401230600 -62.477,37.263,201401230947 -60.905,37.517,201401231200 -59.979,37.905,201401231800 -57.592,38.852,201401232251 -55.142,39.749,201401240000 -54.635,39.926,201401240600 -52.642,40.542,201401241200 -50.088,41.266,201401241358 -48.360,41.715,201401241800 -47.458,41.652,201401250000 -44.778,41.422,201401250503 -42.120,41.130,201401250600 -41.704,41.079,201401251200 -39.463,41.082,201401251800 -36.805,41.028,201401252000 -35.026,40.958,201401260000 -34.169,40.827,201401260600 -31.590,40.392,201401261046 -29.046,39.899,201401261200 Ship Tracks Request <?xml version="1.0" encoding="UTF-8"?> -75.000,36.500,201401220000 <metocean:GetCorridorCoverage xmlns:xlink="http://www.w3.org/1999/xlink" -74.983,36.497,201401220600 -72.558,36.001,201401221132 xmlns:wcs="http://www.opengis.net/wcs/2.0" -71.273,35.716,201401221200 xmlns:metocean="http://def.wmo.int/metce/2013/metocean" -70.112,35.930,201401221800 -67.594,36.352,201401222309 xmlns:wcsCRS="http://www.opengis.net/wcs_service-extension_crs/1.0" -66.339,36.541,201401230000 xmlns:int="http://www.opengis.net/WCS_service-extension_interpolation/1.0" -65.050,36.797,201401230600 xmlns:gml="http://www.opengis.net/gml/3.2" -62.477,37.263,201401230947 -60.905,37.517,201401231200 xmlns:rsub="http://www.opengis.net/wcs/range-subsetting/1.0" -59.979,37.905,201401231800 xmlns:gmlrgrid="http://www.opengis.net/gml/3.3/rgrid" -57.592,38.852,201401232251 -55.142,39.749,201401240000 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -54.635,39.926,201401240600 service="WCS" version="2.0.0" -52.642,40.542,201401241200 xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis. -50.088,41.266,201401241358 -48.360,41.715,201401241800 http://def.wmo.int/metce/2013/metocean file:/C:/Users/Rocky/WCS/MOWCS3/ -47.458,41.652,201401250000 http://www.opengis.net/wcs/crs/1.0 https://raw.github.com/EOxServer/schema -44.778,41.422,201401250503 -42.120,41.130,201401250600 http://www.opengis.net/WCS_service-extension_interpolation/1.0 file:/C:/Users -41.704,41.079,201401251200 http://www.opengis.net/wcs/range-subsetting/1.0 https://raw.github.com/EOxS -39.463,41.082,201401251800 <wcs:Extension> -36.805,41.028,201401252000 -35.026,40.958,201401260000 -34.169,40.827,201401260600 -31.590,40.392,201401261046 -29.046,39.899,201401261200 Visualisation (Iris) Gap Gap -75.000,36.500,201401220000 -74.983,36.497,201401220600 -72.558,36.001,201401221132 -71.273,35.716,201401221200 -70.112,35.930,201401221800 -67.594,36.352,201401222309 -66.339,36.541,201401230000 -65.050,36.797,201401230600 -62.477,37.263,201401230947 -60.905,37.517,201401231200 -59.979,37.905,201401231800 -57.592,38.852,201401232251 -55.142,39.749,201401240000 -54.635,39.926,201401240600 -52.642,40.542,201401241200 -50.088,41.266,201401241358 -48.360,41.715,201401241800 -47.458,41.652,201401250000 -44.778,41.422,201401250503 -42.120,41.130,201401250600 -41.704,41.079,201401251200 -39.463,41.082,201401251800 -36.805,41.028,201401252000 -35.026,40.958,201401260000 -34.169,40.827,201401260600 -31.590,40.392,201401261046 -29.046,39.899,201401261200 Aerial Trajectory Request <?xml version="1.0" encoding="UTF-8"?> <metocean:GetCorridorCoverage xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wcs="http://www.opengis.net/wcs/2.0" xmlns:metocean="http://def.wmo.int/metce/2013/metocean" xmlns:wcsCRS="http://www.opengis.net/wcs_service-extension_crs/1.0" xmlns:int="http://www.opengis.net/WCS_service-extension_interpolation/1.0" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:rsub="http://www.opengis.net/wcs/range-subsetting/1.0" xmlns:gmlrgrid="http://www.opengis.net/gml/3.3/rgrid" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" service="WCS" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/wcs/2.0 http://schemas.opengis.net/wcs/2.0/wcsGetCoverage.xsd http://def.wmo.int/metce/2013/metocean file:/C:/Users/Rocky/WCS/MOWCS3/schemas/wcsMetOceanCommon.xsd http://www.opengis.net/wcs/crs/1.0 https://raw.github.com/EOxServer/schemas/master/wcs/crs/1.0/wcsCrs.xsd http://www.opengis.net/WCS_service-extension_interpolation/1.0 Visualisation (Iris) •Static •No Time on map? •Corridor height? Alternative Visualisation Web Processing Services • Moves business logic to server • Statistical processing example • Call to WCS • Call custom, non OGC operation • Can be used to return a decision rather than weather data (eg – fly/don’t fly) • WPS chaining – build up complexity from smaller components • Consider network traffic and data serialisation Probabilistic data and ensembles “How likely is it to rain tomorrow?” Probabilistic data and ensembles Ensembles in WCS2.0 Ensemble No. Dimensions: Latitude Longitude Altitude Model Run Time Forecast time Ensemble Number WCS2.0 MetOcean extensions – future changes • Variable corridor height and width • Time/segment length • Multiple polygons in single request • Perpendicular corridors - use locus instead • Esemble Support Ens.No. Next steps Next Steps 1. Fast track MetOcean profile containing MaskedCoverage, CoverageCollection, GetCoverageByPolygon, GetCoverageByCorridor 2. Met Office use profile for internal and external services and for collaboration 3. Make generic capabilities (e.g. CoverageCollection) available to a wider audience through WCS 2.0 extensions
© Copyright 2024 ExpyDoc