A Python pipeline for downloading, processing, and fusing Sentinel-2 and Sentinel-3 satellite imagery to generate high-resolution NDVI time series.
- Data Download: Downloads Sentinel-2 L2A (via AWS Earth Search) and Sentinel-3 OLCI (via OpenEO/Copernicus)
- Cloud Detection: Identifies cloud-covered images using NDVI analysis
- EFAST Fusion: Combines S2 and S3 data using the EFAST algorithm for enhanced temporal resolution
- NDVI Calculation: Generates Normalized Difference Vegetation Index from raw and fused data
- Web Visualization: Interactive web viewer for exploring NDVI time series and imagery
pip install -r requirements.txt
pip install git+https://github.com/DHI-GRAS/efast.gitSet environment variables for Copernicus Data Space authentication:
CDSE_USER: Copernicus Data Space usernameCDSE_PASSWORD: Copernicus Data Space password
from run import run_pipeline
run_pipeline(season=2024, site_position=(47.116171, 11.320308), site_name="innsbruck")The pipeline processes data in stages:
- Download S2/S3 imagery
- Generate NDVI from raw data
- Detect clouds
- Prepare data for fusion
- Run EFAST fusion
- Generate NDVI from fused outputs
data/
{site_name}/
{season}/
raw/
s2/ # Sentinel-2 GeoTIFFs
s3/ # Sentinel-3 GeoTIFFs
ndvi/ # NDVI from raw data
prepared/
s2/ # Prepared S2 data
s3/ # Prepared S3 data
fusion/ # EFAST fusion outputs
ndvi/ # NDVI from prepared/fused data
clouds.json # Cloud detection results
Sentinel-2 (raw/s2/): Multi-band GeoTIFF
- Bands: B02 (blue), B03 (green), B04 (red), B8A (nir)
- Metadata:
VIEWING_ZENITH_ANGLEtag (degrees) - Filename:
{YYYYMMDD}_{increment}.geotiff
Sentinel-3 (raw/s3/): Multi-band GeoTIFF
- Bands: SDR_Oa04 (blue), SDR_Oa06 (green), SDR_Oa08 (red), SDR_Oa17 (nir)
- Filename:
{YYYYMMDD}_{increment}.geotiff
Run a local HTTP server to view the web interface:
cd webapp
python3 -m http.server 8000Then open http://localhost:8000/webapp in your browser to visualize NDVI time series and compare S2, S3, and fusion outputs.
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the LICENSE file for details.