Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

GEDI Module

1. Overview

The GEDI API currently provides subsetting and raster sampling capabilities to SlideRule for the L1B, L2A, L3, L4A, and L4B datasets.

2. Parameters

The GEDI module provides additional parameters specific to making GEDI processing requests.

2.1 Parameter reference table

The default set of parameters used by SlideRule are set to recommended settings.

IGEDI Request Parameters

ParameterUnitsDefault
"beams"EnumerationAll beams selected
"degrade_filter"BooleanFalse
"l2_quality_filter"BooleanFalse
"l4_quality_filter"BooleanFalse
"surface_filter"BooleanFalse

3. Returned data

The main kind of data returned by the GEDI APIs are elevation and vegetation measurements organized around the concept of a footprint. An footprint is a single laser shot reflection on the earth from one of GEDI’s laser beams and the resulting digitization and measurements made from it.

Each footprint is uniquely identified by a shot number. The shot number is provided in the underlying source datasets and is consistent from request to request. This means subsequent runs of SlideRule with the same request parameters will return the same shot numbers.

3.1 L1B Footprints

The waveform data is stored as sequential arrays inside the GEDI granules. The data is read by SlideRule, organized into the individual footprints, subsetted to the area of interest specified by the user, and returned as a GeoDataFrame where each row is a footprint and the waveform is a numpy array in the waveform column.

3.2 L2A Footprints

The footprint data is stored along-track inside the GEDI granules. The data is read by SlideRule, organized into the individual footprints, subsetted to the area of interest specified by the user, and returned as a GeoDataFrame where each row is a footprint.

3.3 L3 Raster

The following raster datasets are available to sample:

For example, if you wanted to sample the GEDI L3 Canopy raster and calculate zonal statistics for every ICESat-2 PhoREAL data point, then you could add the following entry to your parameters for your PhoREAL request:

parms["samples"]: {"canopy": {"asset": "gedil3-canopy", "radius": 10.0, "zonal_stats": True}}

3.4 L4A Footprints

The footprint data is stored along-track inside the GEDI granules. The data is read by SlideRule, organized into the individual footprints, subsetted to the area of interest specified by the user, and returned as a GeoDataFrame where each row is a footprint.

3.3 L4B Raster

The following raster datasets are available to sample:

For example, if you wanted to sample the GEDI L4B biodensity raster and calculate zonal statistics for every ICESat-2 PhoREAL data point, then you could add the following entry to your parameters for your PhoREAL request:

parms["samples"]: {"agdb": {"asset": "gedil4b", "radius": 10.0, "zonal_stats": True}}

4. Callbacks

For large processing requests, it is possible that the data returned from the API is too large or impractical to fit in the local memory of the Python interpreter making the request. In these cases, certain APIs in the SlideRule Python client allow the calling application to provide a callback function that is called for every result that is returned by the servers. If a callback is supplied, the API will not return back to the calling application anything associated with the supplied record types, but assumes the callback fully handles processing the data. The callback function takes the following form:

callback(record, session)

Callback that handles the results of a processing request for the given record.

Here is an example of a callback being used for the gedi01bp function:

rec_cnt = 0

def gedi01bp_cb(rec, session):
    global rec_cnt
    rec_cnt += 1
    print("{} {}".format(rec_cnt, rec["shot_number"]), end='\r')

gdf = gedi.gedi01bp({}, callbacks = {"gedi01brec": gedi01bp_cb})