geoai-py 0.15.0__py2.py3-none-any.whl → 0.18.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/__init__.py +16 -1
- geoai/agents/__init__.py +4 -0
- geoai/agents/catalog_models.py +51 -0
- geoai/agents/catalog_tools.py +907 -0
- geoai/agents/geo_agents.py +934 -42
- geoai/agents/stac_models.py +67 -0
- geoai/agents/stac_tools.py +435 -0
- geoai/change_detection.py +32 -7
- geoai/download.py +5 -1
- geoai/geoai.py +3 -0
- geoai/timm_segment.py +4 -1
- geoai/tools/__init__.py +65 -0
- geoai/tools/cloudmask.py +431 -0
- geoai/tools/multiclean.py +357 -0
- geoai/train.py +694 -35
- geoai/utils.py +752 -208
- {geoai_py-0.15.0.dist-info → geoai_py-0.18.0.dist-info}/METADATA +6 -2
- geoai_py-0.18.0.dist-info/RECORD +33 -0
- geoai_py-0.15.0.dist-info/RECORD +0 -26
- {geoai_py-0.15.0.dist-info → geoai_py-0.18.0.dist-info}/WHEEL +0 -0
- {geoai_py-0.15.0.dist-info → geoai_py-0.18.0.dist-info}/entry_points.txt +0 -0
- {geoai_py-0.15.0.dist-info → geoai_py-0.18.0.dist-info}/licenses/LICENSE +0 -0
- {geoai_py-0.15.0.dist-info → geoai_py-0.18.0.dist-info}/top_level.txt +0 -0
geoai/__init__.py
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
__author__ = """Qiusheng Wu"""
|
|
4
4
|
__email__ = "giswqs@gmail.com"
|
|
5
|
-
__version__ = "0.
|
|
5
|
+
__version__ = "0.18.0"
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
import os
|
|
@@ -121,3 +121,18 @@ from .timm_segment import (
|
|
|
121
121
|
timm_semantic_segmentation,
|
|
122
122
|
push_timm_model_to_hub,
|
|
123
123
|
)
|
|
124
|
+
|
|
125
|
+
# Import tools subpackage
|
|
126
|
+
from . import tools
|
|
127
|
+
|
|
128
|
+
# Expose commonly used tools at package level for convenience
|
|
129
|
+
try:
|
|
130
|
+
from .tools import (
|
|
131
|
+
clean_segmentation_mask,
|
|
132
|
+
clean_raster,
|
|
133
|
+
clean_raster_batch,
|
|
134
|
+
compare_masks,
|
|
135
|
+
)
|
|
136
|
+
except ImportError:
|
|
137
|
+
# MultiClean not available (missing dependency)
|
|
138
|
+
pass
|
geoai/agents/__init__.py
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
from .catalog_tools import CatalogTools
|
|
1
2
|
from .geo_agents import (
|
|
3
|
+
CatalogAgent,
|
|
2
4
|
GeoAgent,
|
|
5
|
+
STACAgent,
|
|
3
6
|
create_ollama_model,
|
|
4
7
|
create_anthropic_model,
|
|
5
8
|
create_openai_model,
|
|
6
9
|
create_bedrock_model,
|
|
7
10
|
)
|
|
8
11
|
from .map_tools import MapTools
|
|
12
|
+
from .stac_tools import STACTools
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""Structured output models for catalog search results."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Dict, List, Optional
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class CatalogDatasetInfo(BaseModel):
|
|
9
|
+
"""Information about a catalog dataset."""
|
|
10
|
+
|
|
11
|
+
id: str = Field(..., description="Dataset identifier")
|
|
12
|
+
title: str = Field(..., description="Dataset title")
|
|
13
|
+
type: Optional[str] = Field(
|
|
14
|
+
None, description="Dataset type (e.g., image, image_collection, table)"
|
|
15
|
+
)
|
|
16
|
+
provider: Optional[str] = Field(None, description="Data provider")
|
|
17
|
+
description: Optional[str] = Field(None, description="Dataset description")
|
|
18
|
+
keywords: Optional[str] = Field(None, description="Keywords/tags")
|
|
19
|
+
snippet: Optional[str] = Field(
|
|
20
|
+
None, description="Code snippet to access the dataset"
|
|
21
|
+
)
|
|
22
|
+
start_date: Optional[str] = Field(None, description="Start date of coverage")
|
|
23
|
+
end_date: Optional[str] = Field(None, description="End date of coverage")
|
|
24
|
+
bbox: Optional[str] = Field(None, description="Bounding box")
|
|
25
|
+
license: Optional[str] = Field(None, description="License information")
|
|
26
|
+
url: Optional[str] = Field(None, description="Documentation URL")
|
|
27
|
+
catalog: Optional[str] = Field(None, description="Catalog URL")
|
|
28
|
+
deprecated: Optional[str] = Field(None, description="Deprecated status")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class CatalogSearchResult(BaseModel):
|
|
32
|
+
"""Container for catalog search results."""
|
|
33
|
+
|
|
34
|
+
query: str = Field(..., description="Original search query")
|
|
35
|
+
dataset_count: int = Field(..., description="Number of datasets found")
|
|
36
|
+
datasets: List[CatalogDatasetInfo] = Field(
|
|
37
|
+
default_factory=list, description="List of catalog datasets"
|
|
38
|
+
)
|
|
39
|
+
filters: Optional[Dict[str, Any]] = Field(
|
|
40
|
+
None, description="Filters applied to search"
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class LocationInfo(BaseModel):
|
|
45
|
+
"""Geographic location information."""
|
|
46
|
+
|
|
47
|
+
name: str = Field(..., description="Location name")
|
|
48
|
+
bbox: List[float] = Field(
|
|
49
|
+
..., description="Bounding box [west, south, east, north]"
|
|
50
|
+
)
|
|
51
|
+
center: List[float] = Field(..., description="Center coordinates [lon, lat]")
|