This page provides a description of how NCPP will invoke services provided by USGS in order to compute appropriate climate indices.
The science use case formulated by the Climate Indexes project requires the capability to execute a science algorithm (specifically, the index computation) on a selected set of datasets. To make this possible, the NCPP software development team has worked in collaboration with the USGS to enable such capabilities within a distributed, federated architecture (such as the one maintained by the Earth System Grid Federation or ESGF), and following open source community standards for interoperability with other systems.
Specifically, the USGS Geo Data Portal (GDP, see http://cida.usgs.gov/climate/gdp/) already offers the capability to request the execution of a job that may take as input any local or remote dataset that is accessible via OpenDAP. This capability is made accessible to clients via a Web Processing Service (WPS) interface, which is an Open GIS Consortium (OGC) specification for encoding inputs and outputs of a geospatial process. Clients may send a request to the GDP encoded as a WPS-compliant XML document, and the GDP will execute the requested algorithm and send back a WPS-compliant XML response, which includes either the data product itself, or a pointer to the data product if too large to be included in the response. Incidentally, the GDP software is based on the freely available Java implementation of the WPS specification developed by 52North.
In order to leverage the capabilities already developed by the USGS, the NCPP team has focused on developing a client-side library for executing invocations to a remote WPS service, and for fetching the resulting data product. This library has been developed in Python, so that it can be used within a Python-based web portal environment such as that offered by COG, and it has been based on the open-source OWSLib project (http://pypi.python.org/pypi/OWSLib), which is a Python package for allowing clients to interact with OGC Web Services. OWSLib already contained functionality to execute WMS, WCS and WFS requests, so the code to execute WPS requests has been added and contributed back to the community. This code is currently available from a branch of the OWSLib main repository, for later inclusion into the main distribution.
As explained in the use case, the ultimate goal of this prototype effort is to enable scientists to requests climate indexes from a selectable set of distributed datasets (see picture). A web-accessible user interface, possibly hosted within the COG environment, will include all the necessary steps to formulate a climate index request that involves datasets served by one or more ESGF data nodes. The request will be sent to the WPS GDP service, which will retrieve the data from the ESGF nodes via OpenDAP, execute the science algorithm to compute the climate index, and send notification back to COG (and the user) when the data product is ready. At this time, the COG environment will allow the user to either retrieve, display or analyze the data product or resulting image.