A full-stack React dashboard for global multi-hazard situational awareness, climate diagnostics, country-level geospatial analytics, live hybrid predictive modelling, modeled river-discharge monitoring, Antarctic claim checking, and climate tipping-point context.
Copyright (c) 2026 Somyajit Chakraborty and Climate Sentinel OPS Ltd. All rights reserved.
This repository is proprietary. See LICENSE and NOTICE. Do not copy, redistribute, host, sublicense, commercialize, or create derivative works without written permission from the copyright holder.
- Global overview with an experimental Catastrophe Pressure Index (CPI)
- Live multi-layer world map
- Clickable country polygons from Natural Earth 110m geometry
- NASA GIBS satellite GIS overlays for VIIRS true color and MODIS Terra cloud fraction
- Country-level geospatial analytics for heatwave, storm, cloud, water/river flow, wind, jet-stream proxy and compound pressure
- Dense country coverage grids with up to 36 polygon-contained heat/cloud/weather/upper-air sample points
- Map overlays for heat coverage, cloud coverage, storm proxy, surface wind vectors, jet-stream proxy vectors and modeled water-stream pressure
- 24 h, 72 h and 7 d country prediction-window scores
- Live predictive modelling page with 24 h, 72 h and 7 d heat, hydrology, drought, storm, geophysical, anomaly and compound watches
- Reduced-order, physics-ML-ready flow diagnostics for advection, shear, vorticity and upper/lower coupling
- Paper-track surrogate modelling plan for Fourier neural operators, graph neural operators, DeepONet and PINN-style residual checks
- Country-specific climate/disaster news context
- GDACS humanitarian alerts and NASA EONET natural events
- USGS M4.5+ earthquake feed
- Open-Meteo weather forecasts for a global sentinel-city network
- GloFAS/Open-Meteo modeled river discharge and a 7-day surge diagnostic
- Heat, rain, wind and river warning matrix
- Antarctic Peninsula versus geographic South Pole clarification
- WMO/IPCC climate context and tipping-point uncertainty ranges
- Source health diagnostics, dark/light mode, unit switching and JSON export
- Account and monetization UX prototype with Free, Pro and Plus tiers
- Five-minute browser auto-refresh plus manual refresh
GitHub Pages can host the static React frontend only. The Express API must be hosted separately and passed to the frontend with VITE_API_BASE_URL.
- Free: limited access to overview, basic map, source health and public context.
- Pro: $5.50/month for full diagnostics, predictive models, AI tools, knowledge graph and regional analytics.
- Plus: $9.99/month for all Pro features plus future advanced workflows, exports and model updates.
The current account system is local browser-state gating for product design. Real monetization requires server-side authentication, payment webhooks, database-backed entitlements and API-level authorization.
GET /api/countries
GET /api/region-analytics/:iso3
GET /api/predictions
POST /api/agents/run
/api/region-analytics/:iso3 returns country metadata, bbox, centroid, nine hydrology sample points, up to 36 GIS coverage points, NASA GIBS satellite layer metadata, heat/storm/cloud/water/wind/jet/flow diagnostics, surface-wind vectors, jet-stream proxy vectors, modeled water-stream points, compound score, prediction-window scores, source status, uncertainty, limitations and regional news. /api/predictions returns the operational hybrid forecast baseline used by the Predictive Models page. POST /api/agents/run accepts an optional regionIso3 to run the region-focused agents.
Requires Node.js 18 or newer.
npm install
npm run devOpen:
http://localhost:5173
The React client runs on port 5173; the Express data proxy runs on 8787.
The backend tries the requested OpenRouter model first, then a broader free fallback pool including openrouter/free, Nemotron, Qwen, GPT-OSS, Llama, Gemma, Poolside, Cohere and LiquidAI free variants. OpenRouter free availability changes, so the pool can be adjusted without editing code:
OPENROUTER_MODELS="openrouter/owl-alpha,openrouter/free,qwen/qwen3-coder:free" npm run dev
OPENROUTER_EXTRA_MODELS="meta-llama/llama-3.3-70b-instruct:free" npm run dev
OPENROUTER_DISABLED_MODELS="nex-agi/nex-n2-pro:free" npm run dev
OPENROUTER_MAX_MODEL_ATTEMPTS=8 npm run devMore fallback models help when one provider is overloaded or returns empty content. They do not bypass OpenRouter account-level free daily quotas such as free-models-per-day; when that quota is exhausted the app returns the local rules-based fallback until the quota resets or paid credits are added.
npm run build
npm startOpen:
http://localhost:8787
Several public hazard feeds have browser CORS restrictions or inconsistent response formats. The lightweight Express server:
- Fetches and normalizes GDACS RSS, NASA EONET, USGS, Open-Meteo and GloFAS data.
- Applies timeouts and in-memory caching.
- Keeps the React interface on stable local
/api/*endpoints. - Serves the compiled React app in production.
The June 2026 report concerned Esperanza Base on the Antarctic Peninsula, where a daily maximum of about 15.4°C was reported and described as roughly 20°C above the seasonal normal. It was not a measurement at the geographic South Pole and it does not mean Antarctica became 20°C warmer than the previous year.
The app deliberately separates:
- reported station observations;
- seasonal anomalies;
- model/reanalysis grid values; and
- year-over-year comparisons.
GDACS colors are retained when supplied by GDACS. City weather colors are experimental operational thresholds:
| Diagnostic | Yellow | Orange | Red |
|---|---|---|---|
| Maximum apparent temperature | 35°C | 40°C | 45°C |
| Daily precipitation | 25 mm | 50 mm | 100 mm |
| Maximum wind gust | 62 km/h | 89 km/h | 118 km/h |
| River-discharge surge ratio | 1.4× | 2× | 3× |
The river surge ratio is the forecast 7-day maximum divided by the previous 7-day median. It is not a return-period flood probability or inundation forecast.
The CPI is an explicitly non-official, transparent diagnostic:
CPI = 100 × (1 − exp(−raw_signal / 70))
It combines weighted live alert records, monitored-city threshold exceedances and large earthquakes. It measures current signal pressure, not expected casualties, economic loss, or probability of planetary collapse.
- GDACS — multi-hazard humanitarian alerts
- NASA EONET — open natural-event catalogue
- USGS — global earthquake GeoJSON feeds
- Open-Meteo — aggregated weather forecasts
- GloFAS via Open-Meteo — modeled river discharge
- Natural Earth — 110m country polygon geometry
- NASA GIBS — VIIRS true color and MODIS cloud-fraction satellite overlays
- Open-Meteo pressure-level variables — 250/300 hPa jet-stream proxies
- Google News RSS search — country-specific public reporting context
- WMO, IPCC and Global Tipping Points reports — assessment context
- OpenStreetMap — map tiles
- Always follow national meteorological, hydrological and emergency-management authorities.
- Public upstream APIs can be temporarily unavailable or revise data.
- Country analytics use coarse polygon sampling and cannot resolve local microclimates, basins, coastlines, drainage or district-scale exposure.
- Satellite layers are visual GIS rasters; this build does not yet perform calibrated satellite-pixel segmentation or attribution.
- Predictive-model probabilities are experimental operational ranking scores; they are not yet hindcast-calibrated official warnings.
- Jet-stream and reduced-order flow fields are diagnostic proxies; this build does not yet train or run a neural operator, DeepONet, PINN, full regional climate model or Navier-Stokes CFD solver.
- GloFAS uses an approximately 5 km grid; the selected river cell can be unrepresentative near coasts or dense river networks.
- Tipping thresholds are uncertain ranges, not countdown dates.
- Flood consequences depend on defenses, drainage, land use, exposure and vulnerability—not river discharge alone.
- For high-reliability deployment, add persistent storage, observability, authentication, official CAP feeds, rate-limit management, regional hydrological products and redundant providers.