Page 1 of 1

Podaacpy-Python Utility Library for Interacting with PODAAC

PostPosted: Fri Sep 09, 2016 9:02 am
by yiboj
podaacpy is a python utility library written by Dr. Lewis John McGibbney of JPL for interacting with NASA JPL’s PO.DAAC web services and metadata compliance checker.

Here is the list of functionalities included in the library:

    Dataset Metadata - retrieves the metadata of a dataset
    Dataset Search - searches PO.DAAC’s dataset catalog, over Level 2, Level 3, and Level 4 datasets
    Dataset Variables - provides list of dataset variables for the dataset
    Granule Metadata - retrieves the metadata of a granule
    Granule Search - 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)
    Granule Preview - the PODAAC preview Image service retrieves pre-generated preview images for selected granules
    Granule Subset - Subset Granule service allows users to submit subset jobs
    Subset Status - Subset Granule Status service allows users to check the status of submitted subset job
    Metadata Compliance Checker - an online tool and web service designed to check and validate the contents of netCDF and HDF granules for the Climate and Forecast (CF) and Attribute Convention for Dataset Discovery (ACDD) metadata conventions.

Here is the sample snippet script to use the podaacpy library, users are encouraged to explore all other functionalities in the podaacpy library.

Code: Select all
#!  /usr/bin/env python2

# podaac package
import podaac.podaac as podaac
# podaac_utils package
import podaac.podaac_utils as utils

# create an instance of the Podaac class
p = podaac.Podaac()

# create an instance of the PodaacUtils class
u = utils.PodaacUtils()

# Use Podaac class to search metadata for list of granules archived within the last 24 hours in Datacasting format.
# The return result contains an XML response containing a list of data granules which can be processed appropriately.
result = p.load_last24hours_datacasting_granule_md(dataset_id='PODAAC-GHMG2-2PO01')
print result

# Return meta data of dataset
result = p.dataset_metadata(dataset_id='PODAAC-GHMG2-2PO01')
print result

# Return meta data of granule
result = p.granule_metadata(dataset_id='PODAAC-GHMG2-2PO01', granule_name='')
print result

# Return datasets with keywaords
result = p.dataset_search(keyword='modis')
print result

# Return granules list within both spatial and temporal ranges
result = p.granule_search(dataset_id='PODAAC-ASOP2-25X01', bbox='0,0,180,90',start_time='2013-01-01T01:30:00Z',end_time='2014-01-01T00:00:00Z',start_index='1')
print result

The podaacpy can be downloaded here:, and the documentation is shown here:

Re: Podaacpy-Python Utility Library for Interacting with POD

PostPosted: Tue Sep 13, 2016 8:52 am
by lmcgibbn
Thanks for posting this Yibo :D
Anyone that has issues with Podaacpy can log an issue at

Re: Podaacpy-Python Utility Library for Interacting with POD

PostPosted: Sun Sep 25, 2016 9:55 am
by lmcgibbn
Hi Folks,
I've just released Podaacpy 1.3.0, which can be installed as follows
Code: Select all
pip install podaacpy

This version complies with the most recent v3.2.2 Web Services API's.
Please report any issues hyou experience with usage at

Re: Podaacpy-Python Utility Library for Interacting with POD

PostPosted: Sat Sep 30, 2017 7:44 am
by lmcgibbn
The Podaacpy open source Python toolkit is quickly approaching 10K downloads which will be a pretty significant milestone for the small project. Hopefully Podaacpy will be further advertised and evangelized at the upcoming Ocean Sciences meeting in early 2018.
I would like to take the opportunity to thank everyone who has been involved and also to ask for any developers to reach out to me regarding new Web Services being developed @PO.DAAC such that they can be exposed within the next Podaacpy release.
Thanks, have a great weekend.