Downloading image data#
from marsimage.download import download_msl, download_pds3
Single product downloading#
You’ve already seen how to download a single dataproduct from the PDS with download_pds3() if you already have the URL to it.
It will also try to automatically download an external PDS3 .LBL label associated with the product.
pds_img = 'https://planetarydata.jpl.nasa.gov/img/data/msl/MSLMHL_0029/DATA/RDR/SURFACE/3215/3215MH0008300011103206C00_DRXX.IMG'
download_pds3(pds_img, path='temp/')
PosixPath('temp/3215MH0008300011103206C00_DRXX.IMG')
Multi Sol and Multi instrument downloading#
For larger projects like photogrammetry, it is necessary to download images from a range of sols and for multiple instruments.
MarsImage provides a batch download function called download_msl to download calibrated MSL/Curiosity images from the PDS.
You can specify a list of instruments to download from: mastcam, mahli, mardi, navcam, hazcam, or all to download all at once.
To download multiple cameras at once, you can write them as a python list: ['navcam', 'mastcam']. The full command will look like this:
download_msl(['navcam', 'mastcam'], sol_start=3560, sol_end=3650, output_dir=download_dir)
download_dir = './temp/MontMercouHazcam/'
# this will download all MSL Hazcam images from sol 3074 to 3075
download_msl('hazcam', sol_start=3074, sol_end=3075, output_dir=download_dir)
Downloading images from Sol 3074 to Sol 3075 for HAZCAM.
| observation | image | pds3_label | pds4_label | sol | camera | desirability | thumbnail | |
|---|---|---|---|---|---|---|---|---|
| productid | ||||||||
| FLB_670378809MXY_F0870834FHAZ00206M1 | FLB670378809MXY_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FLB_670378809RAD_F0870834FHAZ00206M1 | FLB670378809RAD_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FLB_670381342MXY_F0870834FHAZ00206M1 | FLB670381342MXY_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FLB_670381342RAD_F0870834FHAZ00206M1 | FLB670381342RAD_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FLB_670397990MXY_F0871078FHAZ00302M1 | FLB670397990MXY_0871078FHAZ00302 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FLB_670397990RAD_F0871078FHAZ00302M1 | FLB670397990RAD_0871078FHAZ00302 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FRB_670378809MXY_F0870834FHAZ00206M1 | FRB670378809MXY_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FRB_670378809RAD_F0870834FHAZ00206M1 | FRB670378809RAD_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FRB_670381342MXY_F0870834FHAZ00206M1 | FRB670381342MXY_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FRB_670381342RAD_F0870834FHAZ00206M1 | FRB670381342RAD_0870834FHAZ00206 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FRB_670397990MXY_F0871078FHAZ00302M1 | FRB670397990MXY_0871078FHAZ00302 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FRB_670397990RAD_F0871078FHAZ00302M1 | FRB670397990RAD_0871078FHAZ00302 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| RLB_670398086MXY_F0871078RHAZ00311M1 | RLB670398086MXY_0871078RHAZ00311 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| RLB_670398086RAD_F0871078RHAZ00311M1 | RLB670398086RAD_0871078RHAZ00311 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| RRB_670398086MXY_F0871078RHAZ00311M1 | RRB670398086MXY_0871078RHAZ00311 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| RRB_670398086RAD_F0871078RHAZ00311M1 | RRB670398086RAD_0871078RHAZ00311 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03074/H... | NaN | 03074 | hazcam | 10 | False |
| FLB_670471299MXY_F0871078FHAZ00341M1 | FLB670471299MXY_0871078FHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
| FLB_670471299RAD_F0871078FHAZ00341M1 | FLB670471299RAD_0871078FHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
| FRB_670471299MXY_F0871078FHAZ00341M1 | FRB670471299MXY_0871078FHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
| FRB_670471299RAD_F0871078FHAZ00341M1 | FRB670471299RAD_0871078FHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
| RLB_670471333MXY_F0871078RHAZ00341M1 | RLB670471333MXY_0871078RHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
| RLB_670471333RAD_F0871078RHAZ00341M1 | RLB670471333RAD_0871078RHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
| RRB_670471333MXY_F0871078RHAZ00341M1 | RRB670471333MXY_0871078RHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
| RRB_670471333RAD_F0871078RHAZ00341M1 | RRB670471333RAD_0871078RHAZ00341 | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | /tmp/tmpaqgs8uqs/temp/MontMercouHazcam/03075/H... | NaN | 03075 | hazcam | 10 | False |
Advanced Product filtering#
MSL MMM (Mastcam, Mahli, Mardi) observations are often downlinked in different compression methods and resolutions, e.g. lossess, JPEG compressed, thumbnails…
By default download_msl will try to find the best quality product with the highest version number for any given observation.
This behavior can be disabled by passing find_best=False and remove_thumbnails=False to the function.
By default, it will only download DRXX, RAD_ and MXY_ products. These are the only type of product supported by the MarsImage Class.
However, if desired, the defauly filter can be changed by passing a product_filter argument to the function, e.g. product_filter=['DRLX', 'RADL', 'MXYL']. This currently acts as a whitelist which the products must match.
Lets use these features to download all products for a selected MAHLI observation:
download_dir = './temp/MastcamProductLevels/'
# this will download all MSL MAST_RIGHT images that match the observation 4142MR1055890052100038 and return a dataframe with the results
# this image is available with different compression, the desirability value will be highest for the best quality image
index = download_msl(
'mastcam',
sol_start=4142,
sol_end=4142,
output_dir=download_dir,
product_filter=['4142MR1055890052100038'],
find_best=False,
remove_thumbnails=False,
)
Downloading images from Sol 4142 to Sol 4142 for MASTCAM.
display(index)
| observation | image | pds3_label | pds4_label | sol | camera | desirability | thumbnail | |
|---|---|---|---|---|---|---|---|---|
| productid | ||||||||
| 4142MR1055890052100038C00_DRCL | 4142MR10558900521000380DRCL | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 8 | False |
| 4142MR1055890052100038C00_DRCX | 4142MR10558900521000380DRCX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 8 | False |
| 4142MR1055890052100038C00_DRLX | 4142MR10558900521000380DRLX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 8 | False |
| 4142MR1055890052100038C00_DRXX | 4142MR10558900521000380DRXX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 8 | False |
| 4142MR1055890052100038E01_DRCL | 4142MR10558900521000380DRCL | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 5 | False |
| 4142MR1055890052100038E01_DRCX | 4142MR10558900521000380DRCX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 5 | False |
| 4142MR1055890052100038E01_DRLX | 4142MR10558900521000380DRLX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 5 | False |
| 4142MR1055890052100038E01_DRXX | 4142MR10558900521000380DRXX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 5 | False |
| 4142MR1055890052100038I01_DRCL | 4142MR10558900521000380DRCL | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 0.6 | True |
| 4142MR1055890052100038I01_DRCX | 4142MR10558900521000380DRCX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 0.6 | True |
| 4142MR1055890052100038I01_DRLX | 4142MR10558900521000380DRLX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 0.6 | True |
| 4142MR1055890052100038I01_DRXX | 4142MR10558900521000380DRXX | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | NaN | /tmp/tmpaqgs8uqs/temp/MastcamProductLevels/041... | 04142 | mastcam | 0.6 | True |