chariot.watchbox package

Submodules

chariot.watchbox.chariot_requests module

chariot.watchbox.imagery_providers module

chariot.watchbox.imagery_requests module

chariot.watchbox.models module

class chariot.watchbox.models.ChariotRequest(*, id: str, date_created: datetime | None = None, date_processing_completed: datetime | None = None, date_updated: datetime | None = None, execution_count: int | None = None, imagery: str | None = None, model_id: str | None = None, name: str | None = None, result: str | None = None, status: str | None = None, triage_event_id: str | None = None)[source]

Bases: BaseModelWithValidators

date_created: datetime | None
date_processing_completed: datetime | None
date_updated: datetime | None
execution_count: int | None
id: str
imagery: str | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_id: str | None
name: str | None
result: str | None
status: str | None
triage_event_id: str | None
class chariot.watchbox.models.Cluster(*, id: str, count: int | None = None, centroid: GeoJSON | None = None)[source]

Bases: BaseModelWithValidators

centroid: GeoJSON | None
count: int | None
id: str
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class chariot.watchbox.models.CreateWatchboxRequest(*, project_id: str, name: str | None = None, description: str | None = None, area: GeoJSON | None = None, imagery_providers: list[str] | None = None, models: list[WatchboxModel] | None = None, provider_filters: list[dict] | None = None)[source]

Bases: BaseModelWithValidators

area: GeoJSON | None
description: str | None
imagery_providers: list[str] | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

models: list[WatchboxModel] | None
name: str | None
project_id: str
provider_filters: list[dict] | None
class chariot.watchbox.models.DetectionVerificationStatus(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: str, Enum

NeedsReview = 'needs_review'
NotReviewed = 'not_reviewed'
Rejected = 'rejected'
Verified = 'verified'
class chariot.watchbox.models.GeoJSON(*, coordinates: list[list[list[float]]] | list[float], type: str)[source]

Bases: BaseModelWithValidators

GeoJSON object, either a Polygon or a Point.

coordinates: list[list[list[float]]] | list[float]
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

type: str
class chariot.watchbox.models.ImageryProvider(*, id: str, name: str | None = None, handler_id: str | None = None, date_created: datetime | None = None, date_updated: datetime | None = None)[source]

Bases: BaseModelWithValidators

date_created: datetime | None
date_updated: datetime | None
handler_id: str | None
id: str
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str | None
class chariot.watchbox.models.ProviderOption(*, default: str | None = None, description: str | None = None, label: str | None = None, name: str | None = None, options: list[str] | None = None, required: bool | None = None, type: str | None = None)[source]

Bases: BaseModelWithValidators

default: str | None
description: str | None
label: str | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: str | None
options: list[str] | None
required: bool | None
type: str | None
class chariot.watchbox.models.TaskType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: str, Enum

ObjectDetection = 'Object Detection'
OrientedObjectDetection = 'Oriented Object Detection'
class chariot.watchbox.models.TriageEvent(*, id: str, chariot_request: list[ChariotRequest] | None = None, date_created: datetime | None = None, date_updated: datetime | None = None, imagery_request: dict | None = None, review_status: TriageEventReviewStatus | None = None, task_type: TaskType | None = None, watch_point: str | None = None, area: GeoJSON | None = None)[source]

Bases: BaseModelWithValidators

area: GeoJSON | None
chariot_request: list[ChariotRequest] | None
date_created: datetime | None
date_updated: datetime | None
id: str
imagery_request: dict | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

review_status: TriageEventReviewStatus | None
task_type: TaskType | None
watchbox_id: str | None
class chariot.watchbox.models.TriageEventReviewStatus(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: str, Enum

NotReviewed = 'not_reviewed'
Reviewed = 'reviewed'
class chariot.watchbox.models.UpdateWatchboxRequest(*, active: bool | None = None, name: str | None = None, description: str | None = None, imagery_providers: list[str] | None = None, models: list[WatchboxModel] | None = None, provider_filters: list[dict] | None = None)[source]

Bases: BaseModelWithValidators

active: bool | None
description: str | None
imagery_providers: list[str] | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

models: list[WatchboxModel] | None
name: str | None
provider_filters: list[dict] | None
class chariot.watchbox.models.WatchBox(*, id: str, active: bool, area: GeoJSON | None = None, date_created: datetime | None = None, date_updated: datetime | None = None, description: str | None = None, imagery_providers: list[str] | None = None, last_checked: datetime | None = None, models: list[WatchboxModel] | None = None, name: str | None = None, project_id: str | None = None, provider_filters: list[dict] | None = None, triage_events: list[TriageEvent] | None = None)[source]

Bases: BaseModelWithValidators

active: bool
area: GeoJSON | None
date_created: datetime | None
date_updated: datetime | None
description: str | None
id: str
imagery_providers: list[str] | None
last_checked: datetime | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

models: list[WatchboxModel] | None
name: str | None
project_id: str | None
provider_filters: list[dict] | None
triage_events: list[TriageEvent] | None
class chariot.watchbox.models.WatchboxDetection(*, id: str | None = None, area: GeoJSON | None = None, bbox: str | None = None, chariot_request: str | None = None, chip: str | None = None, classification: str | None = None, created_by: str | None = None, dataset: str | None = None, date_created: datetime | None = None, date_updated: datetime | None = None, deleted_at: datetime | None = None, detection_metadata: str | dict | None = None, inference_id: str | None = None, lat: float | int | None = None, lon: float | int | None = None, reviewed_by: str | None = None, score: float | int | None = None, source_detection: str | None = None, time_of_emission: datetime | None = None, triage_event: str | None = None, user_created: bool | None = None, verification_status: str | None = None, inference_store_detection_id: str | None = None, model_id: str | None = None)[source]

Bases: BaseModelWithValidators

area: GeoJSON | None
bbox: str | None
chariot_request: str | None
chip: str | None
classification: str | None
classmethod convert_to_dict(v)[source]

Watchbox api appears to return base64 encoded json strings for the detection_metadata. This makes them readable.

created_by: str | None
dataset: str | None
date_created: datetime | None
date_updated: datetime | None
deleted_at: datetime | None
detection_metadata: str | dict | None
id: str | None
inference_id: str | None
inference_store_detection_id: str | None
lat: float | int | None
lon: float | int | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_id: str | None
reviewed_by: str | None
score: float | int | None
source_detection: str | None
time_of_emission: datetime | None
triage_event: str | None
user_created: bool | None
verification_status: str | None
class chariot.watchbox.models.WatchboxModel(*, id: str, score_threshold: float | None = None)[source]

Bases: BaseModelWithValidators

id: str
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

score_threshold: float | None
class chariot.watchbox.models.WatchboxStatistics(*, triage_event_id: str | None = None, var_date: datetime | None = None, counts: Dict[str, int] | None = None)[source]

Bases: BaseModelWithValidators

counts: Dict[str, int] | None
model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

triage_event_id: str | None
var_date: datetime | None

chariot.watchbox.triage_event module

chariot.watchbox.watchbox module

Module contents