Skip to content

API reference

Mission operations

# SpaceAltimetry.ICESat.QualityType.

Quality()

Filter: keep only high-quality ICESat (GLAH06/GLAH14) returns following Smith et al. (2020). The product-specific attitude column is selected by dispatch (:sigma_att_flg for GLAH06, :attitude for GLAH14). See icesat_quality.

source

# SpaceAltimetry.ICESat.SaturationCorrectType.

SaturationCorrect()

Transform: add :saturation_correction to :height (ICESat). Equivalent to icesat_saturation_correct!.

source

# SpaceAltimetry.ICESat.TopexToWGS84Type.

TopexToWGS84()

Transform: convert ICESat (GLAH06/GLAH14) TOPEX/Poseidon ellipsoid :height (and :height_reference if present) to WGS84. Equivalent to topex_to_wgs84!.

source

# SpaceAltimetry.ICESat2.QualityType.

Quality()

Filter ICESat-2 rows using the quality field exposed by the point methods. ATL03 keeps nominal photons (quality_ph == 0); ATL06 and ATL08 keep rows whose product quality summary is true.

source

# SpaceAltimetry.GEDI.QualityType.

Quality()

Filter GEDI L2A rows using the criteria by 1, except for the sensitivity field, which can be manually filtered to be above 0.9 and below or equal to 1.0 to match1.

The filter auto-loads the following datasets:

Dataset Required value Purpose
rx_assess/quality_flag nonzero Receive waveform passed basic assessment
surface_flag nonzero Lowest detected mode is within 300 m of the reference surface
geolocation/stale_return_flag zero Geolocation does not use a stale return
rx_assess/rx_maxamp / rx_assess/sd_corrected at least 8 Return amplitude is sufficiently above noise
degrade_flag zero Instrument was not in a degraded state
selected_algorithm 1 through 6 Identifies the waveform algorithm used for this shot
rx_processing_aN/rx_algrunflag nonzero The selected algorithm ran successfully
rx_processing_aN/zcross greater than zero The selected algorithm found a valid lower threshold crossing
rx_processing_aN/toploc greater than zero The selected algorithm found a valid waveform top

For the final three checks, N is chosen independently for each row from selected_algorithm; fields for all six algorithms are loaded so mixed algorithm selections can be filtered in one pass. Missing values, invalid algorithm numbers, and failed criteria reject the row.

Sensitivity is intentionally separate; compose this filter with Sensitivity when needed.

source

# SpaceAltimetry.GEDI.SensitivityType.

Sensitivity([gt=0.9])
Sensitivity(; gt=0.9)

Filter GEDI L2A rows to gt < sensitivity <= 1.0. GEDI sensitivity is stored on a 0-1 scale; values outside that range and missing values are rejected.

source

ICESat helpers

# SpaceAltimetry.topex_to_wgs84!Function.

topex_to_wgs84!(t)
topex_to_wgs84(t)

Convert ICESat coordinates from the TOPEX/Poseidon ellipsoid to WGS84. Transforms :height (and :height_reference if present). Latitude/longitude differences are below instrument precision (~1e-6°) and are not modified.

If t carries "GEOINTERFACE:crs" metadata equal to EPSG(4979) (or already in EGM2008), the projection is skipped — applying it twice would corrupt heights. After a successful projection, the new CRS is written to t's metadata if writable.

Only meaningful for ICESat granules (GLAH06/GLAH14). Rows with missing inputs are left untouched.

source

# SpaceAltimetry.icesat_saturation_correct!Function.

icesat_saturation_correct!(t)
icesat_saturation_correct(t)

Add :saturation_correction to :height. Missing corrections (the original ICESat fill sentinel, mapped to missing by table()) leave the height untouched. Missing heights stay missing because missing + x === missing.

Only meaningful for ICESat granules (GLAH06/GLAH14). Call before topex_to_wgs84!.

source

# SpaceAltimetry.icesat_qualityFunction.

icesat_quality(t) -> BitVector
icesat_quality(elev_use_flg, sigma_att_flg_or_nothing, i_numPk_or_nothing, saturation_correction_or_nothing) -> BitVector

Compute the ICESat quality mask following Smith et al. (2020)2:

  • elev_use_flg == "valid" (HDF5 flag value 0)
  • sigma_att_flg == "good" (or :attitude for GLAH14)
  • i_numPk == 1
  • saturation_correction < 3

Missing values map to false. Returns a fresh BitVector suitable for filtering (e.g. t.height[icesat_quality(t)]). Pass nothing for any optional column to skip that predicate.

source


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

  2. Smith, B., et al. (2020). Pervasive ice sheet mass loss reflects competing ocean and atmosphere processes. Science, 368(6496), 1239-1242.