Utilizing Web Coverage Service Raster Data Processing in ArcObjects ...

Report 11 Downloads 19 Views
Utilizing Web Coverage Service Raster Data Processing in ArcObjects for the Land Cover Analysis Tool Huajun Zhang, John Aguinaldo, and David Strong U.S. Geological Survey U.S. Department of the Interior U.S. Geological Survey

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

Overview ƒ

What is Web Coverage Service (WCS)

ƒ

Limitations of WCS

ƒ

Extending WCS via a brokering Web Service ƒ Image analysis through Web Services ƒ ArcObjects raster/image processing

ƒ

Example implementation: Land Cover Analysis Tool (LCAT)

ƒ

ArcObjects WCS comments

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

ƒ

OGC’s “Coverage”: Image or Raster

ƒ

Provides access to potentially detailed and rich sets of geospatial information

ƒ

Those information are useful for client-side rendering, server-side/client-side image analysis, and input into scientific models and other clients

ƒ

Conceptually it is easy think of WCS as a raster equivalent of WFS

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

I95

I-295 I87

Web Map Service (WMS) Geospatial “picture” publishing/viewing service

Web Feature Service (WFS) Geospatial feature publishing/streaming service

I95

I-295 I87

Web Coverage Service (WCS) Imagery and gridded data publishing/processing service

Keyhole Markup Language Service (KML) Geospatial feature publishing/streaming service

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

ƒ

Like WMS / WFS: ƒ WCS allows clients to choose portions of a

server's information holdings based on spatial constraints and other criteria. ƒ

Unlike WMS: ƒ WMS returns a generalized map image of a

given extent, scale, and map size. Conversely, WCS returns the actual raw data of a given extent – Scale and map size are factors.

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

ƒ

Unlike WMS: WCS can ƒ Provide available data together with their detailed

descriptions ƒ Define a rich syntax for requests against these data ƒ Return data with its original semantics (instead of pictures) which may be interpreted, extrapolated, etc. – and not just portrayed ƒ

Unlike WFS: ƒ WFS returns discrete vector geospatial features. WCS

can return raster data with geospatial information such as extent, projection, band information.

Utilizing Web Coverage Service Raster Data Processing Server for the Land Cover Analysis Tool

OGC Clients ArcMap ArcExplorer ESRI Web Mapping API

OGC Web Services (WCS)

OpenLayers Google Earth Google Map Virtual Earth

Web Server

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

ƒ

MapServer – server (serve WCS)

ƒ

GeoServer – server

ƒ

ArcGIS Server – server

ƒ

ArcMap – client (read WCS)

ƒ

gvSIG – client

ƒ

GDAL – client

ƒ

GeoMedia - client and server

ƒ

Doesn’t support advanced raster operation/image processing (e.g. polygon raster clipping)

ƒ

Performance: reprojection / reformatting on a high-volume server

To mitigate the limitations of WCS: ƒ

Broker the original WCS request

ƒ

Post-process the original WCS response to provide value-added functionality

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

OGC Clients

ESRI Web Mapping API

Extend WCS Functionality

?

OpenLayers

Challenge:

Advanced Image Analysis Subset Statistics

Google Earth How does client Surface Analysis request Google Map Advanced Image …… Analysis Virtual Earth

component?

OGC Web Services (WCS)

Web Server

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

OGC Clients

Web Services Brokers WCS request

OGC Web Services (WCS) Web Server

ESRI Web Mapping API

Advanced Image  Analysis

OpenLayers

Subset

Google Earth

Statistics

Google Map

Surface Analysis

Virtual Earth

……

Solution: Broker a WCS request and postprocess the reply

ƒ

Web services are application components

ƒ

Web services communicate using open protocols (HTTP)

ƒ

Web services are self-contained and selfdescribing

ƒ

XML is the basis for Web services

* Simple Object Access Protocol ** Web Services Description Language ***Universal Description, Discovery and Integration

ƒ

Web Services have three basic platform elements: SOAP*, WSDL** and UDDI *** ƒ SOAP is an XML-based protocol to let applications

exchange information over HTTP ƒ WSDL is an XML-based language for locating and describing Web services ƒ UDDI is a directory service where companies can register and search for Web services ƒ

Key Point: Web Services expose functionality of a server to remote applications.

Utilizing Web Coverage Service Raster Data Processing in ArcGIS Server for the Land Cover Analysis Tool

chema S L M X

Client App HTTP GET/POST ASP.NET, VB/C#.NET Javascript API …

Parameters

SOAP Protocol XML over HTTP

Return Values

Service Description (WCSWebService.asmx?WSDL)

Web Server Components ASP.NET Handler (WCSWebService.asmx)

Web Services Class (WCSWebService.cs/vb)

ƒ

The DataSourcesRaster library contains raster related objects in three categories ƒ Objects used for accessing raster data from

various data sources including file system, Personal geodatabase, File geodatabase and ArcSDE geodatabase; ƒ Objects used for geodata transformation and pixel

filtering, and ƒ Objects used for raster mosaicking, raster loading,

and other miscellaneous objects.

ƒ

ArcGIS 9.3+

ƒ

Development licensing ƒ ƒ ƒ ƒ

ƒ

ArcView ArcEditor ArcInfo Engine Developer Kit

Development licensing ƒ ƒ ƒ ƒ

ArcView ArcEditor ArcInfo Engine Runtime

ƒ

References: ƒ ESRI.ArcGIS.Carto ƒ ESRI.ArcGIS.Datasou

rcesRaster ƒ ESRI.ArcGIS.Geodata base ƒ ESRI.ArcGIS.esriSyst em

ƒ

WCSLayer class ƒ Create WCS layer from URL ƒ Get raster from WCS layer 'WCS service uniform resource locator (URL).  Dim URL As String = "http://localhost:8000/cgi-bin/mapserv.exe?" 'Create WCSLayer from the first coverage. Dim wcslayer As IWCSLayer = New WCSLayerClass() wcslayer.Create(URL, layerName, "1.0.0") 'Test layer is "Landcover_2001" 'Access raster.  Dim rasterlayer As IRasterLayer = CType(wcslayer, IRasterLayer) Dim pRaster As IRaster2 = CType(rasterlayer.Raster, IRaster2) Dim pRasterdataset As IRasterDataset = pRaster.RasterDataset

ƒ

The Land Cover Analysis Tool (LCAT) is an application built by the U.S. Geological Survey’s Eastern Geographic Science Center that provides enhanced public access to the National Land Cover Database (NLCD).

ƒ

LCAT allows users to quickly navigate, display, analyze, and download NLCD datasets defined by a bounding box or a polygon boundary.

ƒ

LCAT leverages WCS Web Service enabling raster analysis functionality.

LCAT

WCS Web Services

Public Web Server1 WCS

Subset

WMS

Public Web Server3

WFS

……

Statistics ….

Public Web Server2

WCS Web Services HTTP ShapeFile

LCA T

Box Coordinate

XML

Mask RasterDataset

Access WCS WCS Layer Raster Dataset & Raster Raster Processing

Clip

Processed Raster Raster Analysis XML Document

WCS Web Service Return XML Document: - - <WCSImageAttributes> 11 73,109,163 39860 - <WCSImageAttributes> 21 224,204,204 230039 ……

141 4557 - C:\Temp\ex toutputImg1011.tif

ƒ

Doesn’t support MapServer WCS full Url ƒ Solution: write a wrapper

ƒ

Doesn’t support MapServer TileIndex ƒ Solution: input a real image file path in the map file LAYER NAME "Landcover_2001" STATUS OFF TYPE RASTER DUMP TRUE DATA "/ms4w/Apache/htdocs/mapserver_data/landcover13_1.tif" #TILEINDEX "C:/ms4w/Apache/htdocs/mapserver_data/2001_landcover.shp" #TILEITEM "LOCATION" #TILEITEM "BLocation" PROJECTION "init=epsg:4326" END ……. END

ƒ

When do raster operation such as mask extraction, colormap of the original raster is removed

9.2

ƒ WCS on MapService ƒ WCS on ImageService ƒ WCS on GeoDataService ƒ 1.0.0, 1.1.0, 1.1.1 ƒ GetCapabilities ƒDescribeCoverage ƒ GetCoverage

9.3

9.3.1

ƒ bug fixes ƒ updated “Make WCS layer” GP tool

ƒ add WCS on Optimized MapServer ƒ bug fixes

ƒ “Make WCS layer” GP tool

* Satish Sankaran, Leveraging the OGC Capabilities of ArcGIS Server , 2009 ESRI User Conference

9.4 +

ƒ

WCS vs OPenDAP? ƒ OGC WCS gets more support from popular software venders

such as ESRI, MapServer, GeoServer ƒ However, NASA, NOAA have huge volume NetCDF data which OPenDAP supports ƒ

GDAL extension for WCS? ƒ Develop custom function such as polygon extraction in GDAL

with C/C++ ƒ MapServer uses GDAL to support WCS ƒ

ERDAS Imagine support? ƒ ERDAS Imagine has supper strong image processing features ƒ IMAGINE Developers' Toolkit, C/C++ API

Huajun Zhang1……[email protected] John Aguinaldo1, ……..……[email protected] David Strong2……………[email protected] 1

Harris IT Services Corporation, contractor to the U.S. Geological Survey

2

U.S. Geological Survey, Eastern Geographic Science Center