Skip to content

AtmosLedger is a full-stack atmospheric data platform for ingesting, aggregating, and analyzing weather time-series data. It provides a FastAPI backend with background workers, PostgreSQL storage, and a modern React UI for visualizing daily aggregates and detecting temperature anomalies.

Notifications You must be signed in to change notification settings

mlwilli/atmosledger

Repository files navigation

Atmosphere Ledger

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.


Badges

Python FastAPI PostgreSQL License


Features

  • 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

Tech Stack

Backend

  • Python 3.12
  • FastAPI
  • SQLAlchemy 2.x, Alembic
  • PostgreSQL
  • Redis + RQ

Frontend

  • React (Vite)
  • Recharts

Quick Start (Development)

# 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

About

AtmosLedger is a full-stack atmospheric data platform for ingesting, aggregating, and analyzing weather time-series data. It provides a FastAPI backend with background workers, PostgreSQL storage, and a modern React UI for visualizing daily aggregates and detecting temperature anomalies.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published