geoai-py 0.11.0__py2.py3-none-any.whl → 0.12.0__py2.py3-none-any.whl

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.
geoai/dinov3.py CHANGED
@@ -139,6 +139,10 @@ class DINOv3GeoProcessor:
139
139
  repo_or_dir=self.dinov3_location,
140
140
  model=self.model_name,
141
141
  source=self.dinov3_source,
142
+ pretrained=False, # <-- critical: prevents downloading official weights
143
+ weights=None, # <-- be explicit; some hubs honor this
144
+ trust_repo=True, # optional: avoids interactivity prompts
145
+ skip_validation=True, # optional: speeds things up
142
146
  )
143
147
  # Load state dict manually
144
148
  state_dict = torch.load(weights_path, map_location=self.device)
geoai/geoai.py CHANGED
@@ -44,7 +44,7 @@ from .utils import *
44
44
  from .map_widgets import DINOv3GUI
45
45
 
46
46
 
47
- class Map(leafmap.Map):
47
+ class LeafMap(leafmap.Map):
48
48
  """A subclass of leafmap.Map for GeoAI applications."""
49
49
 
50
50
  def __init__(self, *args: Any, **kwargs: Any) -> None:
@@ -62,16 +62,16 @@ class Map(leafmap.Map):
62
62
  return DINOv3GUI(raster, processor, features, host_map=self, **kwargs)
63
63
 
64
64
 
65
- class MapLibre(maplibregl.Map):
65
+ class Map(maplibregl.Map):
66
66
  """A subclass of maplibregl.Map for GeoAI applications."""
67
67
 
68
68
  def __init__(self, *args: Any, **kwargs: Any) -> None:
69
- """Initialize the MapLibre class."""
69
+ """Initialize the Map class."""
70
70
  super().__init__(*args, **kwargs)
71
71
 
72
72
 
73
73
  def create_vector_data(
74
- m: Optional[Map] = None,
74
+ m: Optional[LeafMap] = None,
75
75
  properties: Optional[Dict[str, List[Any]]] = None,
76
76
  time_format: str = "%Y%m%dT%H%M%S",
77
77
  column_widths: Optional[List[int]] = (9, 3),
@@ -153,7 +153,7 @@ def create_vector_data(
153
153
 
154
154
 
155
155
  def edit_vector_data(
156
- m: Optional[Map] = None,
156
+ m: Optional[LeafMap] = None,
157
157
  filename: str = None,
158
158
  properties: Optional[Dict[str, List[Any]]] = None,
159
159
  time_format: str = "%Y%m%dT%H%M%S",
geoai/utils.py CHANGED
@@ -64,7 +64,7 @@ def view_raster(
64
64
  client_args: Optional[Dict] = {"cors_all": False},
65
65
  basemap: Optional[str] = "OpenStreetMap",
66
66
  basemap_args: Optional[Dict] = None,
67
- backend: Optional[str] = "folium",
67
+ backend: Optional[str] = "ipyleaflet",
68
68
  **kwargs: Any,
69
69
  ) -> Any:
70
70
  """
@@ -87,6 +87,7 @@ def view_raster(
87
87
  client_args (Optional[Dict], optional): Additional arguments for the client. Defaults to {"cors_all": False}.
88
88
  basemap (Optional[str], optional): The basemap to use. Defaults to "OpenStreetMap".
89
89
  basemap_args (Optional[Dict], optional): Additional arguments for the basemap. Defaults to None.
90
+ backend (Optional[str], optional): The backend to use. Defaults to "ipyleaflet".
90
91
  **kwargs (Any): Additional keyword arguments.
91
92
 
92
93
  Returns:
@@ -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
 
@@ -1,21 +1,24 @@
1
- geoai/__init__.py,sha256=21HyumwwJY9mJ-ihDEWCbAGMqBMek4TIN6loc6V0nOI,3851
1
+ geoai/__init__.py,sha256=DKFI6qeNtIjJ48oO7YWDxyaZmzSlsQ7YeXPypF9mhKI,3851
2
2
  geoai/change_detection.py,sha256=XkJjMEU1nD8uX3-nQy7NEmz8cukVeSaRxKJHlrv8xPM,59636
3
3
  geoai/classify.py,sha256=0DcComVR6vKU4qWtH2oHVeXc7ZTcV0mFvdXRtlNmolo,35637
4
4
  geoai/detectron2.py,sha256=dOOFM9M9-6PV8q2A4-mnIPrz7yTo-MpEvDiAW34nl0w,14610
5
- geoai/dinov3.py,sha256=pr7yFyw9yXGT95QkGO3Cmu__22rMyZJr3lHIPiLQ83U,40114
5
+ geoai/dinov3.py,sha256=c1rNvCdGSRvI8Twj-4Eanunxjh411ctIXRo_GpVRahQ,40433
6
6
  geoai/download.py,sha256=B0EwpQFndJknOKmwRfEEnnCJhplOAwcLyNzFuA6FjZs,47633
7
7
  geoai/extract.py,sha256=595MBcSaFx-gQLIEv5g3oEM90QA5In4L59GPVgBOlQc,122092
8
- geoai/geoai.py,sha256=UK3HLsg3u0hJQfSQ29avWm6iKcKW35GmQ0f6jDp0ywg,10110
8
+ geoai/geoai.py,sha256=6WwUnYQtQmPAiE9AJtdb4Elztc8vcH39nFFgwJQBPVQ,10112
9
9
  geoai/hf.py,sha256=HbfJfpO6XnANKhmFOBvpwULiC65TeMlnLNtyQHHmlKA,17248
10
10
  geoai/map_widgets.py,sha256=8S0WCAeH8f1jswtBJHzV_lGaO92er8P58GxxotbKUng,5862
11
11
  geoai/sam.py,sha256=O6S-kGiFn7YEcFbfWFItZZQOhnsm6-GlunxQLY0daEs,34345
12
12
  geoai/segment.py,sha256=yBGTxA-ti8lBpk7WVaBOp6yP23HkaulKJQk88acrmZ0,43788
13
13
  geoai/segmentation.py,sha256=7yEzBSKCyHW1dNssoK0rdvhxi2IXsIQIFSga817KdI4,11535
14
14
  geoai/train.py,sha256=r9eioaBpc2eg6hckkGVI3aGhQZffKas_UVRj-AWruu8,136049
15
- geoai/utils.py,sha256=YkYqPq2EFrPNTdO5LBLHZS_1DHXK3REbo_WjKxDi43A,300806
16
- geoai_py-0.11.0.dist-info/licenses/LICENSE,sha256=vN2L5U7cZ6ZkOHFmc8WiGlsogWsZc5dllMeNxnKVOZg,1070
17
- geoai_py-0.11.0.dist-info/METADATA,sha256=s5x8jwJFPOuD1FGSJQ9BdiLXDkYl4orzQ84OlcgHq-k,6764
18
- geoai_py-0.11.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
19
- geoai_py-0.11.0.dist-info/entry_points.txt,sha256=uGp3Az3HURIsRHP9v-ys0hIbUuBBNUfXv6VbYHIXeg4,41
20
- geoai_py-0.11.0.dist-info/top_level.txt,sha256=1YkCUWu-ii-0qIex7kbwAvfei-gos9ycyDyUCJPNWHY,6
21
- geoai_py-0.11.0.dist-info/RECORD,,
15
+ geoai/utils.py,sha256=Vg8vNuIZ2PvmwPGAIZHN_1dHw4jC9ddjM_GmdkFN1KA,300899
16
+ geoai/agents/__init__.py,sha256=MdJH4hA6dMV4mbXpq0wwhO7gMJdb5oDj8RJDJIRSr7A,65
17
+ geoai/agents/geo_agents.py,sha256=Yv9WYqjfV5mv8PN1n2ZP6aPhuy0MWDtgJgaVxLzc24A,13771
18
+ geoai/agents/map_tools.py,sha256=HrreesNpsj8jytwO3ZA1e2REYQ4nyas_5v23-xb5sdY,61354
19
+ geoai_py-0.12.0.dist-info/licenses/LICENSE,sha256=vN2L5U7cZ6ZkOHFmc8WiGlsogWsZc5dllMeNxnKVOZg,1070
20
+ geoai_py-0.12.0.dist-info/METADATA,sha256=NJ7ybA_ondbMpU3Jw58hDLOKD5maa_HMT04xnNY_cHI,10327
21
+ geoai_py-0.12.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
22
+ geoai_py-0.12.0.dist-info/entry_points.txt,sha256=uGp3Az3HURIsRHP9v-ys0hIbUuBBNUfXv6VbYHIXeg4,41
23
+ geoai_py-0.12.0.dist-info/top_level.txt,sha256=1YkCUWu-ii-0qIex7kbwAvfei-gos9ycyDyUCJPNWHY,6
24
+ geoai_py-0.12.0.dist-info/RECORD,,