Biomass Emissions¶
The /biomass_emissions API call implements a CO2-equivalent emissions calculation based on spatio-temporal above-ground biomass modelling.
Biomass density is modelled annually to assess direct plot- and area-level emissions from land use change (dLUC).
Key Datasets¶
The biomass stock model estimation leverages the following inputs: 1. GEDI LiDAR L4A footprints: GEDI LIDAR L4A footprints constitute the back-bone to the LUC emissions estimates. They measure footprint-level (25m radius) biomass density across landscapes. These are used to train a model to upscale above-ground biomass (AGB) estimates across supply bases and landscapes. They are available between 2018 and 2023 for most regions of the world, and ensure that a broad variety of temporal conditions are captured, enabling more robust predictions across space and time. The agb estimates provided at the footprint level by the GEDI L4A product uses pre-determined allometries for different biomes and plant functional types. The GEDI L2A product (canopy height estimate) can be used instead of L4A, in combination with a custom allometry for a given biome and/or plant functional type.
-
Dynamic World Probabilities: Dynamic World's (Brown et al., 2022) Probability time series are used in combination with Sentinel-2 red, red-edge, near-infrared and short-wave infrared bands, as well as Sentinel-1 VV and VH polarization bands, as inputs to train an Above-Ground Biomass (AGB) model. The reference data used to train the model are the GEDI LiDAR L4A footprints, described above. The Dynamic World probabilities are particularly helpful in providing land use transition context for predicting above-ground biomass.
-
Harmonized Landsat / Sentinel-2 Time Series: In order to get consistent time series data across both Landsat and Sentinel-2, which are some of the main sources of open satellite imagery used in land monitoring, the HLS dataset is leveraged, which ensures radiometric consistency across sensors. For years preceding 2017, Sentinel-2 is not globally consistently available, and in such cases only Landsat is leveraged, which is why it is important that Landsat and Sentinel-2 are radiometrically comparable if not both used, so that predicted above-ground biomass are consistent across time periods.
-
Other Datasets: As more datasets become available in the form of reference data or covariates (e.g. commercial imagery offering), either due to outstanding performance according to state-of-the-art, or because regulations and enforcing agencies require specific datasets or approaches, Epoch will implement these as per required.
Key Considerations¶
See below a list of key considerations to keep in mind when using the /biomass_emissions endpoint:
-
The area calculations are weighted, which means that the exact proportion of overlapping pixels are accounted for in the reported non-compliance areas. This avoids over- and under-accounting issues.
-
The results are as consistent as the plot boundaries (geometries) provided! If the input geometries are approximate, they WILL pick up changes surrounding the plot, which may not be managed by the supply chain actor. Therefore it is of utmost importance that the geo-referenced plots used as inputs to this API call are as accurate as possible.
-
The thumbnail shows changes in and around the plot, but the reported values in the response ONLY report changes WITHIN the plot. The change data surrounding the plot itself is shown in the thumbnail for reference, and to highlight potential risks around the plots themselves. For a more comprehensive statistical comparison to a reference area (supply shed, watershed, administrative unit), the Batch API should be used.
-
The predictions derived from GEDI L4A footprints are only as accurate as the footprints themselves. The footprints' sources of uncertainty come from inaccuracies in the digital elevation model used, positional inaccuracies of the footprints' georeferencing, steepness of slope, the representativeness of the allometric equations per plant functional type used, etc. While we attempt to filter out low accuracy footprints, the models may still be trained on data that over- or under-estimates stocks, which is why an independent validation using field-collected data is necessary to provide carbon accounting for the insetting use case with adequate levels of confidence.
-
The biomass emissions can be modelled from 2000 onwards, with the caveat that for the years preceding 2017, the biomass estimates are produced at 30m resolution rather than 10m resolution.
-
The biomass emissions categories are allocated on the basis of the land cover transition each pixel undergoes. A pixel which has a stable land cover over the monitoring period will be assigned to non-LUC emissions, while a pixel which has undergone a land cover change over the monitoring period will be assigned to LUC emissions. Removals emissions are only accounted for in cases when a specific intervention is monitored and carbon removals should be accounted for. Accounting rules around removals is still under development by the GHG protocol and may be use-case specific, so until a consensus is reached, removals are not accounted for in the emissions estimates, only emissions (reductions).
Parameters and Headers¶
A request to /biomass_emissions/ uses standard query parameters. Parameters that are hidden from the public OpenAPI schema are intentionally omitted here.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
geometry |
string (WKT) | Yes | - | Input geometry (WKT). |
area |
float | No | 4 |
Area in hectares when geometry is a POINT. |
start_date |
string | No | 2017-01-01 |
Start date (YYYY-MM-DD). |
date |
string | No | today (UTC) | End date (YYYY-MM-DD). |
thumbnail |
bool | No | true |
Whether to return a thumbnail. |
map_tile |
bool | No | false |
Whether to return XYZ map tile URLs. |
A typical example of a payload for the /biomass_emissions endpoint is the following:
- Arbitrary default end date. If not specified, will take today's date
- Whether you want to return a thumbnail
- Whether you want dynamic XYZ map tiles to be returned
With the headers being:
The Authorization header must be replaced by your user token. Check this page for more information on how to authenticate.
Python¶
In python, you can submit a request in the following way:
| biomass_emissions.py | |
|---|---|
Javascript¶
| biomass_emissions.js | |
|---|---|
Curl¶
Response¶
The response looks like this:
- Mean above-ground biomass density in ton CO2-equivalent per hectare for each year
- Mean above-ground biomass density potential in ton CO2-equivalent per hectare. This is a theoretical maximum which could be achieved at this location were it covered in natural forest.
- Above-groud biomass density Standard Deviation, expressed in same unit (ton CO2-equivalent per hectare). High heterogeneity at plot level in terms of AGB density yields higher standard deviation.
- Above-ground biomass density potential standard deviation in ton CO2-equivalent per hectare.
- Mean below-ground biomass density in ton CO2-equivalent per hectare for each year, derived using a root:shoot ratio for the appropriate biome type.
- Date and timestamp of API call generation
- End of monitoring period considered
- Start of monitoring period considered
- The annualized LUC emissions in ton CO2-equivalent. This is the corresponding emissions per year for the plot over the monitoring period (monitoring_start - monitoring_end)
- The modelling standard error of the LUC emissions in ton CO2-equivalent. This is the uncertainty associated with the LUC emissions estimate.
- The annualized non-LUC emissions in ton CO2-equivalent. This is the corresponding emissions per year for the plot over the monitoring period (monitoring_start - monitoring_end)
- The modelling standard error of the non-LUC emissions in ton CO2-equivalent. This is the uncertainty associated with the non-LUC emissions estimate.
- The annualized removals in ton CO2-equivalent. Defaults to 0 if no identified interventions are being quantified.
- The modelling standard error of the removals in ton CO2-equivalent. This is the uncertainty associated with the removals estimate.
- if thumbnail parameter is set to "true", the thumbnail URL generated, showing a before/after situation, alongside with the color-coded detections.
- Unique identifier for the API call
- The XYZ dynamic tile endpoint for an RGB satellite image corresponding to the monitoring_start timestamp
- The XYZ dynamic tile endpoint for an RGB satellite image corresponding to the monitoring_end timestamp
- AGB trend (slope of change) for the monitoring period (monitoring_start - monitoring_end), identifying locations of increasing (blue) and decreasing (red) biomass
- AGB corresponding to monitoring_start timestamp
- AGB corresponding to monitoring_end timestamp
- Emissions category map, showing the different categories of emissions (LUC, non-LUC, removals) in a color-coded fashion
- The input plot area size (in hectare)
- The original polygon geometry in WKT format
Thumbnail Interpretation¶
Biomass Change Thumbnail¶
This thumbnail is an example of what the /biomass_emissions endpoint returns if the thumbnail flag is set to true.
The top image is the situation at the start of the monitoring period, which defaults to 2017-01-01. The middle image is the situation at the end of the monitoring period, which defaults to the day the request is made. The image is always taken from the same time of the year in another year to the extent possible, as it ensures the season in which the images acquired are similar, making the vegetation conditions more comparable and the actual changes more visually appreciable.
The bottom image shows the AGB trend layer generated by the API request. The color ramp stretches from red to blue, with the deeper red being locations that have lost the most above-ground biomass over the monitoring period, while the deeper blue are locations that have gained the most above-ground biomass over the monitoring period. The white pixels are values oscillating around 0, indicating a more or less flat trend (i.e. no significant AGB change over time).
Emission Mask Thumbnail¶
From this emissions thumbnail, the emissions are categorized spatially using above-ground using biome-specific biomass density categories, as per illustrated in this thumbnail.
The top two images are the biomass density situation at the start and end of the monitoring period, respectively.
The colors in the third image identify the following emissions categories:
-
Purple: Non-LUC emissions (emissions taking place within an area where the land cover has not significantly changed in the monitoring period).
-
Red: LUC emissions (emissions taking place where the land cover has significantly changed over the monitoring period).
-
Turquoise: Removals emissions, in the case that biomass has increased as the result of a specific intervention.

