satellite product browser
Project description
Demo
(wait a few seconds for it to load)
Features
- 🗺️ Interactive Map Interface - Visually search and filter satellite products
- 🛰️ High-Resolution Tile Server - Instantly visualize full-resolution product bands on the map (via
localtileserver) - 🔍 Smart Search - Filter by location, date range, cloud cover, and product type
- 📦 Granular Download Management - Advanced Band-Resolution matrix for precise data selection and de-duplicated downloads
- 🔌 Dual Backend Support - Flexible discovery via OData or STAC APIs
- 🐍 Professional API - Clean Python API for programmatic access
- 🔐 Secure - Handle S3 credentials safely with static key support
- ⚡ Efficient - Batch operations and smart caching
⚡ Quick Start with Docker 🐳
The fastest way to run vresto is by using Docker Compose 🚢
You only need Docker and Docker Compose installed on your machine. If you don't have them yet, you can find installation instructions on the Docker website and Docker Compose documentation.
Note: You need Copernicus credentials to use vresto. Get free access at https://dataspace.copernicus.eu/
Start vresto in just a few steps:
-
Clone the repository and go to its main directory
git clone https://github.com/kalfasyan/vresto.git && cd vresto
-
Start the application with one command
make docker-upℹ️ That's it! The app will start and you can add credentials later via the UI, or provide them now:
Option A: Add credentials now (Recommended if you have them)
- Create a
.envfile from the committed template:cp .env.example .env # Edit .env with your credentials
- Then run one of these commands:
make docker-upor:docker compose up -d
.envis ignored by git; do not commit secrets.- Optional
.envvariables:COPERNICUS_S3_ACCESS_KEY,COPERNICUS_S3_SECRET_KEY,COPERNICUS_S3_ENDPOINT,VRESTO_BASE_TILE_PORT(default: 8611)
Option B: Add credentials later (via the app Settings menu)
- Just run
make docker-upwithout credentials (usemake docker-rebuildif you just cloned the repo and want a rebuild) - The app will start at http://localhost:8610 (tile server traffic is mapped via
VRESTO_BASE_TILE_PORT) - Click the ☰ menu button in the top-left corner to open the Settings drawer
- Add your Copernicus credentials through the Settings menu anytime
- S3 credentials are optional—without them you'll get temporary credentials with usage limits (see Setup Guide for details)
- Create a
✅ Done! 🎉
Your vresto dashboard is now running at:
🌐 http://localhost:8610
Note: If you pulled recent changes and a feature isn't available, rebuild the Docker image:
docker compose up -d --build
🚀 Essential Docker & Docker Compose Commands
# Start the app in background (Docker Compose)
make docker-up
# View logs (Docker Compose)
make docker-logs
# Stop and remove services (Docker Compose)
make docker-down
# Rebuild and start (Docker Compose)
make docker-rebuild
# Run the container directly (plain Docker)
docker run -d -p 8610:8610 \
--name vresto-dashboard \
vresto:latest
# View logs (plain Docker)
docker logs -f vresto-dashboard
# Stop and remove the container (plain Docker)
docker stop vresto-dashboard && docker rm vresto-dashboard
Quick Start
Note: You need Copernicus credentials to use vresto. Get free access at https://dataspace.copernicus.eu/
Installation
From PyPI (recommended for users):
pip install vresto
For development:
git clone https://github.com/kalfasyan/vresto.git
cd vresto
uv sync
Configuration
Configure your credentials (see Setup Guide for details):
export COPERNICUS_USERNAME="your_email@example.com"
export COPERNICUS_PASSWORD="your_password"
Or run the interactive setup helper which writes a .env in the project root:
python scripts/setup_credentials.py
Note (pip install users):
scripts/setup_credentials.pyis only available in the cloned repo. If you installed viapip install vresto, use theexportcommands above or manually create a.envfile in your working directory based on the template.
Launch the App
Simply run:
vresto
Opens at http://localhost:8610 (the tile server runs on a random port handled internally)
Alternative methods:
# Using make
make app
# Or directly with Python
python src/vresto/ui/app.py
Command-Line Interface (CLI):
Quick searches and downloads from the terminal:
# 🔍 Search for products
vresto-cli search-name "S2A_MSIL2A_20200612" --max-results 5
# 📸 Download quicklook (preview image)
vresto-cli download-quicklook "S2A_MSIL2A_20200612T023601_N0500_R089_T50NKJ_20230327T190018" --output ./quicklooks
# 📋 Download metadata
vresto-cli download-metadata "S2A_MSIL2A_20200612T023601_N0500_R089_T50NKJ_20230327T190018" --output ./metadata
# 🎨 Download specific bands
vresto-cli download-bands "S2A_MSIL2A_20200612T023601_N0500_R089_T50NKJ_20230327T190018" "B04,B03,B02" --resolution 10 --output ./data
For complete CLI documentation, see the CLI Guide.
API usage:
Get started with just a few lines of Python:
from vresto.api import CatalogSearch, CopernicusConfig
from vresto.products import ProductsManager
# Initialize
config = CopernicusConfig()
catalog = CatalogSearch(config=config)
manager = ProductsManager(config=config)
# 🔍 Search for a product by name
products = catalog.search_products_by_name("S2A_MSIL2A", max_results=5)
# 📸 Download quicklook and metadata
for product in products:
quicklook = manager.get_quicklook(product)
metadata = manager.get_metadata(product)
if quicklook:
quicklook.save_to_file(f"{product.name}.jpg")
# 🎨 Download specific bands for analysis/visualization
manager.download_product_bands(
product=products[0].name,
bands=["B04", "B03", "B02"], # Red, Green, Blue
resolution=10,
dest_dir="./data",
)
For more examples, see the examples/ directory and API Guide.
For detailed setup and usage, see the documentation below.
Documentation
📖 Full Documentation - Hosted on GitHub Pages
- Setup Guide ⭐ Start here - Installation, credentials setup, and configuration
- API Guide - Programmatic usage examples and reference
- AWS CLI Guide - Direct S3 access with AWS CLI
- Contributing - Development setup
Requirements
- Python 3.11+
uvpackage manager (optional but recommended)
License
See LICENSE.txt
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vresto-0.3.3.tar.gz.
File metadata
- Download URL: vresto-0.3.3.tar.gz
- Upload date:
- Size: 80.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30428ac144931094abc37f991a71f9f4f625a74190a72a908add0be72ac42261
|
|
| MD5 |
da83e816cd7fd9c81c602038c253733a
|
|
| BLAKE2b-256 |
4f718e163594192c98c0393a41bd346a2a56bd744766c605f3054b0e64ce87ad
|
Provenance
The following attestation bundles were made for vresto-0.3.3.tar.gz:
Publisher:
publish.yml on kalfasyan/vresto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vresto-0.3.3.tar.gz -
Subject digest:
30428ac144931094abc37f991a71f9f4f625a74190a72a908add0be72ac42261 - Sigstore transparency entry: 1435684926
- Sigstore integration time:
-
Permalink:
kalfasyan/vresto@3d209287ee2d859daf694ab9b3823ecad9fe5ebf -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/kalfasyan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3d209287ee2d859daf694ab9b3823ecad9fe5ebf -
Trigger Event:
push
-
Statement type:
File details
Details for the file vresto-0.3.3-py3-none-any.whl.
File metadata
- Download URL: vresto-0.3.3-py3-none-any.whl
- Upload date:
- Size: 123.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da7002030b4423033fc292b58e0c403f0f50a419472db17f8b0b66b3d9a601ac
|
|
| MD5 |
f793f47ef13fd20a8736a211286e4167
|
|
| BLAKE2b-256 |
946f2431117f01f6a9d8d57c393640dc00a7edb2f64eb802de0c64cb4948fc06
|
Provenance
The following attestation bundles were made for vresto-0.3.3-py3-none-any.whl:
Publisher:
publish.yml on kalfasyan/vresto
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vresto-0.3.3-py3-none-any.whl -
Subject digest:
da7002030b4423033fc292b58e0c403f0f50a419472db17f8b0b66b3d9a601ac - Sigstore transparency entry: 1435684939
- Sigstore integration time:
-
Permalink:
kalfasyan/vresto@3d209287ee2d859daf694ab9b3823ecad9fe5ebf -
Branch / Tag:
refs/tags/v0.3.3 - Owner: https://github.com/kalfasyan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3d209287ee2d859daf694ab9b3823ecad9fe5ebf -
Trigger Event:
push
-
Statement type: