Skip to main content

satellite product browser

Project description

vresto logo

vresto

An elegant Python interface for discovering and retrieving Copernicus Sentinel data.

PyPI version PyPI Downloads Tests Docs - MkDocs Ruff Gitleaks


Demo

(wait a few seconds for it to load)

vresto Demo

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)
  • 🎯 Click-to-Stream - Click any MGRS grid tile on the map to instantly stream the latest True Color Image (TCI) for that tile
  • 🧭 Map Search Overlays - In the main Map Search tab, click an MGRS tile to compare the streamed TCI with WorldCover, LCM, Copernicus DEM, and annual LC100 overlays
  • 🔍 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:

  1. Clone the repository and go to its main directory

    git clone https://github.com/kalfasyan/vresto.git && cd vresto
    
  2. 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 .env file from the committed template:
      cp .env.example .env
      # Edit .env with your credentials
      
    • Then run one of these commands:
      make docker-up
      
      or:
      docker compose up -d
      
    • .env is ignored by git; do not commit secrets.
    • Optional .env variables: 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-up without credentials (use make docker-rebuild if 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)

Done! 🎉

Your vresto dashboard is now running at:
🌐 http://localhost:8610

Tip: Open the main Map Search tab, click an MGRS tile to stream its latest TCI, then toggle the WorldCover, LCM, Copernicus DEM, or LC100 overlays.

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.py is only available in the cloned repo. If you installed via pip install vresto, use the export commands above or manually create a .env file in your working directory based on the template.

Launch the App

If you installed from PyPI and your Python scripts directory is on your PATH, run:

vresto

If you are developing from a cloned repository, run through the project environment:

# Either with uv
uv run vresto

# Or with pixi
pixi run vresto

# Or via Makefile
make app

If you get command not found: vresto, the console script is not on your shell PATH yet. Use pixi run vresto / uv run vresto, or install and activate a virtual environment where vresto is installed.

Local (non-Docker) runs open on http://localhost:8610 by default. Docker runs open on http://localhost:8610.

Alternative methods:

# 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

Requirements

  • Python 3.11+
  • uv package manager (optional but recommended)

License

See LICENSE.txt

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vresto-0.3.10.tar.gz (80.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vresto-0.3.10-py3-none-any.whl (179.2 kB view details)

Uploaded Python 3

File details

Details for the file vresto-0.3.10.tar.gz.

File metadata

  • Download URL: vresto-0.3.10.tar.gz
  • Upload date:
  • Size: 80.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vresto-0.3.10.tar.gz
Algorithm Hash digest
SHA256 6485e841288a45d2c522c8d79e509ce4847ca048a147afc38f0a5499a32b6854
MD5 9621ed3c747edbca51826ca0f232fec3
BLAKE2b-256 7dffdfaa74f87b4051539238cb4b0c7d6b574a4f4136eb46d58b2a308099299b

See more details on using hashes here.

Provenance

The following attestation bundles were made for vresto-0.3.10.tar.gz:

Publisher: publish.yml on kalfasyan/vresto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vresto-0.3.10-py3-none-any.whl.

File metadata

  • Download URL: vresto-0.3.10-py3-none-any.whl
  • Upload date:
  • Size: 179.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for vresto-0.3.10-py3-none-any.whl
Algorithm Hash digest
SHA256 7dbf837b60026d9bb6df6d198f8ad703656b36c3f3c2f404a31b959f093a5b8c
MD5 ebdce02927defa87fe2c6b0cd2b000ea
BLAKE2b-256 d4be11c5afabbd3b06163406852047b0a5fd28aecb6e90037c338b009cc00d02

See more details on using hashes here.

Provenance

The following attestation bundles were made for vresto-0.3.10-py3-none-any.whl:

Publisher: publish.yml on kalfasyan/vresto

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page