# Worldwide PhenoCam EFAST screening and fusion Screen the global [PhenoCam Network](https://phenocam.nau.edu/) for sites where EFAST Sentinel-2 / Sentinel-3 fusion is likely to work: enough PhenoCam `gcc_90`, seasonal signal, and S2/S3 coverage for a calendar year. Agent-oriented detail: [`AGENTS.md`](AGENTS.md). --- ## Quick start From `processing/`: ```bash uv sync uv run python 1-phenocam.py --evaluation-year 2025 ``` ### Stepped pipeline (resumable) All steps use `--evaluation-year` (default 2025) and optional `--site`. See each script docstring for inputs/outputs under `data/`. ```bash uv run python 1-phenocam.py --evaluation-year 2025 uv run python 2-phenocam-screening.py --evaluation-year 2025 uv run python 3-sentinel-data.py --evaluation-year 2025 uv run python 4-fusion.py --evaluation-year 2025 uv run python 5-metrics.py --evaluation-year 2025 # single site uv run python 3-sentinel-data.py --evaluation-year 2025 --site innsbruck uv run python 4-fusion.py --evaluation-year 2025 --site innsbruck uv run python 5-metrics.py --evaluation-year 2025 --site innsbruck ``` Step 3 S3 uses CDSE OpenEO (`SENTINEL3_SYN_L2_SYN`); S2 uses AWS Earth Search COG range reads (no auth). CDSE credentials live in `../.env` at the workspace root (`CDSE_USER`, `CDSE_PASSWORD`). --- ## Outputs (under `data/`) | Artifact | Step | Role | |----------|------|------| | `phenocam/{year}.json` | 1 | Site list + `sites_dir` pointer | | `phenocam/{year}/{site}.json`, `{site}_1day.csv` | 1 | Raw API + GCC CSV | | `phenocam_screening/{year}.json` / `.csv` | 2 | PhenoCam + SNR gate results | | `sentinel_data/{year}/{site}/prepared/s2/` | 3 | S2 REFL + DIST_CLOUD GeoTIFFs | | `sentinel_data/{year}/{site}/prepared/s3/` | 3 | S3 composite GeoTIFFs | | `fusion/{year}/{site}/` | 4 | BtI/ItB fused rasters | | `metrics/{year}/{site}/`, `metrics/manifest.json` | 5 | Timeseries JSON, covariates, webapp manifest | The 2025 manifest currently lists **739** cameras with archive overlap; most per-site CSV/JSON files are cached under `data/phenocam/2025/`. --- ## Web viewer From the workspace root, `make serve` serves `processing/` at [http://localhost:8000/index.html](http://localhost:8000/index.html). Requires step 5 (`data/metrics/manifest.json`). --- ## License [MIT](LICENSE)