A photon leaves the Sun, bounces off a wheat field in Punjab, and — eight minutes and ninety-three million miles of its own journey notwithstanding — travels the last few hundred kilometres up to a sensor on a satellite. There it is counted. That count is the only thing that is, in any strict sense, measured. Everything after it is inference.
We forget this. We say “the satellite measured the temperature,” or “NDVI shows the crops are stressed,” as if the number arrived from the world fully formed. It did not. Between the photon and the number you put in a slide deck sits a retrieval algorithm, a model of the atmosphere it passed through, a calibration that drifts, a grid that averages your one field together with its neighbours, a cloud mask that quietly threw away the days it couldn’t see, and a fill value waiting to poison your mean if you forget to remove it. The number is not the truth. It is an estimate of the truth, and every step that produced it added error.
This is not a counsel of despair. Satellite data is one of the most extraordinary things our species has built — a continuous, decades-long, planet-wide record of a world too big to watch any other way. GRACE weighed the groundwater vanishing under northwest India from orbit. IMERG watches the monsoon where there are no rain gauges. Black Marble saw the lights of Puerto Rico go dark after Maria and stay dark for months. The data is real, and it is useful, and it matters enormously.
But “useful” and “true” are not the same word, and the distance between them is exactly the part everyone skips.
I built Earth Data School because I kept hitting that distance myself. I am a programmer. I can pull a dataset, area-weight a grid, fit a trend, and make a chart faster than I can explain why any of it is correct. And that is the trap: the code runs, the chart looks plausible, and plausible is where most analysis stops. Rainfall is declining over my district. The chart says so. Ship it.
Except — is it? Is the slope bigger than the year-to-year wobble, or did I mistake noise for signal? Did I compare this year to a stated baseline, or to nothing? Did I deseasonalise, or is “rising” just summer following winter? And the question that humbled me most: does a second, independently-built dataset tell the same story — and when I checked against the actual rain gauges, the ground truth, did they agree?
For a lot of Indian rainfall, when I finally ran that last check, the gauges did not agree. The satellite said one thing; the India Meteorological Department’s gauge grid said the opposite, with significance. The honest answer to “is rainfall declining here?” was not yes and not no. It was: unresolved — the sources disagree, and I will not pretend otherwise.
That refusal is the whole point. It is the thing that almost no tool, and almost no course, will teach you to do.
So that became the spine of everything here. Not “how to produce a result” — the internet has that. The harder, rarer discipline: how to know whether the result is real, and the courage to refuse when it isn’t. Four moves, in order:
- Compute the number. The easy part.
- Quantify how uncertain it is — the noise floor, the p-value, the confidence interval that may straddle zero.
- Cross-check it against something independent — a second product, a ground gauge, a different sensor.
- Refuse to claim more than the data supports. A null is a real answer. “I can’t tell” is a real answer. A confident number you can’t defend is the only failure.
Compute → quantify → cross-check → refuse. That loop is verification. It is the difference between a chart and a finding, between “the model says” and “I’d stake something on this.” It is, in the end, the difference between a photon and a proof.
None of this requires you to become an atmospheric physicist. It requires four humbler things: knowing what each number actually is, computing it robustly, measuring your own uncertainty, and being willing — out loud, in public — to say I don’t know when the data won’t say. Those are learnable. That’s what this school is for. You’ll run the real code here, on data shaped exactly like the real thing, with a known signal planted in it so you can prove to yourself your method recovered the truth — and watch it, honestly, fail to when the evidence isn’t there.
The satellites are extraordinary. The data is a gift. But the gift comes with an obligation, and the obligation is this: when you turn a photon into a number and the number into a claim, you owe the world the proof — or the honesty to say you don’t have it yet.
This is the in-house companion to the original essay at ajinkya.ai/from-photons-to-proof.