Earth Data School/Answer a real question, end to end
Lesson 5.1 · 13 of 17

Answer a real question, end to end

Everything you've learned, in one runnable pipeline — the exact one /verify and /ask use. Discover → load → area-weight → trend → cross-check → and then earn the right to report it, call it a null, or refuse. Run it, then break it.

This is the whole game. You'll answer "has rainfall over this region declined?" the honest way, in your browser, on data shaped exactly like real IMERG — with a hidden trend planted in it so you can check you got it right. Every step links back to the lesson that taught it.

The pipeline you're about to runload → area-weight (3.4) → annual anomaly/total (3.1) → robust trend + significance (3.2) → cross-check a second independent product (4.1–4.2) → report, null, or refuse (4.3). That last branch — choosing not to answer — is the part that makes it trustworthy.

Run it

Hit Run (the first run loads Python in your browser, ~15 s). With the defaults it should REPORT a significant, gauge-confirmed decline that matches the planted truth. Then change two lines and rerun:

  • Set PLANTED = -1.0 → the trend is too small to clear the noise → you'll get an EARNED NULL.
  • Set DISAGREE = True → the gauge now contradicts the satellite → the honest answer becomes REFUSE (exactly what happened over West Bengal & Delhi with real IMD gauges).
runtime not loaded — first run fetches ~20 MB (cached after)
output
Click ▶ Run. With the defaults you should see “REPORT — declining, significant AND gauge-confirmed,” matching the planted truth.

What you just proved

You ran the same logic as the verified engine — and crucially, you saw it refuse when the evidence didn't hold. The verdict isn't "what's the number"; it's "can I stand behind a number at all?" Three honest outcomes, never a guess:

  • Report — significant and cross-confirmed. Stand behind it (still "computed, not yet scientist-verified").
  • Earned null — a slope too small to separate from noise. "No detectable trend" is a real answer.
  • Refuse — independent sources disagree, or the record's too short, or the region's ill-posed. Say so.
Now do it for realThe only thing separating this from a real analysis is where the data comes from. Swap load_capstone() for earthaccess + real IMERG/CHIRPS/IMD (the handbook's data-access section shows how), and the rest of the code is identical. Then ask your own verified question, or browse the question library for one to chase.

That's the course. You can now get an Earth-science answer and know whether to trust it — which is the whole point.