# Satellite Data Fusion Pipeline A Python pipeline for downloading, processing, and fusing Sentinel-2 and Sentinel-3 satellite imagery to generate high-resolution NDVI time series. ## Features - **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 ## Installation ```bash pip install -r requirements.txt pip install git+https://github.com/DHI-GRAS/efast.git ``` ## Configuration Set environment variables for Copernicus Data Space authentication: - `CDSE_USER`: Copernicus Data Space username - `CDSE_PASSWORD`: Copernicus Data Space password ## Usage ```python from run import run_pipeline run_pipeline(season=2024, site_position=(47.116171, 11.320308), site_name="innsbruck") ``` The pipeline processes data in stages: 1. Download S2/S3 imagery 2. Generate NDVI from raw data 3. Detect clouds 4. Prepare data for fusion 5. Run EFAST fusion 6. Generate NDVI from fused outputs ## Data Structure ``` 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 ``` ### File Formats **Sentinel-2 (raw/s2/)**: Multi-band GeoTIFF - Bands: B02 (blue), B03 (green), B04 (red), B8A (nir) - Metadata: `VIEWING_ZENITH_ANGLE` tag (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` ## Web Viewer Run a local HTTP server from the **webapp** directory: ```bash cd webapp python3 -m http.server 8000 ``` Then open `http://localhost:8000/` in your browser. Data is served via the `webapp/data` symlink. ## License This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See the [LICENSE](LICENSE) file for details.