← Back to all sparks
C

climaemet

ANALYTICS
Velocity0.0

Access and Visualize AEMET Weather and Climate Data

climaemet added weather alerts and wildfire risk, then spent two years managing rate limits.

weather-dataaemetspainrate-limitingwildfire-riskr-package
Current state
climaemet wraps Spain's AEMET meteorological API — station data, historical climate series, forecasts, and the plotting helpers that go with them. Its capability surface widened decisively in 1.4.0 with meteorological alerts and wildfire risk rasters. Everything since has been about surviving the API rather than extending it: multiple API keys, quota-aware key selection, and httr2 throttling pinned to AEMET's stated 40-connections-per-minute policy.
Where it's heading
Two forces shape this package, and neither is feature demand. The first is AEMET's own churn — new response codes, a fires endpoint that switched to six risk levels returned as named factors, municipality datasets refreshed annually. The second is the maintainer's cross-package modernization, visible here as the API key store moving to tools::R_user_dir() with automatic migration, a configurable timeout, cli messaging, and an R 4.1 floor. The 1.6.0 refactor is stated as AI-assisted, matching the maintainer's other packages.
Prediction
Expect the next release to track another AEMET endpoint change rather than add a data domain; the throttling and multi-key machinery suggests quota pressure is the constraint the maintainer keeps returning to.

Recent moves

  1. 2mo ago

    API keys move to R_user_dir; fire risk returns named factors

    The API key store migrates to tools::R_user_dir() with existing users moved automatically, and aemet_forecast_fires() adapts to an upstream change to six risk levels, now returned as named factors instead of numeric codes. Tests are rebuilt on local fixtures to reduce live API dependence. The refactor is declared AI-assisted, matching the maintainer's other packages.

    View source ↗
  2. 4mo ago

    Vignettes migrated to Quarto

    Documentation tooling change only, part of a migration running across the maintainer's package set. No package behavior involved.

    View source ↗
  3. 7mo ago

    Request throttling pinned to AEMET's 40-per-minute policy

    httr2::req_throttle() enforces AEMET's stated limit of 40 connections per minute per key from inside the package, so users stop discovering the ceiling by hitting it. cli messaging and an R 4.1 floor arrive alongside the ggplot2 3.5 deprecation work.

    View source ↗
  4. 1y ago

    ggwindrose rebuilt on coord_radial

    The wind rose plot moves from coord_polar to ggplot2's coord_radial and gains stack ordering control, at the cost of a ggplot2 3.5.0 floor. Functions also adapt to new AEMET response codes and the municipality dataset is refreshed.

    View source ↗
  5. 1y ago

    Highest-quota API key now chosen per call

    Key selection changes from random to quota-aware, picking whichever key has the most remaining allowance to push back throttling. A small scheduling change that materially extends how long a multi-key setup keeps working.

    View source ↗
  6. 1y ago

    Weather alerts and wildfire risk rasters added

    ⚡ SPARK

    The release that widened what climaemet is for, moving it past historical and forecast retrieval into live hazard data. Everything after it in this window is infrastructure to keep that surface reachable within AEMET's quota.

    View source ↗