pipeline.src.flows.position_alert ================================= .. py:module:: pipeline.src.flows.position_alert Functions --------- .. autoapisummary:: pipeline.src.flows.position_alert.to_admin_areas_table_metadata pipeline.src.flows.position_alert.to_admin_areas_spec_with_table pipeline.src.flows.position_alert.to_regulatory_area_filter pipeline.src.flows.position_alert.make_vessels_query pipeline.src.flows.position_alert.get_sets_of_identifiers pipeline.src.flows.position_alert.merge_sets_of_identifiers pipeline.src.flows.position_alert.make_positions_in_alert_query pipeline.src.flows.position_alert.extract_vessels_current_gears pipeline.src.flows.position_alert.extract_vessels_with_species_onboard pipeline.src.flows.position_alert.get_vessels_with_species_min_weight pipeline.src.flows.position_alert.get_vessels_with_gears pipeline.src.flows.position_alert.filter_on_depth pipeline.src.flows.position_alert.merge_risk_factor pipeline.src.flows.position_alert.get_vessels_in_alert pipeline.src.flows.position_alert.position_alert_flow Module Contents --------------- .. py:function:: to_admin_areas_table_metadata(admin_area_spec: src.entities.alerts.AdminAreasSpecification) -> src.entities.alerts.AreasTableMetadata .. py:function:: to_admin_areas_spec_with_table(spec: src.entities.alerts.AdminAreasSpecification, table_metadata: src.entities.alerts.AreasTableMetadata, table: sqlalchemy.Table) -> src.entities.alerts.AdminAreasSpecWithTable .. py:function:: to_regulatory_area_filter(spec: src.entities.alerts.RegulatoryAreaSpecification, regulations_table: sqlalchemy.Table) .. py:function:: make_vessels_query(*, vessels_table: sqlalchemy.Table, prod_org_memberships_table: sqlalchemy.Table | None, vessel_ids: list | None, district_codes: list | None, producer_organizations: list | None) -> sqlalchemy.sql.Select .. py:function:: get_sets_of_identifiers(vessels: pandas.DataFrame) -> Tuple[set, set, set] .. py:function:: merge_sets_of_identifiers(cfrs_with_species_min_weight: set | None, cfrs_with_gears: set | None, vessels_cfrs: set | None, vessels_external_immats: set | None, vessels_ircss: set | None) -> Tuple[set | None, set | None, set | None] .. py:function:: make_positions_in_alert_query(*, positions_table: sqlalchemy.Table, facades_table: sqlalchemy.Table, track_analysis_depth: float, now: datetime.datetime, regulations_table: sqlalchemy.Table | None = None, only_fishing_positions: bool = True, flag_states_iso2: List[str] | None = None, regulatory_areas: List[src.entities.alerts.RegulatoryAreaSpecification] | None = None, admin_areas_specs_with_tables: List[src.entities.alerts.AdminAreasSpecWithTable] | None = None, cfrs: set | None = None, external_immats: set | None = None, ircss: set | None = None) -> sqlalchemy.sql.Select .. py:function:: extract_vessels_current_gears() -> pandas.DataFrame Extracts vessels with their current gear(s) from current_segment if available, from vessel profiles' recent_gears if not. .. py:function:: extract_vessels_with_species_onboard(species_spec: List[src.entities.alerts.SpeciesSpecification], species_catch_areas: List[str] | None = None) -> pandas.DataFrame .. py:function:: get_vessels_with_species_min_weight(vessels_species: pandas.DataFrame, species_spec: List[src.entities.alerts.SpeciesSpecification]) -> set .. py:function:: get_vessels_with_gears(vessels_gears: pandas.DataFrame, gears: List[src.entities.alerts.GearSpecification]) -> set .. py:function:: filter_on_depth(positions_in_alert: pandas.DataFrame, min_depth: float) -> pandas.DataFrame .. py:function:: merge_risk_factor(positions_in_alert: pandas.DataFrame, current_risk_factors: pandas.DataFrame) -> pandas.DataFrame .. py:function:: get_vessels_in_alert(positions_in_alert: pandas.DataFrame) -> pandas.DataFrame Returns a `DataFrame` of unique vessels in alert from the input `DataFrame` of positions in alert. For each vessel, the date of the most recent position is used as `creation_datetime` for the alert. .. py:function:: position_alert_flow(position_alert_id: int, name: str, description: str, natinf_code: int, threat_characterization: str, threat: str, track_analysis_depth: float = 12.0, only_fishing_positions: bool = True, gears: List[src.entities.alerts.GearSpecification] | None = None, species: List[src.entities.alerts.SpeciesSpecification] | None = None, species_catch_areas: List[str] | None = None, administrative_areas: List[src.entities.alerts.AdminAreasSpecification] | None = None, regulatory_areas: List[src.entities.alerts.RegulatoryAreaSpecification] | None = None, min_depth: float | None = None, flag_states_iso2: List[str] | None = None, vessel_ids: List[int] | None = None, district_codes: List[str] | None = None, producer_organizations: List[str] | None = None)