Skip to main content

Unified Python SDK for satellite data access and analysis

Project description

SatelliteHub

Unified Python SDK for satellite data access and vegetation analysis.

Python 3.10+ License: MIT

Features

  • Vegetation Health Analysis - NDVI-based health assessment with cloud masking
  • Change Detection - Compare vegetation between time periods
  • Weather Integration - ERA5 reanalysis and IMGW Polish stations
  • Export Options - DataFrame, GeoTIFF, PNG, HTML reports
  • Two-Tier API - High-level semantic methods + low-level data access

Installation

pip install satellitehub

Quick Start

import satellitehub as sh

# Create a location (Warsaw)
loc = sh.location(lat=52.23, lon=21.01)

# Analyze vegetation health
result = loc.vegetation_health(last_days=30)

print(f"NDVI: {result.mean_ndvi:.2f}")
print(f"Confidence: {result.confidence:.0%}")
print(result.narrative())

# Export results
result.to_png("vegetation.png")
result.to_dataframe().to_csv("data.csv")

Configuration

Create ~/.satellitehub/credentials.json:

{
  "cdse": {
    "username": "your-copernicus-email",
    "password": "your-copernicus-password"
  }
}

Register free at Copernicus Data Space.

CLI Report Generator

python -m satellitehub.scripts.run_analysis \
  --lat 52.23 --lon 21.01 \
  --days 30 \
  --name "Warsaw" \
  --output report.html

API Overview

Semantic Methods (High-Level)

loc = sh.location(lat=52.23, lon=21.01)

# Vegetation analysis
loc.vegetation_health(last_days=30)
loc.vegetation_change(period_1=("2024-01-01", "2024-01-31"),
                      period_2=("2024-06-01", "2024-06-30"))

# Weather data
loc.weather(last_days=30)

# Check available methods
loc.available_methods()

Data Tier (Low-Level)

# Direct provider access
provider = loc.get_provider("cdse")
entries = provider.search(location=loc, time_range=("2024-01-01", "2024-01-31"))
raw_data = provider.download(entries[0], bands=["B04", "B08"])

Data Sources

Provider Data Registration
CDSE Sentinel-2 L2A imagery Copernicus
CDS ERA5 weather reanalysis CDS
IMGW Polish weather stations No registration needed

Development

git clone https://github.com/kacperkonopka/satellitehub
cd satellitehub
pip install -e ".[all]"
pytest tests/

License

MIT License - see LICENSE for details.

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

satellitehub-0.1.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

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

satellitehub-0.1.0-py3-none-any.whl (65.5 kB view details)

Uploaded Python 3

File details

Details for the file satellitehub-0.1.0.tar.gz.

File metadata

  • Download URL: satellitehub-0.1.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for satellitehub-0.1.0.tar.gz
Algorithm Hash digest
SHA256 58ca8bf42b095d4ca61f1f257f0fde67b35648da22823bbbe5c573dfc274d177
MD5 ed3fdc223f7b23e3bb16fb63e21117eb
BLAKE2b-256 c55322cd045a8aa6f84e89218de3365e0436b12090c4b205ffe2886a0f01c028

See more details on using hashes here.

File details

Details for the file satellitehub-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: satellitehub-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 65.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for satellitehub-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ded3bdcdda7a09ba93a8b865e966e110a4436e36d77a72b6c8ff4381b0a9f53
MD5 774a0afce5f73f689be338b8332ca95a
BLAKE2b-256 4c47996fd71ba993d61e17480ddd94c4d2aeffd55dc5aaf260070151798081df

See more details on using hashes here.

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