ERA5-derived South Asian monsoon low-pressure system catalogue, v5.5 (1940–2025)
Description
ERA5-derived South Asian monsoon low-pressure-system catalogue v5.5 containing 1,678 LPSs from 1940 to the end of 2025. Every retained event has a complete hourly time axis.
Brief methodology
- Candidate centres are identified from hourly ERA5 vorticity and supporting pressure, wind, humidity and temperature fields.
- Candidates were linked through time, physically unrealistic gaps were removed, plausible endpoints were connected, and the surviving paths were projected onto a continuous hourly geometry constrained to at most 20 m s−1 propagation speed and at most 125 km from observed detector centres.
- Event existence uses the same pressure, vorticity, duration, observed-support and trajectory-coherence rules everywhere. An event needs at least three mature observed centres in the broad 65–100°E, 0–32°N release domain, so systems may originate elsewhere and later approach or cross India.
- Intensity is obtained from the 95th percentile of 10-m wind-vector anomaly within 125 km after subtracting the mean 300–500 km environmental wind vector. Thresholds use six-hour persistence and were calibrated against official IMD southwest-monsoon reports for 2015–2025. Precipitation is not used to select or classify events.
Identity and interpretation
track_id is the single physical-event identifier and should be used for grouping, event counts, plotting, matching and climatology. position_source distinguishes observed detector fixes from supported interpolated centres. Event-level support and peak-intensity values are repeated on each row of an event.
All unsuffixed meteorological fields are sampled at the final published centre. IMD-equivalent categories are ERA5-derived: 1 low, 2 depression, 3 deep depression, 4 cyclonic storm, 5 severe cyclonic storm, 6 very severe or extremely severe cyclonic storm, and 7 super cyclonic storm. Instantaneous persistent categories are null at interpolated positions.
Column guide
Identity, time and published position
track_id(int64; identifier) — Hourly-complete strength-qualified physical-event identifier; use for grouping, counts, plotting, matching and climatology.time(timestamp[ns]; UTC) — Valid time of the published centre in UTC.year(int64; calendar component) — UTC calendar year of time.month(int64; calendar component) — UTC calendar month number of time (1–12).day(int64; calendar component) — UTC day of month of time.hour(int64; calendar component) — UTC hour of day of time (0–23).lon(double; degrees east) — Longitude of the final published centre.lat(double; degrees north) — Latitude of the final published centre.life_stage(string; category or text) — Categorical life-cycle stage assigned to this hourly position.position_source(string; category or text) — Whether the published centre is an observed detector fix or a supported posterior/interpolated position.
Compact event-support summaries
posterior_gap_hours(double; hours) — Length of the candidate-free gap represented by a posterior/interpolated row; zero on observations.posterior_fraction(double; 0–1) — Fraction of this event's published rows that are posterior/interpolated; repeated on every event row.track_duration_hours(double; hours) — Inclusive number of hourly positions in the physical event; repeated on every event row.track_observed_support_hours(double; hours) — Number of observed detector positions in the event; repeated on every event row.track_occupancy_fraction(double; 0–1) — Observed positions divided by inclusive event duration; repeated on every event row.
Circulation, precipitation, wind and pressure
max_vort(double; 10⁻⁵ s⁻¹) — Maximum core relative vorticity inside the dynamical sampling radius sampled at the final published centre.mean_vort(double; 10⁻⁵ s⁻¹) — Mean core relative vorticity inside the dynamical sampling radius sampled at the final published centre.max_vort_smoothed(double; 10⁻⁵ s⁻¹) — Maximum spatially smoothed core relative vorticity inside the dynamical sampling radius sampled at the final published centre.mean_vort_850(double; 10⁻⁵ s⁻¹) — Mean 850-hPa relative vorticity inside the dynamical sampling radius sampled at the final published centre.mean_vort_700(double; 10⁻⁵ s⁻¹) — Mean 700-hPa relative vorticity inside the dynamical sampling radius sampled at the final published centre.mean_vort_500(double; 10⁻⁵ s⁻¹) — Mean 500-hPa relative vorticity inside the dynamical sampling radius sampled at the final published centre.mean_vort_deep(double; 10⁻⁵ s⁻¹) — Mean of published-centre relative vorticity at 850, 700 and 500 hPa.precip_1hr(double; mm) — Area-mean ERA5 precipitation during the valid hour inside the precipitation sampling radius sampled at the final published centre.precip_24hr(double; mm) — Area-mean trailing 24-hour ERA5 precipitation inside the precipitation sampling radius sampled at the final published centre.max_wind(double; m s⁻¹) — Maximum ERA5 10-m wind speed inside the wind sampling radius sampled at the final published centre.mean_wind(double; m s⁻¹) — Mean ERA5 10-m wind speed inside the wind sampling radius sampled at the final published centre.p95_anomaly_wind_125km_ms(double; m s⁻¹) — 95th percentile of ERA5 10-m wind-vector anomaly magnitude within 125 km after subtracting the mean 300–500 km environmental wind vector.background_u_300_500km_ms(double; m s⁻¹) — Eastward component of the mean ERA5 10-m environmental wind vector in the 300–500 km annulus used by the circulation-wind metric.background_v_300_500km_ms(double; m s⁻¹) — Northward component of the mean ERA5 10-m environmental wind vector in the 300–500 km annulus used by the circulation-wind metric.min_mslp(double; hPa) — Minimum mean-sea-level pressure inside the inner pressure radius sampled at the final published centre.ring_mslp_p60(double; hPa) — 60th percentile of mean-sea-level pressure in the environmental annulus sampled at the final published centre.pressure_deficit_hpa(double; hPa) — Environmental-annulus MSLP 60th percentile minus the local MSLP minimum, floored at zero sampled at the final published centre.closed_isobars_2hpa_local(double; count) — Integer pressure-depth proxy equal to floor(pressure deficit / 2 hPa) sampled at the final published centre.
Humidity, temperature and surface context
q850_mean_gkg(double; g kg⁻¹) — Mean 850-hPa specific humidity inside the dynamical sampling radius sampled at the final published centre.rh850_mean_pct(double; %) — Mean 850-hPa relative humidity inside the dynamical sampling radius sampled at the final published centre.t850_mean_k(double; K) — Mean 850-hPa air temperature inside the dynamical sampling radius sampled at the final published centre.t850_inner_minus_annulus_k(double; K) — Mean inner-region 850-hPa temperature minus the environmental-annulus mean sampled at the final published centre.q700_mean_gkg(double; g kg⁻¹) — Mean 700-hPa specific humidity inside the dynamical sampling radius sampled at the final published centre.rh700_mean_pct(double; %) — Mean 700-hPa relative humidity inside the dynamical sampling radius sampled at the final published centre.t700_mean_k(double; K) — Mean 700-hPa air temperature inside the dynamical sampling radius sampled at the final published centre.t700_inner_minus_annulus_k(double; K) — Mean inner-region 700-hPa temperature minus the environmental-annulus mean sampled at the final published centre.q500_mean_gkg(double; g kg⁻¹) — Mean 500-hPa specific humidity inside the dynamical sampling radius sampled at the final published centre.rh500_mean_pct(double; %) — Mean 500-hPa relative humidity inside the dynamical sampling radius sampled at the final published centre.t500_mean_k(double; K) — Mean 500-hPa air temperature inside the dynamical sampling radius sampled at the final published centre.t500_inner_minus_annulus_k(double; K) — Mean inner-region 500-hPa temperature minus the environmental-annulus mean sampled at the final published centre.rh_deep_mean_pct(double; %) — Mean of published-centre relative humidity at 850, 700 and 500 hPa.q_deep_mean_gkg(double; g kg⁻¹) — Mean of published-centre specific humidity at 850, 700 and 500 hPa.t850_minus_t500_k(double; K) — Published-centre 850-hPa temperature minus 500-hPa temperature.t700_minus_t500_k(double; K) — Published-centre 700-hPa temperature minus 500-hPa temperature.t_inner_minus_annulus_deep_k(double; K) — Mean inner-minus-environment temperature contrast across 850, 700 and 500 hPa.orography_m(double; m) — Surface elevation sampled at the final published centre.land_fraction(double; 0–1) — ERA5 land fraction, from 0 (water) to 1 (land) sampled at the final published centre.
Calibrated IMD-equivalent intensity
imd_category(double; category code) — Final persistent ERA5-derived IMD-equivalent numeric intensity code; not an official IMD classification.imd_label(string; category or text) — Text label for imd_category.event_peak_imd_category(int64; category code) — Maximum persistent ERA5-derived IMD-equivalent category reached by the event, repeated on every event row.event_peak_imd_label(string; category or text) — Text label for event_peak_imd_category, repeated on every event row.
Licence and source-data note
The catalogue files are released under CC BY 4.0. ERA5 source data remain subject to the Copernicus/ECMWF terms that apply to ERA5.
Notes
Files
Additional details
Related works
- Is documented by
- Other: https://kieranmrhunt.github.io/monsoon-low-atlas/ (URL)