Skip to main content

A Python package for using Artificial Intelligence (AI) with geospatial data

Project description

GeoAI: Artificial Intelligence for Geospatial Data

image image image Conda Downloads Conda Recipe image image QGIS DOI

logo

A powerful Python package for integrating artificial intelligence with geospatial data analysis and visualization

📖 Introduction

GeoAI is a comprehensive Python package designed to bridge artificial intelligence (AI) and geospatial data analysis, providing researchers and practitioners with intuitive tools for applying machine learning techniques to geographic data. The package offers a unified framework for processing satellite imagery, aerial photographs, and vector data using state-of-the-art deep learning models. GeoAI integrates popular AI frameworks including PyTorch, Transformers, PyTorch Segmentation Models, and specialized geospatial libraries like torchange, enabling users to perform complex geospatial analyses with minimal code.

The package provides five core capabilities:

  1. Interactive and programmatic search and download of remote sensing imagery and geospatial data.
  2. Automated dataset preparation with image chips and label generation.
  3. Model training for tasks such as classification, detection, and segmentation.
  4. Inference pipelines for applying models to new geospatial datasets.
  5. Interactive visualization through integration with Leafmap and MapLibre.
  6. Seamless QGIS integration via a dedicated GeoAI plugin, enabling users to run AI-powered geospatial workflows directly within the QGIS desktop environment, without writing code.

GeoAI addresses the growing demand for accessible AI tools in geospatial research by providing high-level APIs that abstract complex machine learning workflows while maintaining flexibility for advanced users. The package supports multiple data formats (GeoTIFF, JPEG2000, GeoJSON, Shapefile, GeoPackage) and includes automatic device management for GPU acceleration when available. With over 10 modules and extensive notebook examples, GeoAI serves as both a research tool and educational resource for the geospatial AI community.

📝 Statement of Need

The integration of artificial intelligence with geospatial data analysis has become increasingly critical across numerous scientific disciplines, from environmental monitoring and urban planning to disaster response and climate research. However, applying AI techniques to geospatial data presents unique challenges including data preprocessing complexities, specialized model architectures, and the need for domain-specific knowledge in both machine learning and geographic information systems.

Existing solutions often require researchers to navigate fragmented ecosystems of tools, combining general-purpose machine learning libraries with specialized geospatial packages, leading to steep learning curves and reproducibility challenges. While packages like TorchGeo, TerraTorch, and SRAI provide excellent foundational tools for geospatial deep learning, there remains a gap for comprehensive, high-level interfaces that can democratize access to advanced AI techniques for the broader geospatial community.

GeoAI addresses this need by providing a unified, user-friendly interface that abstracts the complexity of integrating multiple AI frameworks with geospatial data processing workflows. It lowers barriers for: (1) geospatial researchers who need accessible AI workflows without deep ML expertise; (2) AI practitioners who want streamlined geospatial preprocessing and domain-specific datasets; and (3) educators seeking reproducible examples and teaching-ready workflows.

The package's design philosophy emphasizes simplicity without sacrificing functionality, enabling users to perform sophisticated analyses such as building footprint extraction from satellite imagery, land cover classification, and change detection with just a few lines of code. By integrating cutting-edge AI models and providing seamless access to major geospatial data sources, GeoAI significantly lowers the barrier to entry for geospatial AI applications while maintaining the flexibility needed for advanced research applications.

Citations

If you find GeoAI useful in your research, please consider citing the following paper to support my work. Thank you for your support.

  • Wu, Q., (2026). GeoAI: A Python package for integrating artificial intelligence with geospatial data analysis and visualization. Journal of Open Source Software, 11(118), 9605, https://doi.org/10.21105/joss.09605.

🚀 Key Features

📊 Advanced Geospatial Data Visualization

  • Interactive multi-layer visualization of vector and raster data stored locally or in cloud storage
  • Customizable styling and symbology
  • Time-series data visualization capabilities

🛠️ Data Preparation & Processing

  • Streamlined access to satellite and aerial imagery from providers like Sentinel, Landsat, NAIP, and other open datasets
  • Tools for downloading, mosaicking, and preprocessing remote sensing data
  • Automated generation of training datasets with image chips and corresponding labels
  • Vector-to-raster and raster-to-vector conversion utilities optimized for AI workflows
  • Data augmentation techniques specific to geospatial data
  • Support for integrating Overture Maps data and other open datasets for training and validation

🖼️ Image Segmentation

  • Integration with PyTorch Segmentation Models for automatic feature extraction
  • Specialized segmentation algorithms optimized for satellite and aerial imagery
  • Streamlined workflows for segmenting buildings, water bodies, wetlands, solar panels, etc.
  • Export capabilities to standard geospatial formats (GeoJSON, Shapefile, GeoPackage, GeoParquet)

🔍 Image Classification

  • Pre-trained models for land cover and land use classification
  • Transfer learning utilities for fine-tuning models with your own data
  • Multi-temporal classification support for change detection
  • Accuracy assessment and validation tools

🌍 Additional Capabilities

  • Change detection with AI-enhanced feature extraction
  • Object detection in aerial and satellite imagery
  • Georeferencing utilities for AI model outputs

📦 Installation

Using pip

pip install geoai-py

Using conda

conda install -c conda-forge geoai

Using mamba

mamba install -c conda-forge geoai

⚙️ QGIS Plugin

Check out the QGIS Plugin page if you are interested in using GeoAI with QGIS.

demo

📋 Documentation

Comprehensive documentation is available at https://opengeoai.org, including:

  • Detailed API reference
  • Tutorials and example notebooks
  • Contributing guide

📺 Video Tutorials

GeoAI Made Easy: Learn the Python Package Step-by-Step (Beginner Friendly)

intro

GeoAI Workshop: Unlocking the Power of GeoAI with Python

cover

GeoAI Tutorials Playlist

cover

🤝 Contributing

We welcome contributions of all kinds! See our contributing guide for ways to get started.

📄 License

GeoAI is free and open source software, licensed under the MIT License.

Acknowledgments

We gratefully acknowledge the support of the following organizations:

  • NASA: This research is partially supported by the National Aeronautics and Space Administration (NASA) through Grant No. 80NSSC22K1742, awarded under the Open Source Tools, Frameworks, and Libraries Program.
  • AmericaView: This work is also partially supported by the U.S. Geological Survey through Grant/Cooperative Agreement No. G23AP00683 (GY23-GY27) in collaboration with AmericaView.

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

geoai_py-0.30.0.tar.gz (549.8 kB view details)

Uploaded Source

Built Distribution

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

geoai_py-0.30.0-py2.py3-none-any.whl (450.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file geoai_py-0.30.0.tar.gz.

File metadata

  • Download URL: geoai_py-0.30.0.tar.gz
  • Upload date:
  • Size: 549.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for geoai_py-0.30.0.tar.gz
Algorithm Hash digest
SHA256 15d07926b25d245886e2ee2bcb185cdb1a973491b670d6490d6be64e73a0f829
MD5 1b1a0a00d2690f58fccf6333ea705180
BLAKE2b-256 b878832147e32f001e7cf65ed81e5b8de554443f660c8795c247c5b4dfb501dc

See more details on using hashes here.

File details

Details for the file geoai_py-0.30.0-py2.py3-none-any.whl.

File metadata

  • Download URL: geoai_py-0.30.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 450.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for geoai_py-0.30.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 11139c363100860a171558747144d7aa534715e01cb0431e70750ed529b3a95a
MD5 8b767eecba86836e87b51903c1d828cc
BLAKE2b-256 89448a38953ba3d165f6d1b09f3fa17d4fbf285b3db81e85d4eca9f3b6f60307

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