GeoIntel release gates / Compile, test, contracts and builds (push) Successful in 1m49s
GeoIntel release gates / Python and npm vulnerability policy (push) Successful in 21s
GeoIntel release gates / Production AI image, SBOM and container scan (push) Successful in 5m39s
GeoIntel release gates / Deploy exact gated revision to Unraid (push) Failing after 58m43s
126 lines
3.0 KiB
Python
126 lines
3.0 KiB
Python
from __future__ import annotations
|
|
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from .operations import VectorSelectionBBox
|
|
|
|
|
|
class ThematicRasterAcquireRequest(BaseModel):
|
|
bbox: VectorSelectionBBox
|
|
area_id: UUID | None = None
|
|
product_key: str
|
|
force_refresh: bool = False
|
|
|
|
|
|
class ThematicRasterProductRead(BaseModel):
|
|
key: str
|
|
display_name: str
|
|
theme: str
|
|
metric_kind: str
|
|
coverage_id: str
|
|
native_resolution_m: float
|
|
source_crs: str
|
|
source_value_unit: str
|
|
observation_year: int
|
|
source_version: str
|
|
catalog_url: str
|
|
attribution: str
|
|
license_note: str
|
|
legend_min_label: str
|
|
legend_max_label: str
|
|
included_source_values: list[int]
|
|
limitation_message: str
|
|
analysis_resolution_m: float | None = None
|
|
coverage_zones: list[str] = Field(default_factory=list)
|
|
configured: bool = True
|
|
status: str = "configured"
|
|
|
|
|
|
class WalousAcquisitionResult(BaseModel):
|
|
output_dataset_id: UUID
|
|
reused: bool
|
|
provider: str
|
|
product_key: str
|
|
display_name: str
|
|
theme: str
|
|
metric_kind: str
|
|
resolution_m: float
|
|
width: int
|
|
height: int
|
|
valid_pixel_count: int
|
|
bbox_epsg4326: list[float]
|
|
bbox_epsg3812: list[float]
|
|
observation_year: int
|
|
source_value_unit: str
|
|
attribution: str
|
|
limitation_message: str
|
|
|
|
|
|
class ThematicRasterAcquisitionResult(BaseModel):
|
|
output_dataset_id: UUID
|
|
reused: bool
|
|
provider: str
|
|
product_key: str
|
|
display_name: str
|
|
theme: str
|
|
metric_kind: str
|
|
coverage_id: str
|
|
resolution_m: float
|
|
width: int
|
|
height: int
|
|
valid_pixel_count: int
|
|
bbox_epsg4326: list[float]
|
|
bbox_epsg31370: list[float]
|
|
observation_year: int
|
|
source_value_unit: str
|
|
attribution: str
|
|
limitation_message: str
|
|
|
|
|
|
class ThematicRasterSelectionRequest(BaseModel):
|
|
bbox: VectorSelectionBBox
|
|
area_id: UUID | None = None
|
|
|
|
|
|
class ThematicRasterMetric(BaseModel):
|
|
metric_key: str
|
|
metric_label: str
|
|
metric_value: float
|
|
metric_unit: str
|
|
aggregation_method: str
|
|
derived: bool = True
|
|
is_estimate: bool = True
|
|
|
|
|
|
class ThematicRasterSelectionSummary(BaseModel):
|
|
metric_label: str
|
|
metric_value: float
|
|
metric_unit: str
|
|
aggregation_method: str
|
|
primary_metric_key: str
|
|
metrics: list[ThematicRasterMetric]
|
|
|
|
|
|
class ThematicRasterSelectionResponse(BaseModel):
|
|
dataset_id: UUID
|
|
product_key: str
|
|
theme: str
|
|
metric_kind: str
|
|
selection_bbox: VectorSelectionBBox
|
|
selection_area_id: UUID | None = None
|
|
selected_cell_count: int
|
|
valid_cell_count: int
|
|
coverage_ratio: float
|
|
# Set when the drawn selection is smaller than one source cell and the
|
|
# analysis was widened to the cells it touches, so the value covers more
|
|
# ground than was requested.
|
|
cell_selection_warning: str | None = None
|
|
resolution_m: float
|
|
observation_year: int
|
|
summary: ThematicRasterSelectionSummary
|
|
unsupported_metrics: list[str]
|
|
limitation_message: str
|
|
generated_at: str
|