ICESat-02 ATL03 Subset and Visualize
Authors: Sumant Jha (MSFC/USRA), Samuel Ayers (UAH), Alex Mandel (DevSeed), Aimee Barciauskas (DevSeed)
Date: March 6, 2023
Description: In this tutorial, we will search for ATL03 data within the NASA CMR. We will then read and visualize the data structure of a granule, create a subset and data frames, and visualize the photon heights.
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: it is highly recommended to run a tutorial within MAAP’s ADE, which already includes packages specific to MAAP, such as maap-py. Running the tutorial outside of the MAAP ADE may lead to errors.
About the Data
ATLAS/ICESat-2 L2A Global Geolocated Photon Data, Version 5
“This data set [ATL03] contains height above the WGS 84 ellipsoid (ITRF2014 reference frame), latitude, longitude, and time for all photons downlinked by the Advanced Topographic Laser Altimeter System (ATLAS) instrument on board the Ice, Cloud and land Elevation Satellite-2 (ICESat-2) observatory. The ATL03 product was designed to be a single source for all photon data and ancillary information needed by higher-level ATLAS/ICESat-2 products. As such, it also includes spacecraft and instrument parameters and ancillary data not explicitly required for ATL03.” (Source: ATL03 Dataset Landing Page)
Additional Resources
Importing and Installing Packages
Required packages:
You will need to install the following required packages if not already present in your working environment: maap-py, pandas, geopandas, folium, shapely, h5glance, h5py
[1]:
# ! pip install geopandas
# ! pip install folium
# ! pip install h5glance
[2]:
# Import the MAAP package
from maap.maap import MAAP
# Invoke the MAAP constructor using the maap_host argument
maap = MAAP(maap_host='api.maap-project.org')
# Import pandas dataframe
import pandas as pd
# Import libraries needed for visualizing data spatial extent
import geopandas as gpd
import folium
from shapely.geometry import Polygon,Point
# Import H5glance to interactively explore H5 file in notebook
from h5glance import H5Glance
# Import H5py to read h5 file
import h5py
# Import os to create a new directory
import os
Decide on a Subset of ATL03 Data
First, we will create a subset using a spatial extent and date range before visualizaing using folium. For this tutorial, we will focus on a very small area over Yosemite National Park and use a temporal range of one day.
[3]:
# Create a variable for short name of ATL03 data
short_name = 'ATL03'
# Create Latitude, Longitude list.
lat_coords = [37.700057,37.700057,37.758166,37.758166,37.700057]
lon_coords = [-119.680359,-119.680359,-119.538910,-119.538910,-119.680359]
# Create bounding box
spatial_extent = [lon_coords[0],lat_coords[0],lon_coords[2],lat_coords[2]]
# Reformat bounding box to work with NASA CMR API
spatial_extent = ','.join(str(coords) for coords in spatial_extent)
#Provide date range. It is just 1 day.
date_range = ['2021-02-02','2022-02-03']
# For folium purpose, provide the map center
map_center = [37.729139,-119.609670]
# Convert to AOI for visualizaton with folium
polygon_geom = Polygon(zip(lon_coords, lat_coords))
# Provide relevant Coordinate Reference System
crs = 'epsg:4326'
# Convert to Geodataframe and back to list in that specific reference system
AOI = gpd.GeoDataFrame(index=[0], crs=crs, geometry=[polygon_geom])
AOI_bbox = AOI.bounds.iloc[0].to_list()
[4]:
# Visualize the spatial extent using folium.
m = folium.Map(map_center, zoom_start=12, tiles='OpenStreetMap')
folium.GeoJson(AOI).add_to(m)
folium.LatLngPopup().add_to(m)
m
[4]:
Search for Granules
We will now search for granules in NASA’s CMR given our spatial extent and date range, then print the number of granules available.
[5]:
# Provide the name of cmr host to use with maap py
nasa_cmr_host = "cmr.earthdata.nasa.gov"
# Search granule using maap-py using subset criteria identified earlier.
data = maap.searchGranule(cmr_host=nasa_cmr_host,short_name = short_name, bounding_box = spatial_extent,temporal= date_range,limit=1000)
# Check to see if the granule search was successfull in finding data within spatial and temporal extent
print(len(data))
104
Let’s create a new data directory and use maap-py’s getData functon to extract the first H5 file. We will then print the name of the extracted file.
[6]:
# set data directory
dataDir = "./data"
# check if directory exists -> if directory doesn't exist, directory is created
if not os.path.exists(dataDir):
os.mkdir(dataDir)
# download and extract the resource
ice_data = data[0].getData(dataDir)
print(ice_data)
./data/ATL03_20210202191800_06231006_005_01.h5
Read the H5 File
Let’s read in the H5 file to understand the data structure. There are two ways to do this. We can just list keys and then go forward exploring each key one by one…
[7]:
# Open the H5 file and list the keys
ice_file = h5py.File(ice_data,'r')
list(ice_file.keys())
[7]:
['METADATA',
'ancillary_data',
'atlas_impulse_response',
'ds_surf_type',
'ds_xyz',
'gt1l',
'gt1r',
'gt2l',
'gt2r',
'gt3l',
'gt3r',
'orbit_info',
'quality_assessment']
… or use the h5glance package to interactively list various keys, sub-keys and variables.
H5Glance lists all the keys and sub-keys and allows for the copying of path variables on the fly, all from within the Jupyter Notebook. Note: In the web version of this notebook which is shown here, not all sub-fields will be listed. But they can be accessed when using a Jupyter Notebook running on ADE or local machines.
[8]:
H5Glance(ice_file)
[8]:
- atl03_pad [📋]: 1 entries, dtype: float64
- band_tol [📋]: 1 entries, dtype: float32
- min_full_sat [📋]: 2 entries, dtype: int32
- min_near_sat [📋]: 2 entries, dtype: int32
- min_sat_h [📋]: 1 entries, dtype: float32
- min_scan_s [📋]: 1 entries, dtype: float64
- ph_sat_flag [📋]: 1 entries, dtype: int8
- ph_sat_lb [📋]: 1 entries, dtype: float32
- ph_sat_ub [📋]: 1 entries, dtype: float32
- podppd_pad [📋]: 1 entries, dtype: float64
- scan_settle_s [📋]: 2 entries, dtype: float64
- tx_pulse_distribution [📋]: 6 × 1 entries, dtype: float32
- tx_pulse_energy [📋]: 6 × 4 entries, dtype: float32
- tx_pulse_skew_est [📋]: 1 × 4 entries, dtype: float32
- tx_pulse_thresh_lower [📋]: 1 × 4 entries, dtype: float32
- tx_pulse_thresh_upper [📋]: 1 × 4 entries, dtype: float32
- tx_pulse_width_lower [📋]: 1 × 4 entries, dtype: float32
- tx_pulse_width_upper [📋]: 1 × 4 entries, dtype: float32
- det_ab_flag [📋]: 1 entries, dtype: int32
- ds_gt [📋]: 6 entries, dtype: int8
- ds_stat [📋]: 4 entries, dtype: int8
- hvpc_ab_flag [📋]: 1 entries, dtype: int32
- laser_12_flag [📋]: 1 entries, dtype: int32
- lrs_ab_flag [📋]: 1 entries, dtype: int32
- pdu_ab_flag [📋]: 1 entries, dtype: int32
- ph_uncorrelated_error [📋]: 6 × 1 entries, dtype: float32
- spd_ab_flag [📋]: 1 entries, dtype: int32
- tams_ab_flag [📋]: 1 entries, dtype: int32
- cal34_product [📋]: 6 entries, dtype: 80-byte ASCII string
- cal19_product [📋]: 6 entries, dtype: 80-byte ASCII string
- bin_width [📋]: 1 entries, dtype: float32
- cal20_product [📋]: 1 entries, dtype: 80-byte ASCII string
- hist_x [📋]: 2000 entries, dtype: float64
- laser [📋]: 1 entries, dtype: int32
- mode [📋]: 1 entries, dtype: int32
- num_bins [📋]: 1 entries, dtype: int32
- return_source [📋]: 1 entries, dtype: int32
- side [📋]: 1 entries, dtype: int32
- temperature [📋]: 1 entries, dtype: float32
- ds_channel [📋]: 20 entries, dtype: int8
- ds_gt [📋]: 6 entries, dtype: int8
- min_tep_ph [📋]: 1 entries, dtype: int32
- min_tep_secs [📋]: 1 entries, dtype: float64
- n_tep_bins [📋]: 1 entries, dtype: int32
- tep_bin_size [📋]: 1 entries, dtype: float32
- tep_gap_size [📋]: 1 entries, dtype: float64
- tep_normalize [📋]: 1 entries, dtype: int32
- tep_peak_bins [📋]: 1 entries, dtype: int32
- tep_prim_window [📋]: 2 entries, dtype: float32
- tep_range_prim [📋]: 2 entries, dtype: float32
- tep_rm_noise [📋]: 1 entries, dtype: int32
- tep_sec_window [📋]: 2 entries, dtype: float32
- tep_start_x [📋]: 1 entries, dtype: float32
- tep_valid_spot [📋]: 6 entries, dtype: int8
- addpad_flag [📋]: 5 entries, dtype: int32
- alpha_inc [📋]: 5 entries, dtype: float64
- alpha_max [📋]: 5 entries, dtype: float64
- delta_t_gap_min [📋]: 5 entries, dtype: float64
- delta_t_lin_fit [📋]: 5 entries, dtype: float64
- delta_t_max [📋]: 5 entries, dtype: float64
- delta_t_min [📋]: 5 entries, dtype: float64
- delta_z_bg [📋]: 5 entries, dtype: float64
- delta_zmax2 [📋]: 5 entries, dtype: float64
- delta_zmin [📋]: 5 entries, dtype: float64
- e_a [📋]: 5 entries, dtype: float64
- e_linfit_edit [📋]: 5 entries, dtype: float64
- e_linfit_slant [📋]: 5 entries, dtype: float64
- e_m [📋]: 5 entries, dtype: float64
- e_m_mult [📋]: 5 entries, dtype: float64
- htspanmin [📋]: 5 entries, dtype: float64
- lslant_flag [📋]: 5 entries, dtype: int32
- min_fit_time_fact [📋]: 5 entries, dtype: int32
- n_delta_z1 [📋]: 5 entries, dtype: int32
- n_delta_z2 [📋]: 5 entries, dtype: int32
- nbin_min [📋]: 5 entries, dtype: int32
- nphot_min [📋]: 5 entries, dtype: int32
- nslw [📋]: 5 entries, dtype: float64
- nslw_v [📋]: 5 entries, dtype: float64
- out_edit_flag [📋]: 5 entries, dtype: int32
- pc_bckgrd_flag [📋]: 5 entries, dtype: int32
- r [📋]: 5 entries, dtype: float64
- r2 [📋]: 5 entries, dtype: float64
- sig_find_t_inc [📋]: 5 entries, dtype: float64
- snrlow [📋]: 5 entries, dtype: float64
- snrmed [📋]: 5 entries, dtype: float64
- t_gap_big [📋]: 5 entries, dtype: float64
- addpad_flag [📋]: 5 entries, dtype: int32
- alpha_inc [📋]: 5 entries, dtype: float64
- alpha_max [📋]: 5 entries, dtype: float64
- delta_t_gap_min [📋]: 5 entries, dtype: float64
- delta_t_lin_fit [📋]: 5 entries, dtype: float64
- delta_t_max [📋]: 5 entries, dtype: float64
- delta_t_min [📋]: 5 entries, dtype: float64
- delta_z_bg [📋]: 5 entries, dtype: float64
- delta_zmax2 [📋]: 5 entries, dtype: float64
- delta_zmin [📋]: 5 entries, dtype: float64
- e_a [📋]: 5 entries, dtype: float64
- e_linfit_edit [📋]: 5 entries, dtype: float64
- e_linfit_slant [📋]: 5 entries, dtype: float64
- e_m [📋]: 5 entries, dtype: float64
- e_m_mult [📋]: 5 entries, dtype: float64
- htspanmin [📋]: 5 entries, dtype: float64
- lslant_flag [📋]: 5 entries, dtype: int32
- min_fit_time_fact [📋]: 5 entries, dtype: int32
- n_delta_z1 [📋]: 5 entries, dtype: int32
- n_delta_z2 [📋]: 5 entries, dtype: int32
- nbin_min [📋]: 5 entries, dtype: int32
- nphot_min [📋]: 5 entries, dtype: int32
- nslw [📋]: 5 entries, dtype: float64
- nslw_v [📋]: 5 entries, dtype: float64
- out_edit_flag [📋]: 5 entries, dtype: int32
- pc_bckgrd_flag [📋]: 5 entries, dtype: int32
- r [📋]: 5 entries, dtype: float64
- r2 [📋]: 5 entries, dtype: float64
- sig_find_t_inc [📋]: 5 entries, dtype: float64
- snrlow [📋]: 5 entries, dtype: float64
- snrmed [📋]: 5 entries, dtype: float64
- t_gap_big [📋]: 5 entries, dtype: float64
- addpad_flag [📋]: 5 entries, dtype: int32
- alpha_inc [📋]: 5 entries, dtype: float64
- alpha_max [📋]: 5 entries, dtype: float64
- delta_t_gap_min [📋]: 5 entries, dtype: float64
- delta_t_lin_fit [📋]: 5 entries, dtype: float64
- delta_t_max [📋]: 5 entries, dtype: float64
- delta_t_min [📋]: 5 entries, dtype: float64
- delta_z_bg [📋]: 5 entries, dtype: float64
- delta_zmax2 [📋]: 5 entries, dtype: float64
- delta_zmin [📋]: 5 entries, dtype: float64
- e_a [📋]: 5 entries, dtype: float64
- e_linfit_edit [📋]: 5 entries, dtype: float64
- e_linfit_slant [📋]: 5 entries, dtype: float64
- e_m [📋]: 5 entries, dtype: float64
- e_m_mult [📋]: 5 entries, dtype: float64
- htspanmin [📋]: 5 entries, dtype: float64
- lslant_flag [📋]: 5 entries, dtype: int32
- min_fit_time_fact [📋]: 5 entries, dtype: int32
- n_delta_z1 [📋]: 5 entries, dtype: int32
- n_delta_z2 [📋]: 5 entries, dtype: int32
- nbin_min [📋]: 5 entries, dtype: int32
- nphot_min [📋]: 5 entries, dtype: int32
- nslw [📋]: 5 entries, dtype: float64
- nslw_v [📋]: 5 entries, dtype: float64
- out_edit_flag [📋]: 5 entries, dtype: int32
- pc_bckgrd_flag [📋]: 5 entries, dtype: int32
- r [📋]: 5 entries, dtype: float64
- r2 [📋]: 5 entries, dtype: float64
- sig_find_t_inc [📋]: 5 entries, dtype: float64
- snrlow [📋]: 5 entries, dtype: float64
- snrmed [📋]: 5 entries, dtype: float64
- t_gap_big [📋]: 5 entries, dtype: float64
- addpad_flag [📋]: 5 entries, dtype: int32
- alpha_inc [📋]: 5 entries, dtype: float64
- alpha_max [📋]: 5 entries, dtype: float64
- delta_t_gap_min [📋]: 5 entries, dtype: float64
- delta_t_lin_fit [📋]: 5 entries, dtype: float64
- delta_t_max [📋]: 5 entries, dtype: float64
- delta_t_min [📋]: 5 entries, dtype: float64
- delta_z_bg [📋]: 5 entries, dtype: float64
- delta_zmax2 [📋]: 5 entries, dtype: float64
- delta_zmin [📋]: 5 entries, dtype: float64
- e_a [📋]: 5 entries, dtype: float64
- e_linfit_edit [📋]: 5 entries, dtype: float64
- e_linfit_slant [📋]: 5 entries, dtype: float64
- e_m [📋]: 5 entries, dtype: float64
- e_m_mult [📋]: 5 entries, dtype: float64
- htspanmin [📋]: 5 entries, dtype: float64
- lslant_flag [📋]: 5 entries, dtype: int32
- min_fit_time_fact [📋]: 5 entries, dtype: int32
- n_delta_z1 [📋]: 5 entries, dtype: int32
- n_delta_z2 [📋]: 5 entries, dtype: int32
- nbin_min [📋]: 5 entries, dtype: int32
- nphot_min [📋]: 5 entries, dtype: int32
- nslw [📋]: 5 entries, dtype: float64
- nslw_v [📋]: 5 entries, dtype: float64
- out_edit_flag [📋]: 5 entries, dtype: int32
- pc_bckgrd_flag [📋]: 5 entries, dtype: int32
- r [📋]: 5 entries, dtype: float64
- r2 [📋]: 5 entries, dtype: float64
- sig_find_t_inc [📋]: 5 entries, dtype: float64
- snrlow [📋]: 5 entries, dtype: float64
- snrmed [📋]: 5 entries, dtype: float64
- t_gap_big [📋]: 5 entries, dtype: float64
- addpad_flag [📋]: 5 entries, dtype: int32
- alpha_inc [📋]: 5 entries, dtype: float64
- alpha_max [📋]: 5 entries, dtype: float64
- delta_t_gap_min [📋]: 5 entries, dtype: float64
- delta_t_lin_fit [📋]: 5 entries, dtype: float64
- delta_t_max [📋]: 5 entries, dtype: float64
- delta_t_min [📋]: 5 entries, dtype: float64
- delta_z_bg [📋]: 5 entries, dtype: float64
- delta_zmax2 [📋]: 5 entries, dtype: float64
- delta_zmin [📋]: 5 entries, dtype: float64
- e_a [📋]: 5 entries, dtype: float64
- e_linfit_edit [📋]: 5 entries, dtype: float64
- e_linfit_slant [📋]: 5 entries, dtype: float64
- e_m [📋]: 5 entries, dtype: float64
- e_m_mult [📋]: 5 entries, dtype: float64
- htspanmin [📋]: 5 entries, dtype: float64
- lslant_flag [📋]: 5 entries, dtype: int32
- min_fit_time_fact [📋]: 5 entries, dtype: int32
- n_delta_z1 [📋]: 5 entries, dtype: int32
- n_delta_z2 [📋]: 5 entries, dtype: int32
- nbin_min [📋]: 5 entries, dtype: int32
- nphot_min [📋]: 5 entries, dtype: int32
- nslw [📋]: 5 entries, dtype: float64
- nslw_v [📋]: 5 entries, dtype: float64
- out_edit_flag [📋]: 5 entries, dtype: int32
- pc_bckgrd_flag [📋]: 5 entries, dtype: int32
- r [📋]: 5 entries, dtype: float64
- r2 [📋]: 5 entries, dtype: float64
- sig_find_t_inc [📋]: 5 entries, dtype: float64
- snrlow [📋]: 5 entries, dtype: float64
- snrmed [📋]: 5 entries, dtype: float64
- t_gap_big [📋]: 5 entries, dtype: float64
- addpad_flag [📋]: 5 entries, dtype: int32
- alpha_inc [📋]: 5 entries, dtype: float64
- alpha_max [📋]: 5 entries, dtype: float64
- delta_t_gap_min [📋]: 5 entries, dtype: float64
- delta_t_lin_fit [📋]: 5 entries, dtype: float64
- delta_t_max [📋]: 5 entries, dtype: float64
- delta_t_min [📋]: 5 entries, dtype: float64
- delta_z_bg [📋]: 5 entries, dtype: float64
- delta_zmax2 [📋]: 5 entries, dtype: float64
- delta_zmin [📋]: 5 entries, dtype: float64
- e_a [📋]: 5 entries, dtype: float64
- e_linfit_edit [📋]: 5 entries, dtype: float64
- e_linfit_slant [📋]: 5 entries, dtype: float64
- e_m [📋]: 5 entries, dtype: float64
- e_m_mult [📋]: 5 entries, dtype: float64
- htspanmin [📋]: 5 entries, dtype: float64
- lslant_flag [📋]: 5 entries, dtype: int32
- min_fit_time_fact [📋]: 5 entries, dtype: int32
- n_delta_z1 [📋]: 5 entries, dtype: int32
- n_delta_z2 [📋]: 5 entries, dtype: int32
- nbin_min [📋]: 5 entries, dtype: int32
- nphot_min [📋]: 5 entries, dtype: int32
- nslw [📋]: 5 entries, dtype: float64
- nslw_v [📋]: 5 entries, dtype: float64
- out_edit_flag [📋]: 5 entries, dtype: int32
- pc_bckgrd_flag [📋]: 5 entries, dtype: int32
- r [📋]: 5 entries, dtype: float64
- r2 [📋]: 5 entries, dtype: float64
- sig_find_t_inc [📋]: 5 entries, dtype: float64
- snrlow [📋]: 5 entries, dtype: float64
- snrmed [📋]: 5 entries, dtype: float64
- t_gap_big [📋]: 5 entries, dtype: float64
- 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
- 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
- bckgrd_counts [📋]: 83172 entries, dtype: int32
- bckgrd_counts_reduced [📋]: 83172 entries, dtype: int32
- bckgrd_hist_top [📋]: 83172 entries, dtype: float32
- bckgrd_int_height [📋]: 83172 entries, dtype: float32
- bckgrd_int_height_reduced [📋]: 83172 entries, dtype: float32
- bckgrd_rate [📋]: 83172 entries, dtype: float32
- delta_time [📋]: 83172 entries, dtype: float64
- pce_mframe_cnt [📋]: 83172 entries, dtype: int64
- tlm_height_band1 [📋]: 83172 entries, dtype: float32
- tlm_height_band2 [📋]: 83172 entries, dtype: float32
- tlm_top_band1 [📋]: 83172 entries, dtype: float32
- tlm_top_band2 [📋]: 83172 entries, dtype: float32
- altitude_sc [📋]: 181028 entries, dtype: float64
- bounce_time_offset [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- full_sat_fract [📋]: 181028 entries, dtype: float32
- near_sat_fract [📋]: 181028 entries, dtype: float32
- neutat_delay_derivative [📋]: 181028 entries, dtype: float32
- neutat_delay_total [📋]: 181028 entries, dtype: float32
- neutat_ht [📋]: 181028 entries, dtype: float32
- ph_index_beg [📋]: 181028 entries, dtype: int64
- pitch [📋]: 181028 entries, dtype: float32
- podppd_flag [📋]: 181028 entries, dtype: int8
- range_bias_corr [📋]: 181028 entries, dtype: float32
- ref_azimuth [📋]: 181028 entries, dtype: float32
- ref_elev [📋]: 181028 entries, dtype: float32
- reference_photon_index [📋]: 181028 entries, dtype: int32
- reference_photon_lat [📋]: 181028 entries, dtype: float64
- reference_photon_lon [📋]: 181028 entries, dtype: float64
- roll [📋]: 181028 entries, dtype: float32
- segment_dist_x [📋]: 181028 entries, dtype: float64
- segment_id [📋]: 181028 entries, dtype: int32
- segment_length [📋]: 181028 entries, dtype: float64
- segment_ph_cnt [📋]: 181028 entries, dtype: int32
- sigma_across [📋]: 181028 entries, dtype: float32
- sigma_along [📋]: 181028 entries, dtype: float32
- sigma_h [📋]: 181028 entries, dtype: float32
- sigma_lat [📋]: 181028 entries, dtype: float32
- sigma_lon [📋]: 181028 entries, dtype: float32
- solar_azimuth [📋]: 181028 entries, dtype: float32
- solar_elevation [📋]: 181028 entries, dtype: float32
- surf_type [📋]: 181028 × 5 entries, dtype: int8
- tx_pulse_energy [📋]: 181028 entries, dtype: float32
- tx_pulse_skew_est [📋]: 181028 entries, dtype: float32
- tx_pulse_width_lower [📋]: 181028 entries, dtype: float32
- tx_pulse_width_upper [📋]: 181028 entries, dtype: float32
- velocity_sc [📋]: 181028 × 3 entries, dtype: float32
- yaw [📋]: 181028 entries, dtype: float32
- dac [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- dem_flag [📋]: 181028 entries, dtype: int8
- dem_h [📋]: 181028 entries, dtype: float32
- geoid [📋]: 181028 entries, dtype: float32
- geoid_free2mean [📋]: 181028 entries, dtype: float32
- tide_earth [📋]: 181028 entries, dtype: float32
- tide_earth_free2mean [📋]: 181028 entries, dtype: float32
- tide_equilibrium [📋]: 181028 entries, dtype: float32
- tide_load [📋]: 181028 entries, dtype: float32
- tide_oc_pole [📋]: 181028 entries, dtype: float32
- tide_ocean [📋]: 181028 entries, dtype: float32
- tide_pole [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 36561873 entries, dtype: float64
- dist_ph_across [📋]: 36561873 entries, dtype: float32
- dist_ph_along [📋]: 36561873 entries, dtype: float32
- h_ph [📋]: 36561873 entries, dtype: float32
- lat_ph [📋]: 36561873 entries, dtype: float64
- lon_ph [📋]: 36561873 entries, dtype: float64
- pce_mframe_cnt [📋]: 36561873 entries, dtype: uint32
- ph_id_channel [📋]: 36561873 entries, dtype: uint8
- ph_id_count [📋]: 36561873 entries, dtype: int8
- ph_id_pulse [📋]: 36561873 entries, dtype: uint8
- quality_ph [📋]: 36561873 entries, dtype: int8
- signal_conf_ph [📋]: 36561873 × 5 entries, dtype: int8
- bckgrd_counts [📋]: 102054 entries, dtype: int32
- bckgrd_counts_reduced [📋]: 102054 entries, dtype: int32
- bckgrd_hist_top [📋]: 102054 entries, dtype: float32
- bckgrd_int_height [📋]: 102054 entries, dtype: float32
- bckgrd_int_height_reduced [📋]: 102054 entries, dtype: float32
- bckgrd_rate [📋]: 102054 entries, dtype: float32
- delta_time [📋]: 102054 entries, dtype: float64
- pce_mframe_cnt [📋]: 102054 entries, dtype: int64
- tlm_height_band1 [📋]: 102054 entries, dtype: float32
- tlm_height_band2 [📋]: 102054 entries, dtype: float32
- tlm_top_band1 [📋]: 102054 entries, dtype: float32
- tlm_top_band2 [📋]: 102054 entries, dtype: float32
- altitude_sc [📋]: 181028 entries, dtype: float64
- bounce_time_offset [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- full_sat_fract [📋]: 181028 entries, dtype: float32
- near_sat_fract [📋]: 181028 entries, dtype: float32
- neutat_delay_derivative [📋]: 181028 entries, dtype: float32
- neutat_delay_total [📋]: 181028 entries, dtype: float32
- neutat_ht [📋]: 181028 entries, dtype: float32
- ph_index_beg [📋]: 181028 entries, dtype: int64
- pitch [📋]: 181028 entries, dtype: float32
- podppd_flag [📋]: 181028 entries, dtype: int8
- range_bias_corr [📋]: 181028 entries, dtype: float32
- ref_azimuth [📋]: 181028 entries, dtype: float32
- ref_elev [📋]: 181028 entries, dtype: float32
- reference_photon_index [📋]: 181028 entries, dtype: int32
- reference_photon_lat [📋]: 181028 entries, dtype: float64
- reference_photon_lon [📋]: 181028 entries, dtype: float64
- roll [📋]: 181028 entries, dtype: float32
- segment_dist_x [📋]: 181028 entries, dtype: float64
- segment_id [📋]: 181028 entries, dtype: int32
- segment_length [📋]: 181028 entries, dtype: float64
- segment_ph_cnt [📋]: 181028 entries, dtype: int32
- sigma_across [📋]: 181028 entries, dtype: float32
- sigma_along [📋]: 181028 entries, dtype: float32
- sigma_h [📋]: 181028 entries, dtype: float32
- sigma_lat [📋]: 181028 entries, dtype: float32
- sigma_lon [📋]: 181028 entries, dtype: float32
- solar_azimuth [📋]: 181028 entries, dtype: float32
- solar_elevation [📋]: 181028 entries, dtype: float32
- surf_type [📋]: 181028 × 5 entries, dtype: int8
- tx_pulse_energy [📋]: 181028 entries, dtype: float32
- tx_pulse_skew_est [📋]: 181028 entries, dtype: float32
- tx_pulse_width_lower [📋]: 181028 entries, dtype: float32
- tx_pulse_width_upper [📋]: 181028 entries, dtype: float32
- velocity_sc [📋]: 181028 × 3 entries, dtype: float32
- yaw [📋]: 181028 entries, dtype: float32
- dac [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- dem_flag [📋]: 181028 entries, dtype: int8
- dem_h [📋]: 181028 entries, dtype: float32
- geoid [📋]: 181028 entries, dtype: float32
- geoid_free2mean [📋]: 181028 entries, dtype: float32
- tide_earth [📋]: 181028 entries, dtype: float32
- tide_earth_free2mean [📋]: 181028 entries, dtype: float32
- tide_equilibrium [📋]: 181028 entries, dtype: float32
- tide_load [📋]: 181028 entries, dtype: float32
- tide_oc_pole [📋]: 181028 entries, dtype: float32
- tide_ocean [📋]: 181028 entries, dtype: float32
- tide_pole [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 79200243 entries, dtype: float64
- dist_ph_across [📋]: 79200243 entries, dtype: float32
- dist_ph_along [📋]: 79200243 entries, dtype: float32
- h_ph [📋]: 79200243 entries, dtype: float32
- lat_ph [📋]: 79200243 entries, dtype: float64
- lon_ph [📋]: 79200243 entries, dtype: float64
- pce_mframe_cnt [📋]: 79200243 entries, dtype: uint32
- ph_id_channel [📋]: 79200243 entries, dtype: uint8
- ph_id_count [📋]: 79200243 entries, dtype: int8
- ph_id_pulse [📋]: 79200243 entries, dtype: uint8
- quality_ph [📋]: 79200243 entries, dtype: int8
- signal_conf_ph [📋]: 79200243 × 5 entries, dtype: int8
- bckgrd_counts [📋]: 82472 entries, dtype: int32
- bckgrd_counts_reduced [📋]: 82472 entries, dtype: int32
- bckgrd_hist_top [📋]: 82472 entries, dtype: float32
- bckgrd_int_height [📋]: 82472 entries, dtype: float32
- bckgrd_int_height_reduced [📋]: 82472 entries, dtype: float32
- bckgrd_rate [📋]: 82472 entries, dtype: float32
- delta_time [📋]: 82472 entries, dtype: float64
- pce_mframe_cnt [📋]: 82472 entries, dtype: int64
- tlm_height_band1 [📋]: 82472 entries, dtype: float32
- tlm_height_band2 [📋]: 82472 entries, dtype: float32
- tlm_top_band1 [📋]: 82472 entries, dtype: float32
- tlm_top_band2 [📋]: 82472 entries, dtype: float32
- altitude_sc [📋]: 181028 entries, dtype: float64
- bounce_time_offset [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- full_sat_fract [📋]: 181028 entries, dtype: float32
- near_sat_fract [📋]: 181028 entries, dtype: float32
- neutat_delay_derivative [📋]: 181028 entries, dtype: float32
- neutat_delay_total [📋]: 181028 entries, dtype: float32
- neutat_ht [📋]: 181028 entries, dtype: float32
- ph_index_beg [📋]: 181028 entries, dtype: int64
- pitch [📋]: 181028 entries, dtype: float32
- podppd_flag [📋]: 181028 entries, dtype: int8
- range_bias_corr [📋]: 181028 entries, dtype: float32
- ref_azimuth [📋]: 181028 entries, dtype: float32
- ref_elev [📋]: 181028 entries, dtype: float32
- reference_photon_index [📋]: 181028 entries, dtype: int32
- reference_photon_lat [📋]: 181028 entries, dtype: float64
- reference_photon_lon [📋]: 181028 entries, dtype: float64
- roll [📋]: 181028 entries, dtype: float32
- segment_dist_x [📋]: 181028 entries, dtype: float64
- segment_id [📋]: 181028 entries, dtype: int32
- segment_length [📋]: 181028 entries, dtype: float64
- segment_ph_cnt [📋]: 181028 entries, dtype: int32
- sigma_across [📋]: 181028 entries, dtype: float32
- sigma_along [📋]: 181028 entries, dtype: float32
- sigma_h [📋]: 181028 entries, dtype: float32
- sigma_lat [📋]: 181028 entries, dtype: float32
- sigma_lon [📋]: 181028 entries, dtype: float32
- solar_azimuth [📋]: 181028 entries, dtype: float32
- solar_elevation [📋]: 181028 entries, dtype: float32
- surf_type [📋]: 181028 × 5 entries, dtype: int8
- tx_pulse_energy [📋]: 181028 entries, dtype: float32
- tx_pulse_skew_est [📋]: 181028 entries, dtype: float32
- tx_pulse_width_lower [📋]: 181028 entries, dtype: float32
- tx_pulse_width_upper [📋]: 181028 entries, dtype: float32
- velocity_sc [📋]: 181028 × 3 entries, dtype: float32
- yaw [📋]: 181028 entries, dtype: float32
- dac [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- dem_flag [📋]: 181028 entries, dtype: int8
- dem_h [📋]: 181028 entries, dtype: float32
- geoid [📋]: 181028 entries, dtype: float32
- geoid_free2mean [📋]: 181028 entries, dtype: float32
- tide_earth [📋]: 181028 entries, dtype: float32
- tide_earth_free2mean [📋]: 181028 entries, dtype: float32
- tide_equilibrium [📋]: 181028 entries, dtype: float32
- tide_load [📋]: 181028 entries, dtype: float32
- tide_oc_pole [📋]: 181028 entries, dtype: float32
- tide_ocean [📋]: 181028 entries, dtype: float32
- tide_pole [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 38228304 entries, dtype: float64
- dist_ph_across [📋]: 38228304 entries, dtype: float32
- dist_ph_along [📋]: 38228304 entries, dtype: float32
- h_ph [📋]: 38228304 entries, dtype: float32
- lat_ph [📋]: 38228304 entries, dtype: float64
- lon_ph [📋]: 38228304 entries, dtype: float64
- pce_mframe_cnt [📋]: 38228304 entries, dtype: uint32
- ph_id_channel [📋]: 38228304 entries, dtype: uint8
- ph_id_count [📋]: 38228304 entries, dtype: int8
- ph_id_pulse [📋]: 38228304 entries, dtype: uint8
- quality_ph [📋]: 38228304 entries, dtype: int8
- signal_conf_ph [📋]: 38228304 × 5 entries, dtype: int8
- bckgrd_counts [📋]: 102054 entries, dtype: int32
- bckgrd_counts_reduced [📋]: 102054 entries, dtype: int32
- bckgrd_hist_top [📋]: 102054 entries, dtype: float32
- bckgrd_int_height [📋]: 102054 entries, dtype: float32
- bckgrd_int_height_reduced [📋]: 102054 entries, dtype: float32
- bckgrd_rate [📋]: 102054 entries, dtype: float32
- delta_time [📋]: 102054 entries, dtype: float64
- pce_mframe_cnt [📋]: 102054 entries, dtype: int64
- tlm_height_band1 [📋]: 102054 entries, dtype: float32
- tlm_height_band2 [📋]: 102054 entries, dtype: float32
- tlm_top_band1 [📋]: 102054 entries, dtype: float32
- tlm_top_band2 [📋]: 102054 entries, dtype: float32
- altitude_sc [📋]: 181028 entries, dtype: float64
- bounce_time_offset [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- full_sat_fract [📋]: 181028 entries, dtype: float32
- near_sat_fract [📋]: 181028 entries, dtype: float32
- neutat_delay_derivative [📋]: 181028 entries, dtype: float32
- neutat_delay_total [📋]: 181028 entries, dtype: float32
- neutat_ht [📋]: 181028 entries, dtype: float32
- ph_index_beg [📋]: 181028 entries, dtype: int64
- pitch [📋]: 181028 entries, dtype: float32
- podppd_flag [📋]: 181028 entries, dtype: int8
- range_bias_corr [📋]: 181028 entries, dtype: float32
- ref_azimuth [📋]: 181028 entries, dtype: float32
- ref_elev [📋]: 181028 entries, dtype: float32
- reference_photon_index [📋]: 181028 entries, dtype: int32
- reference_photon_lat [📋]: 181028 entries, dtype: float64
- reference_photon_lon [📋]: 181028 entries, dtype: float64
- roll [📋]: 181028 entries, dtype: float32
- segment_dist_x [📋]: 181028 entries, dtype: float64
- segment_id [📋]: 181028 entries, dtype: int32
- segment_length [📋]: 181028 entries, dtype: float64
- segment_ph_cnt [📋]: 181028 entries, dtype: int32
- sigma_across [📋]: 181028 entries, dtype: float32
- sigma_along [📋]: 181028 entries, dtype: float32
- sigma_h [📋]: 181028 entries, dtype: float32
- sigma_lat [📋]: 181028 entries, dtype: float32
- sigma_lon [📋]: 181028 entries, dtype: float32
- solar_azimuth [📋]: 181028 entries, dtype: float32
- solar_elevation [📋]: 181028 entries, dtype: float32
- surf_type [📋]: 181028 × 5 entries, dtype: int8
- tx_pulse_energy [📋]: 181028 entries, dtype: float32
- tx_pulse_skew_est [📋]: 181028 entries, dtype: float32
- tx_pulse_width_lower [📋]: 181028 entries, dtype: float32
- tx_pulse_width_upper [📋]: 181028 entries, dtype: float32
- velocity_sc [📋]: 181028 × 3 entries, dtype: float32
- yaw [📋]: 181028 entries, dtype: float32
- dac [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- dem_flag [📋]: 181028 entries, dtype: int8
- dem_h [📋]: 181028 entries, dtype: float32
- geoid [📋]: 181028 entries, dtype: float32
- geoid_free2mean [📋]: 181028 entries, dtype: float32
- tide_earth [📋]: 181028 entries, dtype: float32
- tide_earth_free2mean [📋]: 181028 entries, dtype: float32
- tide_equilibrium [📋]: 181028 entries, dtype: float32
- tide_load [📋]: 181028 entries, dtype: float32
- tide_oc_pole [📋]: 181028 entries, dtype: float32
- tide_ocean [📋]: 181028 entries, dtype: float32
- tide_pole [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 71495821 entries, dtype: float64
- dist_ph_across [📋]: 71495821 entries, dtype: float32
- dist_ph_along [📋]: 71495821 entries, dtype: float32
- h_ph [📋]: 71495821 entries, dtype: float32
- lat_ph [📋]: 71495821 entries, dtype: float64
- lon_ph [📋]: 71495821 entries, dtype: float64
- pce_mframe_cnt [📋]: 71495821 entries, dtype: uint32
- ph_id_channel [📋]: 71495821 entries, dtype: uint8
- ph_id_count [📋]: 71495821 entries, dtype: int8
- ph_id_pulse [📋]: 71495821 entries, dtype: uint8
- quality_ph [📋]: 71495821 entries, dtype: int8
- signal_conf_ph [📋]: 71495821 × 5 entries, dtype: int8
- bckgrd_counts [📋]: 81572 entries, dtype: int32
- bckgrd_counts_reduced [📋]: 81572 entries, dtype: int32
- bckgrd_hist_top [📋]: 81572 entries, dtype: float32
- bckgrd_int_height [📋]: 81572 entries, dtype: float32
- bckgrd_int_height_reduced [📋]: 81572 entries, dtype: float32
- bckgrd_rate [📋]: 81572 entries, dtype: float32
- delta_time [📋]: 81572 entries, dtype: float64
- pce_mframe_cnt [📋]: 81572 entries, dtype: int64
- tlm_height_band1 [📋]: 81572 entries, dtype: float32
- tlm_height_band2 [📋]: 81572 entries, dtype: float32
- tlm_top_band1 [📋]: 81572 entries, dtype: float32
- tlm_top_band2 [📋]: 81572 entries, dtype: float32
- altitude_sc [📋]: 181028 entries, dtype: float64
- bounce_time_offset [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- full_sat_fract [📋]: 181028 entries, dtype: float32
- near_sat_fract [📋]: 181028 entries, dtype: float32
- neutat_delay_derivative [📋]: 181028 entries, dtype: float32
- neutat_delay_total [📋]: 181028 entries, dtype: float32
- neutat_ht [📋]: 181028 entries, dtype: float32
- ph_index_beg [📋]: 181028 entries, dtype: int64
- pitch [📋]: 181028 entries, dtype: float32
- podppd_flag [📋]: 181028 entries, dtype: int8
- range_bias_corr [📋]: 181028 entries, dtype: float32
- ref_azimuth [📋]: 181028 entries, dtype: float32
- ref_elev [📋]: 181028 entries, dtype: float32
- reference_photon_index [📋]: 181028 entries, dtype: int32
- reference_photon_lat [📋]: 181028 entries, dtype: float64
- reference_photon_lon [📋]: 181028 entries, dtype: float64
- roll [📋]: 181028 entries, dtype: float32
- segment_dist_x [📋]: 181028 entries, dtype: float64
- segment_id [📋]: 181028 entries, dtype: int32
- segment_length [📋]: 181028 entries, dtype: float64
- segment_ph_cnt [📋]: 181028 entries, dtype: int32
- sigma_across [📋]: 181028 entries, dtype: float32
- sigma_along [📋]: 181028 entries, dtype: float32
- sigma_h [📋]: 181028 entries, dtype: float32
- sigma_lat [📋]: 181028 entries, dtype: float32
- sigma_lon [📋]: 181028 entries, dtype: float32
- solar_azimuth [📋]: 181028 entries, dtype: float32
- solar_elevation [📋]: 181028 entries, dtype: float32
- surf_type [📋]: 181028 × 5 entries, dtype: int8
- tx_pulse_energy [📋]: 181028 entries, dtype: float32
- tx_pulse_skew_est [📋]: 181028 entries, dtype: float32
- tx_pulse_width_lower [📋]: 181028 entries, dtype: float32
- tx_pulse_width_upper [📋]: 181028 entries, dtype: float32
- velocity_sc [📋]: 181028 × 3 entries, dtype: float32
- yaw [📋]: 181028 entries, dtype: float32
- dac [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- dem_flag [📋]: 181028 entries, dtype: int8
- dem_h [📋]: 181028 entries, dtype: float32
- geoid [📋]: 181028 entries, dtype: float32
- geoid_free2mean [📋]: 181028 entries, dtype: float32
- tide_earth [📋]: 181028 entries, dtype: float32
- tide_earth_free2mean [📋]: 181028 entries, dtype: float32
- tide_equilibrium [📋]: 181028 entries, dtype: float32
- tide_load [📋]: 181028 entries, dtype: float32
- tide_oc_pole [📋]: 181028 entries, dtype: float32
- tide_ocean [📋]: 181028 entries, dtype: float32
- tide_pole [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 35116125 entries, dtype: float64
- dist_ph_across [📋]: 35116125 entries, dtype: float32
- dist_ph_along [📋]: 35116125 entries, dtype: float32
- h_ph [📋]: 35116125 entries, dtype: float32
- lat_ph [📋]: 35116125 entries, dtype: float64
- lon_ph [📋]: 35116125 entries, dtype: float64
- pce_mframe_cnt [📋]: 35116125 entries, dtype: uint32
- ph_id_channel [📋]: 35116125 entries, dtype: uint8
- ph_id_count [📋]: 35116125 entries, dtype: int8
- ph_id_pulse [📋]: 35116125 entries, dtype: uint8
- quality_ph [📋]: 35116125 entries, dtype: int8
- signal_conf_ph [📋]: 35116125 × 5 entries, dtype: int8
- bckgrd_counts [📋]: 102054 entries, dtype: int32
- bckgrd_counts_reduced [📋]: 102054 entries, dtype: int32
- bckgrd_hist_top [📋]: 102054 entries, dtype: float32
- bckgrd_int_height [📋]: 102054 entries, dtype: float32
- bckgrd_int_height_reduced [📋]: 102054 entries, dtype: float32
- bckgrd_rate [📋]: 102054 entries, dtype: float32
- delta_time [📋]: 102054 entries, dtype: float64
- pce_mframe_cnt [📋]: 102054 entries, dtype: int64
- tlm_height_band1 [📋]: 102054 entries, dtype: float32
- tlm_height_band2 [📋]: 102054 entries, dtype: float32
- tlm_top_band1 [📋]: 102054 entries, dtype: float32
- tlm_top_band2 [📋]: 102054 entries, dtype: float32
- altitude_sc [📋]: 181028 entries, dtype: float64
- bounce_time_offset [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- full_sat_fract [📋]: 181028 entries, dtype: float32
- near_sat_fract [📋]: 181028 entries, dtype: float32
- neutat_delay_derivative [📋]: 181028 entries, dtype: float32
- neutat_delay_total [📋]: 181028 entries, dtype: float32
- neutat_ht [📋]: 181028 entries, dtype: float32
- ph_index_beg [📋]: 181028 entries, dtype: int64
- pitch [📋]: 181028 entries, dtype: float32
- podppd_flag [📋]: 181028 entries, dtype: int8
- range_bias_corr [📋]: 181028 entries, dtype: float32
- ref_azimuth [📋]: 181028 entries, dtype: float32
- ref_elev [📋]: 181028 entries, dtype: float32
- reference_photon_index [📋]: 181028 entries, dtype: int32
- reference_photon_lat [📋]: 181028 entries, dtype: float64
- reference_photon_lon [📋]: 181028 entries, dtype: float64
- roll [📋]: 181028 entries, dtype: float32
- segment_dist_x [📋]: 181028 entries, dtype: float64
- segment_id [📋]: 181028 entries, dtype: int32
- segment_length [📋]: 181028 entries, dtype: float64
- segment_ph_cnt [📋]: 181028 entries, dtype: int32
- sigma_across [📋]: 181028 entries, dtype: float32
- sigma_along [📋]: 181028 entries, dtype: float32
- sigma_h [📋]: 181028 entries, dtype: float32
- sigma_lat [📋]: 181028 entries, dtype: float32
- sigma_lon [📋]: 181028 entries, dtype: float32
- solar_azimuth [📋]: 181028 entries, dtype: float32
- solar_elevation [📋]: 181028 entries, dtype: float32
- surf_type [📋]: 181028 × 5 entries, dtype: int8
- tx_pulse_energy [📋]: 181028 entries, dtype: float32
- tx_pulse_skew_est [📋]: 181028 entries, dtype: float32
- tx_pulse_width_lower [📋]: 181028 entries, dtype: float32
- tx_pulse_width_upper [📋]: 181028 entries, dtype: float32
- velocity_sc [📋]: 181028 × 3 entries, dtype: float32
- yaw [📋]: 181028 entries, dtype: float32
- dac [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 181028 entries, dtype: float64
- dem_flag [📋]: 181028 entries, dtype: int8
- dem_h [📋]: 181028 entries, dtype: float32
- geoid [📋]: 181028 entries, dtype: float32
- geoid_free2mean [📋]: 181028 entries, dtype: float32
- tide_earth [📋]: 181028 entries, dtype: float32
- tide_earth_free2mean [📋]: 181028 entries, dtype: float32
- tide_equilibrium [📋]: 181028 entries, dtype: float32
- tide_load [📋]: 181028 entries, dtype: float32
- tide_oc_pole [📋]: 181028 entries, dtype: float32
- tide_ocean [📋]: 181028 entries, dtype: float32
- tide_pole [📋]: 181028 entries, dtype: float32
- delta_time [📋]: 80047169 entries, dtype: float64
- dist_ph_across [📋]: 80047169 entries, dtype: float32
- dist_ph_along [📋]: 80047169 entries, dtype: float32
- h_ph [📋]: 80047169 entries, dtype: float32
- lat_ph [📋]: 80047169 entries, dtype: float64
- lon_ph [📋]: 80047169 entries, dtype: float64
- pce_mframe_cnt [📋]: 80047169 entries, dtype: uint32
- ph_id_channel [📋]: 80047169 entries, dtype: uint8
- ph_id_count [📋]: 80047169 entries, dtype: int8
- ph_id_pulse [📋]: 80047169 entries, dtype: uint8
- quality_ph [📋]: 80047169 entries, dtype: int8
- signal_conf_ph [📋]: 80047169 × 5 entries, dtype: int8
- qa_perc_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: float64
- qa_perc_surf_type [📋]: 1 × 5 entries, dtype: float64
- qa_total_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: int64
- qa_perc_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: float64
- qa_perc_surf_type [📋]: 1 × 5 entries, dtype: float64
- qa_total_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: int64
- qa_perc_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: float64
- qa_perc_surf_type [📋]: 1 × 5 entries, dtype: float64
- qa_total_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: int64
- qa_perc_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: float64
- qa_perc_surf_type [📋]: 1 × 5 entries, dtype: float64
- qa_total_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: int64
- qa_perc_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: float64
- qa_perc_surf_type [📋]: 1 × 5 entries, dtype: float64
- qa_total_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: int64
- qa_perc_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: float64
- qa_perc_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: float64
- qa_perc_surf_type [📋]: 1 × 5 entries, dtype: float64
- qa_total_signal_conf_ph_high [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_low [📋]: 1 × 5 entries, dtype: int64
- qa_total_signal_conf_ph_med [📋]: 1 × 5 entries, dtype: int64
- delta_time [📋]: 1 entries, dtype: float64
- qa_granule_fail_reason [📋]: 1 entries, dtype: int32
- qa_granule_pass_fail [📋]: 1 entries, dtype: int32
- ds_surf_type [📋]: 5 entries, dtype: int32
- ds_xyz [📋]: 3 entries, dtype: int32
Subset the Data by Required Columns
In this case, we will need Latitude, Longitude, Photon Height and Along Track Distance. We are using the copied path from the data tree generated by H5Glance above.
Use h5py to read file and variables from the copied path.
[9]:
with h5py.File(ice_data,'r') as f:
gt1l_lat = f['/gt1l/heights/lat_ph'][:]
gt1l_lon = f['/gt1l/heights/lon_ph'][:]
gt1l_height = f['/gt1l/heights/h_ph'][:]
gt1l_dist_ph = f['/gt1l/heights/dist_ph_along'][:]
Show the Subset Data in a Dataframe
By using the Pandas module:
[10]:
# Write latitude, longitude, photon height and along track distance for gt1l to a dataframe
gt1l_df = pd.DataFrame({'Latitude': gt1l_lat, 'Longitude': gt1l_lon, 'Photon_Height': gt1l_height,'Along_track_distance':gt1l_dist_ph})
gt1l_df
[10]:
Latitude | Longitude | Photon_Height | Along_track_distance | |
---|---|---|---|---|
0 | 59.482065 | -115.906874 | 611.887878 | 16.894447 |
1 | 59.482065 | -115.906877 | 580.084106 | 16.980614 |
2 | 59.482064 | -115.906882 | 527.962097 | 17.122099 |
3 | 59.482063 | -115.906885 | 491.036133 | 17.222527 |
4 | 59.482059 | -115.906875 | 616.919922 | 17.593958 |
... | ... | ... | ... | ... |
36561868 | 33.011390 | -119.752303 | 69.065865 | 4.154013 |
36561869 | 33.011382 | -119.752316 | -16.501354 | 5.156162 |
36561870 | 33.011380 | -119.752329 | -108.562981 | 5.470425 |
36561871 | 33.011376 | -119.752317 | -17.947205 | 5.871534 |
36561872 | 33.011375 | -119.752319 | -37.489002 | 5.938596 |
36561873 rows × 4 columns
By using the Geopandas module:
Create geopandas dataframe with a column for point locations in the geometry column, and other relevant variables.
[11]:
geometry = gpd.points_from_xy(gt1l_lon, gt1l_lat)
data = {'Latitude': gt1l_lat, 'Longitude': gt1l_lon, 'Photon_Height': gt1l_height,'Along_track_distance':gt1l_dist_ph}
gdf = gpd.GeoDataFrame(data,geometry=geometry, crs='EPSG:4326')
# View the resulting geopandas dataframe
print(gdf.head())
Latitude Longitude Photon_Height Along_track_distance \
0 59.482065 -115.906874 611.887878 16.894447
1 59.482065 -115.906877 580.084106 16.980614
2 59.482064 -115.906882 527.962097 17.122099
3 59.482063 -115.906885 491.036133 17.222527
4 59.482059 -115.906875 616.919922 17.593958
geometry
0 POINT (-115.90687 59.48207)
1 POINT (-115.90688 59.48206)
2 POINT (-115.90688 59.48206)
3 POINT (-115.90689 59.48206)
4 POINT (-115.90687 59.48206)
Visualize Photon Heights
Finally, we’ll visualize the photon heights with respect to along track distance for this H5 file using inputs from the geodataframe:
[12]:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(14, 4))
gdf.Photon_Height.plot(ax=ax, ls='', marker='.', ms=0.01)
ax.set_xlabel('Along track distance (m)', fontsize=12);
ax.set_ylabel('Photon Height (m)', fontsize=12)
ax.set_title('ICESat-2 ATL03', fontsize=14)
ax.tick_params(axis='both', which='major', labelsize=12)