Data quality#
imdtrack mirrors the IMD workbook faithfully, including its occasional
data-entry errors. Two conservative, non-destructive checks flag them — the
source values are never altered:
pos_suspect— a fix whose coordinates imply an impossible jump (an isolated position spike), e.g. a corrupted latitude.date_suspect— a day/month-transposed date, e.g. Nargis (2008) where May 1–3 were stored as “01/05, 02/05, 03/05” (Jan/Feb/Mar 5), scattering the storm across months.
bt = imd.load()
bt.observations.query("pos_suspect or date_suspect") # inspect flagged fixes
Cleaning on demand#
clean() returns a cleaned copy — the source is left
untouched:
bt.clean() # drop position spikes
bt.clean(how="mask") # keep the rows but null lat/lon
bt.clean(fix_dates=True) # also swap day/month back and re-order the track
These catch the common, well-defined cases; a few storms have messier date
corruption that is left as-is (visible as an implausibly long
start_time–end_time span).
Caveats#
Data © India Meteorological Department. This library only reformats it; verify against IMD for operational use. The most recent season is tentative until IMD’s post-season review.
Older years often lack storm names and some fields (e.g. central pressure); those appear as
NaN.