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.2.0.tar.gz (116.1 kB view details)

Uploaded Source

Built Distribution

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

satellitehub-0.2.0-py3-none-any.whl (68.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for satellitehub-0.2.0.tar.gz
Algorithm Hash digest
SHA256 284d5bb034cda0ed2d4d357c69079fbd2ba274a9c10d4636597ca5a6a44a344d
MD5 3120f74f36e743c3ada344aabff5cbda
BLAKE2b-256 f0ca33f739c683a83a62a4b1738fb15c6b8c5f306565bb3724f31abbbd5e59dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: satellitehub-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 68.2 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5a1794db9e9ba0cc70dfe64dd9b96dca9bfbc388299c6fb9dc0345a42f593ab7
MD5 a9cd0b70f37be7c8c5bf682bf1f07487
BLAKE2b-256 61ed42ff0939445258c857d57067df2224185d18899f618b57514199e57061a4

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