StormZ
Historical analogue matching engine
StormZ Analogue Engine Signal memory, historical matching, location correction

StormZ Historical Analogue Matching Engine

StormZ asks a practical question: when the atmosphere behaves like this, when has it behaved like this before? The analogue matching engine compares current storm-risk signals with historical signal templates, ranks similar years, evaluates likely storm locations, and then applies cluster and regime corrections learned from prior error.

Engine Overview

The engine is designed as a hybrid memory system. It does not replace physical meteorology; it adds a historical pattern-matching layer that converts basin-scale signal behaviour into candidate storm-location intelligence.

01
Signal TQV, LWTUP, SPI, UGMC volatility and storm-risk fields.
02
Template Annual historical profiles by year, latband, and storm behaviour.
03
SURGE Shape similarity and intensity blueprint combined into analogue scores.
04
Correction Cluster, regime, latitude and longitude bias adjustments.
05
Prediction Corrected candidate storm locations passed to StormZ Timer.
Working principle:

StormZ combines atmospheric signal confirmation with historical analogue matching. It looks for recurring storm-capable patterns, then corrects those predictions against known spatial biases in the historical record.

Pipeline

1

Build annual UGMC templates and volatility profiles

Historical signal behaviour is converted into annual matching templates and volatility profiles. These profiles become the reference memory used to compare the current basin state with prior years.

Storms_UGMC_templating_annual.py
2

Build storm yearly location baselines

Historical storm profiles are aggregated into yearly location metrics. This creates the spatial baseline used later for location correction and cluster evaluation.

Storm_yearly_location_template.py star_metrics_location.csv
3

Rank historical analogues with StormZ SURGE

The SURGE process ranks historical years for each latband by combining UGMC wobble correlation, shape similarity, and storm-energy intensity patterns.

Stormz_Surge.py templates_latband.py analogue_years.py matching.py StormZ_Surge_Ranking_{band}_all_years.csv
4

Evaluate analogue performance across history

The engine is run against the historical storm record to build an evaluation table. This supports raw and adjusted comparisons between predicted and observed storm locations.

Stormz_Build_Eval_Table.py storms_analogue.py star_eval_{band}_2015_2025.csv
5

Plot adjusted analogue storm locations

NASA MERRA2 TQV/LWTUP signal fields are used with the analogue predictions to plot preliminary adjusted storm-location results and clustering analytics.

Stormz_Master_Analysis.py Stormz_Plotting_adjusted_Matches.py
6

Apply historical cluster correction

Cluster analysis identifies persistent spatial biases, including MDR and Caribbean effects. These are used to post-process predictions and blend location estimates with historical storm-location structure.

stormz_clustering.py star_eval_{band}_2015_2025_cluster_corrected.csv
7

Analyse storm location by cluster wobble

The engine then reviews how storm clusters shift over time and how well analogue predictions align with those shifts. This provides both correction analysis and summary evaluation outputs.

predict_storm_location_by_cluster_wobble.py star_eval_stormz_surge_star_metrics_location_{band}.csv storm_location_eval_{band}.csv
8

Apply final latitude and longitude regime corrections

Error is reviewed by latitude, longitude, regime and cluster. The correction layer generates bias tables, applies them, and produces the final corrected location predictions. Initial testing showed that latitude and full longitude correction performed best without additional fitting.

Analogue_Storm_Surge_Corrections_Step1.py Analogue_Storm_Surge_Corrections_Step2.py stormz_lat_lon_final_correction.py lat_bias_regime_{BAND}_{current_date}.csv lon_bias_regime_{BAND}_{current_date}.csv lat_cluster_bias_{BAND}_{current_date}.csv lon_cluster_bias_{BAND}_{current_date}.csv
9

Run candidate storm-location prediction

Recent TQV, LWTUP and SPI grids are scanned for high-volatility candidate cells. Spatial coherence filters identify candidate patches and centroids. Confirmed candidates are then passed through the analogue engine, cluster correction, and final correction layers before being handed to StormZ Timer.

star_metrics_location_date_range.csv

Operational Prediction Workflow

In operational mode, StormZ uses recent satellite-derived signal fields to identify candidate patches. The analogue engine is then run only on confirmed candidates, reducing noise and focusing the matching system on storm-capable atmospheric structures.

  • Build daily grids for TQV z-score, LWTUP z-score and SPI over the recent analysis window.
  • Compute coarse scores per cell using peak or percentile signal strength.
  • Apply spatial coherence filtering using neighbour rules or connected components.
  • Emit a small list of candidate patches and centroids.
  • Run STAR confirmation using shape and joint signal metrics.
  • Apply analogue matching, clustering correction and final lat/lon correction.
  • Pass confirmed predictions to StormZ Timer for timing analysis.

Methodological Note

StormZ analogue matching should be read as a signal-confirmed historical comparison framework, not as a deterministic claim that history repeats. The engine asks whether the current basin state resembles prior storm-capable states strongly enough to support risk identification, candidate location analysis, and further operational review.

Current development focus: extending the history analogue matching process from the North Atlantic to the South Pacific and South Indian basins.