180 likes | 297 Views
Proposal for a Web Coverage Processing Service (WCPS) OGC, Huntsville, 2006-mar-08. Peter Baumann International University Bremen, rasdaman GmbH email: p.baumann@iu-bremen.de. Roadmap. Motivation WCPS Concepts WCPS Functionality Wrapup. Roadmap. Motivation WCPS Concepts
E N D
Proposal for a Web Coverage Processing Service(WCPS)OGC, Huntsville, 2006-mar-08 Peter Baumann International University Bremen,rasdaman GmbH email: p.baumann@iu-bremen.de
Roadmap • Motivation • WCPS Concepts • WCPS Functionality • Wrapup
Roadmap • Motivation • WCPS Concepts • WCPS Functionality • Wrapup
Motivation • WCS is foundation for coverage retrieval • ...but further server-side processing capabilities desirable • WCS change requests! • Ex: NDVI from multi/hyperspectral imagery • adding more and more WCS functions not feasible • Open-ended list of derivations – which to choose? • ...instead: coverage processing language • Function nesting -> any complexity • Server-side optimization possible
WCPS Design Goals • coverage retrieval and processing, based on WCS • unlimited nesting -> expression language • Declarative = describe what you want, not how to compute • Not to substitute image processing! • rigid formal definition for clear semantics • Drawing upon imaging, DB, PL experience • Application beyond geo(graphy): geophysics, engineering, … • Any dimension; not restricted to spatio-temporal semantics • powerful, but safe • “safe in evaluation” = operations terminate in finite time • No recursion
Roadmap • Motivation • WCPS Concepts • WCPS Functionality • Wrapup
WCPS Concepts • WPCS Coverage corresponds to WCS Coverage • raster array + metadata • Operations read coverages, combinecoverages, returncoverages • ...or ancillary coverage data • includes WCS operations; nesting allows arbitrary complexity • Request structure • GetCapabilities -- WCS + processing capabilities • ProcessCoverage -- request expression, referencing advertised coverages
direct access, no encapsulation geo descriptors Application data tech meta data coverage data Coverage Constituents • Level 3: general meta data („everything else“; application dependent) • Level 2: spatio-temporal metadata • Domain: list of (AxisName,DomainExtent,AxisType) • CRS • Range: ordered list of (CompName,TypeName) • Level 1: technical meta data • Name (stored covg only) • Cell domain: ordered list of (lo,hi); lo,hi int • Null value • Interpolation methods • Level 0: coverage data • Coverage values
Level 1: "grid" coords axis identified by position number 0,1,... Addressing by (signed) int coordinates Level 2: spatio-temporal coords Axis name, unique per coverage Axis type, can be spatial/temporal At most one x, y, z, t Abstract axes possible CRS / geo coordinate refer to x/y spatial axes, time operations refer to t axis Spatio-Temporal Semantics
Roadmap • Motivation • WCPS Concepts • WCPS Functionality • Wrapup
for c in ( A, B, C )return encode( c, "TIFF" ) ( tiff(A), tiff(B), tiff(C) ) WCPS Requests • GetCapabilities • Like WCS, just some additional info • ProcessCoverage • Returns: 1..n coverages or scalar data • Syntax close to XQuery: for c in ( coverageList )[ where condition(c) ]return processingExpr(c) • Example:
Processing I C: coverage valued expression • Metadata extraction null( C ); crs( C ); ... • Encoding encode( C, "jpeg", .5 ) • Induced operations C1 + C2; C1 > 0; abs( C ); ... • Subsetting C[ x0:x1, y0:y1 ]; C[ x0:x1, y0 ]; C[ x0, y0 ]; ... • Level 1 x0,x1,y0 are integer cell coordinates • Scaling scale( scale( C, 1, y0, y1, "nearest neighbor" ), 0, x0, x1, "nearest neighbor" ) • again, Level 1 axis & coordinates are integers
Processing II • spatial transform stransform( C, p, “EPSG:42424“ ) • returns Level 1 "grid" coordinate of p in C • temporal transform ttransform( C, “Thu Nov 24 01:33:27 CET 2005“ ) • returns Level 1 "grid" coordinate of t in C • reprojection ctransform( C, “EPSG:42424“, "barycentric" ) • returns new coverage
Processing III • Coverage constructor coverage p in cdom( C ) values C[p] / 2 • Condenser condense + over x in [1..99] using abs(C[x] – C[x-1]) • Shorthands: add( C ), count( C ), max( C ), some( C ), all( C ), ... • Ex: 8-bit histogram • coverage bucket in [0..255]values count( C = bucket ) • For the theory behind & operator choice see, eg, VLDB Journal 1994, NGITS 1999
Language & Encoding • WCPS language expressions independent from encoding • encode( C.red + C.nir, "Tiff" ) • KVP encoding: WCPS language + entities where needed • http://myhost/myservice ? SERVICE=WCPS & VERSION=0.0.1 &REQUEST=ProcessCoverage& RESULT=encode(C.red%20+%20C.nir,%20%22Tiff%22) & STORE=true & EXCEPTIONS=application/vnd.ogc.se_xml • XML encoding: XML Schema • <formatEncoding format="tiff" params=""> <binaryPlus> <structSelection component=„red“ coverage=„C“/> <structSelection component=„nir“ coverage=„C“/> </binaryPlus></formatEncoding>
Roadmap • Motivation & idea • WCPS Concepts • WCPS Functionality • Wrapup
Spec + XML Schemas published: OGC 06-035 Reference implementation Break-through: done, full: under way[Georgi Chulkov] rasdaman + JSP Visual QL Web client [Ivan Delchev] Concepts proven in geo, life science, Grid in operational use since 5 years To do: Harmonization WCS 1.1; GML; ISO 19123; WPS; Filter Encoding Raster terminology Use cases Conformance clause Status & Future Work
Conclusion • WCPS = WCS + coverage processing expression language • Geography + geophysics + engineering + ... • Flexible, complex server-side data extraction (up to filter kernels) • Clear semantics definition • Suggestion to WG: Propose to TC as Discussion Paper • Interest articulated by NASA, BEA, Cubewerx, Ionic