Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Global precipitation climatology and ITCZ migration from GPM IMERG

Binder

Run this notebook interactively on CIRRUS BinderHub.

Global precipitation climatology and the migrating tropical rain belt

GPM IMERG Final (monthly) is NASA’s satellite-and-gauge precipitation product. It comes from GPM, the Global Precipitation Measurement mission — an international NASA–JAXA satellite constellation that estimates rainfall worldwide — and IMERG (Integrated Multi-satellitE Retrievals for GPM), the algorithm that blends those microwave and infrared observations into a single global, 0.1° map of the monthly-mean precipitation rate. GDEX’s copy spans June 2000 – October 2025; the earliest years lean on GPM’s predecessor, TRMM (the Tropical Rainfall Measuring Mission, 1997–2015). The satellite estimates are bias-corrected against ground rain-gauge records.

In this notebook we

  1. open the full ~25-year monthly record from GDEX,

  2. average it in time to map the global precipitation climatology (the long-term average rainfall pattern) — revealing the Intertropical Convergence Zone (ITCZ), the band of heavy rain where the trade winds meet near the equator, along with the monsoons and the dry subtropical deserts, then

  3. average around each latitude circle to show how that rain belt migrates north and south with the seasons.

Open the dataset

IMERG is distributed as hundreds of monthly HDF5 granules. GDEX adds a kerchunk reference — a single JSON index recording which byte range of which granule holds each chunk — so one xr.open_dataset(..., engine="kerchunk") call presents the whole record as one virtual xarray.Dataset, and you stream only the chunks you actually use.

GDEX publishes the reference in two forms we care about:

FormWhen to use it
POSIX (/gdex/data/...)on a machine that mounts /gdex/data — NCAR HPC and CIRRUS Binder
OSDF (...-remote-osdf.json)off-cluster (laptop, other hubs); chunks stream over the OSDF cache network

The cell below selects POSIX when the mount is present and falls back to OSDF, so the notebook runs unchanged in either place. The OSDF form’s chunk URLs use the osdf:// scheme, resolved by pelicanfs (installed via environment.yml; fsspec registers it automatically).

Access: POSIX mount
/gdex/data/d736000/kerchunk/GPM_3IMERGM_v07.json

Inspect the precipitation field

The monthly-mean rain rate lives in the precipitation variable. Two things to note before we compute:

  • its dimensions are ordered (time, lon, lat) — longitude before latitude — so we transpose to (lat, lon) when mapping;

  • its units are mm/hr; we convert to the more intuitive mm/day (× 24) for the plots.

Opening with chunks={} keeps the array lazy (Dask-backed) using the reference’s native chunking, so nothing is read until we reduce it.

Loading...

Global precipitation climatology

Averaging the full 304-month record gives the long-term mean rain rate at every 0.1° pixel. We convert mm/hr → mm/day for readability.

CPU times: user 1min 28s, sys: 10.5 s, total: 1min 38s
Wall time: 3min 37s
Loading...

Map the climatology

On a global map the long-term mean highlights the ITCZ as a bright band of heavy rain near the equator, flanked by the dry subtropical deserts and ocean highs, and by the mid-latitude storm tracks.

range: 0.00 – 29.05 mm/day
<Figure size 1100x550 with 2 Axes>

The seasonal cycle, animated

NASA’s IMERG monthly climatology shows the tropical rain belt breathing north and south across the year. We reproduce it here from the same data: twelve monthly-mean maps, played as a loop. Watch the ITCZ and the monsoons swing into the summer hemisphere each half-year.

shape: (12, 900, 1800) | max: 45.51046371459961
CPU times: user 1min 17s, sys: 9.36 s, total: 1min 26s
Wall time: 1min 46s
Loading...