AtmosLedger Atmospheric data platform for ingesting, aggregating, and analyzing weather time-series data.
It provides a clean API, background ingestion workers, and a modern chart-driven UI for exploration.
Simply put, pulls and detects anomalous weather.
- Ingestion – Async ingestion from Open-Meteo (hourly observations)
- Aggregation – Daily rollups (mean / min / max temperature, precipitation)
- Anomaly Detection – Rolling z-score–based daily anomaly detection
- Scalable Architecture – FastAPI + PostgreSQL + Redis + RQ workers
- Tested – Pytest coverage for core API flows
- UI Demo – React + Recharts frontend for visual exploration
- Python 3.12
- FastAPI
- SQLAlchemy 2.x, Alembic
- PostgreSQL
- Redis + RQ
- React (Vite)
- Recharts
# Start infrastructure + worker
docker compose up -d
# Install backend dependencies
poetry install
# Run API
poetry run uvicorn atmosledger.main:app --reload
# FrontEnd
npm install
npm run dev
Example API Endpoints
http
POST /ingestions/open-meteo/run
POST /series/daily/aggregate
GET /series/daily
POST /anomalies/daily/detect
GET /anomalies/daily