How Dravik works
Nine modules take raw satellite pixels to a warning on an officer's screen and a family's phone.
Cyclone monitoring & early warning
From satellite observations to actionable alerts. Every box is a working module of Dravik; click one to open it.
Satellite images
Weather & ocean data
Auto-fetch latest data
every 15 min
Clean · Resize · Normalize
Extract features
Process requests
Serve data & AI results
Current & historical data
Predictions & alerts
Identify affected areas
Generate risks & alerts
From raw satellite pixels to a warning on a district officer's screen
Eight stages run on every new satellite scan (every 30 minutes for INSAT-3D). The highlighted stage follows the replay above, so you can see where each number on the dashboard comes from.
Three models, one forecast
Each task gets a model suited to its data: a detector for finding the storm in an image, a regressor for its strength, and a sequence model for where it goes next.
Cyclone detection
- Input: IR1 10.8 µm and WV 6.7 µm brightness temperature
- Finds the circulation centre and cloud shield extent
- Labels from IMD / IBTrACS best-track positions
- Output: bounding box, centre lat/lon, confidence
Intensity estimation
- Learns Dvorak-style features: eye, CDO, banding
- Predicts max wind (km/h) and central pressure
- Maps to 7 IMD classes, D through SuCS
- Fused with ASCAT surface winds when available
Track forecasting
- Past 24 h of positions, motion and intensity
- Environmental fields: 500 hPa winds, SST, shear
- Predicts centre positions at +6, +12, +18 and +24 h
- Ensemble spread gives the uncertainty cone
Where results are stored and served
PostgreSQL with PostGIS keeps every storm fix, prediction and alert. The backend (PHP or Node.js Express on your own server) serves them as JSON.
Tables
| Table | Holds | Key fields |
|---|---|---|
| storms | One row per system | id, name, basin, genesis_time |
| fixes | Observed centre every 6 h | storm_id, time, geom, wind, pressure |
| predictions | AI track + intensity | storm_id, issued, lead_h, geom, wind |
| detections | Satellite AI results | image_time, prob, t_number, category |
| alerts | Risk engine output | location, level, eta_h, issued |
API endpoints
| Method | Endpoint | Returns |
|---|---|---|
| GET | /api/live | Active storms, latest track, official forecast, IMD warnings |
| GET | /api/sat | Latest INSAT-3DR IR1 image (proxied) |
| GET | /api/predict?storm= | 24 h track prediction (planned) |
| GET | /api/alerts | Location risk levels (planned) |
Cyclone