How srishanksd/sih works
VAJRA-CSDD is a convective-scale nowcasting prototype with two distinct paths: a radar-only ConvLSTM training workflow and a broader, modular nowcasting architecture. The dashboard currently serves no-data responses; although the API route imports the nowcasting pipeline, the sampled route does not invoke it. The README documents additional VAJRA capabilities whose implementation wiring was not sampled, so these are shown as architecture modules without speculative connections.
Main entry points: pipeline.py Nowcasting pipeline · system.py VAJRA composition · train.py Training loop · app.py Flask application
Components 30
Dashboard and API
- Application entry
main.py - Flask application
backend/app.py - Run API route
backend/api/routes.py - Dashboard UI
frontend/app.js
Operational Nowcasting
- Nowcasting pipeline
backend/core/pipeline.py - Storm detection
backend/models/storm_detection.py - Storm tracking
backend/models/storm_tracking.py - State estimation
backend/models/state_estimation.py - Object dynamics
backend/models/object_dynamics/lagrangian.py - Field dynamics
backend/models/field_dynamics/eulerian.py - Object-field consistency
backend/models/consistency/object_field.py - Lifecycle events
backend/models/storm_lifecycle/events.py - Data quality
backend/models/data_quality/quality.py - Hazard probabilities
backend/models/hazard_heads/probability.py
VAJRA Architecture
- VAJRA composition
backend/models/system.py - Reliability-aware fusion
backend/models/encoders/fusion.py - Convective state
backend/models/state/convective_state.py - Storm-cell graph
backend/models/storm_graph.py - Stochastic ensemble
backend/models/probabilistic/ensemble.py - Multi-hazard heads
backend/models/hazard_heads/multihazard.py - Additional model modules
backend/models
Radar Training
- Radar conversion
training/datasets/dwr_netcdf.py - Dataset preparation
training/datasets/prepare.py - Radar sequences
training/datasets/sequence.py - Training loop
training/train.py - ConvLSTM nowcaster
training/models/convlstm.py - Forecast loss
training/losses/forecast.py - Dataset splitting
training/utils/data_split.py
Other components
- Dashboard user
- DWR NetCDF scans
Connections 29
- Dashboard user → Dashboard UI: uses
- Dashboard UI → Flask application: requests state
- Application entry → Flask application: starts
- Flask application → Run API route: registers
- Flask application → Dashboard UI: serves
- Run API route → Nowcasting pipeline: imports only
- Nowcasting pipeline → Storm detection: detects cells
- Nowcasting pipeline → Storm tracking: tracks cells
- Nowcasting pipeline → State estimation: estimates state
- Nowcasting pipeline → Object dynamics: forecasts objects
- Nowcasting pipeline → Field dynamics: advects field
- Nowcasting pipeline → Object-field consistency: scores consistency
- Nowcasting pipeline → Lifecycle events: classifies events
- Nowcasting pipeline → Data quality: scores quality
- Nowcasting pipeline → Hazard probabilities: computes hazards
- Nowcasting pipeline → VAJRA composition: creates architecture
- VAJRA composition → Reliability-aware fusion: instantiates
- VAJRA composition → Convective state: instantiates
- VAJRA composition → Stochastic ensemble: instantiates
- VAJRA composition → Multi-hazard heads: instantiates
- VAJRA composition → Storm-cell graph: builds graph
- VAJRA composition → Additional model modules: architecture includes
- DWR NetCDF scans → Radar conversion: converts scans
- Radar conversion → Dataset preparation: prepares frames
- Dataset preparation → Radar sequences: forms sequences
- Training loop → Dataset splitting: splits files
- Training loop → Radar sequences: loads windows
- Training loop → ConvLSTM nowcaster: trains model
- Training loop → Forecast loss: scores forecasts