geoai-py 0.11.0__tar.gz → 0.12.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. {geoai_py-0.11.0 → geoai_py-0.12.0}/.gitignore +1 -0
  2. {geoai_py-0.11.0 → geoai_py-0.12.0}/.pre-commit-config.yaml +1 -1
  3. {geoai_py-0.11.0 → geoai_py-0.12.0}/MANIFEST.in +4 -0
  4. {geoai_py-0.11.0 → geoai_py-0.12.0}/PKG-INFO +42 -17
  5. geoai_py-0.12.0/README.md +127 -0
  6. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/__init__.py +1 -1
  7. geoai_py-0.12.0/geoai/agents/__init__.py +2 -0
  8. geoai_py-0.12.0/geoai/agents/geo_agents.py +377 -0
  9. geoai_py-0.12.0/geoai/agents/map_tools.py +1502 -0
  10. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/dinov3.py +4 -0
  11. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/geoai.py +5 -5
  12. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/utils.py +2 -1
  13. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai_py.egg-info/PKG-INFO +42 -17
  14. geoai_py-0.12.0/geoai_py.egg-info/SOURCES.txt +46 -0
  15. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai_py.egg-info/requires.txt +8 -0
  16. {geoai_py-0.11.0 → geoai_py-0.12.0}/mkdocs.yml +4 -19
  17. {geoai_py-0.11.0 → geoai_py-0.12.0}/pyproject.toml +3 -2
  18. geoai_py-0.12.0/pytest.ini +15 -0
  19. {geoai_py-0.11.0 → geoai_py-0.12.0}/requirements.txt +1 -0
  20. geoai_py-0.12.0/tests/create_test_data.py +109 -0
  21. geoai_py-0.12.0/tests/test_classify.py +54 -0
  22. geoai_py-0.12.0/tests/test_download.py +65 -0
  23. geoai_py-0.12.0/tests/test_extract.py +64 -0
  24. geoai_py-0.12.0/tests/test_fixtures.py +156 -0
  25. geoai_py-0.12.0/tests/test_geoai.py +118 -0
  26. geoai_py-0.12.0/tests/test_segment.py +47 -0
  27. geoai_py-0.12.0/tests/test_utils.py +74 -0
  28. geoai_py-0.11.0/.github/FUNDING.yml +0 -3
  29. geoai_py-0.11.0/.github/ISSUE_TEMPLATE/bug_report.md +0 -25
  30. geoai_py-0.11.0/.github/ISSUE_TEMPLATE/config.yml +0 -10
  31. geoai_py-0.11.0/.github/ISSUE_TEMPLATE/feature_request.md +0 -18
  32. geoai_py-0.11.0/.github/dependabot.yml +0 -19
  33. geoai_py-0.11.0/.github/workflows/docker-image.yml +0 -16
  34. geoai_py-0.11.0/.github/workflows/docker-publish.yml +0 -45
  35. geoai_py-0.11.0/.github/workflows/docs-build.yml +0 -75
  36. geoai_py-0.11.0/.github/workflows/docs.yml +0 -55
  37. geoai_py-0.11.0/.github/workflows/macos.yml +0 -37
  38. geoai_py-0.11.0/.github/workflows/pypi.yml +0 -30
  39. geoai_py-0.11.0/.github/workflows/ubuntu.yml +0 -53
  40. geoai_py-0.11.0/.github/workflows/windows.yml +0 -40
  41. geoai_py-0.11.0/README.md +0 -109
  42. geoai_py-0.11.0/docs/CNAME +0 -1
  43. geoai_py-0.11.0/docs/assets/logo.ico +0 -0
  44. geoai_py-0.11.0/docs/assets/logo.png +0 -0
  45. geoai_py-0.11.0/docs/assets/logo_rect.png +0 -0
  46. geoai_py-0.11.0/docs/change_detection.md +0 -3
  47. geoai_py-0.11.0/docs/changelog.md +0 -5
  48. geoai_py-0.11.0/docs/classify.md +0 -3
  49. geoai_py-0.11.0/docs/contributing.md +0 -108
  50. geoai_py-0.11.0/docs/detectron2.md +0 -3
  51. geoai_py-0.11.0/docs/dinov3.md +0 -3
  52. geoai_py-0.11.0/docs/download.md +0 -3
  53. geoai_py-0.11.0/docs/examples/AlphaEarth.ipynb +0 -201
  54. geoai_py-0.11.0/docs/examples/DINOv3.ipynb +0 -157
  55. geoai_py-0.11.0/docs/examples/DINOv3_visualization.ipynb +0 -350
  56. geoai_py-0.11.0/docs/examples/JPEG2000.ipynb +0 -361
  57. geoai_py-0.11.0/docs/examples/_template.ipynb +0 -132
  58. geoai_py-0.11.0/docs/examples/batch_segmentation.ipynb +0 -295
  59. geoai_py-0.11.0/docs/examples/building_detection_lidar.ipynb +0 -501
  60. geoai_py-0.11.0/docs/examples/building_footprints_africa.ipynb +0 -194
  61. geoai_py-0.11.0/docs/examples/building_footprints_china.ipynb +0 -196
  62. geoai_py-0.11.0/docs/examples/building_footprints_usa.ipynb +0 -277
  63. geoai_py-0.11.0/docs/examples/building_regularization.ipynb +0 -344
  64. geoai_py-0.11.0/docs/examples/car_detection.ipynb +0 -260
  65. geoai_py-0.11.0/docs/examples/change_detection.ipynb +0 -425
  66. geoai_py-0.11.0/docs/examples/create_vector.ipynb +0 -131
  67. geoai_py-0.11.0/docs/examples/data_visualization.ipynb +0 -385
  68. geoai_py-0.11.0/docs/examples/dataviz/lidar_viz.ipynb +0 -356
  69. geoai_py-0.11.0/docs/examples/dataviz/raster_viz.ipynb +0 -479
  70. geoai_py-0.11.0/docs/examples/dataviz/vector_viz.ipynb +0 -691
  71. geoai_py-0.11.0/docs/examples/download_data.ipynb +0 -195
  72. geoai_py-0.11.0/docs/examples/download_naip.ipynb +0 -175
  73. geoai_py-0.11.0/docs/examples/download_sentinel2.ipynb +0 -182
  74. geoai_py-0.11.0/docs/examples/edit_vector.ipynb +0 -124
  75. geoai_py-0.11.0/docs/examples/geometric_properties.ipynb +0 -199
  76. geoai_py-0.11.0/docs/examples/globe_projection.ipynb +0 -300
  77. geoai_py-0.11.0/docs/examples/grounded_sam.ipynb +0 -230
  78. geoai_py-0.11.0/docs/examples/image_chips.ipynb +0 -236
  79. geoai_py-0.11.0/docs/examples/image_tiling.ipynb +0 -130
  80. geoai_py-0.11.0/docs/examples/instance_segmentation.ipynb +0 -487
  81. geoai_py-0.11.0/docs/examples/jupytext.toml +0 -1
  82. geoai_py-0.11.0/docs/examples/load_model_checkpoint.ipynb +0 -587
  83. geoai_py-0.11.0/docs/examples/parking_spot_detection.ipynb +0 -203
  84. geoai_py-0.11.0/docs/examples/planetary_computer.ipynb +0 -338
  85. geoai_py-0.11.0/docs/examples/rastervision/semantic_segmentation.ipynb +0 -425
  86. geoai_py-0.11.0/docs/examples/regularization.ipynb +0 -185
  87. geoai_py-0.11.0/docs/examples/samgeo/arcgis.ipynb +0 -464
  88. geoai_py-0.11.0/docs/examples/samgeo/automatic_mask_generator.ipynb +0 -386
  89. geoai_py-0.11.0/docs/examples/samgeo/automatic_mask_generator_hq.ipynb +0 -388
  90. geoai_py-0.11.0/docs/examples/samgeo/box_prompts.ipynb +0 -357
  91. geoai_py-0.11.0/docs/examples/samgeo/fast_sam.ipynb +0 -267
  92. geoai_py-0.11.0/docs/examples/samgeo/input_prompts.ipynb +0 -267
  93. geoai_py-0.11.0/docs/examples/samgeo/input_prompts_hq.ipynb +0 -265
  94. geoai_py-0.11.0/docs/examples/samgeo/maxar_open_data.ipynb +0 -323
  95. geoai_py-0.11.0/docs/examples/samgeo/satellite-predictor.ipynb +0 -318
  96. geoai_py-0.11.0/docs/examples/samgeo/satellite.ipynb +0 -320
  97. geoai_py-0.11.0/docs/examples/samgeo/swimming_pools.ipynb +0 -367
  98. geoai_py-0.11.0/docs/examples/samgeo/text_prompts.ipynb +0 -360
  99. geoai_py-0.11.0/docs/examples/samgeo/text_prompts_batch.ipynb +0 -260
  100. geoai_py-0.11.0/docs/examples/samgeo.ipynb +0 -190
  101. geoai_py-0.11.0/docs/examples/ship_detection.ipynb +0 -359
  102. geoai_py-0.11.0/docs/examples/solar_panel_detection.ipynb +0 -342
  103. geoai_py-0.11.0/docs/examples/text_prompt_segmentation.ipynb +0 -194
  104. geoai_py-0.11.0/docs/examples/train_building_footprints_usa.ipynb +0 -259
  105. geoai_py-0.11.0/docs/examples/train_car_detection.ipynb +0 -259
  106. geoai_py-0.11.0/docs/examples/train_landcover_classification.ipynb +0 -271
  107. geoai_py-0.11.0/docs/examples/train_object_detection_model.ipynb +0 -259
  108. geoai_py-0.11.0/docs/examples/train_segmentation_model.ipynb +0 -493
  109. geoai_py-0.11.0/docs/examples/train_ship_detection.ipynb +0 -257
  110. geoai_py-0.11.0/docs/examples/train_solar_panel_detection.ipynb +0 -255
  111. geoai_py-0.11.0/docs/examples/train_water_detection.ipynb +0 -328
  112. geoai_py-0.11.0/docs/examples/view_metadata.ipynb +0 -219
  113. geoai_py-0.11.0/docs/examples/water_detection.ipynb +0 -251
  114. geoai_py-0.11.0/docs/examples/water_detection_s2.ipynb +0 -297
  115. geoai_py-0.11.0/docs/examples/water_dynamics.ipynb +0 -222
  116. geoai_py-0.11.0/docs/examples/wetland_dynamics.ipynb +0 -517
  117. geoai_py-0.11.0/docs/examples/wetland_mapping.ipynb +0 -329
  118. geoai_py-0.11.0/docs/extract.md +0 -3
  119. geoai_py-0.11.0/docs/faq.md +0 -1
  120. geoai_py-0.11.0/docs/geoai.md +0 -4
  121. geoai_py-0.11.0/docs/hf.md +0 -3
  122. geoai_py-0.11.0/docs/index.md +0 -109
  123. geoai_py-0.11.0/docs/installation.md +0 -142
  124. geoai_py-0.11.0/docs/map_widgets.md +0 -3
  125. geoai_py-0.11.0/docs/overrides/main.html +0 -11
  126. geoai_py-0.11.0/docs/sam.md +0 -3
  127. geoai_py-0.11.0/docs/segment.md +0 -3
  128. geoai_py-0.11.0/docs/segmentation.md +0 -3
  129. geoai_py-0.11.0/docs/train.md +0 -3
  130. geoai_py-0.11.0/docs/usage.md +0 -7
  131. geoai_py-0.11.0/docs/utils.md +0 -3
  132. geoai_py-0.11.0/docs/workshops/AWS_2025.ipynb +0 -1186
  133. geoai_py-0.11.0/docs/workshops/GeoAI_Workshop_2025.ipynb +0 -1303
  134. geoai_py-0.11.0/docs/workshops/TNView_2025.ipynb +0 -2501
  135. geoai_py-0.11.0/docs/workshops/jupytext.toml +0 -1
  136. geoai_py-0.11.0/geoai_py.egg-info/SOURCES.txt +0 -142
  137. geoai_py-0.11.0/tests/test_geoai.py +0 -21
  138. {geoai_py-0.11.0 → geoai_py-0.12.0}/.dockerignore +0 -0
  139. {geoai_py-0.11.0 → geoai_py-0.12.0}/.editorconfig +0 -0
  140. {geoai_py-0.11.0 → geoai_py-0.12.0}/Dockerfile +0 -0
  141. {geoai_py-0.11.0 → geoai_py-0.12.0}/LICENSE +0 -0
  142. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/change_detection.py +0 -0
  143. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/classify.py +0 -0
  144. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/detectron2.py +0 -0
  145. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/download.py +0 -0
  146. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/extract.py +0 -0
  147. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/hf.py +0 -0
  148. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/map_widgets.py +0 -0
  149. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/sam.py +0 -0
  150. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/segment.py +0 -0
  151. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/segmentation.py +0 -0
  152. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai/train.py +0 -0
  153. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai_py.egg-info/dependency_links.txt +0 -0
  154. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai_py.egg-info/entry_points.txt +0 -0
  155. {geoai_py-0.11.0 → geoai_py-0.12.0}/geoai_py.egg-info/top_level.txt +0 -0
  156. {geoai_py-0.11.0 → geoai_py-0.12.0}/requirements_docs.txt +0 -0
  157. {geoai_py-0.11.0 → geoai_py-0.12.0}/setup.cfg +0 -0
  158. {geoai_py-0.11.0 → geoai_py-0.12.0}/tests/__init__.py +0 -0
@@ -4,6 +4,7 @@ private/
4
4
  *.py[cod]
5
5
  *$py.class
6
6
  *.jp2
7
+ tests/data/
7
8
 
8
9
  # C extensions
9
10
  *.so
@@ -23,7 +23,7 @@ repos:
23
23
  args:
24
24
  [
25
25
  "--ignore-words-list=aci,acount,acounts,fallow,ges,hart,hist,nd,ned,ois,wqs,watermask,tre,mape",
26
- "--skip=*.csv,*.geojson,*.json,*.yml*.js,*.html,*cff,*.pdf",
26
+ "--skip=*.csv,*.geojson,*.json,*.yml*.js,*.html,*cff,*.pdf,*.bib",
27
27
  ]
28
28
 
29
29
  - repo: https://github.com/kynan/nbstripout
@@ -5,3 +5,7 @@ include requirements.txt
5
5
  recursive-exclude * __pycache__
6
6
  recursive-exclude * *.py[co]
7
7
 
8
+ prune docs
9
+ prune paper
10
+ prune .github
11
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geoai-py
3
- Version: 0.11.0
3
+ Version: 0.12.0
4
4
  Summary: A Python package for using Artificial Intelligence (AI) with geospatial data
5
5
  Author-email: Qiusheng Wu <giswqs@gmail.com>
6
6
  License: MIT License
@@ -31,6 +31,7 @@ Requires-Dist: maplibre
31
31
  Requires-Dist: opencv-python-headless
32
32
  Requires-Dist: overturemaps
33
33
  Requires-Dist: planetary-computer
34
+ Requires-Dist: psutil
34
35
  Requires-Dist: pyarrow
35
36
  Requires-Dist: pystac-client
36
37
  Requires-Dist: rasterio
@@ -45,6 +46,12 @@ Requires-Dist: tqdm
45
46
  Requires-Dist: transformers
46
47
  Provides-Extra: extra
47
48
  Requires-Dist: overturemaps; extra == "extra"
49
+ Provides-Extra: agents
50
+ Requires-Dist: strands-agents; extra == "agents"
51
+ Requires-Dist: strands-agents-tools; extra == "agents"
52
+ Requires-Dist: strands-agents[ollama]; extra == "agents"
53
+ Requires-Dist: strands-agents[anthropic]; extra == "agents"
54
+ Requires-Dist: strands-agents[openai]; extra == "agents"
48
55
  Dynamic: license-file
49
56
 
50
57
  # GeoAI: Artificial Intelligence for Geospatial Data
@@ -53,27 +60,43 @@ Dynamic: license-file
53
60
  [![image](https://static.pepy.tech/badge/geoai-py)](https://pepy.tech/project/geoai-py)
54
61
  [![image](https://img.shields.io/conda/vn/conda-forge/geoai.svg)](https://anaconda.org/conda-forge/geoai)
55
62
  [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/geoai.svg)](https://anaconda.org/conda-forge/geoai)
56
- [![Conda Recipe](https://img.shields.io/badge/recipe-geoai-green.svg)](https://github.com/giswqs/geoai-py-feedstock)
63
+ [![Conda Recipe](https://img.shields.io/badge/recipe-geoai-green.svg)](https://github.com/conda-forge/geoai-py-feedstock)
57
64
  [![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
58
65
  [![image](https://img.shields.io/badge/YouTube-Tutorials-red)](https://tinyurl.com/GeoAI-Tutorials)
59
66
 
60
67
  [![logo](https://raw.githubusercontent.com/opengeos/geoai/master/docs/assets/logo_rect.png)](https://github.com/opengeos/geoai/blob/master/docs/assets/logo.png)
61
68
 
62
- **A powerful Python package for integrating Artificial Intelligence with geospatial data analysis and visualization**
69
+ **A powerful Python package for integrating artificial intelligence with geospatial data analysis and visualization**
63
70
 
64
- GeoAI bridges the gap between AI and geospatial analysis, providing tools for processing, analyzing, and visualizing geospatial data using advanced machine learning techniques. Whether you're working with satellite imagery, LiDAR point clouds, or vector data, GeoAI offers intuitive interfaces to apply cutting-edge AI models.
71
+ ## 📖 Introduction
65
72
 
66
- - 📖 **Documentation:** [https://opengeoai.org](https://opengeoai.org)
67
- - 💬 **Community:** [GitHub Discussions](https://github.com/opengeos/geoai/discussions)
68
- - 🐛 **Issue Tracker:** [GitHub Issues](https://github.com/opengeos/geoai/issues)
73
+ [GeoAI](https://opengeoai.org) 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](https://pytorch.org), [Transformers](https://github.com/huggingface/transformers), [PyTorch Segmentation Models](https://github.com/qubvel-org/segmentation_models.pytorch), and specialized geospatial libraries like [torchange](https://github.com/Z-Zheng/pytorch-change-models), enabling users to perform complex geospatial analyses with minimal code.
69
74
 
70
- ## 🚀 Key Features
75
+ The package provides five core capabilities:
76
+
77
+ 1. Interactive and programmatic search and download of remote sensing imagery and geospatial data.
78
+ 2. Automated dataset preparation with image chips and label generation.
79
+ 3. Model training for tasks such as classification, detection, and segmentation.
80
+ 4. Inference pipelines for applying models to new geospatial datasets.
81
+ 5. Interactive visualization through integration with [Leafmap](https://github.com/opengeos/leafmap/) and [MapLibre](https://github.com/eoda-dev/py-maplibregl).
82
+
83
+ 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.
84
+
85
+ ## 📝 Statement of Need
86
+
87
+ 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.
88
+
89
+ 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 and TerraTorch 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.
71
90
 
72
- **Important notes:** The GeoAI package is under active development and new features are being added regularly. Not all features listed below are available in the current release. If you have a feature request or would like to contribute, please let us know!
91
+ 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.
92
+
93
+ 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.
94
+
95
+ ## 🚀 Key Features
73
96
 
74
97
  ### 📊 Advanced Geospatial Data Visualization
75
98
 
76
- - Interactive multi-layer visualization of vector, raster, and point cloud data
99
+ - Interactive multi-layer visualization of vector and raster data stored locally or in cloud storage
77
100
  - Customizable styling and symbology
78
101
  - Time-series data visualization capabilities
79
102
 
@@ -88,9 +111,9 @@ GeoAI bridges the gap between AI and geospatial analysis, providing tools for pr
88
111
 
89
112
  ### 🖼️ Image Segmentation
90
113
 
91
- - Integration with Meta's Segment Anything Model (SAM) for automatic feature extraction
114
+ - Integration with [PyTorch Segmentation Models](https://github.com/qubvel-org/segmentation_models.pytorch) for automatic feature extraction
92
115
  - Specialized segmentation algorithms optimized for satellite and aerial imagery
93
- - Streamlined workflows for segmenting buildings, roads, vegetation, and water bodies
116
+ - Streamlined workflows for segmenting buildings, water bodies, wetlands,solar panels, etc.
94
117
  - Export capabilities to standard geospatial formats (GeoJSON, Shapefile, GeoPackage, GeoParquet)
95
118
 
96
119
  ### 🔍 Image Classification
@@ -102,8 +125,7 @@ GeoAI bridges the gap between AI and geospatial analysis, providing tools for pr
102
125
 
103
126
  ### 🌍 Additional Capabilities
104
127
 
105
- - Terrain analysis with AI-enhanced feature extraction
106
- - Point cloud classification and segmentation
128
+ - Change detection with AI-enhanced feature extraction
107
129
  - Object detection in aerial and satellite imagery
108
130
  - Georeferencing utilities for AI model outputs
109
131
 
@@ -133,12 +155,15 @@ Comprehensive documentation is available at [https://opengeoai.org](https://open
133
155
 
134
156
  - Detailed API reference
135
157
  - Tutorials and example notebooks
136
- - Explanation of algorithms and models
137
- - Best practices for geospatial AI
158
+ - Contributing guide
138
159
 
139
160
  ## 📺 Video Tutorials
140
161
 
141
- Check out our [YouTube channel](https://tinyurl.com/GeoAI-Tutorials) for video tutorials on using GeoAI for geospatial data analysis and visualization.
162
+ Check out this 2-hour video tutorial on using GeoAI for geospatial data analysis and visualization.
163
+
164
+ [![cover](https://github.com/user-attachments/assets/1c14e651-65b9-41ae-b42d-3ad028b3eeb8)](https://youtu.be/jdK-cleFUkc)
165
+
166
+ To learn more about GeoAI, you can watch the following video tutorials:
142
167
 
143
168
  [![cover](https://github.com/user-attachments/assets/3cde9547-ab62-4d70-b23a-3e5ed27c7407)](https://tinyurl.com/GeoAI-Tutorials)
144
169
 
@@ -0,0 +1,127 @@
1
+ # GeoAI: Artificial Intelligence for Geospatial Data
2
+
3
+ [![image](https://img.shields.io/pypi/v/geoai-py.svg)](https://pypi.python.org/pypi/geoai-py)
4
+ [![image](https://static.pepy.tech/badge/geoai-py)](https://pepy.tech/project/geoai-py)
5
+ [![image](https://img.shields.io/conda/vn/conda-forge/geoai.svg)](https://anaconda.org/conda-forge/geoai)
6
+ [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/geoai.svg)](https://anaconda.org/conda-forge/geoai)
7
+ [![Conda Recipe](https://img.shields.io/badge/recipe-geoai-green.svg)](https://github.com/conda-forge/geoai-py-feedstock)
8
+ [![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
9
+ [![image](https://img.shields.io/badge/YouTube-Tutorials-red)](https://tinyurl.com/GeoAI-Tutorials)
10
+
11
+ [![logo](https://raw.githubusercontent.com/opengeos/geoai/master/docs/assets/logo_rect.png)](https://github.com/opengeos/geoai/blob/master/docs/assets/logo.png)
12
+
13
+ **A powerful Python package for integrating artificial intelligence with geospatial data analysis and visualization**
14
+
15
+ ## 📖 Introduction
16
+
17
+ [GeoAI](https://opengeoai.org) 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](https://pytorch.org), [Transformers](https://github.com/huggingface/transformers), [PyTorch Segmentation Models](https://github.com/qubvel-org/segmentation_models.pytorch), and specialized geospatial libraries like [torchange](https://github.com/Z-Zheng/pytorch-change-models), enabling users to perform complex geospatial analyses with minimal code.
18
+
19
+ The package provides five core capabilities:
20
+
21
+ 1. Interactive and programmatic search and download of remote sensing imagery and geospatial data.
22
+ 2. Automated dataset preparation with image chips and label generation.
23
+ 3. Model training for tasks such as classification, detection, and segmentation.
24
+ 4. Inference pipelines for applying models to new geospatial datasets.
25
+ 5. Interactive visualization through integration with [Leafmap](https://github.com/opengeos/leafmap/) and [MapLibre](https://github.com/eoda-dev/py-maplibregl).
26
+
27
+ 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.
28
+
29
+ ## 📝 Statement of Need
30
+
31
+ 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.
32
+
33
+ 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 and TerraTorch 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.
34
+
35
+ 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.
36
+
37
+ 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.
38
+
39
+ ## 🚀 Key Features
40
+
41
+ ### 📊 Advanced Geospatial Data Visualization
42
+
43
+ - Interactive multi-layer visualization of vector and raster data stored locally or in cloud storage
44
+ - Customizable styling and symbology
45
+ - Time-series data visualization capabilities
46
+
47
+ ### 🛠️ Data Preparation & Processing
48
+
49
+ - Streamlined access to satellite and aerial imagery from providers like Sentinel, Landsat, NAIP, and other open datasets
50
+ - Tools for downloading, mosaicking, and preprocessing remote sensing data
51
+ - Automated generation of training datasets with image chips and corresponding labels
52
+ - Vector-to-raster and raster-to-vector conversion utilities optimized for AI workflows
53
+ - Data augmentation techniques specific to geospatial data
54
+ - Support for integrating Overture Maps data and other open datasets for training and validation
55
+
56
+ ### 🖼️ Image Segmentation
57
+
58
+ - Integration with [PyTorch Segmentation Models](https://github.com/qubvel-org/segmentation_models.pytorch) for automatic feature extraction
59
+ - Specialized segmentation algorithms optimized for satellite and aerial imagery
60
+ - Streamlined workflows for segmenting buildings, water bodies, wetlands,solar panels, etc.
61
+ - Export capabilities to standard geospatial formats (GeoJSON, Shapefile, GeoPackage, GeoParquet)
62
+
63
+ ### 🔍 Image Classification
64
+
65
+ - Pre-trained models for land cover and land use classification
66
+ - Transfer learning utilities for fine-tuning models with your own data
67
+ - Multi-temporal classification support for change detection
68
+ - Accuracy assessment and validation tools
69
+
70
+ ### 🌍 Additional Capabilities
71
+
72
+ - Change detection with AI-enhanced feature extraction
73
+ - Object detection in aerial and satellite imagery
74
+ - Georeferencing utilities for AI model outputs
75
+
76
+ ## 📦 Installation
77
+
78
+ ### Using pip
79
+
80
+ ```bash
81
+ pip install geoai-py
82
+ ```
83
+
84
+ ### Using conda
85
+
86
+ ```bash
87
+ conda install -c conda-forge geoai
88
+ ```
89
+
90
+ ### Using mamba
91
+
92
+ ```bash
93
+ mamba install -c conda-forge geoai
94
+ ```
95
+
96
+ ## 📋 Documentation
97
+
98
+ Comprehensive documentation is available at [https://opengeoai.org](https://opengeoai.org), including:
99
+
100
+ - Detailed API reference
101
+ - Tutorials and example notebooks
102
+ - Contributing guide
103
+
104
+ ## 📺 Video Tutorials
105
+
106
+ Check out this 2-hour video tutorial on using GeoAI for geospatial data analysis and visualization.
107
+
108
+ [![cover](https://github.com/user-attachments/assets/1c14e651-65b9-41ae-b42d-3ad028b3eeb8)](https://youtu.be/jdK-cleFUkc)
109
+
110
+ To learn more about GeoAI, you can watch the following video tutorials:
111
+
112
+ [![cover](https://github.com/user-attachments/assets/3cde9547-ab62-4d70-b23a-3e5ed27c7407)](https://tinyurl.com/GeoAI-Tutorials)
113
+
114
+ ## 🤝 Contributing
115
+
116
+ We welcome contributions of all kinds! See our [contributing guide](https://opengeoai.org/contributing) for ways to get started.
117
+
118
+ ## 📄 License
119
+
120
+ GeoAI is free and open source software, licensed under the MIT License.
121
+
122
+ ## Acknowledgments
123
+
124
+ We gratefully acknowledge the support of the following organizations:
125
+
126
+ - [NASA](https://www.nasa.gov): 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](https://bit.ly/3RVBRcQ).
127
+ - [AmericaView](https://americaview.org): This work is also partially supported by the U.S. Geological Survey through Grant/Cooperative Agreement No. G23AP00683 (GY23-GY27) in collaboration with AmericaView.
@@ -2,7 +2,7 @@
2
2
 
3
3
  __author__ = """Qiusheng Wu"""
4
4
  __email__ = "giswqs@gmail.com"
5
- __version__ = "0.11.0"
5
+ __version__ = "0.12.0"
6
6
 
7
7
 
8
8
  import os
@@ -0,0 +1,2 @@
1
+ from .geo_agents import GeoAgent
2
+ from .map_tools import MapTools