# vresto: Making Open Satellite Data Easier to Use

Every few days, the Sentinel-2 satellites pass over your house, your city, and your favourite holiday destination. They photograph the Earth’s surface in thirteen spectral bands. The images are free, the data is open, and almost nobody outside remote-sensing circles knows how to use it. That gap is what got me into building **vresto**.

Copernicus is the European Union’s flagship Earth observation programme, run jointly with ESA. Its philosophy is simple: data paid for by European citizens should be available to anyone in the world. The “Sentinels” now produce around twelve terabytes of fresh imagery every day, supporting work on wildfires, floods, agriculture, land cover, and illegal deforestation. The data lives on the Copernicus Data Space Ecosystem (**CDSE**), which exposes a classic **OData** catalogue, a modern **STAC** API, and an **S3-compatible** object store. All three are well documented, but they still expect you to speak the language: product names, processing levels, tiling grids, archive formats, OAuth flows, and band resolutions. The first hour with Sentinel data can feel less like exploration and more like homework.

I work as an **AI Engineer** / **Remote Sensing Scientist**, spending a lot of time staring at satellite pixels with people who do the same. Over time, I kept seeing the same friction patterns. Someone building a land-cover model, validating a product, or investigating an odd prediction needs a quick visual sanity check on a Sentinel-2 scene. Are there clouds the mask missed? Is that suspicious blob a sensor artefact, a shadow, or just a freshly ploughed field? Does the surrounding land cover explain why a model behaved strangely? To answer these, people click through portals, copy a UUID, wait for a SAFE archive, unzip it, find the right JP2 band, and finally open it somewhere, usually QGIS. That is a lot of waiting to confirm a five-second hunch. **vresto** was built to fix that: make the boring part fast, so the interesting work can begin.

**vresto** is a small open-source Python toolkit and web app that sits on top of CDSE. It is released under **CC BY 4.0**, lives on **GitHub**, and ships on **PyPI**; install it with `pip install vresto` or `uv add vresto`. The technical choices are deliberately boring in the best way. A clean Python API abstracts over OData and STAC, so users can switch providers with one environment variable. A NiceGUI-based interactive map lets you click an MGRS tile and stream a true-colour preview, while `localtileserver` supports full-resolution band visualisation for artefact spotting. A band/resolution matrix lets you choose exactly the bands you need and de-duplicates the download list, because nobody enjoys pulling a gigabyte of imagery by accident. S3 credentials are handled securely with sensible fallbacks, the app starts with `make docker-up`, and there is a CLI for power users. Because CDSE hosts more than Sentinel data, **vresto** can also blend in reference layers such as ESA WorldCover and the LCFM Land Cover Map.

What I care about most, beyond protocols and pipelines, is making tools that feel intuitive to a stranger: clear documentation, clean interfaces, and installation measured in minutes. That sounds obvious, but it constantly competes with the urge to add one more feature. Every new option is something a user has to read, configure, misunderstand, or get wrong. Holding that line is hard, and I do not always succeed. It is also the best part of writing software. You ship, watch a real person try it, and learn what to keep, simplify, or throw away.

The hardest challenges in open Earth observation are not purely technical. **Discoverability** remains poor: many potential users still do not know this data exists. **Fragmentation** persists: each provider, sensor, and processing level has its own quirks, and small projects keep rebuilding the same glue code. **Sustainability** is fragile: community tools live or die on maintainer attention. But the hopeful side is strong. Standards like STAC are spreading, CDSE is genuinely open, and projects such as `rasterio`, `pystac-client`, `boto3`, and `localtileserver` form a stack that a developer with a laptop can compose into something useful.


Looking down from orbit is a privilege. Open source is what makes it a shared one.


About the Author

Yannis Kalfas is a multidisciplinary AI researcher and R&D engineer with over 10 years of experience spanning computational neuroscience, agricultural AI, and Earth observation. He holds a PhD in Bioscience Engineering from KU Leuven and an MSc in Machine Learning from KTH Royal Institute of Technology. Currently at VITO Remote Sensing, he develops deep learning models for global land cover mapping and satellite image compression. His open source tools span computer vision, satellite data interfaces, and MLOps workflow