q51·intermediate

How have rainfall and temperature changed over my region in recent decades?

atmosphereclimatehydrology Datasets: 3 5–15 min via Google Earth Engine

Rainfall is how much water fell on the ground over some period. Temperature is how warm the air was, measured a couple of metres above the surface. This question asks a plain thing. Over the last few decades, has your region been getting wetter or drier, hotter or cooler? And is that change real, or just normal year-to-year wobble?

How have rainfall and temperature changed over my region in recent decades?

Rainfall is how much water fell on the ground over some period. Temperature is how warm the air was, measured a couple of metres above the surface. This question asks a plain thing. Over the last few decades, has your region been getting wetter or drier, hotter or cooler? And is that change real, or just normal year-to-year wobble?

Which data to use, and how

Use this dataset: ERA5 reanalysis. A reanalysis is a best-guess weather record. Scientists take every observation they have (weather stations, balloons, satellites) and blend it with a physics model to produce one consistent gridded history of the whole planet, hour by hour, going back to 1980. ERA5 gives you both things you want here in one place: 2 m air temperature and total precipitation (rainfall). It’s the easiest start because you reach it through Google Earth Engine, with no files to download and no login juggling.

For rainfall specifically, you’ll later cross-check against a second, independent dataset, CHIRPS (rainfall built mostly from satellites plus rain gauges). If two datasets built in totally different ways agree, you trust the answer more.

Then do four steps (the runnable code further down does all of this — this is just the idea):

  1. Pick your region (a latitude/longitude box around it) and the years you care about (at least ~10).
  2. One number per year. Average the temperature (or add up the rainfall) inside your box for each year. That gives you a yearly time series.
  3. Fit a trend and test it. Draw the long-term line through those yearly points and check it’s bigger than the random year-to-year noise. Up = warming or wetter, down = cooling or drier, flat = no real change.
  4. Cross-check the rainfall. Repeat the rainfall trend with CHIRPS and see if it agrees with ERA5.

That’s the whole method. Below, “How a scientist answers this” names the exact tools, and the Run it cell does it live on synthetic data so you can see each step work.

What you can find out

  • Whether rainfall or temperature has changed over your region across recent decades. You get a robust long-term slope (a Theil–Sen slope, a way of fitting a line that ignores wild outliers) with a Mann–Kendall significance test (a check of whether the change is real and not luck) and a 95% confidence interval.
  • A second opinion on rainfall. The precipitation trend computed two independent ways, ERA5 vs CHIRPS, so you can see whether they agree.
  • The honest “nothing happened” answer. “No significant trend” is a real, useful result here, not a failure. Several of the demo regions land exactly there.

What it can’t tell you

  • Whether humans caused it. Showing a region warmed is not the same as proving why. Saying “this is human-caused, not natural variability” needs a formal method called detection-and-attribution, far beyond a single trend line.
  • Extreme days or short bursts. This is annual (or seasonal: JJAS for the monsoon, DJF for winter) trend analysis, not extreme-event statistics. It won’t tell you about the worst single storm or heatwave.
  • Anything over too few years. A trend over less than ~10 years is untrustworthy. Too few points to fit a reliable slope. The tool here refuses spans that short on purpose.

Gotchas to watch for

  • A reanalysis is a model, not raw truth. ERA5 is a physics model fed by observations, so over a data-sparse region it can drift from reality. That’s why you cross-check rainfall against CHIRPS: two methods, two error patterns. If they disagree sharply, trust neither blindly.
  • You need enough years, or the slope is noise. Climate wobbles a lot from year to year. A “trend” over a short window is mostly that wobble, not a real signal. The minimum ~10-year span is the simplest fix, and the validator enforces it.
  • Pick the right season. A whole-year average can hide a real change that lives in one season. A monsoon (June–September, JJAS) might shift while winter stays flat. If you care about the monsoon, run the trend on JJAS rainfall, not the annual total.
  • “Flat” is a finding, not a bug. If your trend comes back not significant, that is a genuine result (an earned null). Don’t keep tweaking the box until you force a trend to appear. That’s fooling yourself.

The real-data code

The Run it cell above runs the method on synthetic data (no login). Below is the whole recipe against the real climate record through Google Earth Engine: pull ERA5, area-average per year, fit a robust trend, test it, cross-check the rainfall against CHIRPS, and plot it. It needs a free Earth Engine account.

import ee, numpy as np, pymannkendall as mk
import matplotlib.pyplot as plt
ee.Initialize()

aoi = ee.Geometry.Rectangle([74, 18, 80, 22])   # (W, S, E, N) — Marathwada, Maharashtra
years = list(range(1980, 2021))                   # >= ~10 yr or the slope is just noise

# 1. One number per year, area-averaged over the box, straight off Earth Engine.
#    ERA5 monthly: 2 m air temperature (K) + total precipitation (m), summed to mm/yr.
era5 = ee.ImageCollection("ECMWF/ERA5/MONTHLY")

def era5_year(y):
    yr = era5.filterDate(f"{y}-01-01", f"{y}-12-31").filterBounds(aoi)
    t = (yr.select("mean_2m_air_temperature").mean()            # annual-mean temperature
         .reduceRegion(ee.Reducer.mean(), aoi, 27830).get("mean_2m_air_temperature"))
    p = (yr.select("total_precipitation").sum().multiply(1000)  # m -> mm, summed over year
         .reduceRegion(ee.Reducer.mean(), aoi, 27830).get("total_precipitation"))
    return ee.Feature(None, {"t": t, "p": p})

rows = ee.FeatureCollection([era5_year(y) for y in years]).getInfo()["features"]
temp = np.array([r["properties"]["t"] for r in rows]) - 273.15   # K -> degC
rain = np.array([r["properties"]["p"] for r in rows])

# 2. Cross-check rainfall with CHIRPS (satellite + gauge), built a totally different way.
chirps = ee.ImageCollection("UCSB-CHG/CHIRPS/DAILY")
def chirps_year(y):
    s = chirps.filterDate(f"{y}-01-01", f"{y}-12-31").filterBounds(aoi).sum()
    return ee.Feature(None, {"p": s.reduceRegion(ee.Reducer.mean(), aoi, 5566).get("precipitation")})
crows = ee.FeatureCollection([chirps_year(y) for y in years]).getInfo()["features"]
rain_chirps = np.array([r["properties"]["p"] for r in crows])

# 3. Robust trend + significance for each series (Theil-Sen slope + Mann-Kendall test).
def trend(label, series, unit):
    r = mk.original_test(series)
    word = ("rising" if r.slope > 0 else "falling") if r.h else "flat"
    print(f"{label}: {word} {r.slope:+.3f} {unit}/yr, p={r.p:.3f}",
          "(significant)" if r.h else "(an earned null — not distinguishable from noise)")
    return r

rt = trend("ERA5 temperature", temp, "degC")
rp = trend("ERA5 rainfall   ", rain, "mm")
rc = trend("CHIRPS rainfall ", rain_chirps, "mm")
agree = (rp.slope > 0) == (rc.slope > 0)
print("Rainfall cross-check: ERA5 and CHIRPS",
      "AGREE on direction" if agree else "DISAGREE — trust neither blindly")

# 4. Plot both series with their Theil-Sen lines.
x = np.array(years)
fig, ax = plt.subplots(2, 1, figsize=(8, 6), sharex=True)
ax[0].plot(x, temp, ".-"); ax[0].plot(x, rt.intercept + rt.slope * (x - x[0]), "k--")
ax[0].set_ylabel("2 m temp (degC)")
ax[1].plot(x, rain, ".-", label="ERA5"); ax[1].plot(x, rain_chirps, ".-", label="CHIRPS")
ax[1].plot(x, rc.intercept + rc.slope * (x - x[0]), "k--")
ax[1].set_ylabel("rainfall (mm/yr)"); ax[1].set_xlabel("year"); ax[1].legend()
plt.tight_layout(); plt.show()

# Trust it only if ERA5 and CHIRPS agree on rainfall direction — a reanalysis is a model,
# not raw truth, so two independent products disagreeing means trust neither (see gotchas).

Where the data comes from

Everything runs through Google Earth Engine, so there are no NASA files to download for this one. ERA5 (and the finer-resolution ERA5-Land) come from ECMWF, Europe’s weather centre. CHIRPS, the independent rainfall cross-check, comes from the UCSB Climate Hazards Center in the United States. Three different institutions, blended into one notebook, which is the whole point of the cross-check.

Verified answers

Real ERA5 trends, computed on Google Earth Engine and shown verbatim below. Most regional rainfall trends are statistically flat (an earned null), while Indo-Gangetic-Plain temperature shows significant warming. These are computed, not yet scientist-verified. Draw your own area of interest and download the notebook to reproduce the method for your region.

How a scientist answers this
Parameters
ERA5 2 m temperature (°C/decade) and total precipitation (mm/yr/decade), aggregated to annual or seasonal (JJAS/DJF) means/totals over a region; CHIRPS rainfall as an independent precip cross-check; ERA5-Land for finer land detail. Baseline is the region's own record; trends shorter than ~10 years are refused.
Method
Build the area-weighted annual/seasonal series, then fit an area-weighted Theil–Sen slope with Mann–Kendall significance and a 95% confidence interval; report 'no significant trend' as a valid, earned null when the slope's CI spans zero.
Validation
Cross-check ERA5 precipitation trends against CHIRPS (and gauges where available), state the analysis period explicitly, and avoid over-interpreting short records or claiming attribution — trend detection is not formal detection-and-attribution.
In plain EnglishAverage temperature and rainfall over your region each year, then test whether the long-term line truly tilts up or down beyond natural wobble — and accept 'no real change' as a genuine answer.

Make it yours → Draw your area of interest, choose annual or seasonal windows and the year range, and switch ERA5↔CHIRPS for the rainfall cross-check.

🧪 Virtual Mock Lab stand-in data · runs in your browser · no login

A safe place to practise the method on GPM_3IMERGM. The code is the real earthaccess workflow, but we feed it stand-in data shaped like the real product — so you can run it, change the numbers, and break it without an account. When you want the real data, use the recipe under “The real-data code” above, or download the notebook below.

editable · runs in your browser
Computed · real data Worked examples, computed end-to-end on real satellite data — not yet scientist-verified · expand ▾
Real trends, computed on Google Earth Engine (area-weighted Theil–Sen + Mann–Kendall).

We ran the analysis on real data for Indian regions and report exactly what came back — including the honest nulls and refusals. Each card shows the slope, significance, and (for rainfall) a gauge cross-check.

Has annual rainfall in the Marathwada region declined from 1990 to 2020?
rainfall Marathwada 1990–2020
-1.183 mm/year (trend) no significant trend
95% CI [-8.646, 7.167] Mann–Kendall p = 0.6341

The data doesn't support a rainfall change here — an earned null, not a missing answer.

⚠ Ground-truth: gauges disagree IMD gauges ↓ · ERA5 ↑ · CHIRPS ↑ sources DISAGREE on direction — treat the trend as unresolved. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over the Indo-Gangetic Plain changed from 1980 to 2020?
temperature Indo-Gangetic Plain 1980–2020
+0.016 degC (trend) significant trend
95% CI [0.003, 0.03] Mann–Kendall p = 0.0059

Prior: IMD/IPCC consensus: India land-surface warming ~0.6-0.7C/century, accelerating.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has rainfall over the Western Ghats crest meaningfully changed from 1991 to 2020?
rainfall Western Ghats crest 1991–2020
-0.245 mm/year (trend) no significant trend
95% CI [-16.379, 16.596] Mann–Kendall p = 1

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ · CHIRPS ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Rainfall trend over Punjab, 1990-2020?
rainfall Punjab 1990–2020
-5.799 mm/year (trend) no significant trend
95% CI [-12.603, 1.898] Mann–Kendall p = 0.1739

The data doesn't support a rainfall change here — an earned null, not a missing answer.

⚠ Ground-truth: gauges disagree IMD gauges ↓ · ERA5 ↓ · CHIRPS ↑* sources DISAGREE on direction — treat the trend as unresolved. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Rainfall trend over Kerala, 1990-2020?
rainfall Kerala 1990–2020
+6.541 mm/year (trend) no significant trend
95% CI [-4.858, 15.146] Mann–Kendall p = 0.1438

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ · CHIRPS ↑* all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
What was the mean annual rainfall over the Krishna basin, 2000-2020?
rainfall Krishna basin 2000–2020
1129.3mm/year
computed · ERA5/GEE · not yet scientist-verified
Has monsoon-season (JJAS) rainfall over central India changed from 1990 to 2020?
rainfall Central India 1990–2020
+1.23 mm/year (trend) no significant trend
95% CI [-9.445, 13.019] Mann–Kendall p = 0.6341

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ · CHIRPS ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Tamil Nadu changed from 1990 to 2020?
rainfall Tamil Nadu 1990–2020
+4.088 mm/year (trend) no significant trend
95% CI [-5.939, 12.906] Mann–Kendall p = 0.3412

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ · CHIRPS ↑* all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Tamil Nadu changed from 1980 to 2020?
temperature Tamil Nadu 1980–2020
+0.02 degC (trend) significant trend
95% CI [0.011, 0.031] Mann–Kendall p = 0

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Karnataka changed from 1990 to 2020?
rainfall Karnataka 1990–2020
+1.402 mm/year (trend) no significant trend
95% CI [-4.89, 9.295] Mann–Kendall p = 0.6341

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ · CHIRPS ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Karnataka changed from 1980 to 2020?
temperature Karnataka 1980–2020
+0.02 degC (trend) significant trend
95% CI [0.009, 0.029] Mann–Kendall p = 0

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Gujarat changed from 1990 to 2020?
rainfall Gujarat 1990–2020
+8.447 mm/year (trend) no significant trend
95% CI [-4.367, 17.172] Mann–Kendall p = 0.1347

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑* · CHIRPS ↑* all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Gujarat changed from 1980 to 2020?
temperature Gujarat 1980–2020
+0.018 degC (trend) significant trend
95% CI [0.009, 0.026] Mann–Kendall p = 0.0007

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Rajasthan changed from 1990 to 2020?
rainfall Rajasthan 1990–2020
+1.414 mm/year (trend) no significant trend
95% CI [-4.819, 7.13] Mann–Kendall p = 0.5184

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ · CHIRPS ↑* all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Rajasthan changed from 1980 to 2020?
temperature Rajasthan 1980–2020
+0.013 degC (trend) significant trend
95% CI [0, 0.03] Mann–Kendall p = 0.0338

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over West Bengal changed from 1990 to 2020?
rainfall West Bengal 1990–2020
-6.59 mm/year (trend) no significant trend
95% CI [-16.478, 4.77] Mann–Kendall p = 0.1534

The data doesn't support a rainfall change here — an earned null, not a missing answer.

⚠ Ground-truth: gauges disagree IMD gauges ↓* · ERA5 ↓ · CHIRPS ↑ sources DISAGREE on direction — treat the trend as unresolved. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over West Bengal changed from 1980 to 2020?
temperature West Bengal 1980–2020
+0.018 degC (trend) significant trend
95% CI [0.006, 0.026] Mann–Kendall p = 0.0007

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Madhya Pradesh changed from 1990 to 2020?
rainfall Madhya Pradesh 1990–2020
+0.524 mm/year (trend) no significant trend
95% CI [-6.436, 11.043] Mann–Kendall p = 0.8918

The data doesn't support a rainfall change here — an earned null, not a missing answer.

⚠ Ground-truth: gauges disagree IMD gauges ↓ · ERA5 ↑ · CHIRPS ↑ sources DISAGREE on direction — treat the trend as unresolved. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Madhya Pradesh changed from 1980 to 2020?
temperature Madhya Pradesh 1980–2020
+0.016 degC (trend) significant trend
95% CI [0.006, 0.028] Mann–Kendall p = 0.0013

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Odisha changed from 1990 to 2020?
rainfall Odisha 1990–2020
+3.624 mm/year (trend) no significant trend
95% CI [-15.228, 13.977] Mann–Kendall p = 0.5634

The data doesn't support a rainfall change here — an earned null, not a missing answer.

⚠ Ground-truth: gauges disagree IMD gauges ↓ · ERA5 ↑ · CHIRPS ↑ sources DISAGREE on direction — treat the trend as unresolved. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Odisha changed from 1980 to 2020?
temperature Odisha 1980–2020
+0.01 degC (trend) significant trend
95% CI [0.002, 0.017] Mann–Kendall p = 0.0052

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Assam changed from 1990 to 2020?
rainfall Assam 1990–2020
-20.4 mm/year (trend) significant trend
95% CI [-36.556, -0.498] Mann–Kendall p = 0.0249
✓ Ground-truth: gauges agree IMD gauges ↓ · ERA5 ↓ · CHIRPS ↓ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Assam changed from 1980 to 2020?
temperature Assam 1980–2020
+0.024 degC (trend) significant trend
95% CI [0.017, 0.031] Mann–Kendall p = 0

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑* all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over the Delhi NCR changed from 1990 to 2020?
rainfall Delhi NCR 1990–2020
+0.094 mm/year (trend) no significant trend
95% CI [-7.46, 7.186] Mann–Kendall p = 1

The data doesn't support a rainfall change here — an earned null, not a missing answer.

⚠ Ground-truth: gauges disagree IMD gauges ↓* · ERA5 ↑ · CHIRPS ↑ sources DISAGREE on direction — treat the trend as unresolved. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over the Delhi NCR changed from 1980 to 2020?
temperature Delhi NCR 1980–2020
+0.009 degC (trend) no significant trend
95% CI [-0.005, 0.026] Mann–Kendall p = 0.1965

The data doesn't support a temperature change here — an earned null, not a missing answer.

Prior: IMD/IPCC consensus: India land-surface warming.

⚠ Ground-truth: gauges disagree IMD gauges ↑ · ERA5 ↓ sources DISAGREE on direction — treat the trend as unresolved. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has annual rainfall over Mumbai & the Konkan coast changed from 1990 to 2020?
rainfall Mumbai & Konkan 1990–2020
+10.047 mm/year (trend) no significant trend
95% CI [-13.514, 28.655] Mann–Kendall p = 0.3412

The data doesn't support a rainfall change here — an earned null, not a missing answer.

✓ Ground-truth: gauges agree IMD gauges ↑ · ERA5 ↑ · CHIRPS ↑ all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
How has average temperature over Mumbai & the Konkan coast changed from 1980 to 2020?
temperature Mumbai & Konkan 1980–2020
+0.022 degC (trend) significant trend
95% CI [0.015, 0.03] Mann–Kendall p = 0

Prior: IMD/IPCC consensus: India land-surface warming.

✓ Ground-truth: gauges agree IMD gauges ↑* · ERA5 ↑* all sources agree on direction. IMD = India Meteorological Dept. gauge grid (the ground-truth); * = significant.
computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over the Delhi NCR risen since 2003?
land-surface temperature Delhi NCR 2003–2022
-0.015 degC (trend) no significant trend
95% CI [-0.054, 0.029] Mann–Kendall p = 0.3145

The data doesn't support a land-surface temperature change here — an earned null, not a missing answer.

Prior: urban heat island + regional warming.

computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over Mumbai risen since 2003?
land-surface temperature Mumbai & Konkan 2003–2022
-0.088 degC (trend) significant trend
95% CI [-0.132, -0.033] Mann–Kendall p = 0.0008

Prior: coastal city; warming likely but sea-moderated.

computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over Bengaluru risen since 2003?
land-surface temperature Bengaluru 2003–2022
-0.032 degC (trend) no significant trend
95% CI [-0.115, 0.034] Mann–Kendall p = 0.381

The data doesn't support a land-surface temperature change here — an earned null, not a missing answer.

Prior: rapid urban growth + heat island.

computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over Chennai risen since 2003?
land-surface temperature Chennai 2003–2022
+0.03 degC (trend) no significant trend
95% CI [-0.027, 0.098] Mann–Kendall p = 0.4555

The data doesn't support a land-surface temperature change here — an earned null, not a missing answer.

Prior: coastal metro; warming likely but sea-moderated.

computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over Hyderabad risen since 2003?
land-surface temperature Hyderabad 2003–2022
-0.06 degC (trend) significant trend
95% CI [-0.116, 0] Mann–Kendall p = 0.0252

Prior: rapid urban growth + heat island.

computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over Kolkata risen since 2003?
land-surface temperature Kolkata 2003–2022
+0.049 degC (trend) significant trend
95% CI [0.021, 0.071] Mann–Kendall p = 0.001

Prior: dense delta metro; warming likely.

computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over Ahmedabad risen since 2003?
land-surface temperature Ahmedabad 2003–2022
-0.05 degC (trend) significant trend
95% CI [-0.078, -0.007] Mann–Kendall p = 0.0252

Prior: semi-arid city + heat island.

computed · ERA5/GEE · not yet scientist-verified
Has the daytime land-surface temperature over Pune risen since 2003?
land-surface temperature Pune 2003–2022
-0.116 degC (trend) significant trend
95% CI [-0.168, -0.061] Mann–Kendall p = 0.0002

Prior: fast-growing city + heat island.

computed · ERA5/GEE · not yet scientist-verified
Has growing-season greenness (NDVI) over Punjab changed since 2003?
greenness (NDVI) Punjab 2003–2022
+0.003 NDVI (trend) significant trend
95% CI [0.002, 0.004] Mann–Kendall p = 0.0001
computed · ERA5/GEE · not yet scientist-verified
Has growing-season greenness (NDVI) over the Indo-Gangetic Plain changed since 2003?
greenness (NDVI) Indo-Gangetic Plain 2003–2022
+0.003 NDVI (trend) significant trend
95% CI [0.001, 0.003] Mann–Kendall p = 0
computed · ERA5/GEE · not yet scientist-verified
Has total water storage (the groundwater proxy) over Punjab declined? (GRACE, 2003-2016)
water storage (GRACE) Punjab 2003–2016
-2.109 (trend) significant trend
95% CI [-3.22, -1.48] Mann–Kendall p = 0.0001

Prior: well-documented NW India groundwater depletion (Rodell et al. 2009).

computed · ERA5/GEE · not yet scientist-verified
Has total water storage over the Indo-Gangetic Plain declined? (GRACE, 2003-2016)
water storage (GRACE) Indo-Gangetic Plain 2003–2016
-1.881 (trend) significant trend
95% CI [-2.59, -1.185] Mann–Kendall p = 0.0001

Prior: NW India groundwater depletion.

computed · ERA5/GEE · not yet scientist-verified
Has the eastern Arabian Sea surface warmed? (OISST, 1990-2020)
sea-surface temperature Arabian Sea (east) 1990–2020
+0.026 (trend) significant trend
95% CI [0.019, 0.032] Mann–Kendall p = 0

Prior: Indian Ocean among the fastest-warming basins.

computed · ERA5/GEE · not yet scientist-verified
Has the northern Bay of Bengal surface warmed? (OISST, 1990-2020)
sea-surface temperature Bay of Bengal (north) 1990–2020
+0.021 (trend) significant trend
95% CI [0.014, 0.029] Mann–Kendall p = 0

Prior: Indian Ocean rapid warming.

computed · ERA5/GEE · not yet scientist-verified
Have night-lights over the Delhi NCR brightened? (VIIRS, 2014-2023)
night-lights (VIIRS) Delhi NCR 2014–2023
-0.047 (trend) no significant trend
95% CI [-0.251, 0.334] Mann–Kendall p = 0.7205

The data doesn't support a night-lights (VIIRS) change here — an earned null, not a missing answer.

Prior: urban growth + electrification.

computed · ERA5/GEE · not yet scientist-verified
Have night-lights over Mumbai brightened? (VIIRS, 2014-2023)
night-lights (VIIRS) Mumbai & Konkan 2014–2023
+0.124 (trend) significant trend
95% CI [0.029, 0.203] Mann–Kendall p = 0.0024

Prior: urban growth.

computed · ERA5/GEE · not yet scientist-verified
Have night-lights over Bengaluru brightened? (VIIRS, 2014-2023)
night-lights (VIIRS) Bengaluru 2014–2023
-0.412 (trend) no significant trend
95% CI [-0.916, 0.192] Mann–Kendall p = 0.4743

The data doesn't support a night-lights (VIIRS) change here — an earned null, not a missing answer.

Prior: rapid tech-city growth.

computed · ERA5/GEE · not yet scientist-verified
Have night-lights over Hyderabad brightened? (VIIRS, 2014-2023)
night-lights (VIIRS) Hyderabad 2014–2023
-0.392 (trend) no significant trend
95% CI [-1.185, 0.415] Mann–Kendall p = 0.2105

The data doesn't support a night-lights (VIIRS) change here — an earned null, not a missing answer.

Prior: urban growth.

computed · ERA5/GEE · not yet scientist-verified
Have night-lights over the Indo-Gangetic Plain brightened? (VIIRS, 2014-2023)
night-lights (VIIRS) Indo-Gangetic Plain 2014–2023
+0.055 (trend) significant trend
95% CI [0.027, 0.07] Mann–Kendall p = 0.0003

Prior: rural electrification across the plain.

computed · ERA5/GEE · not yet scientist-verified
Has growing-season greenness (NDVI) over Marathwada changed since 2003?
greenness (NDVI) Marathwada 2003–2022
+0.003 NDVI (trend) significant trend
95% CI [0.001, 0.005] Mann–Kendall p = 0.0032
computed · ERA5/GEE · not yet scientist-verified
Has growing-season greenness (NDVI) over Gujarat changed since 2003?
greenness (NDVI) Gujarat 2003–2022
+0.003 NDVI (trend) significant trend
95% CI [0.002, 0.004] Mann–Kendall p = 0.0001
computed · ERA5/GEE · not yet scientist-verified
Has growing-season greenness (NDVI) over Madhya Pradesh changed since 2003?
greenness (NDVI) Madhya Pradesh 2003–2022
+0.003 NDVI (trend) significant trend
95% CI [0.002, 0.005] Mann–Kendall p = 0.0001
computed · ERA5/GEE · not yet scientist-verified
Has growing-season greenness (NDVI) over Tamil Nadu changed since 2003?
greenness (NDVI) Tamil Nadu 2003–2022
+0.002 NDVI (trend) significant trend
95% CI [0, 0.004] Mann–Kendall p = 0.0252
computed · ERA5/GEE · not yet scientist-verified

…and what it refuses to answer

What is the rainfall trend over Maharashtra from 2018 to 2021?
rainfall Central India 2018–2021
⊘ Refused

trend span < 10y — the validator refuses ill-posed questions rather than guessing. That discipline is the point.

validator-enforced refusal
How has temperature changed in 'the valley' since 1990?
temperature 1990–2020
⊘ Asks to clarify

unresolved region name — the validator refuses ill-posed questions rather than guessing. That discipline is the point.

validator-enforced refusal
Has it gotten hotter and drier over Vidarbha since 1990?
AMBIGUOUS_MULTI Vidarbha 1990–2020
⊘ Splits the question

answer temperature and precipitation separately — the validator refuses ill-posed questions rather than guessing. That discipline is the point.

validator-enforced refusal
How has tropospheric NO2 (air quality) over an Indian city changed over the last decade?
nitrogen dioxide (NO2) Delhi NCR 2019–2024
⊘ Refused

the satellite NO2 record (TROPOMI, 2018+) is only ~6 years -- too short to honestly call a decadal trend. OMI reaches 2004 but is not in this GEE pipeline. Refuse rather than mislead. — the validator refuses ill-posed questions rather than guessing. That discipline is the point.

validator-enforced refusal

See all verified answers →