geoai-py 0.11.1__py2.py3-none-any.whl → 0.13.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
@@ -8,22 +8,21 @@ import json
8
8
  import math
9
9
  import os
10
10
  import sys
11
- from typing import Tuple, Optional, Dict, List, Union
11
+ from typing import Dict, List, Optional, Tuple, Union
12
12
 
13
+ import matplotlib.patches as patches
14
+ import matplotlib.pyplot as plt
13
15
  import numpy as np
14
- from PIL import Image
16
+ import rasterio
15
17
  import torch
16
18
  import torch.nn.functional as F
17
19
  import torchvision.transforms as transforms
18
- import rasterio
19
- from rasterio.windows import Window
20
- from rasterio.io import DatasetReader
21
- import matplotlib.pyplot as plt
22
- import matplotlib.patches as patches
23
-
24
20
  from huggingface_hub import hf_hub_download
21
+ from PIL import Image
22
+ from rasterio.io import DatasetReader
23
+ from rasterio.windows import Window
25
24
 
26
- from .utils import get_device, coords_to_xy, dict_to_image, dict_to_rioxarray
25
+ from .utils import coords_to_xy, dict_to_image, dict_to_rioxarray, get_device
27
26
 
28
27
 
29
28
  class DINOv3GeoProcessor:
@@ -47,7 +46,6 @@ class DINOv3GeoProcessor:
47
46
  See https://github.com/facebookresearch/dinov3 for more details.
48
47
  weights_path: Path to model weights (optional)
49
48
  device: Torch device to use
50
- dinov3_location: Path to DINOv3 repository
51
49
  """
52
50
 
53
51
  dinov3_github_location = "facebookresearch/dinov3"
@@ -139,6 +137,10 @@ class DINOv3GeoProcessor:
139
137
  repo_or_dir=self.dinov3_location,
140
138
  model=self.model_name,
141
139
  source=self.dinov3_source,
140
+ pretrained=False, # <-- critical: prevents downloading official weights
141
+ weights=None, # <-- be explicit; some hubs honor this
142
+ trust_repo=True, # optional: avoids interactivity prompts
143
+ skip_validation=True, # optional: speeds things up
142
144
  )
143
145
  # Load state dict manually
144
146
  state_dict = torch.load(weights_path, map_location=self.device)
geoai/geoai.py CHANGED
@@ -8,7 +8,6 @@ logging.getLogger("maplibre").setLevel(logging.ERROR)
8
8
  import leafmap
9
9
  import leafmap.maplibregl as maplibregl
10
10
 
11
- from .change_detection import ChangeDetection
12
11
  from .classify import classify_image, classify_images, train_classifier
13
12
  from .download import (
14
13
  download_naip,
@@ -26,6 +25,7 @@ from .download import (
26
25
  )
27
26
  from .extract import *
28
27
  from .hf import *
28
+ from .map_widgets import DINOv3GUI
29
29
  from .segment import *
30
30
  from .train import (
31
31
  get_instance_segmentation_model,
@@ -41,10 +41,9 @@ from .train import (
41
41
  train_segmentation_model,
42
42
  )
43
43
  from .utils import *
44
- from .map_widgets import DINOv3GUI
45
44
 
46
45
 
47
- class Map(leafmap.Map):
46
+ class LeafMap(leafmap.Map):
48
47
  """A subclass of leafmap.Map for GeoAI applications."""
49
48
 
50
49
  def __init__(self, *args: Any, **kwargs: Any) -> None:
@@ -62,16 +61,16 @@ class Map(leafmap.Map):
62
61
  return DINOv3GUI(raster, processor, features, host_map=self, **kwargs)
63
62
 
64
63
 
65
- class MapLibre(maplibregl.Map):
64
+ class Map(maplibregl.Map):
66
65
  """A subclass of maplibregl.Map for GeoAI applications."""
67
66
 
68
67
  def __init__(self, *args: Any, **kwargs: Any) -> None:
69
- """Initialize the MapLibre class."""
68
+ """Initialize the Map class."""
70
69
  super().__init__(*args, **kwargs)
71
70
 
72
71
 
73
72
  def create_vector_data(
74
- m: Optional[Map] = None,
73
+ m: Optional[LeafMap] = None,
75
74
  properties: Optional[Dict[str, List[Any]]] = None,
76
75
  time_format: str = "%Y%m%dT%H%M%S",
77
76
  column_widths: Optional[List[int]] = (9, 3),
@@ -153,7 +152,7 @@ def create_vector_data(
153
152
 
154
153
 
155
154
  def edit_vector_data(
156
- m: Optional[Map] = None,
155
+ m: Optional[LeafMap] = None,
157
156
  filename: str = None,
158
157
  properties: Optional[Dict[str, List[Any]]] = None,
159
158
  time_format: str = "%Y%m%dT%H%M%S",
geoai/map_widgets.py CHANGED
@@ -1,6 +1,7 @@
1
1
  """Interactive widget for GeoAI."""
2
2
 
3
3
  import ipywidgets as widgets
4
+
4
5
  from .utils import dict_to_image, dict_to_rioxarray
5
6
 
6
7
 
@@ -28,14 +29,13 @@ class DINOv3GUI(widgets.VBox):
28
29
  colormap_options (list): The colormap options.
29
30
  raster_args (dict): The raster arguments.
30
31
 
31
- Returns:
32
- None
33
-
34
32
  Example:
35
33
  >>> processor = DINOv3GeoProcessor()
36
34
  >>> features, h_patches, w_patches = processor.extract_features(raster)
37
35
  >>> gui = DINOv3GUI(raster, processor, features, host_map=m)
38
36
  """
37
+ super().__init__()
38
+
39
39
  if raster_args is None:
40
40
  raster_args = {}
41
41
 
geoai/utils.py CHANGED
@@ -182,7 +182,6 @@ def view_image(
182
182
  image (Union[np.ndarray, torch.Tensor]): The image to visualize.
183
183
  transpose (bool, optional): Whether to transpose the image. Defaults to False.
184
184
  bdx (Optional[int], optional): The band index to visualize. Defaults to None.
185
- scale_factor (float, optional): The scale factor to apply to the image. Defaults to 1.0.
186
185
  figsize (Tuple[int, int], optional): The size of the figure. Defaults to (10, 5).
187
186
  axis_off (bool, optional): Whether to turn off the axis. Defaults to True.
188
187
  title (Optional[str], optional): The title of the plot. Defaults to None.
@@ -396,9 +395,10 @@ def dict_to_rioxarray(data_dict: Dict) -> xr.DataArray:
396
395
  xr.DataArray: The xarray DataArray.
397
396
  """
398
397
 
399
- from affine import Affine
400
398
  from collections import namedtuple
401
399
 
400
+ from affine import Affine
401
+
402
402
  BoundingBox = namedtuple("BoundingBox", ["minx", "maxx", "miny", "maxy"])
403
403
 
404
404
  # Extract components from the dictionary
@@ -710,7 +710,7 @@ def view_vector_interactive(
710
710
  tiles_args (dict, optional): Additional arguments for the localtileserver client.
711
711
  get_folium_tile_layer function. Defaults to None.
712
712
  **kwargs: Additional keyword arguments to pass to GeoDataFrame.explore() function.
713
- See https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.explore.html
713
+ See https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoDataFrame.explore.html
714
714
 
715
715
  Returns:
716
716
  folium.Map: The map object with the vector data added.
@@ -2508,7 +2508,7 @@ def batch_vector_to_raster(
2508
2508
  fill_value=0,
2509
2509
  dtype=np.uint8,
2510
2510
  nodata=None,
2511
- ):
2511
+ ) -> List[str]:
2512
2512
  """
2513
2513
  Batch convert vector data to multiple rasters based on different extents or reference rasters.
2514
2514
 
@@ -2527,7 +2527,7 @@ def batch_vector_to_raster(
2527
2527
  nodata (int): No data value for the output raster.
2528
2528
 
2529
2529
  Returns:
2530
- list: List of paths to the created raster files.
2530
+ List[str]: List of paths to the created raster files.
2531
2531
  """
2532
2532
  # Create output directory if it doesn't exist
2533
2533
  os.makedirs(output_dir, exist_ok=True)
@@ -3128,7 +3128,7 @@ def export_geotiff_tiles_batch(
3128
3128
  skip_empty_tiles=False,
3129
3129
  image_extensions=None,
3130
3130
  mask_extensions=None,
3131
- ):
3131
+ ) -> Dict[str, Any]:
3132
3132
  """
3133
3133
  Export georeferenced GeoTIFF tiles from folders of images and masks.
3134
3134
 
@@ -3156,7 +3156,7 @@ def export_geotiff_tiles_batch(
3156
3156
  mask_extensions (list): List of mask file extensions to process (default: common raster/vector formats)
3157
3157
 
3158
3158
  Returns:
3159
- dict: Dictionary containing batch processing statistics
3159
+ Dict[str, Any]: Dictionary containing batch processing statistics
3160
3160
 
3161
3161
  Raises:
3162
3162
  ValueError: If no images or masks found, or if counts don't match
@@ -3631,7 +3631,7 @@ def _process_image_mask_pair(
3631
3631
 
3632
3632
  def create_overview_image(
3633
3633
  src, tile_coordinates, output_path, tile_size, stride, geojson_path=None
3634
- ):
3634
+ ) -> str:
3635
3635
  """Create an overview image showing all tiles and their status, with optional GeoJSON export.
3636
3636
 
3637
3637
  Args:
@@ -3782,7 +3782,7 @@ def create_overview_image(
3782
3782
 
3783
3783
  def export_tiles_to_geojson(
3784
3784
  tile_coordinates, src, output_path, tile_size=None, stride=None
3785
- ):
3785
+ ) -> str:
3786
3786
  """
3787
3787
  Export tile rectangles directly to GeoJSON without creating an overview image.
3788
3788
 
@@ -4630,14 +4630,14 @@ def export_training_data(
4630
4630
 
4631
4631
 
4632
4632
  def masks_to_vector(
4633
- mask_path,
4634
- output_path=None,
4635
- simplify_tolerance=1.0,
4636
- mask_threshold=0.5,
4637
- min_object_area=100,
4638
- max_object_area=None,
4639
- nms_iou_threshold=0.5,
4640
- ):
4633
+ mask_path: str,
4634
+ output_path: Optional[str] = None,
4635
+ simplify_tolerance: float = 1.0,
4636
+ mask_threshold: float = 0.5,
4637
+ min_object_area: int = 100,
4638
+ max_object_area: Optional[int] = None,
4639
+ nms_iou_threshold: float = 0.5,
4640
+ ) -> Any:
4641
4641
  """
4642
4642
  Convert a building mask GeoTIFF to vector polygons and save as a vector dataset.
4643
4643
 
@@ -4651,7 +4651,7 @@ def masks_to_vector(
4651
4651
  nms_iou_threshold: IoU threshold for non-maximum suppression (default: self.nms_iou_threshold)
4652
4652
 
4653
4653
  Returns:
4654
- GeoDataFrame with building footprints
4654
+ Any: GeoDataFrame with building footprints
4655
4655
  """
4656
4656
  # Set default output path if not provided
4657
4657
  # if output_path is None:
@@ -5654,7 +5654,7 @@ def orthogonalize(
5654
5654
  min_segments=4,
5655
5655
  area_tolerance=0.7,
5656
5656
  detect_triangles=True,
5657
- ):
5657
+ ) -> Any:
5658
5658
  """
5659
5659
  Orthogonalizes object masks in a GeoTIFF file.
5660
5660
 
@@ -5678,7 +5678,7 @@ def orthogonalize(
5678
5678
  detect_triangles (bool, optional): If True, performs additional check to avoid creating triangular shapes.
5679
5679
 
5680
5680
  Returns:
5681
- geopandas.GeoDataFrame: A GeoDataFrame containing the orthogonalized features.
5681
+ Any: A GeoDataFrame containing the orthogonalized features.
5682
5682
  """
5683
5683
 
5684
5684
  from functools import partial
@@ -7085,8 +7085,8 @@ def regularize(
7085
7085
  num_cores: int = 1,
7086
7086
  include_metadata: bool = False,
7087
7087
  output_path: Optional[str] = None,
7088
- **kwargs,
7089
- ) -> gpd.GeoDataFrame:
7088
+ **kwargs: Any,
7089
+ ) -> Any:
7090
7090
  """Regularizes polygon geometries in a GeoDataFrame by aligning edges.
7091
7091
 
7092
7092
  Aligns edges to be parallel or perpendicular (optionally also 45 degrees)
@@ -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,24 @@
1
+ geoai/__init__.py,sha256=rKb_wHNQVHEFMzIYMkEXwp3_SlYN2YBzPvPFunMlZbs,3851
2
+ geoai/change_detection.py,sha256=XkJjMEU1nD8uX3-nQy7NEmz8cukVeSaRxKJHlrv8xPM,59636
3
+ geoai/classify.py,sha256=0DcComVR6vKU4qWtH2oHVeXc7ZTcV0mFvdXRtlNmolo,35637
4
+ geoai/detectron2.py,sha256=dOOFM9M9-6PV8q2A4-mnIPrz7yTo-MpEvDiAW34nl0w,14610
5
+ geoai/dinov3.py,sha256=u4Lulihhvs4wTgi84RjRw8jWQpB8omQSl-dVVryNVus,40377
6
+ geoai/download.py,sha256=B0EwpQFndJknOKmwRfEEnnCJhplOAwcLyNzFuA6FjZs,47633
7
+ geoai/extract.py,sha256=595MBcSaFx-gQLIEv5g3oEM90QA5In4L59GPVgBOlQc,122092
8
+ geoai/geoai.py,sha256=ZnGhcTvXbhqpO98Bmt2c4q09VXEgawn0yF8dqxGrlRg,10066
9
+ geoai/hf.py,sha256=HbfJfpO6XnANKhmFOBvpwULiC65TeMlnLNtyQHHmlKA,17248
10
+ geoai/map_widgets.py,sha256=QLmkILsztNaRXRULHKOd7Glb7S0pEWXSK9-P8S5AuzQ,5856
11
+ geoai/sam.py,sha256=O6S-kGiFn7YEcFbfWFItZZQOhnsm6-GlunxQLY0daEs,34345
12
+ geoai/segment.py,sha256=yBGTxA-ti8lBpk7WVaBOp6yP23HkaulKJQk88acrmZ0,43788
13
+ geoai/segmentation.py,sha256=7yEzBSKCyHW1dNssoK0rdvhxi2IXsIQIFSga817KdI4,11535
14
+ geoai/train.py,sha256=r9eioaBpc2eg6hckkGVI3aGhQZffKas_UVRj-AWruu8,136049
15
+ geoai/utils.py,sha256=ECl5IWkGQA7-_50Ws27T5EMIg_88EJuIktI8gprviBw,300932
16
+ geoai/agents/__init__.py,sha256=NndUtQ5-i8Zuim8CJftCZYKbCvrkDXj9iLVtiBtc_qE,178
17
+ geoai/agents/geo_agents.py,sha256=6vr5Asp18q_JD4aG9ZmebS7eNEseGsfrlZ0ChRKjLXk,21177
18
+ geoai/agents/map_tools.py,sha256=7aepLzzKHYPEyj43lTTgWZJme8DQP6dgPUNK4yeRqNE,60707
19
+ geoai_py-0.13.0.dist-info/licenses/LICENSE,sha256=vN2L5U7cZ6ZkOHFmc8WiGlsogWsZc5dllMeNxnKVOZg,1070
20
+ geoai_py-0.13.0.dist-info/METADATA,sha256=FP9x9Q2HS08x__vjOtpLlHNX2Q7NGGe7bnRCN4EMCOw,10345
21
+ geoai_py-0.13.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
22
+ geoai_py-0.13.0.dist-info/entry_points.txt,sha256=uGp3Az3HURIsRHP9v-ys0hIbUuBBNUfXv6VbYHIXeg4,41
23
+ geoai_py-0.13.0.dist-info/top_level.txt,sha256=1YkCUWu-ii-0qIex7kbwAvfei-gos9ycyDyUCJPNWHY,6
24
+ geoai_py-0.13.0.dist-info/RECORD,,
@@ -1,158 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: geoai-py
3
- Version: 0.11.1
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: pyarrow
35
- Requires-Dist: pystac-client
36
- Requires-Dist: rasterio
37
- Requires-Dist: rioxarray
38
- Requires-Dist: scikit-image
39
- Requires-Dist: scikit-learn
40
- Requires-Dist: torch
41
- Requires-Dist: torchange
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
- Dynamic: license-file
49
-
50
- # GeoAI: Artificial Intelligence for Geospatial Data
51
-
52
- [![image](https://img.shields.io/pypi/v/geoai-py.svg)](https://pypi.python.org/pypi/geoai-py)
53
- [![image](https://static.pepy.tech/badge/geoai-py)](https://pepy.tech/project/geoai-py)
54
- [![image](https://img.shields.io/conda/vn/conda-forge/geoai.svg)](https://anaconda.org/conda-forge/geoai)
55
- [![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)
57
- [![image](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
58
- [![image](https://img.shields.io/badge/YouTube-Tutorials-red)](https://tinyurl.com/GeoAI-Tutorials)
59
-
60
- [![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
-
62
- **A powerful Python package for integrating Artificial Intelligence with geospatial data analysis and visualization**
63
-
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.
65
-
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)
69
-
70
- ## 🚀 Key Features
71
-
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!
73
-
74
- ### 📊 Advanced Geospatial Data Visualization
75
-
76
- - Interactive multi-layer visualization of vector, raster, and point cloud data
77
- - Customizable styling and symbology
78
- - Time-series data visualization capabilities
79
-
80
- ### 🛠️ Data Preparation & Processing
81
-
82
- - Streamlined access to satellite and aerial imagery from providers like Sentinel, Landsat, NAIP, and other open datasets
83
- - Tools for downloading, mosaicking, and preprocessing remote sensing data
84
- - Automated generation of training datasets with image chips and corresponding labels
85
- - Vector-to-raster and raster-to-vector conversion utilities optimized for AI workflows
86
- - Data augmentation techniques specific to geospatial data
87
- - Support for integrating Overture Maps data and other open datasets for training and validation
88
-
89
- ### 🖼️ Image Segmentation
90
-
91
- - Integration with Meta's Segment Anything Model (SAM) for automatic feature extraction
92
- - Specialized segmentation algorithms optimized for satellite and aerial imagery
93
- - Streamlined workflows for segmenting buildings, roads, vegetation, and water bodies
94
- - Export capabilities to standard geospatial formats (GeoJSON, Shapefile, GeoPackage, GeoParquet)
95
-
96
- ### 🔍 Image Classification
97
-
98
- - Pre-trained models for land cover and land use classification
99
- - Transfer learning utilities for fine-tuning models with your own data
100
- - Multi-temporal classification support for change detection
101
- - Accuracy assessment and validation tools
102
-
103
- ### 🌍 Additional Capabilities
104
-
105
- - Terrain analysis with AI-enhanced feature extraction
106
- - Point cloud classification and segmentation
107
- - Object detection in aerial and satellite imagery
108
- - Georeferencing utilities for AI model outputs
109
-
110
- ## 📦 Installation
111
-
112
- ### Using pip
113
-
114
- ```bash
115
- pip install geoai-py
116
- ```
117
-
118
- ### Using conda
119
-
120
- ```bash
121
- conda install -c conda-forge geoai
122
- ```
123
-
124
- ### Using mamba
125
-
126
- ```bash
127
- mamba install -c conda-forge geoai
128
- ```
129
-
130
- ## 📋 Documentation
131
-
132
- Comprehensive documentation is available at [https://opengeoai.org](https://opengeoai.org), including:
133
-
134
- - Detailed API reference
135
- - Tutorials and example notebooks
136
- - Explanation of algorithms and models
137
- - Best practices for geospatial AI
138
-
139
- ## 📺 Video Tutorials
140
-
141
- Check out our [YouTube channel](https://tinyurl.com/GeoAI-Tutorials) for video tutorials on using GeoAI for geospatial data analysis and visualization.
142
-
143
- [![cover](https://github.com/user-attachments/assets/3cde9547-ab62-4d70-b23a-3e5ed27c7407)](https://tinyurl.com/GeoAI-Tutorials)
144
-
145
- ## 🤝 Contributing
146
-
147
- We welcome contributions of all kinds! See our [contributing guide](https://opengeoai.org/contributing) for ways to get started.
148
-
149
- ## 📄 License
150
-
151
- GeoAI is free and open source software, licensed under the MIT License.
152
-
153
- ## Acknowledgments
154
-
155
- We gratefully acknowledge the support of the following organizations:
156
-
157
- - [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).
158
- - [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.
@@ -1,21 +0,0 @@
1
- geoai/__init__.py,sha256=bf-BQ8_LOIWMsCC_0MMLRSBoeskwphJeLXAqyAHtuG8,3851
2
- geoai/change_detection.py,sha256=XkJjMEU1nD8uX3-nQy7NEmz8cukVeSaRxKJHlrv8xPM,59636
3
- geoai/classify.py,sha256=0DcComVR6vKU4qWtH2oHVeXc7ZTcV0mFvdXRtlNmolo,35637
4
- geoai/detectron2.py,sha256=dOOFM9M9-6PV8q2A4-mnIPrz7yTo-MpEvDiAW34nl0w,14610
5
- geoai/dinov3.py,sha256=pr7yFyw9yXGT95QkGO3Cmu__22rMyZJr3lHIPiLQ83U,40114
6
- geoai/download.py,sha256=B0EwpQFndJknOKmwRfEEnnCJhplOAwcLyNzFuA6FjZs,47633
7
- geoai/extract.py,sha256=595MBcSaFx-gQLIEv5g3oEM90QA5In4L59GPVgBOlQc,122092
8
- geoai/geoai.py,sha256=UK3HLsg3u0hJQfSQ29avWm6iKcKW35GmQ0f6jDp0ywg,10110
9
- geoai/hf.py,sha256=HbfJfpO6XnANKhmFOBvpwULiC65TeMlnLNtyQHHmlKA,17248
10
- geoai/map_widgets.py,sha256=8S0WCAeH8f1jswtBJHzV_lGaO92er8P58GxxotbKUng,5862
11
- geoai/sam.py,sha256=O6S-kGiFn7YEcFbfWFItZZQOhnsm6-GlunxQLY0daEs,34345
12
- geoai/segment.py,sha256=yBGTxA-ti8lBpk7WVaBOp6yP23HkaulKJQk88acrmZ0,43788
13
- geoai/segmentation.py,sha256=7yEzBSKCyHW1dNssoK0rdvhxi2IXsIQIFSga817KdI4,11535
14
- geoai/train.py,sha256=r9eioaBpc2eg6hckkGVI3aGhQZffKas_UVRj-AWruu8,136049
15
- geoai/utils.py,sha256=Vg8vNuIZ2PvmwPGAIZHN_1dHw4jC9ddjM_GmdkFN1KA,300899
16
- geoai_py-0.11.1.dist-info/licenses/LICENSE,sha256=vN2L5U7cZ6ZkOHFmc8WiGlsogWsZc5dllMeNxnKVOZg,1070
17
- geoai_py-0.11.1.dist-info/METADATA,sha256=7RYVHCX_BzOQXPiXg9hsejDQM4lUQaLKvO-22xLq0ow,6764
18
- geoai_py-0.11.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
19
- geoai_py-0.11.1.dist-info/entry_points.txt,sha256=uGp3Az3HURIsRHP9v-ys0hIbUuBBNUfXv6VbYHIXeg4,41
20
- geoai_py-0.11.1.dist-info/top_level.txt,sha256=1YkCUWu-ii-0qIex7kbwAvfei-gos9ycyDyUCJPNWHY,6
21
- geoai_py-0.11.1.dist-info/RECORD,,