MapServer Support for Web Coverage Services Stephen Lime - Minnesota DNR Dr. Thomas E. Burk - University of Minnesota MUM 2004 - Ottawa, Canada Presentation Overview • • • • • Background Implementation Usage Demo Application Future Work MapServer • Pre-dates OGC interoperability efforts • Two primary objectives, via the Internet: o o create maps and associated products (e.g., scalebars, legends and reference maps) query spatial data • Two primary components: o o mapserv CGI provides out-of-box functionality MapScript, access to the C/C++ API from popular programming languages GDAL • Geographic Data Abstraction Library • Middleware for raster data access, similar in concept to ODBC • Provides most MapServer raster input and some output capabilities • Provides limited image processing support for operations such as projection and resampling MapServer OGC Support • Web Mapping Service (WMS) - a perfect match for existing MapServer functionality • Web Feature Service (WFS) - MapServer supports non-transactional elements, equates roughly to MapServer query support • Web Coverage Service (WCS) - furthest spec from core MapServer functionality, must rely heavily on MapServer/GDAL interface Groundwork • MODIS Download Facility – early 2000 First extension of MapServer that has several characteristics of recent WCS standard • Lead to development of a SEEDS proposal for NASA funding Partners: University of North Dakota and the Jet Propulsion Laboratory WCS Overview • Like WFS, WCS is a natural progression from WMS • “Unfiltered” access to a “coverage”, values or properties at a set of geographic locations • WCS 1.0.0 is limited to simple, that is grid, coverages *whew* • Supports simple queries in the form of spatial, temporal and/or other property subsets Design Assumptions • Not a ground-up WCS implementation Will not support the full WCS specification Build upon functionality already available within MapServer Any extensions to MapServer must be made available via the core product, the CGI interface and MapScript Must integrate with OGC specification implementations supported by MapServer (e.g. WMS and WFS) Relies upon GDAL for data extraction, transformation (e.g. projection) and formatting Our “ToDo” List • Enable ISO8601 extended date format parsing • Enhance tiling to support: o o filtering based on tile attributes specification of band/bands as an attribute • Alter GDAL/MapServer interface to support key WCS features (multi-band raw mode) • Update MapServer compilation process • Developed interface to process WCS requests via the MapServer CGI program o GetCapabilities/DescribeCoverage/GetCoverage Spatial/Temporal Tiling • Mechanism to organize and present a large volume of data using a single MapServer layer definition • Has utility beyond immediate WCS needs, for example for access control • Simplifies development of client applications • Potential performance benefits • May be cumbersome to setup Tiling Example: Multiple Images 1.img 4.img 7.img 2.img 5.img 8.img 3.img 6.img 9.img shape location polygon 1.img polygon 2.img polygon 3.img polygon 4.img polygon 5.img polygon 6.img polygon 7.img polygon 8.img polygon 9.img Tiling Example: Single Image, Temporal Bands NDVI_03.img shape band date location polygon 1 2003-05 NDVI_03.img May polygon 2 2003-06 NDVI_03.img June polygon 3 2003-07 NDVI_03.img July polygon 4 2003-08 NDVI_03.img August Development Status • Elements of WCS (e.g. tiling) is enabled in 4.2 release, beta WCS support is now available in 4.3 development version • Requires GDAL and Proj.4 • Supports GetCapabilities, DescribeCoverage and GetCoverage Enabling WCS • Very similar to enabling WMS and WFS • Define WCS specific metadata elements GDAL can discover some values (e.g. resolution) Optionally, these values can be hardcoded • Set the layer DUMP attribute • If necessary, structure image data appropriately using new tiling capabilities An Example LAYER NAME "ndvi" STATUS OFF TYPE RASTER METADATA wcs_label "North Central US MODIS-based NDVI Images for 2002" ows_srs "EPSG:26915 EPSG:4269 EPSG:4326" ows_extent "159707 4597895 1400207 5501395" wcs_resolution "500.0 500.0" wcs_formats "GEOTIFF_INT16" wcs_nativeformat "raw binary" wcs_timeposition "2002-001,2002-033,…,2002-193" wcs_timeitem "imgdate" LAYER END NAME "ndvi_idx" DUMP TRUE TYPE TILEINDEX TILEINDEX 'ndvi_idx' DATA "mod13" END END Demo Application • MODIS Download Facility • Run the demo... Future Enhancements • Non-temporal range subsetting • • • • • • Via TILEINDEX layers Via raster cell values Automatic metadata discovery XML encoded requests Support for multiple spatial interpolation methods True support of ISO8601 date formats WCS client support Oh yeah, need to write documentation Questions?