Download ICESat-2 ATL06 files in the vicinity of the Ross Ice Shelf (RIS) front as in Becker et al. (2021)

This notebook uses the icepyx library (Scheick et al., 2019; https://github.com/icesat2py/icepyx) to download spatially and temporally subsetted ATL06 granules from the National Snow and Ice Data Center. Running this notebook should result in the download of these granules in the location defined by the variable 'path' in the last code block. The user should adjust the path according to their own workflow.

This script implements the ATL06-specific methods described in Subsection 2.2 of Becker et al. (2021).

Susan L. Howard, Earth and Space Research, showard@esr.org

Maya K. Becker, Scripps Institution of Oceanography, mayakbecker@gmail.com

Last updated April 15, 2021

In [2]:
import icepyx as ipx
import os
import shutil
from pprint import pprint

%matplotlib inline

Specify ATL06 as the data set of interest, and define the spatial and temporal subsetting parameters for the RIS front region. Apply icepyx's Query class to specify the region of interest, and verify that the Query operation worked correctly by examining some of the characteristics of the resulting object.

In [3]:
short_name = 'ATL06'
spatial_extent = [163.5, -78.9, -157.5, -77]
date_range = ['2018-10-13','2020-07-16']

ross_data = ipx.Query(short_name, spatial_extent, date_range)

print(ross_data.dataset)
print(ross_data.dates)
print(ross_data.start_time)
print(ross_data.end_time)
print(ross_data.dataset_version)
print(ross_data.spatial_extent)
ATL06
['2018-10-13', '2020-07-16']
00:00:00
23:59:59
003
['bounding box', [163.5, -78.9, -157.5, -77]]

Log in to NASA Earthdata account—the user should specify 'username' and 'email'

In [4]:
ross_data.earthdata_login('username','email')
Earthdata Login password: ········

Check the total number of granules available that meet the Query object's parameters, as well as their average and total size. If desired, print the granule IDs by setting the 'ids' parameter to 'True.'

In [5]:
ross_data.avail_granules()
Out[5]:
{'Number of available granules': 2097,
 'Average size of granules (MB)': 12.021662263683309,
 'Total size of all granules (MB)': 25209.425766943907}

Order all granules that meet the Query object's parameters, in this case without any variable subsetting

In [ ]:
ross_data.order_granules()

Download all granules. The user should change the path variable to reflect their desired download location.

In [ ]:
path = './ross_data_download'

ross_data.download_granules(path)