geoai-py 0.11.1__tar.gz → 0.13.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 (160) hide show
  1. {geoai_py-0.11.1 → geoai_py-0.13.0}/.gitignore +1 -0
  2. {geoai_py-0.11.1 → geoai_py-0.13.0}/.pre-commit-config.yaml +2 -2
  3. {geoai_py-0.11.1 → geoai_py-0.13.0}/MANIFEST.in +4 -0
  4. geoai_py-0.13.0/PKG-INFO +183 -0
  5. geoai_py-0.13.0/README.md +127 -0
  6. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/__init__.py +2 -2
  7. geoai_py-0.13.0/geoai/agents/__init__.py +8 -0
  8. geoai_py-0.13.0/geoai/agents/geo_agents.py +580 -0
  9. geoai_py-0.13.0/geoai/agents/map_tools.py +1495 -0
  10. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/dinov3.py +12 -10
  11. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/geoai.py +6 -7
  12. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/map_widgets.py +3 -3
  13. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/utils.py +22 -22
  14. geoai_py-0.13.0/geoai_py.egg-info/PKG-INFO +183 -0
  15. geoai_py-0.13.0/geoai_py.egg-info/SOURCES.txt +46 -0
  16. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai_py.egg-info/requires.txt +9 -1
  17. {geoai_py-0.11.1 → geoai_py-0.13.0}/mkdocs.yml +5 -19
  18. {geoai_py-0.11.1 → geoai_py-0.13.0}/pyproject.toml +4 -3
  19. geoai_py-0.13.0/pytest.ini +15 -0
  20. {geoai_py-0.11.1 → geoai_py-0.13.0}/requirements.txt +2 -1
  21. geoai_py-0.13.0/tests/create_test_data.py +109 -0
  22. geoai_py-0.13.0/tests/test_classify.py +55 -0
  23. geoai_py-0.13.0/tests/test_download.py +65 -0
  24. geoai_py-0.13.0/tests/test_extract.py +65 -0
  25. geoai_py-0.13.0/tests/test_fixtures.py +156 -0
  26. geoai_py-0.13.0/tests/test_geoai.py +120 -0
  27. geoai_py-0.13.0/tests/test_segment.py +48 -0
  28. geoai_py-0.13.0/tests/test_utils.py +75 -0
  29. geoai_py-0.11.1/.github/FUNDING.yml +0 -3
  30. geoai_py-0.11.1/.github/ISSUE_TEMPLATE/bug_report.md +0 -25
  31. geoai_py-0.11.1/.github/ISSUE_TEMPLATE/config.yml +0 -10
  32. geoai_py-0.11.1/.github/ISSUE_TEMPLATE/feature_request.md +0 -18
  33. geoai_py-0.11.1/.github/dependabot.yml +0 -19
  34. geoai_py-0.11.1/.github/workflows/docker-image.yml +0 -16
  35. geoai_py-0.11.1/.github/workflows/docker-publish.yml +0 -45
  36. geoai_py-0.11.1/.github/workflows/docs-build.yml +0 -75
  37. geoai_py-0.11.1/.github/workflows/docs.yml +0 -55
  38. geoai_py-0.11.1/.github/workflows/macos.yml +0 -37
  39. geoai_py-0.11.1/.github/workflows/pypi.yml +0 -30
  40. geoai_py-0.11.1/.github/workflows/ubuntu.yml +0 -53
  41. geoai_py-0.11.1/.github/workflows/windows.yml +0 -40
  42. geoai_py-0.11.1/PKG-INFO +0 -158
  43. geoai_py-0.11.1/README.md +0 -109
  44. geoai_py-0.11.1/docs/CNAME +0 -1
  45. geoai_py-0.11.1/docs/assets/logo.ico +0 -0
  46. geoai_py-0.11.1/docs/assets/logo.png +0 -0
  47. geoai_py-0.11.1/docs/assets/logo_rect.png +0 -0
  48. geoai_py-0.11.1/docs/change_detection.md +0 -3
  49. geoai_py-0.11.1/docs/changelog.md +0 -5
  50. geoai_py-0.11.1/docs/classify.md +0 -3
  51. geoai_py-0.11.1/docs/contributing.md +0 -108
  52. geoai_py-0.11.1/docs/detectron2.md +0 -3
  53. geoai_py-0.11.1/docs/dinov3.md +0 -3
  54. geoai_py-0.11.1/docs/download.md +0 -3
  55. geoai_py-0.11.1/docs/examples/AlphaEarth.ipynb +0 -201
  56. geoai_py-0.11.1/docs/examples/DINOv3.ipynb +0 -157
  57. geoai_py-0.11.1/docs/examples/DINOv3_visualization.ipynb +0 -350
  58. geoai_py-0.11.1/docs/examples/JPEG2000.ipynb +0 -361
  59. geoai_py-0.11.1/docs/examples/_template.ipynb +0 -132
  60. geoai_py-0.11.1/docs/examples/batch_segmentation.ipynb +0 -295
  61. geoai_py-0.11.1/docs/examples/building_detection_lidar.ipynb +0 -501
  62. geoai_py-0.11.1/docs/examples/building_footprints_africa.ipynb +0 -194
  63. geoai_py-0.11.1/docs/examples/building_footprints_china.ipynb +0 -196
  64. geoai_py-0.11.1/docs/examples/building_footprints_usa.ipynb +0 -277
  65. geoai_py-0.11.1/docs/examples/building_regularization.ipynb +0 -344
  66. geoai_py-0.11.1/docs/examples/car_detection.ipynb +0 -260
  67. geoai_py-0.11.1/docs/examples/change_detection.ipynb +0 -425
  68. geoai_py-0.11.1/docs/examples/create_vector.ipynb +0 -131
  69. geoai_py-0.11.1/docs/examples/data_visualization.ipynb +0 -385
  70. geoai_py-0.11.1/docs/examples/dataviz/lidar_viz.ipynb +0 -356
  71. geoai_py-0.11.1/docs/examples/dataviz/raster_viz.ipynb +0 -479
  72. geoai_py-0.11.1/docs/examples/dataviz/vector_viz.ipynb +0 -691
  73. geoai_py-0.11.1/docs/examples/download_data.ipynb +0 -195
  74. geoai_py-0.11.1/docs/examples/download_naip.ipynb +0 -175
  75. geoai_py-0.11.1/docs/examples/download_sentinel2.ipynb +0 -182
  76. geoai_py-0.11.1/docs/examples/edit_vector.ipynb +0 -124
  77. geoai_py-0.11.1/docs/examples/geometric_properties.ipynb +0 -199
  78. geoai_py-0.11.1/docs/examples/globe_projection.ipynb +0 -300
  79. geoai_py-0.11.1/docs/examples/grounded_sam.ipynb +0 -230
  80. geoai_py-0.11.1/docs/examples/image_chips.ipynb +0 -236
  81. geoai_py-0.11.1/docs/examples/image_tiling.ipynb +0 -130
  82. geoai_py-0.11.1/docs/examples/instance_segmentation.ipynb +0 -487
  83. geoai_py-0.11.1/docs/examples/jupytext.toml +0 -1
  84. geoai_py-0.11.1/docs/examples/load_model_checkpoint.ipynb +0 -587
  85. geoai_py-0.11.1/docs/examples/parking_spot_detection.ipynb +0 -203
  86. geoai_py-0.11.1/docs/examples/planetary_computer.ipynb +0 -338
  87. geoai_py-0.11.1/docs/examples/rastervision/semantic_segmentation.ipynb +0 -425
  88. geoai_py-0.11.1/docs/examples/regularization.ipynb +0 -185
  89. geoai_py-0.11.1/docs/examples/samgeo/arcgis.ipynb +0 -464
  90. geoai_py-0.11.1/docs/examples/samgeo/automatic_mask_generator.ipynb +0 -386
  91. geoai_py-0.11.1/docs/examples/samgeo/automatic_mask_generator_hq.ipynb +0 -388
  92. geoai_py-0.11.1/docs/examples/samgeo/box_prompts.ipynb +0 -357
  93. geoai_py-0.11.1/docs/examples/samgeo/fast_sam.ipynb +0 -267
  94. geoai_py-0.11.1/docs/examples/samgeo/input_prompts.ipynb +0 -267
  95. geoai_py-0.11.1/docs/examples/samgeo/input_prompts_hq.ipynb +0 -265
  96. geoai_py-0.11.1/docs/examples/samgeo/maxar_open_data.ipynb +0 -323
  97. geoai_py-0.11.1/docs/examples/samgeo/satellite-predictor.ipynb +0 -318
  98. geoai_py-0.11.1/docs/examples/samgeo/satellite.ipynb +0 -320
  99. geoai_py-0.11.1/docs/examples/samgeo/swimming_pools.ipynb +0 -367
  100. geoai_py-0.11.1/docs/examples/samgeo/text_prompts.ipynb +0 -360
  101. geoai_py-0.11.1/docs/examples/samgeo/text_prompts_batch.ipynb +0 -260
  102. geoai_py-0.11.1/docs/examples/samgeo.ipynb +0 -190
  103. geoai_py-0.11.1/docs/examples/ship_detection.ipynb +0 -359
  104. geoai_py-0.11.1/docs/examples/solar_panel_detection.ipynb +0 -342
  105. geoai_py-0.11.1/docs/examples/text_prompt_segmentation.ipynb +0 -194
  106. geoai_py-0.11.1/docs/examples/train_building_footprints_usa.ipynb +0 -259
  107. geoai_py-0.11.1/docs/examples/train_car_detection.ipynb +0 -259
  108. geoai_py-0.11.1/docs/examples/train_landcover_classification.ipynb +0 -271
  109. geoai_py-0.11.1/docs/examples/train_object_detection_model.ipynb +0 -259
  110. geoai_py-0.11.1/docs/examples/train_segmentation_model.ipynb +0 -493
  111. geoai_py-0.11.1/docs/examples/train_ship_detection.ipynb +0 -257
  112. geoai_py-0.11.1/docs/examples/train_solar_panel_detection.ipynb +0 -255
  113. geoai_py-0.11.1/docs/examples/train_water_detection.ipynb +0 -328
  114. geoai_py-0.11.1/docs/examples/view_metadata.ipynb +0 -219
  115. geoai_py-0.11.1/docs/examples/water_detection.ipynb +0 -251
  116. geoai_py-0.11.1/docs/examples/water_detection_s2.ipynb +0 -297
  117. geoai_py-0.11.1/docs/examples/water_dynamics.ipynb +0 -222
  118. geoai_py-0.11.1/docs/examples/wetland_dynamics.ipynb +0 -517
  119. geoai_py-0.11.1/docs/examples/wetland_mapping.ipynb +0 -329
  120. geoai_py-0.11.1/docs/extract.md +0 -3
  121. geoai_py-0.11.1/docs/faq.md +0 -1
  122. geoai_py-0.11.1/docs/geoai.md +0 -4
  123. geoai_py-0.11.1/docs/hf.md +0 -3
  124. geoai_py-0.11.1/docs/index.md +0 -109
  125. geoai_py-0.11.1/docs/installation.md +0 -142
  126. geoai_py-0.11.1/docs/map_widgets.md +0 -3
  127. geoai_py-0.11.1/docs/overrides/main.html +0 -11
  128. geoai_py-0.11.1/docs/sam.md +0 -3
  129. geoai_py-0.11.1/docs/segment.md +0 -3
  130. geoai_py-0.11.1/docs/segmentation.md +0 -3
  131. geoai_py-0.11.1/docs/train.md +0 -3
  132. geoai_py-0.11.1/docs/usage.md +0 -7
  133. geoai_py-0.11.1/docs/utils.md +0 -3
  134. geoai_py-0.11.1/docs/workshops/AWS_2025.ipynb +0 -1186
  135. geoai_py-0.11.1/docs/workshops/GeoAI_Workshop_2025.ipynb +0 -1303
  136. geoai_py-0.11.1/docs/workshops/TNView_2025.ipynb +0 -2585
  137. geoai_py-0.11.1/docs/workshops/jupytext.toml +0 -1
  138. geoai_py-0.11.1/geoai_py.egg-info/PKG-INFO +0 -158
  139. geoai_py-0.11.1/geoai_py.egg-info/SOURCES.txt +0 -142
  140. geoai_py-0.11.1/tests/test_geoai.py +0 -21
  141. {geoai_py-0.11.1 → geoai_py-0.13.0}/.dockerignore +0 -0
  142. {geoai_py-0.11.1 → geoai_py-0.13.0}/.editorconfig +0 -0
  143. {geoai_py-0.11.1 → geoai_py-0.13.0}/Dockerfile +0 -0
  144. {geoai_py-0.11.1 → geoai_py-0.13.0}/LICENSE +0 -0
  145. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/change_detection.py +0 -0
  146. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/classify.py +0 -0
  147. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/detectron2.py +0 -0
  148. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/download.py +0 -0
  149. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/extract.py +0 -0
  150. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/hf.py +0 -0
  151. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/sam.py +0 -0
  152. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/segment.py +0 -0
  153. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/segmentation.py +0 -0
  154. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai/train.py +0 -0
  155. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai_py.egg-info/dependency_links.txt +0 -0
  156. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai_py.egg-info/entry_points.txt +0 -0
  157. {geoai_py-0.11.1 → geoai_py-0.13.0}/geoai_py.egg-info/top_level.txt +0 -0
  158. {geoai_py-0.11.1 → geoai_py-0.13.0}/requirements_docs.txt +0 -0
  159. {geoai_py-0.11.1 → geoai_py-0.13.0}/setup.cfg +0 -0
  160. {geoai_py-0.11.1 → geoai_py-0.13.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
@@ -12,7 +12,7 @@ repos:
12
12
  args: ["--maxkb=500"]
13
13
 
14
14
  - repo: https://github.com/psf/black
15
- rev: 25.1.0
15
+ rev: 25.9.0
16
16
  hooks:
17
17
  - id: black-jupyter
18
18
 
@@ -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
+
@@ -0,0 +1,183 @@
1
+ Metadata-Version: 2.4
2
+ Name: geoai-py
3
+ Version: 0.13.0
4
+ Summary: A Python package for using Artificial Intelligence (AI) with geospatial data
5
+ Author-email: Qiusheng Wu <giswqs@gmail.com>
6
+ License: MIT License
7
+ Project-URL: Homepage, https://github.com/opengeos/geoai
8
+ Keywords: geoai
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Natural Language :: English
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Requires-Python: >=3.10
17
+ Description-Content-Type: text/markdown
18
+ License-File: LICENSE
19
+ Requires-Dist: albumentations
20
+ Requires-Dist: buildingregulariser
21
+ Requires-Dist: contextily
22
+ Requires-Dist: datasets>=3.0
23
+ Requires-Dist: ever-beta
24
+ Requires-Dist: geopandas
25
+ Requires-Dist: huggingface_hub
26
+ Requires-Dist: jupyter-server-proxy
27
+ Requires-Dist: leafmap
28
+ Requires-Dist: localtileserver
29
+ Requires-Dist: mapclassify
30
+ Requires-Dist: maplibre
31
+ Requires-Dist: opencv-python-headless
32
+ Requires-Dist: overturemaps
33
+ Requires-Dist: planetary-computer
34
+ Requires-Dist: psutil
35
+ Requires-Dist: pyarrow
36
+ Requires-Dist: pystac-client
37
+ Requires-Dist: rasterio
38
+ Requires-Dist: rioxarray
39
+ Requires-Dist: scikit-image
40
+ Requires-Dist: scikit-learn
41
+ Requires-Dist: torch
42
+ Requires-Dist: torchgeo
43
+ Requires-Dist: torchinfo
44
+ Requires-Dist: tqdm
45
+ Requires-Dist: transformers
46
+ Provides-Extra: extra
47
+ Requires-Dist: overturemaps; extra == "extra"
48
+ Requires-Dist: torchange; 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"
55
+ Dynamic: license-file
56
+
57
+ # GeoAI: Artificial Intelligence for Geospatial Data
58
+
59
+ [![image](https://img.shields.io/pypi/v/geoai-py.svg)](https://pypi.python.org/pypi/geoai-py)
60
+ [![image](https://static.pepy.tech/badge/geoai-py)](https://pepy.tech/project/geoai-py)
61
+ [![image](https://img.shields.io/conda/vn/conda-forge/geoai.svg)](https://anaconda.org/conda-forge/geoai)
62
+ [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/geoai.svg)](https://anaconda.org/conda-forge/geoai)
63
+ [![Conda Recipe](https://img.shields.io/badge/recipe-geoai-green.svg)](https://github.com/conda-forge/geoai-py-feedstock)
64
+ [![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
65
+ [![image](https://img.shields.io/badge/YouTube-Tutorials-red)](https://tinyurl.com/GeoAI-Tutorials)
66
+
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)
68
+
69
+ **A powerful Python package for integrating artificial intelligence with geospatial data analysis and visualization**
70
+
71
+ ## 📖 Introduction
72
+
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.
74
+
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.
90
+
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
96
+
97
+ ### 📊 Advanced Geospatial Data Visualization
98
+
99
+ - Interactive multi-layer visualization of vector and raster data stored locally or in cloud storage
100
+ - Customizable styling and symbology
101
+ - Time-series data visualization capabilities
102
+
103
+ ### 🛠️ Data Preparation & Processing
104
+
105
+ - Streamlined access to satellite and aerial imagery from providers like Sentinel, Landsat, NAIP, and other open datasets
106
+ - Tools for downloading, mosaicking, and preprocessing remote sensing data
107
+ - Automated generation of training datasets with image chips and corresponding labels
108
+ - Vector-to-raster and raster-to-vector conversion utilities optimized for AI workflows
109
+ - Data augmentation techniques specific to geospatial data
110
+ - Support for integrating Overture Maps data and other open datasets for training and validation
111
+
112
+ ### 🖼️ Image Segmentation
113
+
114
+ - Integration with [PyTorch Segmentation Models](https://github.com/qubvel-org/segmentation_models.pytorch) for automatic feature extraction
115
+ - Specialized segmentation algorithms optimized for satellite and aerial imagery
116
+ - Streamlined workflows for segmenting buildings, water bodies, wetlands,solar panels, etc.
117
+ - Export capabilities to standard geospatial formats (GeoJSON, Shapefile, GeoPackage, GeoParquet)
118
+
119
+ ### 🔍 Image Classification
120
+
121
+ - Pre-trained models for land cover and land use classification
122
+ - Transfer learning utilities for fine-tuning models with your own data
123
+ - Multi-temporal classification support for change detection
124
+ - Accuracy assessment and validation tools
125
+
126
+ ### 🌍 Additional Capabilities
127
+
128
+ - Change detection with AI-enhanced feature extraction
129
+ - Object detection in aerial and satellite imagery
130
+ - Georeferencing utilities for AI model outputs
131
+
132
+ ## 📦 Installation
133
+
134
+ ### Using pip
135
+
136
+ ```bash
137
+ pip install geoai-py
138
+ ```
139
+
140
+ ### Using conda
141
+
142
+ ```bash
143
+ conda install -c conda-forge geoai
144
+ ```
145
+
146
+ ### Using mamba
147
+
148
+ ```bash
149
+ mamba install -c conda-forge geoai
150
+ ```
151
+
152
+ ## 📋 Documentation
153
+
154
+ Comprehensive documentation is available at [https://opengeoai.org](https://opengeoai.org), including:
155
+
156
+ - Detailed API reference
157
+ - Tutorials and example notebooks
158
+ - Contributing guide
159
+
160
+ ## 📺 Video Tutorials
161
+
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:
167
+
168
+ [![cover](https://github.com/user-attachments/assets/3cde9547-ab62-4d70-b23a-3e5ed27c7407)](https://tinyurl.com/GeoAI-Tutorials)
169
+
170
+ ## 🤝 Contributing
171
+
172
+ We welcome contributions of all kinds! See our [contributing guide](https://opengeoai.org/contributing) for ways to get started.
173
+
174
+ ## 📄 License
175
+
176
+ GeoAI is free and open source software, licensed under the MIT License.
177
+
178
+ ## Acknowledgments
179
+
180
+ We gratefully acknowledge the support of the following organizations:
181
+
182
+ - [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).
183
+ - [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.
@@ -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.1"
5
+ __version__ = "0.13.0"
6
6
 
7
7
 
8
8
  import os
@@ -99,5 +99,5 @@ def set_proj_lib_path(verbose=False):
99
99
  # if ("google.colab" not in sys.modules) and (sys.platform != "windows"):
100
100
  # set_proj_lib_path()
101
101
 
102
+ from .dinov3 import DINOv3GeoProcessor, analyze_image_patches, create_similarity_map
102
103
  from .geoai import *
103
- from .dinov3 import DINOv3GeoProcessor, create_similarity_map, analyze_image_patches
@@ -0,0 +1,8 @@
1
+ from .geo_agents import (
2
+ GeoAgent,
3
+ create_ollama_model,
4
+ create_anthropic_model,
5
+ create_openai_model,
6
+ create_bedrock_model,
7
+ )
8
+ from .map_tools import MapTools