Accessing data provided by NASA’s Distributed Active Archive Centers (DAACs)¶
It is possible to download data provided by DAACs, including data which is not cataloged by the MAAP’s CMR, using the NASA MAAP ADE. This data is hosted externally from the MAAP but can be accessed using the NASA MAAP ADE’s authentication systems.
In order to do this, we start by creating a Jupyter workspace within the NASA MAAP ADE. Using the left-hand navigation, select “+ Get Started” and then select the “Jupyter - MAAP Basic Stable” workspace.
Alternatively, you can create a workspace using the “Workspaces” interface. See Create Workspace for more information.
Accessing data from Jupyter Notebooks in your workspace¶
Within your Jupyter Notebook, start by importing the
maap package. Then invoke the
MAAP constructor, setting the
maap_host argument to
# import the maap package from maap.maap import MAAP # invoke the MAAP constructor using the maap_host argument maap = MAAP(maap_host='api.ops.maap-project.org')
Granting Earthdata Login access to your target DAAC application¶
In order to access external DAAC data from the NASA MAAP ADE, MAAP uses your Earthdata Login profile to send a data request to the desired DAAC application.
Some DAAC applications (such as ‘Alaska Satellite Facility Data Access’) must be authorized before you can use them. Login or register at https://urs.earthdata.nasa.gov/ in order to see the applications that you have authorized. From the profile page, click on the ‘Applications’ tab and select ‘Authorized Apps’ from the drop-down menu.
This takes you to the Approved Applications page which lists the applications you have authorized. To add more applications, scroll down to the bottom of the page and click the ‘APPROVE MORE APPLICATIONS’ button which takes you to the Application search page.
Enter the desired application name within the search box and click the ‘SEARCH’ button. After this, a list of search results appears.
Once you find the desired application, click the ‘AUTHORIZE’ button next to the name.
You are then presented with its End User License Agreement. In order to have authorization, you need to select the ‘I agree to the terms of End User License Agreement’ checkbox and then click the ‘AGREE’ button.
After this is done, you are then shown the Approved Applications page again and the desired application should now be listed.
Note that if Earthdata Login access is not granted to your target DAAC application, the following example will result in a 401-permission error.
Accessing Sentinel-1 Granule Data from the Alaska Satellite Facility (ASF)¶
Search for a granule using the
searchGranule function (for more information on searching for granules, see Searching for Granules in MAAP). Then utilize the
getData function, which downloads granule data if it doesn’t already exist locally. We can use
getData to download the first result from our granule search into the file system and assign it to a variable (in this case
download). Note that you will need to
authorize the ‘Alaska Satellite Facility Data Access’ application before downloading any results from our search (see the above section for more information concerning authorizing applications).
# search for granule data using the short_name argument results = maap.searchGranule(short_name='SENTINEL-1A_DP_GRD_HIGH') # download first result download = results.getData()
Note that we can then use the
# print file directory print(download)
Accessing Harmonized Landsat Sentinel-2 (HLS) Level 3 Granule Data from the Land Processes Distributed Active Archive Center (LP DAAC)¶
We use a similar approach in order to access HLS Level 3 granule data. Note that this data is not cataloged by the MAAP’s CMR but we can use
cmr_host argument to specify a CMR instance external to MAAP.
# search for granule data using CMR host name and short name arguments results = maap.searchGranule( cmr_host='cmr.earthdata.nasa.gov', short_name='HLSL30') # download first result download = results.getData()
As in the previous example, we can use the
# print file directory print(download)