Skip to main content

CLI tool for extracting and working with CAMELS-CH hydrological data

Project description

camelsch

CI Python 3.10+ Binder

CLI tool for downloading, exploring, and extracting data from the CAMELS-CH hydrological dataset (331 Swiss basins, 1981-2020).

Maintenance Status

🟢 Active – Maintained by hydrosolutions


Installation

pip install camelsch

This also works inside conda/mamba environments — just activate yours first.

If you use uv for project management:

uv add camelsch

Workflow

camelsch follows a download-then-query workflow:

  1. Download the CAMELS-CH dataset once from Zenodo (~1.5 GB).
  2. Explore the dataset — list basins, check available variables, view summaries.
  3. Extract the data you need — filter by basin, variable, and date range, then export to CSV or Parquet.

All commands read from a local data directory (default ./data/CAMELS_CH). You can change it with --data-dir or the CAMELSCH_DATA_DIR environment variable.

Quick start

# Step 1: Download the dataset from Zenodo (~1.5 GB)
camelsch download

# Step 2: Explore — show dataset summary
camelsch info

# List all basin IDs
camelsch basins
camelsch basins --format json
camelsch basins --format csv --attrs area,p_mean

# Step 3: Extract data
# Static catchment attributes
camelsch attributes --basins 2004,2007 --output attrs.csv

# Time series with filtering
camelsch timeseries --basins 2004 --vars precipitation,discharge_spec \
    --start 1990-01-01 --end 2000-12-31 --output ts.csv

# Batch export to Parquet (with optional attribute merge)
camelsch export --include-attrs --output camels_ch.parquet

Python API

import camelsch

# Load static attributes for specific basins
attrs = camelsch.load_attributes("./data/CAMELS_CH", basin_ids=["2004", "2007"])

# Load time series with filtering
data = camelsch.load_timeseries(
    "./data/CAMELS_CH",
    basin_ids=["2004"],
    variables=["precipitation", "discharge_spec"],
    start_date="1990-01-01",
    end_date="2000-12-31",
)

# List available basins and variables
basins = camelsch.list_basins("./data/CAMELS_CH")
variables = camelsch.list_variables("./data/CAMELS_CH")

Data reference

CAMELS-CH provides daily hydrometeorological time series and static catchment attributes for 331 Swiss basins (1981-2020). The dataset contains 21 time series variables:

Observation-based (9 variables)

Variable Description
discharge_vol Discharge volume (m³/s)
discharge_spec Specific discharge (mm/d)
waterlevel Water level (m)
precipitation Basin-mean daily precipitation (mm/d)
temperature_min Minimum daily temperature (°C)
temperature_mean Mean daily temperature (°C)
temperature_max Maximum daily temperature (°C)
rel_sun_dur Relative sunshine duration (%)
swe Snow water equivalent (mm)

Simulation-based (12 variables)

Variable Description
discharge_vol_sim Simulated discharge volume (m³/s)
discharge_spec_sim Simulated specific discharge (mm/d)
precipitation_sim Simulated precipitation (mm/d)
temperature_sim Simulated temperature (°C)
radiation_sim Simulated radiation (W/m²)
sun_duration_sim Simulated sunshine duration (h)
wind_sim Simulated wind speed (m/s)
rel_humidity_sim Simulated relative humidity (%)
pet_sim Simulated potential evapotranspiration (mm/d)
et_sim Simulated actual evapotranspiration (mm/d)
intercept_et_sim Simulated interception evapotranspiration (mm/d)
intercept_storage_sim Simulated interception storage (mm)

Convenience aliases: petpet_sim, etet_sim.

Static attributes cover topography (area, elev_mean), climate (p_mean, t_mean), land cover, soil, and geology.

Full dataset: CAMELS-CH on Zenodo Reference paper: Hoege et al. (2023), CAMELS-CH: hydro-meteorological time series and landscape attributes for 331 catchments in hydrologic Switzerland, Earth Syst. Sci. Data.

For developers

# Install dependencies
uv sync

# Run tests
uv run pytest

# Lint and format
uv run ruff check src/ tests/
uv run ruff format src/ tests/

# Type check
uv run mypy src/

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

camelsch-0.2.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

camelsch-0.2.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file camelsch-0.2.0.tar.gz.

File metadata

  • Download URL: camelsch-0.2.0.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for camelsch-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b25ba59ed17c0b7fb5d28ff3ba5a8c7b94ad0224a34b269e5e0a3766c2879e74
MD5 ecba54bccc70175c1ceb7c5d3e9de763
BLAKE2b-256 94edaaa815b9fb92d0e478caf223979a507d5e16ad00bb292f7de2e2a111c1d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for camelsch-0.2.0.tar.gz:

Publisher: release.yml on hydrosolutions/camelsch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file camelsch-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: camelsch-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for camelsch-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d441125bd14aca278797dd9f2fad0cf9785c302de1e3cdd2a7b05db0785605a3
MD5 5dff9b05c9cdb48fdbcf293da7e305d8
BLAKE2b-256 fec5f9ce23dcc2ada19f8b6eb43eec077df1445dfc93918cf86a53ded675dbc3

See more details on using hashes here.

Provenance

The following attestation bundles were made for camelsch-0.2.0-py3-none-any.whl:

Publisher: release.yml on hydrosolutions/camelsch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page