Finding index files on PDS

The “classic” release format of PDS (the “Planetary Data System”), demands that each data release (usually scheduled every 6 months these days), includes an index folder that includes an index file with search-able meta-data for the current release, but also an updated cumulative index file with meta-data for all data for the given instrument up to the time of the current release.

This format has the disadvantage that the URL where one can download the most current cumulative index for a given instrument is changing every release, for example like for the MRO CTX instrument, where the most recent cumulative index is under https://pds-imaging.jpl.nasa.gov/data/mro/mars_reconnaissance_orbiter/ctx/mrox_3267/index/cumindex.tab (Note the 3267 which indicates the volume number (releases often have substructures called volumes).

Other instruments, like MRO HiRISE has a top level index directory independent of releases here: https://hirise-pds.lpl.arizona.edu/PDS/INDEX/ which is obviously very convenient, if you want to create a utility that just downloads the most recent index file.

Following my suggestion to do something similar for Cassini data, the Ring-Moon Systems node of the PDS included a new static folder for all Cassini instruments (see here, e.g. for the ISS camera).
This is obviously not such a great point anymore, with the Cassini mission being over, but it seems to be a much better way to integrate tool creators with the PDS.

The alternative is to scrape the website for the most recent release number, followed by looking up the most recent volume number, to finally being able to get to the most recent index file. This is for example what I had to do for CTX because they do not provide a static URL for the cumulative index.

I just added the ability to identify and download the most recent CTX index to my pdstools in my planetpy package here. A user would first use the new CTX scraper in pdstools/scraper/CTXIndex to get to the most recent label URL via the property latest_index_label_url, which then can be provided to the download function. Let me know if you have any problems using it.

2 Likes