Variable Presets Reference#

When you pass -l2a default or -l2a minimal on the command line, gedih3 expands that keyword into a concrete list of HDF5 variable names. This page documents exactly which variables each keyword selects, for every supported product and GEDI data version.


Preset Levels#

Keyword

What it selects

minimal / min

Smallest usable set per product/version — primary science variables and quality flag. Geolocation, time, elevation, and degrade flag always come from L2A essentials. Hardcoded in config.py.

default / def

Expert-curated science-ready set, loaded from the bundled .txt file in src/gedih3/data/. Designed to cover common research workflows without requiring HDF5 expertise.

all / * / bare flag

Every variable present in the HDF5 file for that product (all beams). Use with caution — there are 100+ variables per beam for each product.

/path/to/file.txt

Plain-text file with one HDF5 variable name per line; #-prefixed lines are treated as comments.

explicit names

One or more exact HDF5 variable names inline, e.g. -l2a rh quality_flag land_cover_data/pft_class -l4a agbd.

wildcard pattern

Shell-style pattern using *, ?, [seq], [!seq] to match multiple variables at once (see below).


L2A Essentials — Always Present#

Regardless of which products or presets you select, the build pipeline always includes L2A essentials. These variables are guaranteed to be in every database:

shot_number
delta_time
quality_flag
degrade_flag
sensitivity
lat_lowestmode
lon_lowestmode
elev_lowestmode
shot_number
delta_time
l2a_quality_flag_rel3
degrade_flag
sensitivity
lat_lowestmode
lon_lowestmode
elev_lowestmode

Because L2A provides coordinates, time, elevation, and quality context for all shots, downstream products (L2B, L4A, L4C) do not duplicate these variables in their preset lists.


Wildcard Patterns#

All tools that accept variable names also support shell-style wildcard patterns. This works across all stages — download, build, extract, and aggregate.

Pattern

Matches

rh_*

All RH percentiles (rh_000 through rh_100)

geolocation/sensitivity_a*

sensitivity_a1, sensitivity_a2, sensitivity_a5, …

geolocation/*_a[125]

All algorithm a1/a2/a5 geolocation variables

wsci_*

All WSCI variables

agbd_prediction/agbd_?e_a*

agbd_se_a1, agbd_se_a2, agbd_se_a5, …

# Build with only algorithm-a1 geolocation variables
gh3_build -r "-51,0,-50,1" -l2a "geolocation/*_a1" -l4a default -s3

# Extract all RH percentiles
gh3_extract -d /path/to/database -l2a "rh_*" -o output/

# Aggregate all AGBD variables
gh3_aggregate -d /path/to/database -h3 6 -l4a "agbd*" -o output/

# Use --list with suffixed wildcard
gh3_extract -d /path/to/database -l "rh_*_l2a" -o output/

Important

Quote wildcard patterns to prevent shell expansion: use -l2a "rh_*" or -l2a 'rh_*', not -l2a rh_*.


CLI Usage#

# Minimal set (fastest build, smallest files)
gh3_build -r "-51,0,-50,1" -l2a minimal -l4a minimal -s3

# Default science-ready set
gh3_build -r "-51,0,-50,1" -l2a default -l4a default

# Explicit variables
gh3_build -r "-51,0,-50,1" -l2a rh quality_flag lat_lowestmode lon_lowestmode -l2b cover -l4a agbd

# From a custom file (one variable per line, # comments allowed)
gh3_build -r "-51,0,-50,1" -l2a /path/to/my_l2a_vars.txt

# All variables (use with caution)
gh3_build -r "-51,0,-50,1" -l2a all

L1B — Geolocated Waveforms#

minimal#

shot_number
stale_return_flag
noise_mean_corrected
rx_sample_start_index
rx_sample_count
rxwaveform
geolocation/elevation_bin0
geolocation/elevation_lastbin
shot_number
stale_return_flag
rx_clipflag
noise_mean_corrected
rx_sample_start_index
rx_sample_count
rxwaveform
geolocation/elevation_bin0
geolocation/elevation_lastbin

default#

# Receive waveform (8)
shot_number
stale_return_flag
noise_mean_corrected
noise_stddev_corrected
rx_sample_start_index
rx_sample_count
rx_energy
rxwaveform

# Transmit pulse flag (1)
tx_pulseflag

# Geolocation (20) — position, elevation, errors, DEM, solar, beam angles
geolocation/degrade
geolocation/latitude_bin0
geolocation/longitude_bin0
geolocation/elevation_bin0
geolocation/latitude_lastbin
geolocation/longitude_lastbin
geolocation/elevation_lastbin
geolocation/latitude_bin0_error
geolocation/longitude_bin0_error
geolocation/elevation_bin0_error
geolocation/latitude_lastbin_error
geolocation/longitude_lastbin_error
geolocation/elevation_lastbin_error
geolocation/digital_elevation_model
geolocation/digital_elevation_model_srtm
geolocation/solar_elevation
geolocation/local_beam_elevation
geolocation/local_beam_elevation_error
geolocation/local_beam_azimuth
geolocation/local_beam_azimuth_error
# Receive waveform (12) — new: rx_clip*, mean_64kadjusted
shot_number
stale_return_flag
noise_mean_corrected
noise_stddev_corrected
mean_64kadjusted
rx_clipbin0
rx_clipbin_count
rx_clipflag
rx_sample_start_index
rx_sample_count
rx_energy
rxwaveform

# Transmit pulse flag (1)
tx_pulseflag

# Geolocation (20) — position, elevation, errors, DEM, solar, beam angles
geolocation/degrade
geolocation/latitude_bin0
geolocation/longitude_bin0
geolocation/elevation_bin0
geolocation/latitude_lastbin
geolocation/longitude_lastbin
geolocation/elevation_lastbin
geolocation/latitude_bin0_error
geolocation/longitude_bin0_error
geolocation/elevation_bin0_error
geolocation/latitude_lastbin_error
geolocation/longitude_lastbin_error
geolocation/elevation_lastbin_error
geolocation/digital_elevation_model
geolocation/digital_elevation_model_srtm
geolocation/solar_elevation
geolocation/local_beam_elevation
geolocation/local_beam_elevation_error
geolocation/local_beam_azimuth
geolocation/local_beam_azimuth_error

L2A — Elevation and Height Metrics#

minimal#

shot_number
delta_time
quality_flag
degrade_flag
sensitivity
lat_lowestmode
lon_lowestmode
elev_lowestmode
rh
shot_number
delta_time
l2a_quality_flag_rel3
degrade_flag
sensitivity
lat_lowestmode
lon_lowestmode
elev_lowestmode
rh

default#

# Core (20)
beam
channel
degrade_flag
delta_time
digital_elevation_model
digital_elevation_model_srtm
elevation_bias_flag
selected_algorithm
selected_mode
num_detectedmodes
shot_number
solar_azimuth
solar_elevation
surface_flag
lat_lowestmode
lon_lowestmode
elev_lowestmode
quality_flag
rh
sensitivity

# Geolocation — stale flag (1)
geolocation/stale_return_flag

# Geolocation — algorithm a1 (13)
geolocation/elev_highestreturn_a1
geolocation/elev_lowestmode_a1
geolocation/elev_lowestreturn_a1
geolocation/lat_highestreturn_a1
geolocation/lat_lowestmode_a1
geolocation/lat_lowestreturn_a1
geolocation/lon_highestreturn_a1
geolocation/lon_lowestmode_a1
geolocation/lon_lowestreturn_a1
geolocation/num_detectedmodes_a1
geolocation/quality_flag_a1
geolocation/rh_a1
geolocation/sensitivity_a1

# Geolocation — algorithm a2 (13)
geolocation/elev_highestreturn_a2
geolocation/elev_lowestmode_a2
geolocation/elev_lowestreturn_a2
geolocation/lat_highestreturn_a2
geolocation/lat_lowestmode_a2
geolocation/lat_lowestreturn_a2
geolocation/lon_highestreturn_a2
geolocation/lon_lowestmode_a2
geolocation/lon_lowestreturn_a2
geolocation/num_detectedmodes_a2
geolocation/quality_flag_a2
geolocation/rh_a2
geolocation/sensitivity_a2

# Geolocation — algorithm a5 (13)
geolocation/elev_highestreturn_a5
geolocation/elev_lowestmode_a5
geolocation/elev_lowestreturn_a5
geolocation/lat_highestreturn_a5
geolocation/lat_lowestmode_a5
geolocation/lat_lowestreturn_a5
geolocation/lon_highestreturn_a5
geolocation/lon_lowestmode_a5
geolocation/lon_lowestreturn_a5
geolocation/num_detectedmodes_a5
geolocation/quality_flag_a5
geolocation/rh_a5
geolocation/sensitivity_a5

# rx_assess (7)
rx_assess/mean_64kadjusted
rx_assess/mean
rx_assess/sd_corrected
rx_assess/quality_flag
rx_assess/rx_assess_flag
rx_assess/rx_maxamp
rx_assess/rx_energy

# rx_processing — algorithm a1 (5)
rx_processing_a1/zcross
rx_processing_a1/toploc
rx_processing_a1/botloc
rx_processing_a1/rx_algrunflag
rx_processing_a1/selected_mode_flag

# rx_processing — algorithm a2 (5)
rx_processing_a2/zcross
rx_processing_a2/toploc
rx_processing_a2/botloc
rx_processing_a2/rx_algrunflag
rx_processing_a2/selected_mode_flag

# rx_processing — algorithm a5 (5)
rx_processing_a5/zcross
rx_processing_a5/toploc
rx_processing_a5/botloc
rx_processing_a5/rx_algrunflag
rx_processing_a5/selected_mode_flag

# land_cover_data (6)
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/leaf_off_flag
land_cover_data/pft_class
land_cover_data/region_class
land_cover_data/urban_proportion
# Core (21) — dual quality flags; num_detectedmodes added
beam
channel
degrade_flag
delta_time
digital_elevation_model
digital_elevation_model_srtm
elevation_bias_flag
selected_algorithm
selected_mode
num_detectedmodes
shot_number
solar_azimuth
solar_elevation
surface_flag
lat_lowestmode
lon_lowestmode
elev_lowestmode
l2a_quality_flag_rel2
l2a_quality_flag_rel3
rh
sensitivity

# Geolocation — stale flag (1)
geolocation/stale_return_flag

# Geolocation — algorithm a1 (13)
geolocation/elev_highestreturn_a1
geolocation/elev_lowestmode_a1
geolocation/elev_lowestreturn_a1
geolocation/lat_highestreturn_a1
geolocation/lat_lowestmode_a1
geolocation/lat_lowestreturn_a1
geolocation/lon_highestreturn_a1
geolocation/lon_lowestmode_a1
geolocation/lon_lowestreturn_a1
geolocation/num_detectedmodes_a1
geolocation/l2a_quality_flag_rel3_a1
geolocation/rh_a1
geolocation/sensitivity_a1

# Geolocation — algorithm a2 (13)
geolocation/elev_highestreturn_a2
geolocation/elev_lowestmode_a2
geolocation/elev_lowestreturn_a2
geolocation/lat_highestreturn_a2
geolocation/lat_lowestmode_a2
geolocation/lat_lowestreturn_a2
geolocation/lon_highestreturn_a2
geolocation/lon_lowestmode_a2
geolocation/lon_lowestreturn_a2
geolocation/num_detectedmodes_a2
geolocation/l2a_quality_flag_rel3_a2
geolocation/rh_a2
geolocation/sensitivity_a2

# Geolocation — algorithm a5 (13)
geolocation/elev_highestreturn_a5
geolocation/elev_lowestmode_a5
geolocation/elev_lowestreturn_a5
geolocation/lat_highestreturn_a5
geolocation/lat_lowestmode_a5
geolocation/lat_lowestreturn_a5
geolocation/lon_highestreturn_a5
geolocation/lon_lowestmode_a5
geolocation/lon_lowestreturn_a5
geolocation/num_detectedmodes_a5
geolocation/l2a_quality_flag_rel3_a5
geolocation/rh_a5
geolocation/sensitivity_a5

# Geolocation — algorithm a10 (13) — new in v3
geolocation/elev_highestreturn_a10
geolocation/elev_lowestmode_a10
geolocation/elev_lowestreturn_a10
geolocation/lat_highestreturn_a10
geolocation/lat_lowestmode_a10
geolocation/lat_lowestreturn_a10
geolocation/lon_highestreturn_a10
geolocation/lon_lowestmode_a10
geolocation/lon_lowestreturn_a10
geolocation/num_detectedmodes_a10
geolocation/l2a_quality_flag_rel3_a10
geolocation/rh_a10
geolocation/sensitivity_a10

# rx_assess (7)
rx_assess/mean_64kadjusted
rx_assess/mean
rx_assess/sd_corrected
rx_assess/quality_flag
rx_assess/rx_assess_flag
rx_assess/rx_maxamp
rx_assess/rx_energy

# rx_processing — algorithm a1 (5)
rx_processing_a1/zcross
rx_processing_a1/toploc
rx_processing_a1/botloc
rx_processing_a1/rx_algrunflag
rx_processing_a1/selected_mode_flag

# rx_processing — algorithm a2 (5)
rx_processing_a2/zcross
rx_processing_a2/toploc
rx_processing_a2/botloc
rx_processing_a2/rx_algrunflag
rx_processing_a2/selected_mode_flag

# rx_processing — algorithm a5 (5)
rx_processing_a5/zcross
rx_processing_a5/toploc
rx_processing_a5/botloc
rx_processing_a5/rx_algrunflag
rx_processing_a5/selected_mode_flag

# rx_processing — algorithm a10 (5) — new in v3
rx_processing_a10/zcross
rx_processing_a10/toploc
rx_processing_a10/botloc
rx_processing_a10/rx_algrunflag
rx_processing_a10/selected_mode_flag

# land_cover_data (9) — adds phenology_phase, phenology_year, worldcover_class
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/leaf_off_flag
land_cover_data/pft_class
land_cover_data/region_class
land_cover_data/urban_proportion
land_cover_data/phenology_phase
land_cover_data/phenology_year
land_cover_data/worldcover_class

L2B — Canopy Cover and Vertical Structure#

minimal#

shot_number
l2b_quality_flag
cover_z
fhd_normal
pai_z
pavd_z
cover
pai
shot_number
l2b_quality_flag_rel3
cover_z
fhd_normal
pai_z
pavd_z
cover
pai
rch

default#

# Core (22) — includes total cover, pai, omega, pgap_theta
algorithmrun_flag
cover
cover_z
fhd_normal
l2b_quality_flag
omega
pai
pai_z
pavd_z
pgap_theta
pgap_theta_error
rg
rossg
rv
rh100
rx_range_highestreturn
selected_rg_algorithm
selected_l2a_algorithm
sensitivity
shot_number
stale_return_flag
surface_flag

# geolocation (6) — no L2A duplicates
geolocation/digital_elevation_model
geolocation/elev_highestreturn
geolocation/lat_highestreturn
geolocation/local_beam_elevation
geolocation/lon_highestreturn
geolocation/solar_elevation

# land_cover_data (6)
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/urban_proportion
land_cover_data/leaf_off_flag
land_cover_data/pft_class
land_cover_data/region_class

# rx_processing — algorithm a1 (6)
rx_processing/algorithmrun_flag_a1
rx_processing/pgap_theta_a1
rx_processing/rg_a1
rx_processing/rg_error_a1
rx_processing/rv_a1
rx_processing/rx_energy_a1

# rx_processing — algorithm a2 (6)
rx_processing/algorithmrun_flag_a2
rx_processing/pgap_theta_a2
rx_processing/rg_a2
rx_processing/rg_error_a2
rx_processing/rv_a2
rx_processing/rx_energy_a2

# rx_processing — algorithm a5 (6)
rx_processing/algorithmrun_flag_a5
rx_processing/pgap_theta_a5
rx_processing/rg_a5
rx_processing/rg_error_a5
rx_processing/rv_a5
rx_processing/rx_energy_a5
# Core (27) — dual quality flags; new metrics rch, rhov_rhog, rv_rg_r; sensitivity retained
cover
cover_z
fhd_normal
l2_algrunflag
l2b_quality_flag_rel2
l2b_quality_flag_rel3
omega
pai
pai_z
pavd_z
pgap_theta
pgap_theta_error
rch
rg
rhov_rhog
rhov_rhog_se
rossg
rv
rv_rg_r
rh100
rx_range_highestreturn
selected_rg_algorithm
selected_l2a_algorithm
sensitivity
shot_number
stale_return_flag
surface_flag

# geolocation (4) — v3 removes DEM and highestreturn fields; adds solar_azimuth
geolocation/local_beam_azimuth
geolocation/local_beam_elevation
geolocation/solar_azimuth
geolocation/solar_elevation

# land_cover_data (9) — adds phenology_phase, phenology_year, worldcover_class
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/urban_proportion
land_cover_data/leaf_off_flag
land_cover_data/phenology_phase
land_cover_data/phenology_year
land_cover_data/pft_class
land_cover_data/region_class
land_cover_data/worldcover_class

# rx_processing — algorithms a1, a2, a5, a10 (7 each) — adds fhd_normal, rch per algo
rx_processing/fhd_normal_a1
rx_processing/l2_algrunflag_a1
rx_processing/rch_a1
rx_processing/rg_a1
rx_processing/rg_error_a1
rx_processing/rv_a1
rx_processing/rx_energy_a1
rx_processing/fhd_normal_a2
rx_processing/l2_algrunflag_a2
rx_processing/rch_a2
rx_processing/rg_a2
rx_processing/rg_error_a2
rx_processing/rv_a2
rx_processing/rx_energy_a2
rx_processing/fhd_normal_a5
rx_processing/l2_algrunflag_a5
rx_processing/rch_a5
rx_processing/rg_a5
rx_processing/rg_error_a5
rx_processing/rv_a5
rx_processing/rx_energy_a5
rx_processing/fhd_normal_a10
rx_processing/l2_algrunflag_a10
rx_processing/rch_a10
rx_processing/rg_a10
rx_processing/rg_error_a10
rx_processing/rv_a10
rx_processing/rx_energy_a10

v3 adds dual quality flags (l2b_quality_flag_rel2/rel3), new metrics (rch, rhov_rhog, rv_rg_r), restructures geolocation, expands land cover, and adds fhd_normal_aX/rch_aX to rx_processing.


L4A — Footprint-Level Aboveground Biomass#

minimal#

shot_number
agbd
agbd_se
l4_quality_flag
shot_number
agbd
agbd_se
l4a_quality_flag_rel3
elev_highestreturn_outlier_flag

default#

# Core (16) — no L2A duplicates (coords/time/degrade from L2A)
agbd
agbd_se
agbd_t
agbd_t_se
algorithm_run_flag
l2_quality_flag
l4_quality_flag
predict_stratum
predictor_limit_flag
response_limit_flag
selected_algorithm
sensitivity
shot_number
solar_elevation
surface_flag
xvar

# land_cover_data (6)
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/leaf_off_flag
land_cover_data/pft_class
land_cover_data/region_class
land_cover_data/urban_proportion

# geolocation — algorithms a1, a2, a5 (4 each)
geolocation/elev_lowestmode_a1
geolocation/lat_lowestmode_a1
geolocation/lon_lowestmode_a1
geolocation/sensitivity_a1
geolocation/elev_lowestmode_a2
geolocation/lat_lowestmode_a2
geolocation/lon_lowestmode_a2
geolocation/sensitivity_a2
geolocation/elev_lowestmode_a5
geolocation/lat_lowestmode_a5
geolocation/lon_lowestmode_a5
geolocation/sensitivity_a5

# agbd_prediction — algorithms a1, a2, a5 (12 each)
agbd_prediction/agbd_a1
agbd_prediction/agbd_se_a1
agbd_prediction/agbd_t_a1
agbd_prediction/agbd_t_se_a1
agbd_prediction/algorithm_run_flag_a1
agbd_prediction/l2_quality_flag_a1
agbd_prediction/l4_quality_flag_a1
agbd_prediction/predictor_limit_flag_a1
agbd_prediction/response_limit_flag_a1
agbd_prediction/selected_mode_a1
agbd_prediction/selected_mode_flag_a1
agbd_prediction/xvar_a1
agbd_prediction/agbd_a2
agbd_prediction/agbd_se_a2
agbd_prediction/agbd_t_a2
agbd_prediction/agbd_t_se_a2
agbd_prediction/algorithm_run_flag_a2
agbd_prediction/l2_quality_flag_a2
agbd_prediction/l4_quality_flag_a2
agbd_prediction/predictor_limit_flag_a2
agbd_prediction/response_limit_flag_a2
agbd_prediction/selected_mode_a2
agbd_prediction/selected_mode_flag_a2
agbd_prediction/xvar_a2
agbd_prediction/agbd_a5
agbd_prediction/agbd_se_a5
agbd_prediction/agbd_t_a5
agbd_prediction/agbd_t_se_a5
agbd_prediction/algorithm_run_flag_a5
agbd_prediction/l2_quality_flag_a5
agbd_prediction/l4_quality_flag_a5
agbd_prediction/predictor_limit_flag_a5
agbd_prediction/response_limit_flag_a5
agbd_prediction/selected_mode_a5
agbd_prediction/selected_mode_flag_a5
agbd_prediction/xvar_a5
# Core (20) — no L2A duplicates; new v3 flags and prediction intervals; sensitivity retained
agbd
agbd_pi_lower
agbd_pi_upper
agbd_se
agbd_t
agbd_t_se
degrade_include_flag
elev_highestreturn_outlier_flag
l2_algrunflag
l4a_quality_flag_rel3
predict_stratum
predictor_limit_flag
response_limit_flag
selected_algorithm
selected_mode_flag
sensitivity
shot_number
solar_elevation
surface_flag
xvar

# land_cover_data (10) — new: pft_infilled_class, worldcover_class, phenology
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/leaf_off_flag
land_cover_data/phenology_phase
land_cover_data/phenology_year
land_cover_data/pft_class
land_cover_data/pft_infilled_class
land_cover_data/region_class
land_cover_data/urban_proportion
land_cover_data/worldcover_class

# geolocation — algorithms a1, a2, a5, a10 (4 each)
geolocation/elev_lowestmode_a1
geolocation/lat_lowestmode_a1
geolocation/lon_lowestmode_a1
geolocation/sensitivity_a1
geolocation/elev_lowestmode_a2
geolocation/lat_lowestmode_a2
geolocation/lon_lowestmode_a2
geolocation/sensitivity_a2
geolocation/elev_lowestmode_a5
geolocation/lat_lowestmode_a5
geolocation/lon_lowestmode_a5
geolocation/sensitivity_a5
geolocation/elev_lowestmode_a10
geolocation/lat_lowestmode_a10
geolocation/lon_lowestmode_a10
geolocation/sensitivity_a10

# agbd_prediction — algorithms a1, a2, a5, a10 (11 each)
# v3: adds prediction intervals; removes algorithm_run_flag_a*, l2/l4_quality_flag_a*,
#     selected_mode_a*; renames to l2_algrunflag_a*
agbd_prediction/agbd_a1
agbd_prediction/agbd_pi_lower_a1
agbd_prediction/agbd_pi_upper_a1
agbd_prediction/agbd_se_a1
agbd_prediction/agbd_t_a1
agbd_prediction/agbd_t_se_a1
agbd_prediction/l2_algrunflag_a1
agbd_prediction/predictor_limit_flag_a1
agbd_prediction/response_limit_flag_a1
agbd_prediction/selected_mode_flag_a1
agbd_prediction/xvar_a1
agbd_prediction/agbd_a2
agbd_prediction/agbd_pi_lower_a2
agbd_prediction/agbd_pi_upper_a2
agbd_prediction/agbd_se_a2
agbd_prediction/agbd_t_a2
agbd_prediction/agbd_t_se_a2
agbd_prediction/l2_algrunflag_a2
agbd_prediction/predictor_limit_flag_a2
agbd_prediction/response_limit_flag_a2
agbd_prediction/selected_mode_flag_a2
agbd_prediction/xvar_a2
agbd_prediction/agbd_a5
agbd_prediction/agbd_pi_lower_a5
agbd_prediction/agbd_pi_upper_a5
agbd_prediction/agbd_se_a5
agbd_prediction/agbd_t_a5
agbd_prediction/agbd_t_se_a5
agbd_prediction/l2_algrunflag_a5
agbd_prediction/predictor_limit_flag_a5
agbd_prediction/response_limit_flag_a5
agbd_prediction/selected_mode_flag_a5
agbd_prediction/xvar_a5
agbd_prediction/agbd_a10
agbd_prediction/agbd_pi_lower_a10
agbd_prediction/agbd_pi_upper_a10
agbd_prediction/agbd_se_a10
agbd_prediction/agbd_t_a10
agbd_prediction/agbd_t_se_a10
agbd_prediction/l2_algrunflag_a10
agbd_prediction/predictor_limit_flag_a10
agbd_prediction/response_limit_flag_a10
agbd_prediction/selected_mode_flag_a10
agbd_prediction/xvar_a10

v3 renames algorithm_run_flag → l2_algrunflag, adds prediction intervals (agbd_pi_lower/upper), and expands land cover with phenology and PFT infilled class.


L4C — Footprint-Level Structural Complexity#

minimal#

shot_number
wsci
wsci_xy
wsci_z
wsci_pi_lower
wsci_pi_upper
wsci_quality_flag
land_cover_data/worldcover_class
shot_number
wsci
wsci_xy
wsci_z
wsci_pi_lower
wsci_pi_upper
l4c_quality_flag_rel3
land_cover_data/worldcover_class
elev_highestreturn_outlier_flag

default#

# Core (18)
shot_number
wsci
wsci_xy
wsci_z
wsci_pi_lower
wsci_pi_upper
wsci_xy_pi_lower
wsci_xy_pi_upper
wsci_z_pi_lower
wsci_z_pi_upper
wsci_quality_flag
l2_quality_flag
algorithm_run_flag
sensitivity
surface_flag
selected_algorithm
solar_elevation
fhd_normal

# Land cover (7)
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/leaf_off_flag
land_cover_data/pft_class
land_cover_data/region_class
land_cover_data/urban_proportion
land_cover_data/worldcover_class

# wsci_prediction — algorithms a1, a2, a5, a10 (11 each)
wsci_prediction/algorithm_run_flag_a1
wsci_prediction/wsci_quality_flag_a1
wsci_prediction/wsci_a1
wsci_prediction/wsci_pi_lower_a1
wsci_prediction/wsci_pi_upper_a1
wsci_prediction/wsci_xy_a1
wsci_prediction/wsci_xy_pi_lower_a1
wsci_prediction/wsci_xy_pi_upper_a1
wsci_prediction/wsci_z_a1
wsci_prediction/wsci_z_pi_lower_a1
wsci_prediction/wsci_z_pi_upper_a1
wsci_prediction/algorithm_run_flag_a2
wsci_prediction/wsci_quality_flag_a2
wsci_prediction/wsci_a2
wsci_prediction/wsci_pi_lower_a2
wsci_prediction/wsci_pi_upper_a2
wsci_prediction/wsci_xy_a2
wsci_prediction/wsci_xy_pi_lower_a2
wsci_prediction/wsci_xy_pi_upper_a2
wsci_prediction/wsci_z_a2
wsci_prediction/wsci_z_pi_lower_a2
wsci_prediction/wsci_z_pi_upper_a2
wsci_prediction/algorithm_run_flag_a5
wsci_prediction/wsci_quality_flag_a5
wsci_prediction/wsci_a5
wsci_prediction/wsci_pi_lower_a5
wsci_prediction/wsci_pi_upper_a5
wsci_prediction/wsci_xy_a5
wsci_prediction/wsci_xy_pi_lower_a5
wsci_prediction/wsci_xy_pi_upper_a5
wsci_prediction/wsci_z_a5
wsci_prediction/wsci_z_pi_lower_a5
wsci_prediction/wsci_z_pi_upper_a5
wsci_prediction/algorithm_run_flag_a10
wsci_prediction/wsci_quality_flag_a10
wsci_prediction/wsci_a10
wsci_prediction/wsci_pi_lower_a10
wsci_prediction/wsci_pi_upper_a10
wsci_prediction/wsci_xy_a10
wsci_prediction/wsci_xy_pi_lower_a10
wsci_prediction/wsci_xy_pi_upper_a10
wsci_prediction/wsci_z_a10
wsci_prediction/wsci_z_pi_lower_a10
wsci_prediction/wsci_z_pi_upper_a10
# Core (20) — dual quality flags; new v3-specific flags
shot_number
wsci
wsci_xy
wsci_z
wsci_pi_lower
wsci_pi_upper
wsci_xy_pi_lower
wsci_xy_pi_upper
wsci_z_pi_lower
wsci_z_pi_upper
l4c_quality_flag_rel2
l4c_quality_flag_rel3
l2_algrunflag
algorithm_run_flag
elev_highestreturn_outlier_flag
degrade_include_flag
surface_flag
selected_algorithm
solar_elevation
fhd_normal

# Land cover (9) — adds phenology_phase, phenology_year
land_cover_data/landsat_treecover
land_cover_data/landsat_water_persistence
land_cover_data/leaf_off_flag
land_cover_data/phenology_phase
land_cover_data/phenology_year
land_cover_data/pft_class
land_cover_data/region_class
land_cover_data/urban_proportion
land_cover_data/worldcover_class

# wsci_prediction — algorithms a1, a2, a5, a10 (11 each) — wsci_quality_flag_aX → l4c_quality_flag_rel3_aX
wsci_prediction/algorithm_run_flag_a1
wsci_prediction/l4c_quality_flag_rel3_a1
wsci_prediction/wsci_a1
wsci_prediction/wsci_pi_lower_a1
wsci_prediction/wsci_pi_upper_a1
wsci_prediction/wsci_xy_a1
wsci_prediction/wsci_xy_pi_lower_a1
wsci_prediction/wsci_xy_pi_upper_a1
wsci_prediction/wsci_z_a1
wsci_prediction/wsci_z_pi_lower_a1
wsci_prediction/wsci_z_pi_upper_a1
wsci_prediction/algorithm_run_flag_a2
wsci_prediction/l4c_quality_flag_rel3_a2
wsci_prediction/wsci_a2
wsci_prediction/wsci_pi_lower_a2
wsci_prediction/wsci_pi_upper_a2
wsci_prediction/wsci_xy_a2
wsci_prediction/wsci_xy_pi_lower_a2
wsci_prediction/wsci_xy_pi_upper_a2
wsci_prediction/wsci_z_a2
wsci_prediction/wsci_z_pi_lower_a2
wsci_prediction/wsci_z_pi_upper_a2
wsci_prediction/algorithm_run_flag_a5
wsci_prediction/l4c_quality_flag_rel3_a5
wsci_prediction/wsci_a5
wsci_prediction/wsci_pi_lower_a5
wsci_prediction/wsci_pi_upper_a5
wsci_prediction/wsci_xy_a5
wsci_prediction/wsci_xy_pi_lower_a5
wsci_prediction/wsci_xy_pi_upper_a5
wsci_prediction/wsci_z_a5
wsci_prediction/wsci_z_pi_lower_a5
wsci_prediction/wsci_z_pi_upper_a5
wsci_prediction/algorithm_run_flag_a10
wsci_prediction/l4c_quality_flag_rel3_a10
wsci_prediction/wsci_a10
wsci_prediction/wsci_pi_lower_a10
wsci_prediction/wsci_pi_upper_a10
wsci_prediction/wsci_xy_a10
wsci_prediction/wsci_xy_pi_lower_a10
wsci_prediction/wsci_xy_pi_upper_a10
wsci_prediction/wsci_z_a10
wsci_prediction/wsci_z_pi_lower_a10
wsci_prediction/wsci_z_pi_upper_a10

v3 adds dual quality flags, drops sensitivity (from L2A v3 essentials), expands land cover with phenology, and renames wsci_quality_flag_aX → l4c_quality_flag_rel3_aX in wsci_prediction.


Quality Filtering#

The --quality / -y flag applies recommended quality conditions for each product present in your query, all combined with AND. L2A conditions are always applied since L2A data is present in every database (L2A alone when no product is detected). The one exception is degrade_flag == 0 for a v3 query on L4A or L4C without an L2 product (see below).

Product

Version

Conditions Applied

L1B

v2

stale_return_flag == 0

L1B

v3

stale_return_flag == 0 AND rx_clipflag == 0

L2A (always)

v2

quality_flag == 1 AND degrade_flag == 0

L2A (always)

v3

l2a_quality_flag_rel3 == 1 AND degrade_flag == 0 (degrade_flag left out for an L4A/L4C v3 query with no L2A or L2B)

L2B

v2

l2b_quality_flag == 1

L2B

v3

l2b_quality_flag_rel3 == 1

L4A

v2

l4_quality_flag == 1

L4A

v3

l4a_quality_flag_rel3 == 1 AND degrade_include_flag == 1 AND elev_highestreturn_outlier_flag == 0

L4C

v2

wsci_quality_flag == 1 (includes degrade+sensitivity+surface internally)

L4C

v3

l4c_quality_flag_rel3 == 1 AND degrade_include_flag == 1 AND elev_highestreturn_outlier_flag == 0

L4C v2’s wsci_quality_flag already encapsulates degrade, sensitivity, and surface checks internally.

L4A and L4C v3 carry two flags meant to be applied together: degrade_include_flag (1 = pointing and positioning quality acceptable for inclusion) and elev_highestreturn_outlier_flag (1 = the shot lies on an orbit section whose canopy elevation metrics are large outliers). degrade_include_flag is the products’ own pointing and positioning filter, and it admits some shots that degrade_flag == 0 rejects. So when a v3 query selects L4A and/or L4C but neither L2A nor L2B (L1B does not count), the always-applied L2A conditions leave out degrade_flag == 0 and keep l2a_quality_flag_rel3 == 1. Selecting L2A or L2B as well keeps the full L2A conditions alongside the L4 ones, degrade_flag == 0 included. Products are selected with their product flags or, without them, from the suffixes of the columns the command reads (-l names, a -l file or wildcard, gh3_aggregate’s dict-form -a keys):

Query (v3)

Degrade conditions

-l agbd_l4a (L4A only), or L4C only, or L1B with L4A/L4C

degrade_include_flag == 1

-l agbd_l4a rh_098_l2a (L2A + L4A), or L2B + L4A

degrade_flag == 0 AND degrade_include_flag == 1

no product detected, L2A only, L2B only

degrade_flag == 0

Every flag in this table is appended to the product’s variable list at build time, whatever list you give (minimal, default, a file or explicit names), so a database always stores the columns --quality reads.

Note

A v3 database built with an earlier gedih3 may lack degrade_include_flag. --quality then applies the remaining conditions and logs a warning, and it keeps degrade_flag == 0 unless a selected L4 product does have the column. Updates and --replace-granules keep writing new rows without it, so every file keeps one column set. Add it to the whole database with a variable update, naming only the L4 products your database holds: -l4a degrade_include_flag and/or -l4c degrade_include_flag, e.g. gh3_build -i <soc> -o <database> -l4a degrade_include_flag. The warning gedih3 logs names the command for your database.


Source Files#

The default preset for each product/version is loaded directly from a plain-text file shipped with the package. You can inspect or copy these as a starting point for custom variable lists:

Product

Version

Source file

L1B

v2

src/gedih3/data/GEDI01_B_DATASETS_002.txt

L1B

v3

src/gedih3/data/GEDI01_B_DATASETS_003.txt

L2A

v2

src/gedih3/data/GEDI02_A_DATASETS_002.txt

L2A

v3

src/gedih3/data/GEDI02_A_DATASETS_003.txt

L2B

v2

src/gedih3/data/GEDI02_B_DATASETS_002.txt

L2B

v3

src/gedih3/data/GEDI02_B_DATASETS_003.txt

L4A

v2

src/gedih3/data/GEDI04_A_DATASETS_002.txt

L4A

v3

src/gedih3/data/GEDI04_A_DATASETS_003.txt

L4C

v2

src/gedih3/data/GEDI04_C_DATASETS_002.txt

L4C

v3

src/gedih3/data/GEDI04_C_DATASETS_003.txt

The minimal preset is hardcoded in src/gedih3/config.py under _GEDI_MIN_VARS.