TL;DR — I built a full-stack app that shows one place — the Sheffield Cholera Monument — from two scales at once: a satellite's-eye vegetation view from space, and a centimeter-scale 3D model from the ground. This post is about the backend: a FastAPI service that authenticates against the Copernicus Sentinel Hub, pulls the newest real Sentinel-2 scene over a bounding box, computes NDVI, and then pins a satellite marker to the exact point in orbit where Sentinel-2A passed closest to the monument for that scene. The satellite-data pipeline is the heart of it, so that's where I'll spend most of the words.

What you'll get out of it

How to obtain live satellite imagery from Copernicus: OAuth token, then the Catalog, Process, and Statistics APIs

Why "the newest scene" is a real query, not a timestamp — and how to pin every view to that one scene

Turning a two-line element (TLE) into a satellite position with Skyfield + SGP4, vectorized with NumPy