PO.DAAC Web Services Overview


PO.DAAC provides several ways to discover and access physical oceanography data, from the PO.DAAC Web Portal to FTP access to front-end user interfaces (see http://podaac.jpl.nasa.gov).  That same data can also be discovered and accessed through PO.DAAC Web Services, enabling efficient machine-to-machine communication and data transfers.

While the Web Portal and many other tools at PO.DAAC are designed for interactive use in a web browser, PO.DAAC Web Services are not. The PO.DAAC Web Services are set up to provide data directly to scripts or programs in readily machine-parseable forms (see below). These forms are not always amenable to viewing or use in a web browser, although a limited amount of discovery can be done that way.

What is PO.DAAC Web Services?

PO.DAAC Web Services are application programming interfaces (APIs) that can be accessed through standard web protocols.  The W3C defines a Web Service in part as, "A software system designed to support interoperable machine-to-machine interaction over a network," (for the full definition, see http://www.w3.org/TR/ws-arch/#whatis ).  The PO.DAAC Web Services use a Representational State Transfer (REST) model with calls issued over a Hypertext Transfer Protocol (HTTP) connection.  On receipt of a request message, our services return the response in either an Extensible Markup Language (XML) structure or, optionally, a JavaScript Object Notation (JSON) format.

A typical PODAAC Web Service request is generally of the following form:


Where service indicates the particular service requested (such as "search") and format indicates the output response format (usually atom for a call to the "search" service).  The parameters, options, and details of each of our Web Services are described in the corresponding API documentation.

Web Services

The following is the list of available PO.DAAC Web Services

Name Description
Dataset Metadata Dataset metadata service retrieves the metadata of a dataset on PO.DAAC's dataset catalog using the following parameters: datasetId, shortName, and format.
Dataset Search Dataset Search service searches PO.DAAC's dataset catalog, over Level 2, Level 3, and Level 4 datasets, using the following parameters: datasetId, shortName, startTime, endTime, bbox, and others.
Dataset Variables Provides list of dataset variables.
Granule Metadata Granule metadata service retrieves the metadata of a granule on PO.DAAC's catalog using the following parameters: format and other optional parameters.
Granule Search Search Granule does granule searching on PO.DAAC level 2 swath datasets (individual orbits of a satellite), and level 3 & 4 gridded datasets (time averaged to span the globe). The following parameters are supported: datasetId, startTime, endTime, bbox, and others.
Granule Preview The PODAAC preview Image service retrieves pre-generated preview images for selected granules. This service uses a template provided by the Granule Search service and, therefore, Granule Preview must be preceded by Granule Search.
Granule Subset Subset Granule service allows users to Submit subset jobs. Use of this service should be preceded by a Granule Search in order to identify and generate a list of granules to be subsetted.
Subset Status Subset Granule Status service allows users to check the status of submitted subset job.


This example python script shows an entire subsetting workflow using the PO.DAAC Web Services, exercising several of the services: datasets are searched (Dataset Search); variables in the found datasets are identified (Dataset Variables); granules meeting search criteria are found (Granule Search); and the identified granules are subsetted (Granule Subset). Before running this script, email_address variable need to be changed to a valid email address to receive the result. Use the following command to run the script

python cws_example.py

Download the script here. cws_example.py