Skip to content

Data

ICESat

# SpaceLiDAR.pointsMethod.

points(g::ICESat_Granule{:GLAH06}, step=1, bbox::Union{Nothing,Extent,NamedTuple} = nothing)

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)).

source

# SpaceLiDAR.pointsMethod.

points(g::ICESat_Granule{:GLAH14}, step=1, bbox::Union{Nothing,Extent,NamedTuple} = nothing)

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)).

source

ICESat-2

# SpaceLiDAR.classifyFunction.

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.

source

# SpaceLiDAR.pointsMethod.

points(g::ICESat2_Granule{:ATL03}, tracks=icesat2_tracks; step=1, bbox::Union{Nothing,Extent,NamedTuple} = nothing)

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.

source

# SpaceLiDAR.pointsMethod.

points(g::ICESat2_Granule{:ATL06}, tracks=icesat2_tracks, step=1, bbox::Union{Nothing,Extent,NamedTuple} = nothing)

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.

source

# SpaceLiDAR.pointsMethod.

points(g::ICESat2_Granule{:ATL08}; tracks=icesat2_tracks, step=1, canopy=false, ground=true, bbox::Union{Nothing,Extent,NamedTuple} = nothing)

Retrieve the points for a given ICESat-2 ATL08 (Land and Vegetation Height) granule as a list of namedtuples, one for each beam. With the tracks keyword, you can specify which tracks to include. The default is to include all tracks. With the step keyword, you can choose to limit the number of points, the default is 1 (all points). With setting ground and or canopy, you can control to include ground and/or canopy points. Finally, with the ground_field and canopy_field settings, you can determine the source field. The default is h_te_mean for ground and h_mean_canopy_abs for canopy. With the introduction of v5, a 20m resolution is also available for estimation, which you can enable with highres. Note that filtering with a bounding box doesn't yet work when highres is true.

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 just DataFrame(g) with the default options.

source

# SpaceLiDAR.pointsFunction.

points(g::ICESat2_Granule{:ATL12}, tracks=icesat2_tracks)

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.

source

GEDI

# SpaceLiDAR.boundsMethod.

bounds(granule::GEDI_Granule)

Return the bounds of the GEDI granule.

Warning

This opens the .h5 file to read all tracks, so it is very slow.

source


  1. 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.