openEO
Efficient Fusion Algorithm across SpatioTemporal scales (EFAST)
The Efficient Fusion Algorithm Across Spatio-Temporal Scales (EFAST) [1] is a method to create time-series with a fine resolution in space and time from a fine spatial but coarse temporal resolution source (Sentinel-2) and a coarse temporal but fine spatial resolution source (Sentinel-3). In comparison to other methods, EFAST aims to achieve results outperforming single-source interpolation without paying the computational cost of other methods leveraging spatial context. EFAST is focused on accurately capturing seasonal vegetation changes in homogeneous areas like range lands. DHI-GRAS has published a Python implementation of the algorithm. In the context of the ESA funded APEx initiative, the algorithm has been ported to OpenEO and is implemented in this process graph.
EFAST interpolates Sentinel-2 acquisitions, using a time (temporal distance to target time) and distance-to-cloud weighted compositing scheme. The Sentinel-3 time-series is incorporated to locally update the interpolated Sentinel-2 imagery to accurately track vegetation changes between cloud-free Sentinel-2 acquisitions. The method is described in detail in [1].
EFAST produces high temporal frequency time-series matching the Sentinel-2 L2A bands which have corresponding Sentinel-3 OLCI bands with matching centre frequencies. Because the application of EFAST is focused on NDVI time-series, the UDP includes a parameter (output_ndvi) to directly compute the NDVI for a given temporal and spatial extent.
It should be noted that OpenEO provides bands from the SENTINEL_L2A collection in integer format. EFAST converts the data to floating point values for interpolation. Therefore, output bands of EFAST have a different data type (floating point) than the corresponding SENTINEL_L2A bands.
[1]: Senty, Paul, Radoslaw Guzinski, Kenneth Grogan, et al. “Fast Fusion of Sentinel-2 and Sentinel-3 Time Series over Rangelands.” Remote Sensing 16, no. 11 (2024): 1833.
Execution information
-
Process ID
efast
-
openEO Process
https://raw.githubusercontent.com/bcdev/efast-process-graph/refs/heads/main/process_graph.json
-
openEO Backend
| Parameter | Type | Default |
|---|---|---|
temporal_extent (required) The date range of the Sentinel-2 L2A and Sentinel-3 SY_2_SYN inputs. The fused (output) time series can optionally be defined by the temporal_extent_target parameter. If temporal_extent_target is not set, the output time series will cover temporal_extent by default | array/temporal-interval | |
temporal_extent_target The date range of the fused outputs. Must be completely contained in temporal_extent. This parameter is optional, if no temporal_extent_target is not set, the output will cover the temporal extent of the inputs (defined by the parameter temporal_extent). As per openeo convention, the start date of the temporal extent is included and the end date excluded if if no time of day is set. | array/temporal-interval | |
interval_days (required) Interval (in days) of the time series of the output. If, for example, temporal_extent_target is set to [2022-01-01, 2022-01-10] and interval_days is set to 3, the time series of the output will consist of images for [2022-01-01, 2022-01-04, 2022-01-07]. 2022-01-10 is excluded, as the temporal extent is defined including the start date and excluding the end date. | integer | |
spatial_extent (required) Region of interest | object/geojson | |
s2_data_bands Sentinel-2 L2A bands (names follow the SENTINEL2_L2A collection) used in the fusion procedure. The order should match the corresponding s3_data_bands and fused_band_names parameters.If the NDVI should be computed (parameter output_ndvi is set to True), s2_data_bands must be set to [B04, B8A]. | array | ["B02","B03","B04","B8A"] |
s3_data_bands Sentinel-3 SYN L2 SYN bands (names follow the SENTINEL3_SYN_L2_SYN collection) used in the fusion procedure. The order of s3_data_bands must match the order of s2_data_bands, so that bands with closely matching center wavelengths are fused. If the NDVI should be computed (parameter output_ndvi is set to True), s3_data_bands must be set to [Syn_Oa08_reflectance, Syn_Oa17_reflectance]. | array | ["Syn_Oa04_reflectance","Syn_Oa06_reflectance","Syn_Oa08_reflectance","Syn_Oa17_reflectance"] |
output_ndvi If set to True, the output includes a single NDVI band. Otherwise, the output includes the bands of the Sentinel-2 input (defined by parameter s2_data_bands). If set to True, the bands B04 and B8A must be included in s2_data_bands, and the bands Syn_Oa08_reflectance and Syn_Oa17_reflectance must be included in s3_data_bands. | boolean |