Wcs-Overview.Pdf
Total Page:16
File Type:pdf, Size:1020Kb
OGC Coverages: Data & Services Peter Baumann Jacobs University | rasdaman GmbH [gamingfeeds.com] Coverages Tutorial :: © 2013 Peter Baumann Overview . Motivation: What is a “coverage”? . Coverage data: the OGC Coverage Model . Coverage services: the WCS Suite . Conformance Testing . Implementations . Summary Coverages Tutorial :: © 2013 Peter Baumann2 Facing the Coverage Tsunami sensor feeds [OGC SWE] coverage server Coverages Tutorial :: © 2013 Peter Baumann3 Taming the Coverage Tsunami sensor feeds [OGC SWE] coverage server Coverages Tutorial :: © 2013 Peter Baumann4 Serving Coverages . WCS: one generic schema for all coverage types; n-D; scalable; versatile processing → access & processing services SOS WCS coverage . SOS: server high flexibility to accommodate all sensor types → data capturing Coverages Tutorial :: © 2013 Peter Baumann (Part of) The OGC Standards Quilt data images data data feature coverage meta FE WCPS CQL WFS-T WCS-T CS-T WFS WMS WCS CS-W • WMS "portrays spatial data pictures" • WCS: "provides data + descriptions; data with original semantics, may be interpreted, extrapolated, etc.“ [09-110r3] Coverages Tutorial :: © 2013 Peter Baumann6 Overview . Motivation: What is a “coverage”? . Coverage data: the OGC Coverage Model . Coverage services: the WCS Suite . Conformance Testing . Implementations . Summary Coverages Tutorial :: © 2013 Peter Baumann7 OGC Coverages . Coverage = "space-time varying phenomenon“ - ISO 19123 (=OGC Abstract Topic 6) - Today typically raster, but more defined (curved grids, TINs, meshes, ...) - historically constrained to x/y ...hm, x/y/t...hm, x/y/z/t...hm...pressure? . Web Coverage Service (WCS) = coverage access service - Get original data (or subset thereof), suitable for further processing - www.ogcnetwork.net/wcs . Coverage-related working groups within OGC: - WCS.SWG - Coverages.DWG Coverages Tutorial :: © 2013 Peter Baumann8 Coverage Definition ISO 19123 class GML 3.2.1 Application Schema for Coverages is abstract → many different «FeatureType» GML::Feature implementations possible contains hook → not per se for metadata interoperable «FeatureType» OGC coverage std Coverage is concrete and interoperable domainSet rangeType rangeSet «Union» «type» «Union» GML::DomainSet SWE Common::DataRecord GML::RangeSet GML 3.2.1 Application Schema Coverages = „GMLCOV“ Coverages Tutorial :: © 2013 Peter Baumann OGC Coverage Types as per GML 3.2.1 «FeatureType» Abstract Coverage Grid Coverage MultiSolid Coverage Rectified GridCoverage MultiSurface Coverage MultiCurve Coverage Referenceable MultiPoint GridCoverage Coverage Coverages Tutorial :: © 2013 Peter Baumann Classifying Gridded Coverages . Not georeferenced, „just pixels“ - GMLCOV::GridCoverage . Georeferenced, regular, possibly oblique - GMLCOV::RectifiedGridCoverage . 1+ irregular axes - All axes irregular: GML 3.3 ReferenceableGridByVectors * - GMLCOV::ReferenceableGridCoverage . 1+ axes warped - All axes warped: GML 3.3 ReferenceableGridByArray * - GMLCOV::ReferenceableGridCoverage *) CR to GML planned [Campalani 2013] Coverages Tutorial :: © 2013 Peter Baumann Coverage Encoding (contd.) . Pure GML: complete coverage represented by GML . Special Format: other suitable file format (ex: MIME type “image/tiff”) . Multipart-Mixed: multipart MIME, type “multipart/mixed” GML Coverage GML Coverage NetCDF GeoTIFF Domain set Domain set Domain set Domain set Range type Range type Range type Range type Range set xlink Range set Range set App Metadata App Metadata App Metadata App Metadata NetCDF file Coverages Tutorial :: © 2013 Peter Baumann12 Adding Metadata To Coverages . Coverage has slot „metadata“ allowing to link in <any> kind of metadata - WCS will deliver this, even without knowing contents . Ex: EO-WCS GetCoverage result . Inverse possible, too: metadata record contains (or links) coverage Coverages Tutorial :: © 2013 Peter Baumann Overview . Motivation: What is a “coverage”? . Coverage data: the OGC Coverage Model . Coverage services: the WCS Suite . Conformance Testing . Implementations . Summary Coverages Tutorial :: © 2013 Peter Baumann14 WCS Core Coverages Tutorial :: © 2013 Peter Baumann WCS Service Model: Structure [OGC 09-110r4] WCS offering can be seen as a single virtual document Notwithstanding other actual encodings GML coverage Hook for future service- related coverage metadata Coverages Tutorial :: © 2013 Peter Baumann WCS Service Model: Operations . GetCapabilities - what service extensions? - What formats? CRSs? - What coverages? . DescribeCoverage - coverage metadata . GetCoverage - coverage, or subset thereof Coverages Tutorial :: © 2013 Peter Baumann17 WCS GetCapabilities: Service Info . Purpose: Get information about - Coverage offering: identifiers of coverages available & (possibly) coverage types - Service capabilities: which formats? which CRSs? can this server do reprojection? etc. Request: http://www.acme.com/wcs?SERVICE=WCS&VERSION=2.0.1 . Response: “Capabilities document”: ... <Profile> http://www.opengis.net/spec/WCS_protocol-binding_soap/1.0/data/conf-class/soap </Profile> <Profile> http://www.opengis.net/spec/WCS_coverage-encoding_netcdf/1.0/data/conf-class/netcdf </Profile> <Profile> http://www.opengis.net/spec/WCS_service-model_processing/1.1/data/conf-class/processing </Profile> ... Coverages Tutorial :: © 2013 Peter Baumann WCS GetCoverage: Subsetting & Encoding . Get whole or subset of coverage . Format encoding selected - in coverage‟s Native CRS by MIME type identifier • No information loss - default: coverage„s Native Format - subset = trim | slice • No information loss - Supported formats advertised in Capabilities doc http://www.acme.com/wcs? SERVICE=WCS & VERSION=2.0 & REQUEST=GetCoverage & COVERAGEID=C1 & SUBSET=Lat(0,100) & SUBSET=Long(10,50) & FORMAT=image/tiff more examples: http://standards.rasdaman.org Coverages Tutorial :: © 2013 Peter Baumann19 Sample Satellite Image Timeseries WCS [screenshots, rasdaman] Coverages Tutorial :: © 2013 Peter Baumann Inset: WaterML2 Time Handling «FeatureType» Coverage . OGC Coverages: time just another axis domainSet rangeType rangeSet «Union» «type» «Union» DomainSet DataRecord RangeSet . WaterML: timseries = time slices - WaterML extended: scalars → images - Inefficient time subsetting Coverages Tutorial :: © 2013 Peter Baumann WCS Extensions Coverages Tutorial :: © 2013 Peter Baumann Abstract Topic 6 WCS: The Big Picture GML SWE Common OWS Common GML Application Schema - WCS Core Coverages Protocol Format Encoding Data Model Service Binding Usability GeoTIFF Quality WCS-T GET-KVP Multilinguality netCDF Hierarchies Processing POST-XML JPEG2000 Range SOAP Subsetting GMLJP2 Scaling REST GRIB2 JSON CRS etc. Interpolation Legend: - available - under work - planned EO-WCS MetOc-WCS 23 Coverages Tutorial :: © 2013 Peter Baumann WCS Range Subsetting Extension . Select components from compound cells - „channel“, „band“ subsetting - Not to be mixed up with (domain) subsetting) . By way of example: ...& RANGESUBSET=red &… …& RANGESUBSET=nir,red,green &… …& RANGESUBSET=green,red,blue &… …& RANGESUBSET=nir:green &… …& RANGESUBSET=band01,band03:band05,band19:band21 &… . In adoption process OGC 12-040 Candidate IS Coverages Tutorial :: © 2013 Peter Baumann WCS CRS Extension . Retrieve coverage in CRSs different from Native CRS - WCS Core access always in coverage„s Native CRS → result, as per Core, always delivers exact, unaltered cell („pixel“) values . By way of example: ... & OUTPUTCRS=http://www.opengis.net/def/crs/EPSG/0/4326 & ... CRS Name Type Specification [OGC 11-135] defines CRS URL framework - All CRSs in OGC expressed as URLs - Ex: http://www.opengis.net/def/crs/EPSG/0/4326 - Horizontal space, vertical space, time, „abstract“ axes, array indexing - Not part of WCS OGC 11-053 Candidate IS Coverages Tutorial :: © 2013 Peter Baumann WCS Interpolation Extension . Client can enforce interpolation behavior whenever server needs to interpolate - Scaling, reprojection - If this extension is not supported: server silently chooses . By way of example: ... & INTERPOLATION=http://www.opengis.net/def/interpolation/cubic &… …& INTERPOLATION= lat:http://www.opengis.net/def/interpolation/linear, long:http://www.opengis.net/def/interpolation/linear, time:http://www.opengis.net/def/interpolation/nearest-neighbor &… . In adoption process OGC 12-049 Candidate IS Coverages Tutorial :: © 2013 Peter Baumann Web Coverage Processing Service (WCPS) Coverages Tutorial :: © 2013 Peter Baumann Web Coverage Processing Service “XQuery for rasters”: ad-hoc navigation, extraction, aggregation, analytics . Time series . Image processing . Summary data . Sensor fusion & pattern mining 29 Coverages Tutorial :: © 2013 Peter Baumann WCPS By Example . "From MODIS scenes M1, M2, and M3, the absolute of the difference between red and nir, in HDF-EOS" for $c in ( M1, M2, M3 ) return (hdf , encode( A hdf , abs( $c.red - $c.nir ), B "hdf“ hdfC) ) Coverages Tutorial :: © 2013 Peter Baumann30 WCPS By Example . "From MODIS scenes M1, M2, and M3, the absolute of the difference between red and nir, in HDF-EOS" - …but only those where nir exceeds 127 somewhere for $c in ( M1, M2, M3 ) where some( $c.nir > 127 ) return (hdfA, encode( hdfC) abs( $c.red - $c.nir ), "hdf“ ) Coverages Tutorial :: © 2013 Peter Baumann31 WCPS By Example . "From MODIS scenes M1, M2, and M3, the absolute of the difference between red and nir, in HDF-EOS" - …but only those where nir exceeds 127 somewhere - …inside region R for $c in ( M1, M2, M3 ), $r in ( R ) where some( $c.nir > 127 and $r ) return (hdfA) encode( abs(