Skip to content

schemas

ecoscope.platform.schemas

Attributes

EventGDF module-attribute

EventGDF: TypeAlias = Annotated[DataFrame[EventGDFSchema], AfterValidator(_events_optional_columns), AfterValidator(_events_strict)]

EventsWithDisplayNamesGDF module-attribute

EventsWithDisplayNamesGDF: TypeAlias = Annotated[DataFrame[EventsWithDisplayNamesGDFSchema], AfterValidator(_events_optional_columns), AfterValidator(_events_strict)]

PatrolObservationsGDF module-attribute

PatrolObservationsGDF: TypeAlias = Annotated[DataFrame[RelocationsGDFSchema], AfterValidator(_patrol_obs_optional_columns), AfterValidator(_patrol_obs_optional_columns_coerce_patrol_serial), AfterValidator(_patrol_obs_strict)]

PatrolsDF module-attribute

PatrolsDF: TypeAlias = Annotated[DataFrame[PatrolsDFSchema], ...]

RegionsGDF module-attribute

RegionsGDF: TypeAlias = Annotated[DataFrame[RegionsGDFSchema], ...]

SubjectGroupObservationsGDF module-attribute

SubjectGroupObservationsGDF: TypeAlias = Annotated[DataFrame[RelocationsGDFSchema], AfterValidator(_subject_group_obs_optional_columns), AfterValidator(_subject_group_obs_strict)]

TrajectoryGDF module-attribute

TrajectoryGDF: TypeAlias = Annotated[DataFrame[TrajectoryGDFSchema], ...]

Classes

EventGDFSchema

Bases: GeoDataFrameBaseSchema

Attributes
event_type class-attribute instance-attribute
event_type: Series[str] = Field()
time class-attribute instance-attribute
time: Series[Any] = Field()
Methods:
check_timezone_aware_columns
check_timezone_aware_columns(df: DataFrame)
Source code in ecoscope/platform/schemas.py
@pa.dataframe_check
def check_timezone_aware_columns(cls, df: pd.DataFrame):  # type: ignore[misc]
    return _validate_df_columns_are_timezone_aware(df, ["time"])

EventsWithDisplayNamesGDFSchema

Bases: EventGDFSchema

Attributes
event_type_display class-attribute instance-attribute
event_type_display: Series[str] = Field()

PatrolsDFSchema

Bases: JsonSerializableDataFrameModel

Attributes
id class-attribute instance-attribute
id: Series[str] = Field()
patrol_segments class-attribute instance-attribute
patrol_segments: Series[Any] = Field()
serial_number class-attribute instance-attribute
serial_number: Series[int] = Field()
state class-attribute instance-attribute
state: Series[str] = Field()

RegionsGDFSchema

Bases: GeoDataFrameBaseSchema

Attributes
feature_type class-attribute instance-attribute
feature_type: Series[str] = Field()
metadata class-attribute instance-attribute
metadata: Series[Any] = Field()
name class-attribute instance-attribute
name: Series[str] = Field()
pk class-attribute instance-attribute
pk: Series[str] = Field()
short_name class-attribute instance-attribute
short_name: Series[str] = Field()
Methods:
metadata_has_required_data
metadata_has_required_data(df: DataFrame)
Source code in ecoscope/platform/schemas.py
@pa.dataframe_check
def metadata_has_required_data(cls, df: pd.DataFrame):  # type: ignore[misc]
    required_attrs = {"id", "display_name"}
    return required_attrs.issubset(df["metadata"].iloc[0])

RelocationsGDFSchema

Bases: StrictGeoDataFrameBaseSchema

Attributes
fixtime class-attribute instance-attribute
fixtime: Series[Any] = Field()
groupby_col class-attribute instance-attribute
groupby_col: Series[str] = Field()
junk_status class-attribute instance-attribute
junk_status: Series[bool] = Field()
Methods:
check_timezone_aware_columns
check_timezone_aware_columns(df: DataFrame)
Source code in ecoscope/platform/schemas.py
@pa.dataframe_check
def check_timezone_aware_columns(cls, df: pd.DataFrame):  # type: ignore[misc]
    return _validate_df_columns_are_timezone_aware(df, ["fixtime"])

SpatialFeaturesGroup dataclass

SpatialFeaturesGroup(id: str, name: str, description: str, url: str, feature_count: int, created_at: str, updated_at: str, features: AnyGeoDataFrame | EmptyDataFrame)
Attributes
created_at instance-attribute
created_at: str
description instance-attribute
description: str
feature_count instance-attribute
feature_count: int
features instance-attribute
id instance-attribute
id: str
name instance-attribute
name: str
updated_at instance-attribute
updated_at: str
url instance-attribute
url: str

StrictEventsGDFSchema

Bases: EventGDFSchema

Attributes
event_category class-attribute instance-attribute
event_category: Series[str] = Field()
reported_by class-attribute instance-attribute
reported_by: Series[Any] = Field()

StrictPatrolObservationsGDFSchema

Bases: RelocationsGDFSchema

Attributes
patrol_serial_number class-attribute instance-attribute
patrol_serial_number: Series[str] = Field()
patrol_status class-attribute instance-attribute
patrol_status: Series[str] = Field()
patrol_subject class-attribute instance-attribute
patrol_subject: Series[str] = Field()
patrol_type__value class-attribute instance-attribute
patrol_type__value: Series[str] = Field()

StrictSubjectGroupObservationsGDFSchema

Bases: RelocationsGDFSchema

Attributes
extra__subject__name class-attribute instance-attribute
extra__subject__name: Series[str] = Field()
extra__subject__sex class-attribute instance-attribute
extra__subject__sex: Series[str] = Field()
extra__subject__subject_subtype class-attribute instance-attribute
extra__subject__subject_subtype: Series[str] = Field()

TrajectoryGDFSchema

Bases: StrictGeoDataFrameBaseSchema

Attributes
dist_meters class-attribute instance-attribute
dist_meters: Series[float] = Field()
groupby_col class-attribute instance-attribute
groupby_col: Series[str] = Field()
heading class-attribute instance-attribute
heading: Series[float] = Field()
junk_status class-attribute instance-attribute
junk_status: Series[bool] = Field()
segment_end class-attribute instance-attribute
segment_end: Series[Any] = Field()
segment_start class-attribute instance-attribute
segment_start: Series[Any] = Field()
speed_kmhr class-attribute instance-attribute
speed_kmhr: Series[float] = Field()
timespan_seconds class-attribute instance-attribute
timespan_seconds: Series[float] = Field()
Methods:
check_timezone_aware_columns
check_timezone_aware_columns(df: DataFrame)
Source code in ecoscope/platform/schemas.py
@pa.dataframe_check
def check_timezone_aware_columns(cls, df: pd.DataFrame):  # type: ignore[misc]
    return _validate_df_columns_are_timezone_aware(df, ["segment_start", "segment_end"])