Skip to main content

World-class Geospatial AI Platform — pygeofetch + geoai + PyGeoVision

Project description

PyGeoVision Logo

PyGeoVision

image image image Tests PyGeoFetch GeoAI DOI

A production-ready Python platform unifying satellite data acquisition and geospatial AI —
bridging PyGeoFetch (22+ providers) and GeoAI (full AI stack) in one coherent API.


📖 Introduction

PyGeoVision is a world-class geospatial AI platform that brings together two exceptional open-source packages under a single, unified API. It delegates all satellite data operations to PyGeoFetch — providing access to 22+ providers including Sentinel, Landsat, Planet, Maxar, Copernicus, USGS, and more — and all AI operations to GeoAI, exposing its full 24-subsystem stack covering segmentation, detection, classification, change detection, SAM, foundation models, embeddings, cloud masking, super-resolution, and ONNX export.

PyGeoVision's design principle is integration, not reimplementation. It is the bridge layer that makes PyGeoFetch and GeoAI work seamlessly together, adding 10 end-to-end pipelines, a full CLI, experiment tracking, distributed training, automated labeling, and YAML pipeline orchestration on top.

The package provides six core capabilities:

  1. Authenticated search and download of satellite imagery from 22+ providers with caching, parallel downloads, and post-processing chains.
  2. End-to-end pipelines that wire PyGeoFetch data directly into GeoAI inference with a single function call.
  3. A complete AI training stack with 14 model architectures, 6 specialist losses, and distributed GPU support.
  4. Automated dataset labeling from 7 sources including OSM, Microsoft, Google, ESA WorldCover, SAM, and foundation models.
  5. A full CLI (pygeovision) covering data, AI, pipelines, and model management.
  6. YAML pipeline orchestration for scheduled, repeatable geospatial workflows.

📝 Statement of Need

Applying AI to geospatial data requires navigating fragmented ecosystems — separate tools for data acquisition, preprocessing, model training, and inference — leading to steep learning curves, brittle pipelines, and reproducibility challenges. Existing packages like TorchGeo and TerraTorch provide excellent foundational tools but leave the data acquisition layer largely unsolved. PyGeoFetch addresses data acquisition comprehensively, and GeoAI addresses the AI layer comprehensively, but combining them into production workflows requires significant integration work.

PyGeoVision fills this gap by providing a unified, high-level interface that:

  • Gives geospatial researchers a single import to go from satellite search to AI inference.
  • Gives AI practitioners streamlined access to 22 satellite data providers without managing APIs, authentication, and file formats manually.
  • Gives organizations a production-ready platform with CLI tooling, YAML pipelines, scheduling, and experiment tracking.

With 10 built-in end-to-end pipelines covering building footprints, change detection, land cover, water bodies, solar detection, crop monitoring, disaster assessment, deforestation, urban growth, and carbon estimation, PyGeoVision dramatically reduces the time from raw satellite imagery to actionable geospatial intelligence.


Citations

If you find PyGeoVision useful in your research, please consider citing the following works:

@article{Wu2026geoai,
  author  = {Wu, Qiusheng},
  title   = {GeoAI: A Python package for integrating artificial intelligence with geospatial data analysis and visualization},
  journal = {Journal of Open Source Software},
  year    = {2026},
  volume  = {11},
  number  = {118},
  pages   = {9605},
  doi     = {10.21105/joss.09605}
}

🚀 Key Features

🛰️ Satellite Data — 22 Providers via PyGeoFetch

  • Unified search and download across Sentinel, Landsat, Planet, Maxar, Airbus, USGS, Copernicus, NASA, JAXA, and more
  • Secure credential management via system keyring (API keys, OAuth2, user/password)
  • Parallel downloads with checksum verification, resume support, and bandwidth throttling
  • Post-processing chains: unzip → reproject → compress → NDVI/NDWI → Cloud Optimized GeoTIFF
  • YAML pipeline orchestration with cron scheduling

🤖 AI Inference — 24 Subsystems via GeoAI

  • Segmentation: buildings, solar panels, agriculture fields, water bodies, custom models
  • Detection: cars, ships, parking spots, natural-language grounded detection (GroundedSAM), RF-DETR
  • Classification: scene classification, CLIP zero-shot land cover, batch inference
  • Change detection: ChangeSTAR bi-temporal change detection
  • Foundation models: NASA Prithvi, SAM, DINOv3, Tessera satellite embeddings
  • Cloud masking, super-resolution (ESRGAN), ONNX export, canopy height estimation

⚙️ End-to-End Pipelines (10)

Pipeline Description
building_footprints Sentinel-2 / NAIP → GeoAI BuildingFootprintExtractor → GeoJSON
change_detection Bi-temporal Sentinel-2 → ChangeSTAR → change mask
land_cover Sentinel-2 → SegFormer / ESA WorldCover → classification map
water_bodies Sentinel-2 → NDWI segmentation → water polygons
solar_detection NAIP / Sentinel-2 → SolarPanelDetector → GeoJSON
crop_monitoring Seasonal Sentinel-2 stack → crop type map
disaster_assessment Post-event imagery → Siamese-UNet → damage assessment
deforestation Bi-temporal Landsat/S2 → ChangeFormer → forest loss mask
urban_growth Bi-temporal Landsat → Siamese-UNet → urban expansion map
carbon_estimation Sentinel-2 NDVI → AGB formula → carbon stock estimate

🧠 Own AI Training Stack

  • 14 model architectures: U-Net, SegFormer, DeepLabV3+, FCOS, RetinaNet, ViT, ChangeFormer, ESRGAN, and more
  • GeoTrainer with 6 specialist losses (Dice, Focal, Tversky, Unified Focal, Weighted CE, Change Detection)
  • Distributed multi-GPU training, mixed precision, gradient accumulation
  • TiledInference with Gaussian blending for large-scene inference
  • ExperimentTracker and DriftDetector for production monitoring

🏷️ Automated Labeling (7 Sources)

OpenStreetMap · Microsoft Global Buildings · Google Open Buildings · ESA WorldCover · Google Dynamic World · SAM auto-labeling · Foundation model labeling


📦 Installation

# Core
pip install pygeovision

# + Full GeoAI stack (PyTorch, transformers, SMP, torchgeo, timm)
pip install "pygeovision[geoai]"

# + Raster/vector processing (rasterio, geopandas, rioxarray)
pip install "pygeovision[geo]"

# + Everything
pip install "pygeovision[all]"

Requirements: Python 3.10+ · pip install pygeofetch · pip install geoai-py


⚡ Quick Start

import pygeovision as pgv

client = pgv.PyGeoVision()

# Search satellite imagery
results = client.search(
    bbox=(-0.15, 51.47, -0.10, 51.52),
    date_range=("2024-06-01", "2024-06-30"),
    providers=["planetary_computer"],
    collections=["sentinel-2-l2a"],
    cloud_cover_max=10,
)

# Download with post-processing
downloads = client.download(results[:3], output_dir="./data/", post_process=["unzip", "cog"])

# AI inference
client.geoai.segment.buildings(
    downloads[0].path,
    output_vector="buildings.geojson",
)

# Or run an end-to-end pipeline in one call
result = client.pipeline(
    "building_footprints",
    bbox=(-0.15, 51.47, -0.10, 51.52),
    date="2024-06",
    output_dir="./results/",
)
print(result.stats)  # {"buildings_detected": 1847, "coverage_pct": 0.312}

📋 Documentation

Comprehensive documentation is available at https://appiahkubis14.github.io/pygeovision-docs/, including:

  • Full API reference
  • Tutorials and example notebooks
  • Pipeline configuration guides
  • Contributing guide

🤝 Contributing

Contributions of all kinds are welcome. See our contributing guide for ways to get started.


📄 License

PyGeoVision is free and open source software, licensed under the Apache 2.0 License.


Acknowledgements

PyGeoVision is built on top of two exceptional open-source projects:

  • PyGeoFetch — Universal satellite data pipeline. PyGeoVision delegates all data search, download, authentication, caching, and pipeline orchestration to PyGeoFetch.

  • GeoAI — Artificial Intelligence for Geospatial Data by Qiusheng Wu and contributors. PyGeoVision wraps GeoAI for all AI inference, training, and model management. Published in JOSS 2026.

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

pygeovision-0.1.3.tar.gz (189.5 kB view details)

Uploaded Source

Built Distribution

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

pygeovision-0.1.3-py3-none-any.whl (202.4 kB view details)

Uploaded Python 3

File details

Details for the file pygeovision-0.1.3.tar.gz.

File metadata

  • Download URL: pygeovision-0.1.3.tar.gz
  • Upload date:
  • Size: 189.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for pygeovision-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6ff54dd670f3a59827e08a8a5bc84a1efa4e3389249763292ffd87cbc0b7b6d3
MD5 6322f77b7387dce18e864a405e340ea4
BLAKE2b-256 a2531a93b88d29119530d9a109eeb7c704c85f33af042c69f8b46c05a32b6cb2

See more details on using hashes here.

File details

Details for the file pygeovision-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pygeovision-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 202.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for pygeovision-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7f158a2a3749ee06557b3c5f7f6292eb8c5574e196438092fb5c85a86bc2e38e
MD5 a9c95c99a2ac1b595e4579262d8af59e
BLAKE2b-256 541450368497a31d1a7a0b44e04c4c9ad469c36d83727a7a001e25780441ac28

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