51 lines
1.1 KiB
Python
51 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from uuid import UUID
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from .operations import VectorSelectionBBox
|
|
|
|
|
|
class OrthophotoAcquireRequest(BaseModel):
|
|
bbox: VectorSelectionBBox
|
|
area_id: UUID | None = None
|
|
product_key: str = "most_recent"
|
|
force_refresh: bool = False
|
|
resolution_m: float | None = Field(default=None, ge=0.1, le=2.0)
|
|
|
|
|
|
class OrthophotoProductRead(BaseModel):
|
|
key: str
|
|
display_name: str
|
|
observation_label: str
|
|
temporal_granularity: str
|
|
native_resolution_m: float
|
|
supports_detection: bool
|
|
color_mode: str
|
|
catalog_url: str
|
|
limitation_message: str
|
|
provider: str
|
|
coverage_zone: str
|
|
attribution: str
|
|
license_note: str
|
|
|
|
|
|
class OrthophotoAcquisitionResult(BaseModel):
|
|
output_dataset_id: UUID
|
|
reused: bool
|
|
provider: str
|
|
product_key: str
|
|
display_name: str
|
|
observation_label: str
|
|
temporal_granularity: str
|
|
supports_detection: bool
|
|
layer: str
|
|
width: int
|
|
height: int
|
|
resolution_m: float
|
|
bbox_epsg4326: list[float]
|
|
bbox_epsg31370: list[float]
|
|
attribution: str
|
|
limitation_message: str
|