ATLAS/ICESat-02 ATL08 Access and Visualize
Author: Sumant Jha (MSFC/USRA), Alex Mandel (DevSeed), Jamison French (DevSeed), Rajat Shinde (UAH), Sheyenne Kirkland (UAH)
Date: March 7, 2024
Description: In this example, we’ll walk through accessing ATL08 data using both cloud access and through downloading. We’ll then explore the data using H5py
, h5Glance
, and xarray
. Finally, we’ll visualize some of the data using xarray
.
Run This Notebook
To access and run this tutorial within MAAP’s Algorithm Development Environment (ADE), please refer to the “Getting started with the MAAP” section of our documentation.
Disclaimer: This tutorial will use an experimental feature to allow access to the DAAC without using EarthDataLogin. This tutorial will need to be ran within MAAP’s ADE to allow this experimental feature to work. Running the tutorial outside of the MAAP ADE will result in errors. Additionally, it is recommended to use the Pangeo
workspace within the MAAP ADE.
About the Data
This data set (ATL08) contains along-track heights above the WGS84 ellipsoid (ITRF2014 reference frame) for the ground and canopy surfaces. The canopy and ground surfaces are processed in fixed 100 m data segments, which typically contain more than 100 signal photons. The data were acquired by the Advanced Topographic Laser Altimeter System (ATLAS) instrument on board the Ice, Cloud and land Elevation Satellite-2 (ICESat-2) observatory.
Parameter(s): TERRAIN ELEVATION
Platform(s):ICESat-2
Sensor(s): ATLAS
Data Format(s): HDF5
Temporal Coverage: 14 October 2018 to present
Temporal Resolution: 91 day
Spatial Resolution: Varies
Spatial Reference System(s): WGS 84 EPSG:4326
Spatial Coverage: N: 90 S: -90 E: 180 W: -180
(Source: ATL08 v6 Dataset Landing Page)
Additional Resources
Importing and Installing Packages
The following example uses several packages. If you do not have the following packages, uncomment the code below:
[ ]:
# !pip install -q h5py h5glance requests fsspec s3fs h5netcdf
Optional download (do not need to download if you’re using the Pangeo workspace. Uncomment if using other workspaces):
[ ]:
# !pip install -q rioxarray
[11]:
import os
import h5py
from maap.maap import MAAP
from h5glance import H5Glance
import requests
import xarray
import boto3
import fsspec
Accessing the Data
In this section we’ll walk through two different ways to access the data. The first method is to access the data through S3.
The second method is to access it by using maap-py
, then download the data locally. From there, we will explore some of the data using h5glance
.
Example 1: Accessing the Data with S3
We will use role assumption to gain access to the data. To do this, we’ll use an experimental feature by setting up a parameter, assuming a role, and get temporary credentials with the assumed role. We’ll also set up credentials into fsspec so we can later use xarray
for data exploration.
[12]:
def assume_role_credentials(ssm_parameter_name):
# Create a session using your current credentials
session = boto3.Session()
# Retrieve the SSM parameter
ssm = session.client('ssm', "us-west-2")
parameter = ssm.get_parameter(
Name=ssm_parameter_name,
WithDecryption=True
)
parameter_value = parameter['Parameter']['Value']
# Assume the DAAC access role
sts = session.client('sts')
assumed_role_object = sts.assume_role(
RoleArn=parameter_value,
RoleSessionName='TutorialSession'
)
# From the response that contains the assumed role, get the temporary
# credentials that can be used to make subsequent API calls
credentials = assumed_role_object['Credentials']
return credentials
def fsspec_access(credentials):
# Pass assumed role credentials into fsspec
return fsspec.filesystem(
"s3",
key=credentials['AccessKeyId'],
secret=credentials['SecretAccessKey'],
token=credentials['SessionToken']
)
[13]:
s3_fsspec = fsspec_access(assume_role_credentials("/iam/maap-data-reader"))
Example 2: Download Data Locally
We are going to use NASA host which is NASA’s Common Metadata Repository (CMR) to search for and download ICESat data. ICESat’s ATL08 data’s concept id can be found on https://search.earthdata.nasa.gov/search and looking for ‘ATL08’ in the search bar. When you check the metadata associated with your search result, you can get the concept_id associated with below tutorial. In this case, the concept_id is C2613553260-NSIDC_CPRD
.
For this example, we are going to use granule id of ATL08_20230816182927_08792008_006_01.h5
. This will be in HDF5 format.
With all this information in hand, we are ready to make a query to cmr.earthdata.nasa.gov using maap-py
.
[14]:
maap = MAAP(maap_host='api.maap-project.org')
nasa_host = "cmr.earthdata.nasa.gov"
results = maap.searchGranule(cmr_host=nasa_host,
concept_id="C2613553260-NSIDC_CPRD",
readable_granule_name="ATL08_20230816182927_08792008_006_01.h5")
Let’s see how this turned out. Did we get a result?
[15]:
data_file = results[0]
data_file
[15]:
{'concept-id': 'G2800397933-NSIDC_CPRD',
'collection-concept-id': 'C2613553260-NSIDC_CPRD',
'revision-id': '2',
'format': 'application/echo10+xml',
'Granule': {'GranuleUR': 'ATL08_20230816182927_08792008_006_01.h5',
'InsertTime': '2023-11-11T10:14:36.642Z',
'LastUpdate': '2023-11-11T10:14:36.642Z',
'Collection': {'DataSetId': 'ATLAS/ICESat-2 L3A Land and Vegetation Height V006'},
'DataGranule': {'SizeMBDataGranule': '106.29328060150146',
'ProducerGranuleId': 'ATL08_20230816182927_08792008_006_01.h5',
'DayNightFlag': 'UNSPECIFIED',
'ProductionDateTime': '2023-09-21T19:57:30.000Z'},
'Temporal': {'RangeDateTime': {'BeginningDateTime': '2023-08-16T18:29:24.813Z',
'EndingDateTime': '2023-08-16T18:36:27.524Z'}},
'Spatial': {'HorizontalSpatialDomain': {'Geometry': {'GPolygon': {'Boundary': {'Point': [{'PointLongitude': '-49.71155',
'PointLatitude': '-0.55384'},
{'PointLongitude': '-51.21715', 'PointLatitude': '-15.49643'},
{'PointLongitude': '-52.36359', 'PointLatitude': '-26.40442'},
{'PointLongitude': '-52.43242', 'PointLatitude': '-27.04278'},
{'PointLongitude': '-52.5585', 'PointLatitude': '-27.03176'},
{'PointLongitude': '-52.48902', 'PointLatitude': '-26.39347'},
{'PointLongitude': '-51.3338', 'PointLatitude': '-15.48562'},
{'PointLongitude': '-49.82395', 'PointLatitude': '-0.54264'},
{'PointLongitude': '-49.76474', 'PointLatitude': '0.04913'},
{'PointLongitude': '-49.65236', 'PointLatitude': '0.03773'}]}}}}},
'OnlineAccessURLs': {'OnlineAccessURL': [{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-protected/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01.h5',
'MimeType': 'application/x-hdf5'},
{'URL': 's3://nsidc-cumulus-prod-protected/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01.h5',
'MimeType': 'application/x-hdf5'}]},
'OnlineResources': {'OnlineResource': [{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-protected/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01.h5.dmrpp',
'Type': 'USER SUPPORT',
'MimeType': 'application/vnd.opendap.dap4.dmrpp+xml'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01.iso.xml',
'Type': 'USER SUPPORT',
'MimeType': 'text/xml'},
{'URL': 's3://nsidc-cumulus-prod-protected/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01.h5.dmrpp',
'Type': 'USER SUPPORT',
'MimeType': 'application/vnd.opendap.dap4.dmrpp+xml'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01.iso.xml',
'Type': 'USER SUPPORT',
'MimeType': 'text/xml'},
{'URL': 'https://opendap.earthdata.nasa.gov/collections/C2613553260-NSIDC_CPRD/granules/ATL08_20230816182927_08792008_006_01.h5',
'Type': 'USER SUPPORT'}]},
'AssociatedBrowseImageUrls': {'ProviderBrowseUrl': [{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.default.default1.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.default.default2.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 'https://data.nsidc.earthdatacloud.nasa.gov/nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.default.default1.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.default.default2.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1l.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt1r.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2l.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt2r.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3l.n_te_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.groundtrack.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.h_canopy_abs.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.h_te_median.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.n_ca_photons.jpg',
'MimeType': 'image/jpeg'},
{'URL': 's3://nsidc-cumulus-prod-public/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01_BRW.gt3r.n_te_photons.jpg',
'MimeType': 'image/jpeg'}]}}}
Looks like we did get a result and will be able to learn a lot about it from available metadata. Let’s download the HDF file locally.
Establish a temporary directory to store the data file and display the path and filename:
[16]:
dataDir = './data'
if not os.path.exists(dataDir): os.mkdir(dataDir)
data = data_file.getData(dataDir)
data
[16]:
'./data/ATL08_20230816182927_08792008_006_01.h5'
Exploring the Data
There are two different ways we’ll open and look at the data: 1. Using xarray
2. Using h5py
1. xarray
First, let’s grab the S3 URL for direct access from our results above.
[17]:
s3_url = results[0]['Granule']['OnlineAccessURLs']['OnlineAccessURL'][1]['URL']
s3_url
[17]:
's3://nsidc-cumulus-prod-protected/ATLAS/ATL08/006/2023/08/16/ATL08_20230816182927_08792008_006_01.h5'
Now we can open a specific group within the HDF5 file using xarray
.
[18]:
with s3_fsspec.open(s3_url) as f:
atl08_track = xarray.open_dataset(f, group='gt1l/land_segments', engine="h5netcdf", phony_dims='sort')
atl08_track
[18]:
<xarray.Dataset> Dimensions: (delta_time: 18690, ds_geosegments: 5, ds_surf_type: 5) Coordinates: * delta_time (delta_time) datetime64[ns] 2023-08-16T18:29:24.853128... latitude (delta_time) float32 ... longitude (delta_time) float32 ... Dimensions without coordinates: ds_geosegments, ds_surf_type Data variables: (12/41) asr (delta_time) float32 ... atlas_pa (delta_time) float32 ... beam_azimuth (delta_time) float32 ... beam_coelev (delta_time) float32 ... brightness_flag (delta_time) float32 ... cloud_flag_atm (delta_time) float32 ... ... ... snr (delta_time) float32 ... solar_azimuth (delta_time) float32 ... solar_elevation (delta_time) float32 ... surf_type (delta_time, ds_surf_type) int8 ... terrain_flg (delta_time) float64 ... urban_flag (delta_time) float64 ... Attributes: Description: Contains data categorized as land at 100 meter intervals. data_rate: Data are stored as aggregates of 100 meters.
2. H5py and H5glance
Let’s check the available keys and structure of the HDF5 files using H5py
and H5glance
. This will use the downloaded file that we saved locally.
Open the file and list the keys:
[19]:
atl08_file = h5py.File(data,'r')
list(atl08_file.keys())
[19]:
['METADATA',
'ancillary_data',
'ds_geosegments',
'ds_metrics',
'ds_surf_type',
'gt1l',
'gt1r',
'gt2l',
'gt2r',
'gt3l',
'gt3r',
'orbit_info',
'quality_assessment']
Use H5glance
module to interactively check all available variables and field that can be used for further analysis and visualizations:
[20]:
H5Glance(atl08_file)
[20]:
- atl08_region [📋]: 1 entries, dtype: int32
- bin_size_h [📋]: 1 entries, dtype: float32
- bin_size_n [📋]: 1 entries, dtype: int32
- bright_thresh [📋]: 1 entries, dtype: float32
- ca_class [📋]: 1 entries, dtype: int32
- can_noise_thresh [📋]: 1 entries, dtype: int32
- can_stat_thresh [📋]: 1 entries, dtype: float32
- canopy20m_thresh [📋]: 1 entries, dtype: int32
- canopy_flag_switch [📋]: 1 entries, dtype: int32
- canopy_seg [📋]: 1 entries, dtype: int32
- class_thresh [📋]: 1 entries, dtype: int32
- cloud_filter_switch [📋]: 1 entries, dtype: int32
- del_amp [📋]: 1 entries, dtype: float32
- del_mu [📋]: 1 entries, dtype: float32
- del_sigma [📋]: 1 entries, dtype: float32
- dem_filter_switch [📋]: 1 entries, dtype: int32
- dem_removal_percent_limit [📋]: 1 entries, dtype: float32
- dragann_switch [📋]: 1 entries, dtype: int32
- dseg [📋]: 1 entries, dtype: int32
- dseg_buf [📋]: 1 entries, dtype: int32
- fnlgnd_filter_switch [📋]: 1 entries, dtype: int32
- gnd_stat_thresh [📋]: 1 entries, dtype: float32
- gthresh_factor [📋]: 1 entries, dtype: float32
- h_canopy_perc [📋]: 1 entries, dtype: float32
- iter_gnd [📋]: 1 entries, dtype: int32
- iter_max [📋]: 1 entries, dtype: int32
- lseg [📋]: 1 entries, dtype: int32
- lseg_buf [📋]: 1 entries, dtype: int32
- lw_filt_bnd [📋]: 1 entries, dtype: int32
- lw_gnd_bnd [📋]: 1 entries, dtype: float32
- lw_toc_bnd [📋]: 1 entries, dtype: float32
- lw_toc_cut [📋]: 1 entries, dtype: float32
- max_atl03files [📋]: 1 entries, dtype: int32
- max_atl09files [📋]: 1 entries, dtype: int32
- max_peaks [📋]: 1 entries, dtype: int32
- max_try [📋]: 1 entries, dtype: int32
- min_nphs [📋]: 1 entries, dtype: int32
- n_dec_mode [📋]: 1 entries, dtype: int32
- night_thresh [📋]: 1 entries, dtype: float32
- noise_class [📋]: 1 entries, dtype: int32
- outlier_filter_switch [📋]: 1 entries, dtype: int32
- p_static [📋]: 1 entries, dtype: float32
- ph_removal_percent_limit [📋]: 1 entries, dtype: float32
- proc_geoseg [📋]: 1 entries, dtype: int32
- psf [📋]: 1 entries, dtype: float32
- ref_dem_limit [📋]: 1 entries, dtype: float32
- ref_finalground_limit [📋]: 1 entries, dtype: float32
- relief_hbot [📋]: 1 entries, dtype: float32
- relief_htop [📋]: 1 entries, dtype: float32
- shp_param [📋]: 1 entries, dtype: float32
- sig_rsq_search [📋]: 1 entries, dtype: float32
- sseg [📋]: 1 entries, dtype: float32
- stat20m_thresh [📋]: 1 entries, dtype: int32
- stat_thresh [📋]: 1 entries, dtype: int32
- tc_thresh [📋]: 1 entries, dtype: float32
- te_class [📋]: 1 entries, dtype: int32
- terrain20m_thresh [📋]: 1 entries, dtype: int32
- toc_class [📋]: 1 entries, dtype: int32
- up_filt_bnd [📋]: 1 entries, dtype: int32
- up_gnd_bnd [📋]: 1 entries, dtype: float32
- up_toc_bnd [📋]: 1 entries, dtype: float32
- up_toc_cut [📋]: 1 entries, dtype: float32
- yapc_switch [📋]: 1 entries, dtype: int32
- atlas_sdp_gps_epoch [📋]: 1 entries, dtype: float64
- control [📋]: 1 entries, dtype: 100000-byte ASCII string
- data_end_utc [📋]: 1 entries, dtype: 27-byte ASCII string
- data_start_utc [📋]: 1 entries, dtype: 27-byte ASCII string
- end_cycle [📋]: 1 entries, dtype: int32
- end_delta_time [📋]: 1 entries, dtype: float64
- end_geoseg [📋]: 1 entries, dtype: int32
- end_gpssow [📋]: 1 entries, dtype: float64
- end_gpsweek [📋]: 1 entries, dtype: int32
- end_orbit [📋]: 1 entries, dtype: int32
- end_region [📋]: 1 entries, dtype: int32
- end_rgt [📋]: 1 entries, dtype: int32
- granule_end_utc [📋]: 1 entries, dtype: 27-byte ASCII string
- granule_start_utc [📋]: 1 entries, dtype: 27-byte ASCII string
- qa_at_interval [📋]: 1 entries, dtype: float64
- release [📋]: 1 entries, dtype: 80-byte ASCII string
- start_cycle [📋]: 1 entries, dtype: int32
- start_delta_time [📋]: 1 entries, dtype: float64
- start_geoseg [📋]: 1 entries, dtype: int32
- start_gpssow [📋]: 1 entries, dtype: float64
- start_gpsweek [📋]: 1 entries, dtype: int32
- start_orbit [📋]: 1 entries, dtype: int32
- start_region [📋]: 1 entries, dtype: int32
- start_rgt [📋]: 1 entries, dtype: int32
- version [📋]: 1 entries, dtype: 80-byte ASCII string
- can_noise [📋]: 18690 entries, dtype: float32
- canopy_h_metrics [📋]: 18690 × 18 entries, dtype: float32
- canopy_h_metrics_abs [📋]: 18690 × 18 entries, dtype: float32
- canopy_openness [📋]: 18690 entries, dtype: float32
- canopy_rh_conf [📋]: 18690 entries, dtype: int8
- centroid_height [📋]: 18690 entries, dtype: float32
- h_canopy [📋]: 18690 entries, dtype: float32
- h_canopy_20m [📋]: 18690 × 5 entries, dtype: float32
- h_canopy_abs [📋]: 18690 entries, dtype: float32
- h_canopy_quad [📋]: 18690 entries, dtype: float32
- h_canopy_uncertainty [📋]: 18690 entries, dtype: float32
- h_dif_canopy [📋]: 18690 entries, dtype: float32
- h_max_canopy [📋]: 18690 entries, dtype: float32
- h_max_canopy_abs [📋]: 18690 entries, dtype: float32
- h_mean_canopy [📋]: 18690 entries, dtype: float32
- h_mean_canopy_abs [📋]: 18690 entries, dtype: float32
- h_median_canopy [📋]: 18690 entries, dtype: float32
- h_median_canopy_abs [📋]: 18690 entries, dtype: float32
- h_min_canopy [📋]: 18690 entries, dtype: float32
- h_min_canopy_abs [📋]: 18690 entries, dtype: float32
- n_ca_photons [📋]: 18690 entries, dtype: int32
- n_toc_photons [📋]: 18690 entries, dtype: int32
- photon_rate_can [📋]: 18690 entries, dtype: float32
- photon_rate_can_nr [📋]: 18690 entries, dtype: float32
- segment_cover [📋]: 18690 entries, dtype: int16
- subset_can_flag [📋]: 18690 × 5 entries, dtype: int8
- toc_roughness [📋]: 18690 entries, dtype: float32
- h_te_best_fit [📋]: 18690 entries, dtype: float32
- h_te_best_fit_20m [📋]: 18690 × 5 entries, dtype: float32
- h_te_interp [📋]: 18690 entries, dtype: float32
- h_te_max [📋]: 18690 entries, dtype: float32
- h_te_mean [📋]: 18690 entries, dtype: float32
- h_te_median [📋]: 18690 entries, dtype: float32
- h_te_min [📋]: 18690 entries, dtype: float32
- h_te_mode [📋]: 18690 entries, dtype: float32
- h_te_rh25 [📋]: 18690 entries, dtype: float32
- h_te_skew [📋]: 18690 entries, dtype: float32
- h_te_std [📋]: 18690 entries, dtype: float32
- h_te_uncertainty [📋]: 18690 entries, dtype: float32
- n_te_photons [📋]: 18690 entries, dtype: int32
- photon_rate_te [📋]: 18690 entries, dtype: float32
- subset_te_flag [📋]: 18690 × 5 entries, dtype: int8
- terrain_slope [📋]: 18690 entries, dtype: float32
- asr [📋]: 18690 entries, dtype: float32
- atlas_pa [📋]: 18690 entries, dtype: float32
- beam_azimuth [📋]: 18690 entries, dtype: float32
- beam_coelev [📋]: 18690 entries, dtype: float32
- brightness_flag [📋]: 18690 entries, dtype: int8
- cloud_flag_atm [📋]: 18690 entries, dtype: int8
- cloud_fold_flag [📋]: 18690 entries, dtype: int8
- delta_time [📋]: 18690 entries, dtype: float64
- delta_time_beg [📋]: 18690 entries, dtype: float64
- delta_time_end [📋]: 18690 entries, dtype: float64
- dem_flag [📋]: 18690 entries, dtype: int8
- dem_h [📋]: 18690 entries, dtype: float32
- dem_removal_flag [📋]: 18690 entries, dtype: int8
- h_dif_ref [📋]: 18690 entries, dtype: float32
- last_seg_extend [📋]: 18690 entries, dtype: float32
- latitude [📋]: 18690 entries, dtype: float32
- latitude_20m [📋]: 18690 × 5 entries, dtype: float32
- layer_flag [📋]: 18690 entries, dtype: int8
- longitude [📋]: 18690 entries, dtype: float32
- longitude_20m [📋]: 18690 × 5 entries, dtype: float32
- msw_flag [📋]: 18690 entries, dtype: int8
- n_seg_ph [📋]: 18690 entries, dtype: int32
- night_flag [📋]: 18690 entries, dtype: int32
- ph_ndx_beg [📋]: 18690 entries, dtype: int64
- ph_removal_flag [📋]: 18690 entries, dtype: int8
- psf_flag [📋]: 18690 entries, dtype: int8
- rgt [📋]: 18690 entries, dtype: int16
- sat_flag [📋]: 18690 entries, dtype: int8
- segment_id_beg [📋]: 18690 entries, dtype: int32
- segment_id_end [📋]: 18690 entries, dtype: int32
- segment_landcover [📋]: 18690 entries, dtype: int16
- segment_snowcover [📋]: 18690 entries, dtype: int8
- segment_watermask [📋]: 18690 entries, dtype: int32
- sigma_across [📋]: 18690 entries, dtype: float32
- sigma_along [📋]: 18690 entries, dtype: float32
- sigma_atlas_land [📋]: 18690 entries, dtype: float32
- sigma_h [📋]: 18690 entries, dtype: float32
- sigma_topo [📋]: 18690 entries, dtype: float32
- snr [📋]: 18690 entries, dtype: float32
- solar_azimuth [📋]: 18690 entries, dtype: float32
- solar_elevation [📋]: 18690 entries, dtype: float32
- surf_type [📋]: 18690 × 5 entries, dtype: int8
- terrain_flg [📋]: 18690 entries, dtype: int32
- urban_flag [📋]: 18690 entries, dtype: int32
- can_noise [📋]: 11436 entries, dtype: float32
- canopy_h_metrics [📋]: 11436 × 18 entries, dtype: float32
- canopy_h_metrics_abs [📋]: 11436 × 18 entries, dtype: float32
- canopy_openness [📋]: 11436 entries, dtype: float32
- canopy_rh_conf [📋]: 11436 entries, dtype: int8
- centroid_height [📋]: 11436 entries, dtype: float32
- h_canopy [📋]: 11436 entries, dtype: float32
- h_canopy_20m [📋]: 11436 × 5 entries, dtype: float32
- h_canopy_abs [📋]: 11436 entries, dtype: float32
- h_canopy_quad [📋]: 11436 entries, dtype: float32
- h_canopy_uncertainty [📋]: 11436 entries, dtype: float32
- h_dif_canopy [📋]: 11436 entries, dtype: float32
- h_max_canopy [📋]: 11436 entries, dtype: float32
- h_max_canopy_abs [📋]: 11436 entries, dtype: float32
- h_mean_canopy [📋]: 11436 entries, dtype: float32
- h_mean_canopy_abs [📋]: 11436 entries, dtype: float32
- h_median_canopy [📋]: 11436 entries, dtype: float32
- h_median_canopy_abs [📋]: 11436 entries, dtype: float32
- h_min_canopy [📋]: 11436 entries, dtype: float32
- h_min_canopy_abs [📋]: 11436 entries, dtype: float32
- n_ca_photons [📋]: 11436 entries, dtype: int32
- n_toc_photons [📋]: 11436 entries, dtype: int32
- photon_rate_can [📋]: 11436 entries, dtype: float32
- photon_rate_can_nr [📋]: 11436 entries, dtype: float32
- segment_cover [📋]: 11436 entries, dtype: int16
- subset_can_flag [📋]: 11436 × 5 entries, dtype: int8
- toc_roughness [📋]: 11436 entries, dtype: float32
- h_te_best_fit [📋]: 11436 entries, dtype: float32
- h_te_best_fit_20m [📋]: 11436 × 5 entries, dtype: float32
- h_te_interp [📋]: 11436 entries, dtype: float32
- h_te_max [📋]: 11436 entries, dtype: float32
- h_te_mean [📋]: 11436 entries, dtype: float32
- h_te_median [📋]: 11436 entries, dtype: float32
- h_te_min [📋]: 11436 entries, dtype: float32
- h_te_mode [📋]: 11436 entries, dtype: float32
- h_te_rh25 [📋]: 11436 entries, dtype: float32
- h_te_skew [📋]: 11436 entries, dtype: float32
- h_te_std [📋]: 11436 entries, dtype: float32
- h_te_uncertainty [📋]: 11436 entries, dtype: float32
- n_te_photons [📋]: 11436 entries, dtype: int32
- photon_rate_te [📋]: 11436 entries, dtype: float32
- subset_te_flag [📋]: 11436 × 5 entries, dtype: int8
- terrain_slope [📋]: 11436 entries, dtype: float32
- asr [📋]: 11436 entries, dtype: float32
- atlas_pa [📋]: 11436 entries, dtype: float32
- beam_azimuth [📋]: 11436 entries, dtype: float32
- beam_coelev [📋]: 11436 entries, dtype: float32
- brightness_flag [📋]: 11436 entries, dtype: int8
- cloud_flag_atm [📋]: 11436 entries, dtype: int8
- cloud_fold_flag [📋]: 11436 entries, dtype: int8
- delta_time [📋]: 11436 entries, dtype: float64
- delta_time_beg [📋]: 11436 entries, dtype: float64
- delta_time_end [📋]: 11436 entries, dtype: float64
- dem_flag [📋]: 11436 entries, dtype: int8
- dem_h [📋]: 11436 entries, dtype: float32
- dem_removal_flag [📋]: 11436 entries, dtype: int8
- h_dif_ref [📋]: 11436 entries, dtype: float32
- last_seg_extend [📋]: 11436 entries, dtype: float32
- latitude [📋]: 11436 entries, dtype: float32
- latitude_20m [📋]: 11436 × 5 entries, dtype: float32
- layer_flag [📋]: 11436 entries, dtype: int8
- longitude [📋]: 11436 entries, dtype: float32
- longitude_20m [📋]: 11436 × 5 entries, dtype: float32
- msw_flag [📋]: 11436 entries, dtype: int8
- n_seg_ph [📋]: 11436 entries, dtype: int32
- night_flag [📋]: 11436 entries, dtype: int32
- ph_ndx_beg [📋]: 11436 entries, dtype: int64
- ph_removal_flag [📋]: 11436 entries, dtype: int8
- psf_flag [📋]: 11436 entries, dtype: int8
- rgt [📋]: 11436 entries, dtype: int16
- sat_flag [📋]: 11436 entries, dtype: int8
- segment_id_beg [📋]: 11436 entries, dtype: int32
- segment_id_end [📋]: 11436 entries, dtype: int32
- segment_landcover [📋]: 11436 entries, dtype: int16
- segment_snowcover [📋]: 11436 entries, dtype: int8
- segment_watermask [📋]: 11436 entries, dtype: int32
- sigma_across [📋]: 11436 entries, dtype: float32
- sigma_along [📋]: 11436 entries, dtype: float32
- sigma_atlas_land [📋]: 11436 entries, dtype: float32
- sigma_h [📋]: 11436 entries, dtype: float32
- sigma_topo [📋]: 11436 entries, dtype: float32
- snr [📋]: 11436 entries, dtype: float32
- solar_azimuth [📋]: 11436 entries, dtype: float32
- solar_elevation [📋]: 11436 entries, dtype: float32
- surf_type [📋]: 11436 × 5 entries, dtype: int8
- terrain_flg [📋]: 11436 entries, dtype: int32
- urban_flag [📋]: 11436 entries, dtype: int32
- can_noise [📋]: 18612 entries, dtype: float32
- canopy_h_metrics [📋]: 18612 × 18 entries, dtype: float32
- canopy_h_metrics_abs [📋]: 18612 × 18 entries, dtype: float32
- canopy_openness [📋]: 18612 entries, dtype: float32
- canopy_rh_conf [📋]: 18612 entries, dtype: int8
- centroid_height [📋]: 18612 entries, dtype: float32
- h_canopy [📋]: 18612 entries, dtype: float32
- h_canopy_20m [📋]: 18612 × 5 entries, dtype: float32
- h_canopy_abs [📋]: 18612 entries, dtype: float32
- h_canopy_quad [📋]: 18612 entries, dtype: float32
- h_canopy_uncertainty [📋]: 18612 entries, dtype: float32
- h_dif_canopy [📋]: 18612 entries, dtype: float32
- h_max_canopy [📋]: 18612 entries, dtype: float32
- h_max_canopy_abs [📋]: 18612 entries, dtype: float32
- h_mean_canopy [📋]: 18612 entries, dtype: float32
- h_mean_canopy_abs [📋]: 18612 entries, dtype: float32
- h_median_canopy [📋]: 18612 entries, dtype: float32
- h_median_canopy_abs [📋]: 18612 entries, dtype: float32
- h_min_canopy [📋]: 18612 entries, dtype: float32
- h_min_canopy_abs [📋]: 18612 entries, dtype: float32
- n_ca_photons [📋]: 18612 entries, dtype: int32
- n_toc_photons [📋]: 18612 entries, dtype: int32
- photon_rate_can [📋]: 18612 entries, dtype: float32
- photon_rate_can_nr [📋]: 18612 entries, dtype: float32
- segment_cover [📋]: 18612 entries, dtype: int16
- subset_can_flag [📋]: 18612 × 5 entries, dtype: int8
- toc_roughness [📋]: 18612 entries, dtype: float32
- h_te_best_fit [📋]: 18612 entries, dtype: float32
- h_te_best_fit_20m [📋]: 18612 × 5 entries, dtype: float32
- h_te_interp [📋]: 18612 entries, dtype: float32
- h_te_max [📋]: 18612 entries, dtype: float32
- h_te_mean [📋]: 18612 entries, dtype: float32
- h_te_median [📋]: 18612 entries, dtype: float32
- h_te_min [📋]: 18612 entries, dtype: float32
- h_te_mode [📋]: 18612 entries, dtype: float32
- h_te_rh25 [📋]: 18612 entries, dtype: float32
- h_te_skew [📋]: 18612 entries, dtype: float32
- h_te_std [📋]: 18612 entries, dtype: float32
- h_te_uncertainty [📋]: 18612 entries, dtype: float32
- n_te_photons [📋]: 18612 entries, dtype: int32
- photon_rate_te [📋]: 18612 entries, dtype: float32
- subset_te_flag [📋]: 18612 × 5 entries, dtype: int8
- terrain_slope [📋]: 18612 entries, dtype: float32
- asr [📋]: 18612 entries, dtype: float32
- atlas_pa [📋]: 18612 entries, dtype: float32
- beam_azimuth [📋]: 18612 entries, dtype: float32
- beam_coelev [📋]: 18612 entries, dtype: float32
- brightness_flag [📋]: 18612 entries, dtype: int8
- cloud_flag_atm [📋]: 18612 entries, dtype: int8
- cloud_fold_flag [📋]: 18612 entries, dtype: int8
- delta_time [📋]: 18612 entries, dtype: float64
- delta_time_beg [📋]: 18612 entries, dtype: float64
- delta_time_end [📋]: 18612 entries, dtype: float64
- dem_flag [📋]: 18612 entries, dtype: int8
- dem_h [📋]: 18612 entries, dtype: float32
- dem_removal_flag [📋]: 18612 entries, dtype: int8
- h_dif_ref [📋]: 18612 entries, dtype: float32
- last_seg_extend [📋]: 18612 entries, dtype: float32
- latitude [📋]: 18612 entries, dtype: float32
- latitude_20m [📋]: 18612 × 5 entries, dtype: float32
- layer_flag [📋]: 18612 entries, dtype: int8
- longitude [📋]: 18612 entries, dtype: float32
- longitude_20m [📋]: 18612 × 5 entries, dtype: float32
- msw_flag [📋]: 18612 entries, dtype: int8
- n_seg_ph [📋]: 18612 entries, dtype: int32
- night_flag [📋]: 18612 entries, dtype: int32
- ph_ndx_beg [📋]: 18612 entries, dtype: int64
- ph_removal_flag [📋]: 18612 entries, dtype: int8
- psf_flag [📋]: 18612 entries, dtype: int8
- rgt [📋]: 18612 entries, dtype: int16
- sat_flag [📋]: 18612 entries, dtype: int8
- segment_id_beg [📋]: 18612 entries, dtype: int32
- segment_id_end [📋]: 18612 entries, dtype: int32
- segment_landcover [📋]: 18612 entries, dtype: int16
- segment_snowcover [📋]: 18612 entries, dtype: int8
- segment_watermask [📋]: 18612 entries, dtype: int32
- sigma_across [📋]: 18612 entries, dtype: float32
- sigma_along [📋]: 18612 entries, dtype: float32
- sigma_atlas_land [📋]: 18612 entries, dtype: float32
- sigma_h [📋]: 18612 entries, dtype: float32
- sigma_topo [📋]: 18612 entries, dtype: float32
- snr [📋]: 18612 entries, dtype: float32
- solar_azimuth [📋]: 18612 entries, dtype: float32
- solar_elevation [📋]: 18612 entries, dtype: float32
- surf_type [📋]: 18612 × 5 entries, dtype: int8
- terrain_flg [📋]: 18612 entries, dtype: int32
- urban_flag [📋]: 18612 entries, dtype: int32
- can_noise [📋]: 10243 entries, dtype: float32
- canopy_h_metrics [📋]: 10243 × 18 entries, dtype: float32
- canopy_h_metrics_abs [📋]: 10243 × 18 entries, dtype: float32
- canopy_openness [📋]: 10243 entries, dtype: float32
- canopy_rh_conf [📋]: 10243 entries, dtype: int8
- centroid_height [📋]: 10243 entries, dtype: float32
- h_canopy [📋]: 10243 entries, dtype: float32
- h_canopy_20m [📋]: 10243 × 5 entries, dtype: float32
- h_canopy_abs [📋]: 10243 entries, dtype: float32
- h_canopy_quad [📋]: 10243 entries, dtype: float32
- h_canopy_uncertainty [📋]: 10243 entries, dtype: float32
- h_dif_canopy [📋]: 10243 entries, dtype: float32
- h_max_canopy [📋]: 10243 entries, dtype: float32
- h_max_canopy_abs [📋]: 10243 entries, dtype: float32
- h_mean_canopy [📋]: 10243 entries, dtype: float32
- h_mean_canopy_abs [📋]: 10243 entries, dtype: float32
- h_median_canopy [📋]: 10243 entries, dtype: float32
- h_median_canopy_abs [📋]: 10243 entries, dtype: float32
- h_min_canopy [📋]: 10243 entries, dtype: float32
- h_min_canopy_abs [📋]: 10243 entries, dtype: float32
- n_ca_photons [📋]: 10243 entries, dtype: int32
- n_toc_photons [📋]: 10243 entries, dtype: int32
- photon_rate_can [📋]: 10243 entries, dtype: float32
- photon_rate_can_nr [📋]: 10243 entries, dtype: float32
- segment_cover [📋]: 10243 entries, dtype: int16
- subset_can_flag [📋]: 10243 × 5 entries, dtype: int8
- toc_roughness [📋]: 10243 entries, dtype: float32
- h_te_best_fit [📋]: 10243 entries, dtype: float32
- h_te_best_fit_20m [📋]: 10243 × 5 entries, dtype: float32
- h_te_interp [📋]: 10243 entries, dtype: float32
- h_te_max [📋]: 10243 entries, dtype: float32
- h_te_mean [📋]: 10243 entries, dtype: float32
- h_te_median [📋]: 10243 entries, dtype: float32
- h_te_min [📋]: 10243 entries, dtype: float32
- h_te_mode [📋]: 10243 entries, dtype: float32
- h_te_rh25 [📋]: 10243 entries, dtype: float32
- h_te_skew [📋]: 10243 entries, dtype: float32
- h_te_std [📋]: 10243 entries, dtype: float32
- h_te_uncertainty [📋]: 10243 entries, dtype: float32
- n_te_photons [📋]: 10243 entries, dtype: int32
- photon_rate_te [📋]: 10243 entries, dtype: float32
- subset_te_flag [📋]: 10243 × 5 entries, dtype: int8
- terrain_slope [📋]: 10243 entries, dtype: float32
- asr [📋]: 10243 entries, dtype: float32
- atlas_pa [📋]: 10243 entries, dtype: float32
- beam_azimuth [📋]: 10243 entries, dtype: float32
- beam_coelev [📋]: 10243 entries, dtype: float32
- brightness_flag [📋]: 10243 entries, dtype: int8
- cloud_flag_atm [📋]: 10243 entries, dtype: int8
- cloud_fold_flag [📋]: 10243 entries, dtype: int8
- delta_time [📋]: 10243 entries, dtype: float64
- delta_time_beg [📋]: 10243 entries, dtype: float64
- delta_time_end [📋]: 10243 entries, dtype: float64
- dem_flag [📋]: 10243 entries, dtype: int8
- dem_h [📋]: 10243 entries, dtype: float32
- dem_removal_flag [📋]: 10243 entries, dtype: int8
- h_dif_ref [📋]: 10243 entries, dtype: float32
- last_seg_extend [📋]: 10243 entries, dtype: float32
- latitude [📋]: 10243 entries, dtype: float32
- latitude_20m [📋]: 10243 × 5 entries, dtype: float32
- layer_flag [📋]: 10243 entries, dtype: int8
- longitude [📋]: 10243 entries, dtype: float32
- longitude_20m [📋]: 10243 × 5 entries, dtype: float32
- msw_flag [📋]: 10243 entries, dtype: int8
- n_seg_ph [📋]: 10243 entries, dtype: int32
- night_flag [📋]: 10243 entries, dtype: int32
- ph_ndx_beg [📋]: 10243 entries, dtype: int64
- ph_removal_flag [📋]: 10243 entries, dtype: int8
- psf_flag [📋]: 10243 entries, dtype: int8
- rgt [📋]: 10243 entries, dtype: int16
- sat_flag [📋]: 10243 entries, dtype: int8
- segment_id_beg [📋]: 10243 entries, dtype: int32
- segment_id_end [📋]: 10243 entries, dtype: int32
- segment_landcover [📋]: 10243 entries, dtype: int16
- segment_snowcover [📋]: 10243 entries, dtype: int8
- segment_watermask [📋]: 10243 entries, dtype: int32
- sigma_across [📋]: 10243 entries, dtype: float32
- sigma_along [📋]: 10243 entries, dtype: float32
- sigma_atlas_land [📋]: 10243 entries, dtype: float32
- sigma_h [📋]: 10243 entries, dtype: float32
- sigma_topo [📋]: 10243 entries, dtype: float32
- snr [📋]: 10243 entries, dtype: float32
- solar_azimuth [📋]: 10243 entries, dtype: float32
- solar_elevation [📋]: 10243 entries, dtype: float32
- surf_type [📋]: 10243 × 5 entries, dtype: int8
- terrain_flg [📋]: 10243 entries, dtype: int32
- urban_flag [📋]: 10243 entries, dtype: int32
- can_noise [📋]: 19575 entries, dtype: float32
- canopy_h_metrics [📋]: 19575 × 18 entries, dtype: float32
- canopy_h_metrics_abs [📋]: 19575 × 18 entries, dtype: float32
- canopy_openness [📋]: 19575 entries, dtype: float32
- canopy_rh_conf [📋]: 19575 entries, dtype: int8
- centroid_height [📋]: 19575 entries, dtype: float32
- h_canopy [📋]: 19575 entries, dtype: float32
- h_canopy_20m [📋]: 19575 × 5 entries, dtype: float32
- h_canopy_abs [📋]: 19575 entries, dtype: float32
- h_canopy_quad [📋]: 19575 entries, dtype: float32
- h_canopy_uncertainty [📋]: 19575 entries, dtype: float32
- h_dif_canopy [📋]: 19575 entries, dtype: float32
- h_max_canopy [📋]: 19575 entries, dtype: float32
- h_max_canopy_abs [📋]: 19575 entries, dtype: float32
- h_mean_canopy [📋]: 19575 entries, dtype: float32
- h_mean_canopy_abs [📋]: 19575 entries, dtype: float32
- h_median_canopy [📋]: 19575 entries, dtype: float32
- h_median_canopy_abs [📋]: 19575 entries, dtype: float32
- h_min_canopy [📋]: 19575 entries, dtype: float32
- h_min_canopy_abs [📋]: 19575 entries, dtype: float32
- n_ca_photons [📋]: 19575 entries, dtype: int32
- n_toc_photons [📋]: 19575 entries, dtype: int32
- photon_rate_can [📋]: 19575 entries, dtype: float32
- photon_rate_can_nr [📋]: 19575 entries, dtype: float32
- segment_cover [📋]: 19575 entries, dtype: int16
- subset_can_flag [📋]: 19575 × 5 entries, dtype: int8
- toc_roughness [📋]: 19575 entries, dtype: float32
- h_te_best_fit [📋]: 19575 entries, dtype: float32
- h_te_best_fit_20m [📋]: 19575 × 5 entries, dtype: float32
- h_te_interp [📋]: 19575 entries, dtype: float32
- h_te_max [📋]: 19575 entries, dtype: float32
- h_te_mean [📋]: 19575 entries, dtype: float32
- h_te_median [📋]: 19575 entries, dtype: float32
- h_te_min [📋]: 19575 entries, dtype: float32
- h_te_mode [📋]: 19575 entries, dtype: float32
- h_te_rh25 [📋]: 19575 entries, dtype: float32
- h_te_skew [📋]: 19575 entries, dtype: float32
- h_te_std [📋]: 19575 entries, dtype: float32
- h_te_uncertainty [📋]: 19575 entries, dtype: float32
- n_te_photons [📋]: 19575 entries, dtype: int32
- photon_rate_te [📋]: 19575 entries, dtype: float32
- subset_te_flag [📋]: 19575 × 5 entries, dtype: int8
- terrain_slope [📋]: 19575 entries, dtype: float32
- asr [📋]: 19575 entries, dtype: float32
- atlas_pa [📋]: 19575 entries, dtype: float32
- beam_azimuth [📋]: 19575 entries, dtype: float32
- beam_coelev [📋]: 19575 entries, dtype: float32
- brightness_flag [📋]: 19575 entries, dtype: int8
- cloud_flag_atm [📋]: 19575 entries, dtype: int8
- cloud_fold_flag [📋]: 19575 entries, dtype: int8
- delta_time [📋]: 19575 entries, dtype: float64
- delta_time_beg [📋]: 19575 entries, dtype: float64
- delta_time_end [📋]: 19575 entries, dtype: float64
- dem_flag [📋]: 19575 entries, dtype: int8
- dem_h [📋]: 19575 entries, dtype: float32
- dem_removal_flag [📋]: 19575 entries, dtype: int8
- h_dif_ref [📋]: 19575 entries, dtype: float32
- last_seg_extend [📋]: 19575 entries, dtype: float32
- latitude [📋]: 19575 entries, dtype: float32
- latitude_20m [📋]: 19575 × 5 entries, dtype: float32
- layer_flag [📋]: 19575 entries, dtype: int8
- longitude [📋]: 19575 entries, dtype: float32
- longitude_20m [📋]: 19575 × 5 entries, dtype: float32
- msw_flag [📋]: 19575 entries, dtype: int8
- n_seg_ph [📋]: 19575 entries, dtype: int32
- night_flag [📋]: 19575 entries, dtype: int32
- ph_ndx_beg [📋]: 19575 entries, dtype: int64
- ph_removal_flag [📋]: 19575 entries, dtype: int8
- psf_flag [📋]: 19575 entries, dtype: int8
- rgt [📋]: 19575 entries, dtype: int16
- sat_flag [📋]: 19575 entries, dtype: int8
- segment_id_beg [📋]: 19575 entries, dtype: int32
- segment_id_end [📋]: 19575 entries, dtype: int32
- segment_landcover [📋]: 19575 entries, dtype: int16
- segment_snowcover [📋]: 19575 entries, dtype: int8
- segment_watermask [📋]: 19575 entries, dtype: int32
- sigma_across [📋]: 19575 entries, dtype: float32
- sigma_along [📋]: 19575 entries, dtype: float32
- sigma_atlas_land [📋]: 19575 entries, dtype: float32
- sigma_h [📋]: 19575 entries, dtype: float32
- sigma_topo [📋]: 19575 entries, dtype: float32
- snr [📋]: 19575 entries, dtype: float32
- solar_azimuth [📋]: 19575 entries, dtype: float32
- solar_elevation [📋]: 19575 entries, dtype: float32
- surf_type [📋]: 19575 × 5 entries, dtype: int8
- terrain_flg [📋]: 19575 entries, dtype: int32
- urban_flag [📋]: 19575 entries, dtype: int32
- can_noise [📋]: 10803 entries, dtype: float32
- canopy_h_metrics [📋]: 10803 × 18 entries, dtype: float32
- canopy_h_metrics_abs [📋]: 10803 × 18 entries, dtype: float32
- canopy_openness [📋]: 10803 entries, dtype: float32
- canopy_rh_conf [📋]: 10803 entries, dtype: int8
- centroid_height [📋]: 10803 entries, dtype: float32
- h_canopy [📋]: 10803 entries, dtype: float32
- h_canopy_20m [📋]: 10803 × 5 entries, dtype: float32
- h_canopy_abs [📋]: 10803 entries, dtype: float32
- h_canopy_quad [📋]: 10803 entries, dtype: float32
- h_canopy_uncertainty [📋]: 10803 entries, dtype: float32
- h_dif_canopy [📋]: 10803 entries, dtype: float32
- h_max_canopy [📋]: 10803 entries, dtype: float32
- h_max_canopy_abs [📋]: 10803 entries, dtype: float32
- h_mean_canopy [📋]: 10803 entries, dtype: float32
- h_mean_canopy_abs [📋]: 10803 entries, dtype: float32
- h_median_canopy [📋]: 10803 entries, dtype: float32
- h_median_canopy_abs [📋]: 10803 entries, dtype: float32
- h_min_canopy [📋]: 10803 entries, dtype: float32
- h_min_canopy_abs [📋]: 10803 entries, dtype: float32
- n_ca_photons [📋]: 10803 entries, dtype: int32
- n_toc_photons [📋]: 10803 entries, dtype: int32
- photon_rate_can [📋]: 10803 entries, dtype: float32
- photon_rate_can_nr [📋]: 10803 entries, dtype: float32
- segment_cover [📋]: 10803 entries, dtype: int16
- subset_can_flag [📋]: 10803 × 5 entries, dtype: int8
- toc_roughness [📋]: 10803 entries, dtype: float32
- h_te_best_fit [📋]: 10803 entries, dtype: float32
- h_te_best_fit_20m [📋]: 10803 × 5 entries, dtype: float32
- h_te_interp [📋]: 10803 entries, dtype: float32
- h_te_max [📋]: 10803 entries, dtype: float32
- h_te_mean [📋]: 10803 entries, dtype: float32
- h_te_median [📋]: 10803 entries, dtype: float32
- h_te_min [📋]: 10803 entries, dtype: float32
- h_te_mode [📋]: 10803 entries, dtype: float32
- h_te_rh25 [📋]: 10803 entries, dtype: float32
- h_te_skew [📋]: 10803 entries, dtype: float32
- h_te_std [📋]: 10803 entries, dtype: float32
- h_te_uncertainty [📋]: 10803 entries, dtype: float32
- n_te_photons [📋]: 10803 entries, dtype: int32
- photon_rate_te [📋]: 10803 entries, dtype: float32
- subset_te_flag [📋]: 10803 × 5 entries, dtype: int8
- terrain_slope [📋]: 10803 entries, dtype: float32
- asr [📋]: 10803 entries, dtype: float32
- atlas_pa [📋]: 10803 entries, dtype: float32
- beam_azimuth [📋]: 10803 entries, dtype: float32
- beam_coelev [📋]: 10803 entries, dtype: float32
- brightness_flag [📋]: 10803 entries, dtype: int8
- cloud_flag_atm [📋]: 10803 entries, dtype: int8
- cloud_fold_flag [📋]: 10803 entries, dtype: int8
- delta_time [📋]: 10803 entries, dtype: float64
- delta_time_beg [📋]: 10803 entries, dtype: float64
- delta_time_end [📋]: 10803 entries, dtype: float64
- dem_flag [📋]: 10803 entries, dtype: int8
- dem_h [📋]: 10803 entries, dtype: float32
- dem_removal_flag [📋]: 10803 entries, dtype: int8
- h_dif_ref [📋]: 10803 entries, dtype: float32
- last_seg_extend [📋]: 10803 entries, dtype: float32
- latitude [📋]: 10803 entries, dtype: float32
- latitude_20m [📋]: 10803 × 5 entries, dtype: float32
- layer_flag [📋]: 10803 entries, dtype: int8
- longitude [📋]: 10803 entries, dtype: float32
- longitude_20m [📋]: 10803 × 5 entries, dtype: float32
- msw_flag [📋]: 10803 entries, dtype: int8
- n_seg_ph [📋]: 10803 entries, dtype: int32
- night_flag [📋]: 10803 entries, dtype: int32
- ph_ndx_beg [📋]: 10803 entries, dtype: int64
- ph_removal_flag [📋]: 10803 entries, dtype: int8
- psf_flag [📋]: 10803 entries, dtype: int8
- rgt [📋]: 10803 entries, dtype: int16
- sat_flag [📋]: 10803 entries, dtype: int8
- segment_id_beg [📋]: 10803 entries, dtype: int32
- segment_id_end [📋]: 10803 entries, dtype: int32
- segment_landcover [📋]: 10803 entries, dtype: int16
- segment_snowcover [📋]: 10803 entries, dtype: int8
- segment_watermask [📋]: 10803 entries, dtype: int32
- sigma_across [📋]: 10803 entries, dtype: float32
- sigma_along [📋]: 10803 entries, dtype: float32
- sigma_atlas_land [📋]: 10803 entries, dtype: float32
- sigma_h [📋]: 10803 entries, dtype: float32
- sigma_topo [📋]: 10803 entries, dtype: float32
- snr [📋]: 10803 entries, dtype: float32
- solar_azimuth [📋]: 10803 entries, dtype: float32
- solar_elevation [📋]: 10803 entries, dtype: float32
- surf_type [📋]: 10803 × 5 entries, dtype: int8
- terrain_flg [📋]: 10803 entries, dtype: int32
- urban_flag [📋]: 10803 entries, dtype: int32
- bounding_polygon_lat1 [📋]: 11 entries, dtype: float64
- bounding_polygon_lon1 [📋]: 11 entries, dtype: float64
- crossing_time [📋]: 1 entries, dtype: float64
- cycle_number [📋]: 1 entries, dtype: int8
- lan [📋]: 1 entries, dtype: float64
- orbit_number [📋]: 1 entries, dtype: uint16
- rgt [📋]: 1 entries, dtype: int16
- sc_orient [📋]: 1 entries, dtype: int8
- sc_orient_time [📋]: 1 entries, dtype: float64
- ds_geosegments [📋]: 5 entries, dtype: int8
- ds_metrics [📋]: 18 entries, dtype: int8
- ds_surf_type [📋]: 5 entries, dtype: int32
Visualizing the Data
By looking at the data variables, we can also create a visualization using xarray
. Let’s plot elevation:
[21]:
with s3_fsspec.open(s3_url) as f:
atl08_track = xarray.open_dataset(f, group='gt1l/land_segments', engine="h5netcdf", phony_dims='sort')
print(atl08_track)
atl08_track.dem_h.plot()
<xarray.Dataset>
Dimensions: (delta_time: 18690, ds_geosegments: 5, ds_surf_type: 5)
Coordinates:
* delta_time (delta_time) datetime64[ns] 2023-08-16T18:29:24.853128...
latitude (delta_time) float32 ...
longitude (delta_time) float32 ...
Dimensions without coordinates: ds_geosegments, ds_surf_type
Data variables: (12/41)
asr (delta_time) float32 ...
atlas_pa (delta_time) float32 ...
beam_azimuth (delta_time) float32 ...
beam_coelev (delta_time) float32 ...
brightness_flag (delta_time) float32 ...
cloud_flag_atm (delta_time) float32 ...
... ...
snr (delta_time) float32 ...
solar_azimuth (delta_time) float32 ...
solar_elevation (delta_time) float32 ...
surf_type (delta_time, ds_surf_type) int8 ...
terrain_flg (delta_time) float64 ...
urban_flag (delta_time) float64 ...
Attributes:
Description: Contains data categorized as land at 100 meter intervals.
data_rate: Data are stored as aggregates of 100 meters.
If we want to plot canopy height, we can also do that:
[22]:
with s3_fsspec.open(s3_url) as f:
atl08_track = xarray.open_dataset(f, group='gt1l/land_segments/canopy', engine="h5netcdf", phony_dims='sort')
atl08_track.h_canopy.plot()