Skip to content

Commit 7458b74

Browse files
committed
add Agents.md
1 parent 51b7dcc commit 7458b74

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

AGENTS.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Simulation Evaluation Tool
2+
3+
## Purpose
4+
Containerized Python tool for evaluating hydrological simulation performance against observed data using standard metrics (NSE, KGE, R², MSE, RMSE).
5+
6+
## Key Components
7+
- **Python Core** (`src/`): Data loading, metric calculation, output generation
8+
- **Svelte Report App** (`src/report/`): Interactive HTML reports with visualizations
9+
- **Docker Setup**: Containerized execution following tool-spec standard
10+
- **Input Data**: CAMELS-DE hydrological catchment data (CSV/Parquet)
11+
12+
## Workflow
13+
1. Load simulation/observation data from `/in/` using wildcard patterns
14+
2. Calculate performance metrics for each catchment
15+
3. Generate CSV/JSON metrics summary
16+
4. Build interactive HTML report with time series plots
17+
18+
## Technologies
19+
- **Backend**: Python (pandas, numpy, scipy, sklearn)
20+
- **Frontend**: SvelteKit, TypeScript, Plotly.js, Tailwind CSS
21+
- **Containerization**: Docker with tool-spec compliance
22+
- **Data Processing**: Supports CSV/Parquet, flexible column mapping
23+
24+
## Key Files
25+
- `run.py`: Main entrypoint and orchestration
26+
- `evaluation.py`: Core metric calculations (NSE, KGE, etc.)
27+
- `outputs.py`: Report generation and data compression
28+
- `tool.yml`: Tool specification and parameter definitions
29+
- `src/report/`: Svelte application for interactive visualization
30+
31+
## Development Notes
32+
- Uses json2args for parameter parsing from `/in/input.json`
33+
- Supports both separate and combined observation/simulation files
34+
- Generates compressed datasets for web visualization
35+
- Follows tool-spec container structure (`/in`, `/out`, `/src`)

0 commit comments

Comments
 (0)