Data¶
ICESat¶
#
SpaceLiDAR.points
— Method.
Retrieve the points for a given ICESat GLAH06 (Land Ice) granule as a list of namedtuples The names of the tuples are based on the following fields:
Variable | Original Field | Description | Units |
---|---|---|---|
longitude |
Data_40HZ/Geolocation/d_lon |
Longitude of segment center, WGS84, East=+ | decimal degrees |
latitude |
Data_40HZ/Geolocation/d_lat |
Latitude of segment center, WGS84, North=+ | decimal degrees |
height |
Data_40HZ/Elevation_Surfaces/d_elev |
+ Data_40HZ/Elevation_Corrections/d_satElevCorr |
m above WGS84 ellipsoid |
datetime |
Data_40HZ/DS_UTCTime_40 |
Precise time of aquisiton | date-time |
quality 1 |
Data_40HZ/Quality/elev_use_flg |
& Data_40HZ/Quality/sigma_att_flg = 0 |
|
& Data_40HZ/Waveform/i_numPk = 1 |
& Data_40HZ/Elevation_Corrections/d_satElevCorr < 3 |
1 = high quality | |
height_reference |
land_ice_segments/dem/dem_h |
Height of the (best available) DEM | height above WGS84 |
You can get the output in a DataFrame
with DataFrame(points(g))
.
#
SpaceLiDAR.points
— Method.
Retrieve the points for a given ICESat GLAH14 (Land Surface) granule as a list of namedtuples The names of the tuples are based on the following fields:
Variable | Original Field (in Data_40HZ ) |
Description | Units |
---|---|---|---|
longitude |
/Geolocation/d_lon |
Longitude of segment center, WGS84, East=+ | decimal degrees |
latitude |
Geolocation/d_lat |
Latitude of segment center, WGS84, North=+ | decimal degrees |
height |
Elevation_Surfaces/d_elev |
+ Elevation_Corrections/d_satElevCorr |
m above WGS84 ellipsoid |
datetime |
DS_UTCTime_40 |
Precise time of aquisiton | date-time |
quality 1 |
Quality/elev_use_flg |
& Quality/sigma_att_flg = 0 |
|
& Waveform/i_numPk = 1 |
& Elevation_Corrections/d_satElevCorr < 3 |
1=high quality | |
clouds |
Elevation_Flags/elv_cloud_flg |
Cloud contamination | - |
height_reference |
Geophysical/d_DEM_elv |
Height of the (best available) DEM | height above WGS84 |
gain |
Waveform/i_gval_rcv |
Gain value used for received pulse. | - |
reflectivity |
Reflectivity/d_reflctUC |
Reflectivity, not corrected | - |
attitude |
Quality/sigma_att_flg |
Attitude quality indicator | 0=good; 50=warning; 100=bad; |
saturation |
Quality/sat_corr_flg |
Saturation Correction Flag | 0=not_saturated; |
You can get the output in a DataFrame
with DataFrame(points(g))
.
ICESat-2¶
#
SpaceLiDAR.classify
— Function.
classify(granule::ICESat2_Granule{:ATL03}, atl08::Union{ICESat2_Granule{:ATL08},Nothing} = nothing, tracks = icesat2_tracks)
Like points(::ICESat2_Granule{:ATL03})
but with the classification from the ATL08 dataset. If an ATL08 granule is not provided, we try to find it based on the ATL03 name using convert
.
#
SpaceLiDAR.points
— Method.
Retrieve the points for a given ICESat-2 ATL03 (Global Geolocated Photon Data) granule as a list of namedtuples, one for each beam. The names of the tuples are based on the following fields:
Column | Field | Description | Units |
---|---|---|---|
longitude |
heights/lon_ph |
Longitude of photon, WGS84, East=+ | decimal degrees |
latitude |
heights/lat_ph |
Latitude of photon, WGS84, North=+ | decimal degrees |
height |
heights/h_ph |
Photon WGS84 Height | m above the WGS 84 ellipsoid |
quality |
heights/quality_ph |
Indicates the quality of the associated photon | 0 = nominal |
uncertainty |
geolocation/sigma_h |
Estimated height uncertainty | m |
datetime |
heights/delta_time |
+ ancillary_data/atlas_sdp_gps_epoch + gps_offset |
date-time |
confidence |
heights/signal_conf_ph |
Photon Signal Confidence | 2=low; 3=med; 4=high |
segment |
geolocation/segment_id |
Along-track segment ID number | - |
track |
gt1l - gt3r groups |
- | - |
strong_beam |
- |
"strong" (true) or "weak" (false) laser power | - |
sun_angle |
geolocation/solar_elevation |
Sun angle | ° above horizon |
detector_id |
atlas_spot_number attribute |
- | - |
height_reference |
heights/dem/dem_h |
Height of the (best available) DEM | m above the WGS 84 ellipsoid |
You can combine the output in a DataFrame
with reduce(vcat, DataFrame.(points(g)))
if you want to change the default arguments or DataFrame(g)
with the default options.
#
SpaceLiDAR.points
— Method.
Retrieve the points for a given ICESat-2 ATL06 (Land Ice) granule as a list of namedtuples, one for each beam. The names of the tuples are based on the following fields:
Column | Field | Description | Units |
---|---|---|---|
longitude |
land_ice_segments/longitude |
Longitude of segment center, WGS84, East=+ | decimal degrees |
latitude |
land_ice_segments/latitude |
Latitude of segment center, WGS84, North=+ | decimal degrees |
height |
land_ice_segments/h_li |
Standard land-ice segment height | m above the WGS 84 ellipsoid |
height_error |
√(land_ice_segments/sigma_geo_h ² + |
Total vertical geolocation error | m above the WGS 84 ellipsoid |
land_ice_segments/h_li_sigma ²) |
|||
datetime |
land_ice_segments/delta_time |
+ ancillary_data/atlas_sdp_gps_epoch + gps_offset |
date-time |
quality |
land_ice_segments/atl06_quality_summary |
Boolean flag indicating the best-quality subset | 1 = high quality |
track |
gt1l - gt3r groups |
- | - |
strong_beam |
- |
"strong" (true) or "weak" (false) laser power | - |
detector_id |
atlas_spot_number attribute |
- | - |
height_reference |
land_ice_segments/dem/dem_h |
Height of the (best available) DEM | - |
You can combine the output in a DataFrame
with reduce(vcat, DataFrame.(points(g)))
if you want to change the default arguments or DataFrame(g)
with the default options.
#
SpaceLiDAR.points
— Method.
Retrieve the points for a given ICESat-2 ATL08 (Land and Vegetation Height) granule as a list of namedtuples, one for each beam. The names of the tuples are based on the following fields:
Column | Field | Description | Units |
---|---|---|---|
longitude |
land_segments/longitude |
Longitude of segment center, WGS84, East=+ | decimal degrees |
latitude |
land_segments/latitude |
Latitude of segment center, WGS84, North=+ | decimal degrees |
height |
land_segments/terrain/h_te_mean |
Standard land-ice segment height | m above the WGS 84 ellipsoid |
height_error |
land_segments/terrain/h_te_uncertainty |
Total vertical geolocation error | m |
datetime |
land_segments/delta_time |
+ ancillary_data/atlas_sdp_gps_epoch + gps_offset |
date-time |
quality |
land_segments/terrain_flg |
Boolean flag indicating the best-quality subset | 1 = high quality |
phr |
land_segments/ph_removal_flag |
More than 50% of photons removed | - |
sensitivity |
land_segments/snr |
The signal to noise ratio | - |
scattered |
land_segments/msw_flag |
Multiple Scattering warning flag | -1=unknown; 0=none |
saturated |
land_segments/sat_flag |
Saturation detected | - |
clouds |
land_segments/layer_flag |
Clouds or blowing snow are likely present | - |
track |
gt1l - gt3r groups |
- | - |
strong_beam |
- |
"strong" (true) or "weak" (false) laser power | - |
classification |
- |
"ground", "high_canopy" | - |
height_reference |
land_segments/dem_h |
Height of the (best available) DEM | m above the WGS 84 ellipsoid |
detector_id |
atlas_spot_number attribute |
- | - |
You can combine the output in a DataFrame
with reduce(vcat, DataFrame.(points(g)))
if you want to change the default arguments or DataFrame(g)
with the default options.
#
SpaceLiDAR.points
— Function.
Retrieve the points for a given ICESat-2 ATL12 (Ocean Surface Height) granule as a list of namedtuples, one for each beam. The names of the tuples are based on the following fields:
Column | Field | Description | Units |
---|---|---|---|
longitude |
ssh_segments/longitude |
Longitude of segment center, WGS84, East=+ | decimal degrees |
latitude |
ssh_segments/latitude |
Latitude of segment center, WGS84, North=+ | decimal degrees |
height |
ssh_segments/heights/h |
Standard land-ice segment height | m above the WGS 84 ellipsoid |
datetime |
ssh_segments/delta_time |
+ ancillary_data/atlas_sdp_gps_epoch + gps_offset |
date-time |
track |
gt1l - gt3r groups |
- | - |
strong_beam |
- |
"strong" (true) or "weak" (false) laser power | - |
detector_id |
atlas_spot_number attribute |
- | - |
You can combine the output in a DataFrame
with reduce(vcat, DataFrame.(points(g)))
if you want to change the default arguments or DataFrame(g)
with the default options.
GEDI¶
#
SpaceLiDAR.bounds
— Method.
Return the bounds of the GEDI granule.
Warning
This opens the .h5 file to read all tracks, so it is very slow.
#
SpaceLiDAR.points
— Method.
points(g::GEDI_Granule{:GEDI02_A}; tracks=gedi_tracks, step=1, canopy=false, ground=true, filtered=true)
Retrieve the points for a given GEDI Level 2A (Geolocated Elevation and Height Metrics) granule as a list of namedtuples, one for each beam. The names of the tuples are based on the following fields:
Column | Field | Description | Units |
---|---|---|---|
longitude |
lon_lowestmode |
Longitude of center, WGS84, East=+ | decimal degrees |
latitude |
lat_lowestmode |
Latitude of center, WGS84, North=+ | decimal degrees |
height |
elev_lowestmode |
Standard land-ice segment height | m above the WGS 84 ellipsoid |
height_error |
elevation_bin0_error |
Error in elevation of bin 0 | m |
datetime |
delta_time |
+ ancillary_data/atlas_sdp_gps_epoch + gps_offset |
date-time |
quality |
quality_flag |
Flag simpilfying selection of most useful data | 1 = high quality |
surface |
surface_flag |
Indicates elev_lowestmode is within 300m of DEM or MSS | 1 = high quality |
nmodes |
num_detectedmodes |
Number of detected modes in rxwaveform | - |
intensity |
energy_total |
Integrated counts in the return waveform | - |
sensitivity |
sensitivity |
Maxmimum canopy cover that can be penetrated | - |
track |
BEAM0000 - BEAM1011 groups |
- | - |
strong_beam |
- |
"strong" (true) or "weak" (false) laser power | - |
classification |
- |
"ground", "high_canopy" | - |
sun_angle |
solar_elevation |
Sun angle | ° above horizon |
height_reference |
digital_elevation_model |
TanDEM-X elevation at GEDI footprint location | m above the WGS 84 ellipsoid |
You can combine the output in a DataFrame
with reduce(vcat, DataFrame.(points(g)))
if you want to change the default arguments or DataFrame(g)
with the default options.
Data is filtered
by default based on2, except for the sensitivity field, which can be manually filtered to be above 0.9 and below or equal to 1.0 to match2.
-
Smith, B., Fricker, H. A., Gardner, A. S., Medley, B., Nilsson, J., Paolo, F. S., ... & Zwally, H. J. (2020). Pervasive ice sheet mass loss reflects competing ocean and atmosphere processes. Science, 368(6496), 1239-1242. ↩↩
-
Dubayah, R. O., S. B. Luthcke, T. J. Sabaka, J. B. Nicholas, S. Preaux, and M. A. Hofton. 2021. “GEDI L3 Gridded Land Surface Metrics, Version 2.” ORNL DAAC, November. https://doi.org/10.3334/ORNLDAAC/1952. ↩↩