How adithya0622/delhi-model works
Delhi NCR AQI Forecasting System provides a 72-hour coupled air-quality forecast and a live operator console. The main workflow gathers meteorology, fire detections and station observations; models inversion and aerosol feedback in a single-column forecast; converts concentrations to AQI; and serves forecast, plume and live-condition views. The repository also includes exposure, source-apportionment, validation and alert capabilities. Relationships use the README and sampled call sites; unsampled routes and service internals are represented only where their paths and roles are documented.
Main entry points: aqi_service.py AQI forecast integrator · App.tsx React console · endpoints.py Versioned routes · main.py FastAPI application
Components 25
Operator interfaces
- React console
webapp/src/App.tsx - Forecast data hook
webapp/src/hooks/useForecastData.ts - Streamlit dashboard
frontend/app.py - Frontend API client
webapp/src/lib/api.ts
API delivery
- FastAPI application
backend/app/main.py - Versioned routes
backend/app/api/v1/endpoints.py - ML forecast routes
backend/app/api/v1/ml_forecast_endpoint.py - Chronos routes
backend/app/api/v1/chronos_endpoint.py - Backtest routes
backend/app/api/v1/backtest_endpoint.py
Forecast physics
- AQI forecast integrator
backend/app/services/aqi_service.py - Inversion physics
backend/app/physics/inversion_engine.py - Column model
backend/app/physics/box_model.py - Plume transport
backend/app/physics/plume_advection.py - Weather providers
backend/app/services/weather_providers.py
Live observations
- Realtime stations
backend/app/services/realtime_service.py - Consensus service
backend/app/services/consensus_service.py
User insights
- Alert evaluation
webapp/src/lib/alertsEngine.ts - Exposure service
backend/app/services/exposure_service.py - Source apportionment
backend/app/services/emission_service.py - Clinical assistant
webapp/src/lib/clinicalEngine.ts - Backtest service
backend/app/services/backtest_service.py
Other components
- Operator
- OpenAQ
- NASA FIRMS
- Open-Meteo
Connections 26
- Operator → React console: uses
- Operator → Streamlit dashboard: uses
- React console → Forecast data hook: loads data
- Forecast data hook → Frontend API client: requests
- Frontend API client → FastAPI application: calls API
- Streamlit dashboard → FastAPI application: requests
- FastAPI application → Versioned routes: mounts router
- Versioned routes → AQI forecast integrator: serves forecast
- Versioned routes → Realtime stations: serves readings
- Versioned routes → Consensus service: collects consensus
- ML forecast routes → AQI forecast integrator: forecast basis
- Chronos routes → AQI forecast integrator: forecast context
- Backtest routes → Backtest service: runs backtest
- AQI forecast integrator → Weather providers: gets meteorology
- Weather providers → Open-Meteo: fetches weather
- AQI forecast integrator → Inversion physics: computes feedback
- AQI forecast integrator → Column model: integrates mass
- AQI forecast integrator → Plume transport: couples plume
- Plume transport → NASA FIRMS: gets detections
- Realtime stations → OpenAQ: fetches readings
- Versioned routes → Exposure service: calculates exposure
- Versioned routes → Source apportionment: calculates sources
- React console → Alert evaluation: evaluates alerts
- React console → Clinical assistant: offers guidance
- React console → Exposure service: requests exposure
- React console → Source apportionment: requests attribution