← All projects
Climate

GeoRisk Finder

Geospatial intelligence platform for compound climate-risk assessment using H3 grids, multi-hazard data, and unsupervised clustering.

PythonScikit-LearnStreamlitUber H3

Context

Global natural disasters generate losses exceeding $300 billion annually. Traditional models evaluate risks (earthquakes, hurricanes, eruptions) in isolation, ignoring compound risk zones where multiple threats coincide in time and space. This creates significant underpricing exposure for insurers, governments, and investors.

GeoRisk Finder addresses this gap by combining unsupervised learning with a global hexagonal spatial grid (Uber H3) to process historical hazard catalogs and categorize any planet cell into risk profiles with ROI analysis for Early Warning Systems.

Challenges

  • Multi-hazard integration: Combining USGS seismic data, NOAA/IBTrACS cyclone records, and IGN historical catalogs into a unified grid
  • Spatial discretization: Homogeneous global discretization via H3 Res 3 (~12,500 cells, ~12,300 km² each)
  • Dimensionality reduction: Preserving 85% variance with PCA before clustering
  • Risk classification: K-Means (4 macro risk profiles) + DBSCAN (extreme outlier detection)
  • Financial translation: Translating physical risk scores to dollar-scale ROI for investment decisions

Solution

Architecture

The system processes data through a multi-stage pipeline: external sources → ingestion & cleaning → grid features → ML clustering → product (multi-page Streamlit dashboard).

Key Components

  • Grid Engine: Uber H3 Res 3 hexagonal grid covering the entire planet
  • Multi-Hazard Ingestion: USGS (seismic events M≥4.5, 1900–2026), IBTrACS/NOAA (cyclones), IGN (national historical catalog)
  • Feature Engineering: PCA (85% variance retained) + grid feature extraction
  • Clustering: K-Means (4 risk profiles) + DBSCAN (extreme cell detection)
  • Financial Module: ROI calculation for Early Warning System deployment vs. reconstruction cost
  • Streamlit Dashboard: Interactive scenario simulation (Conservative, Base, Optimistic) with Benefit-Cost Ratio

Data Sources

Source Type Coverage
USGS API Seismic events M≥4.5 1900–2026, global
IBTrACS/NOAA Cyclone records Global hurricane/track data
IGN Historical National catalog Country-specific historical data

Pipeline Stages

  1. Data Ingestion: Raw CSV ingestion from external APIs, normalization to unified format
  2. Grid Assignment: Assign each event to an H3 cell at resolution 3
  3. Feature Engineering: Spatial features (cell centroid, neighbors, area), temporal features (date, season), event severity
  4. Dimensionality Reduction: PCA to retain 85% variance, reducing feature space while preserving structural patterns
  5. Clustering: K-Means (4 risk profiles) + DBSCAN (detect extreme outliers)
  6. Financial Impact: ROI calculation module combining physical risk scores with reconstruction costs and business interruption values

Implementation

The most significant architectural decision was using a hexagonal grid (H3) instead of traditional square grids. This ensures homogeneous coverage and eliminates edge effects at zone boundaries. The 12,500-cell discretization provides sufficient granularity for city-level analysis while maintaining computational efficiency.

PCA reduction from the original feature set to the 85% variance subspace was critical for making K-Means clustering tractable at scale without losing the risk-signaling features.

The financial translation layer was the most complex to validate. We benchmarked against reconstruction cost data from insurance industry sources and adjusted the ROI calculation to account for regional variations in labor and material costs.

Trade-offs

The pipeline uses batch CSV ingestion rather than streaming APIs for every source. This keeps the research workflow reproducible and offline-friendly, at the cost of freshness for live event feeds.

Clustering was preferred over supervised risk labels because no globally consistent multi-hazard ground truth exists. The trade-off is that profiles are descriptive rather than predictive.

Reliability

Test coverage exists for ingestion, grid assignment, feature engineering, and clustering stages. CI runs the suite on every push. End-to-end checks verify the complete pipeline from source files to dashboard output with mocked data sources.

Results

  • ~1.1 million historical hazard events ingested and categorized across USGS, IBTrACS, and IGN catalogs
  • 4 macro risk profiles (with DBSCAN detection of extreme outliers)
  • 3 scenario simulations (Conservative, Base, Optimistic) with Benefit-Cost Ratio calculation
  • Global coverage via Uber H3 grid — any point on the planet can be categorized
  • Docker support for reproducible local runs

Note: earlier portfolio drafts listed “130+ million events” and “180 tests.” Those figures were incorrect (file sizes in MB were misread as row counts; test count was overstated). The numbers above reflect the actual catalogs and suite.

Lessons Learned

  1. Hexagonal grid eliminates boundary artifacts that square grids introduce at zone edges. H3 resolution 3 balanced granularity and computational cost.
  2. PCA before clustering is essential at this feature count. Without dimensionality reduction, K-Means training exceeded acceptable time limits.
  3. Financial model validation requires industry data that is not readily available. Conservative assumptions were used for missing dimensions.
  4. Streamlit dashboard usability depends on progressive disclosure. Hiding advanced parameters behind expandable sections keeps the interface accessible.
  5. Multi-hazard integration requires careful normalization. Each source has different units, time ranges, and quality indicators.

Future Work

  • Machine learning models for risk probability prediction using historical patterns
  • Integration with additional global data sources (World Bank, GDACS)
  • Multi-tenant projects/portfolios for enterprise deployment
  • WebSocket alert push for monitored cells

Architecture Diagram

USGSSeismic M≥4.5IBTrACSCyclonesIGNHistorical catalogIngestCSV normalizeGrid H3Resolution 3FeaturesPCA 85% varClusteringK-Means + DBSCANFinancialROI calculatorDashboardStreamlit SPA