efast-phenocam-validation/README.md
2026-06-10 15:43:54 +02:00

57 lines
2.2 KiB
Markdown

# 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`).