Skip to content

Commit

Permalink
Youri/add historic controls (#364)
Browse files Browse the repository at this point in the history
- Resolve #195 
- Resolve #671
  • Loading branch information
VincentAntoine authored Jul 20, 2023
2 parents 674f003 + f8329cc commit b2ab1ac
Show file tree
Hide file tree
Showing 9 changed files with 1,217 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
DROP MATERIALIZED VIEW analytics_actions;

CREATE MATERIALIZED VIEW public.analytics_actions AS

SELECT
a.id,
a.mission_id,
action_start_datetime_utc,
EXTRACT(year FROM action_start_datetime_utc) AS year,
m.start_datetime_utc AS mission_start_datetime_utc,
m.end_datetime_utc AS mission_end_datetime_utc,
mission_type,
action_type,
COALESCE(m.facade, 'Hors façade') AS mission_facade,
cu.name AS control_unit,
adm.name AS administration,
cu.name ILIKE 'ulam%' OR (
adm.name = 'DIRM / DM' AND
cu.name ILIKE 'PAM%'
) AS is_aff_mar,
(
cu.name ILIKE 'ulam%' OR (
adm.name = 'DIRM / DM' AND
cu.name ILIKE 'PAM%'
)
) OR adm.name IN ('Gendarmerie Nationale', 'Gendarmerie Maritime', 'Douane', 'Marine Nationale') AS is_aem,
CASE
WHEN cu.name ILIKE 'ulam%' OR (adm.name = 'DIRM / DM' AND cu.name ILIKE 'PAM%') THEN 'Affaires Maritimes'
WHEN adm.name IN ('Gendarmerie Nationale', 'Gendarmerie Maritime', 'Douane', 'Marine Nationale') THEN adm.name
ELSE 'Administrations hors AEM'
END AS administration_aem,
COALESCE(a.facade, 'Hors façade') AS action_facade,
COALESCE(a.department, 'Hors département') AS action_department,
CASE WHEN COALESCE(t1->>'theme', '') = '' THEN 'Aucun thème' ELSE t1->>'theme' END AS theme_level_1,
CASE WHEN TRIM(BOTH '"' FROM (COALESCE(theme_level_2, 'null')::VARCHAR)) IN ('', 'null') THEN 'Aucun sous-thème' ELSE TRIM(BOTH '"' FROM (theme_level_2::VARCHAR)) END AS theme_level_2,
CASE WHEN action_type = 'CONTROL' THEN ST_X(geom_element.geom) END AS longitude,
CASE WHEN action_type = 'CONTROL' THEN ST_Y(geom_element.geom) END AS latitude,
CASE WHEN action_type = 'CONTROL' THEN CASE WHEN jsonb_array_length(a.value->'infractions') > 0 THEN true ELSE false END END AS infraction,
(a.value->>'actionNumberOfControls')::DOUBLE PRECISION AS number_of_controls,
CASE WHEN action_type = 'SURVEILLANCE' THEN COALESCE((a.value->>'duration')::DOUBLE PRECISION, EXTRACT(epoch FROM m.end_datetime_utc - m.start_datetime_utc) / 3600) END AS surveillance_duration,
m.observations_cacem
FROM env_actions a
LEFT JOIN ST_Dump(a.geom) AS geom_element
ON true
LEFT JOIN LATERAL jsonb_array_elements(a.value->'themes') t1 ON true
LEFT JOIN LATERAL jsonb_array_elements(t1->'subThemes') theme_level_2 ON true
JOIN missions m
ON a.mission_id = m.id
LEFT JOIN LATERAL unnest(mission_types) mission_type ON true
LEFT JOIN missions_control_units mcu
ON mcu.mission_id = m.id
LEFT JOIN control_units cu
ON cu.id = mcu.control_unit_id
LEFT JOIN administrations adm
ON adm.id = cu.administration_id
WHERE
NOT m.deleted AND
m.closed AND
action_type IN ('CONTROL', 'SURVEILLANCE')
ORDER BY action_start_datetime_utc DESC;

CREATE INDEX ON analytics_actions USING BRIN(action_start_datetime_utc);
5 changes: 3 additions & 2 deletions datascience/.pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,17 @@ repos:
require_serial: true
args: ['--in-place', '--remove-all-unused-imports', '--ignore-init-module-imports']
- repo: https://github.com/pycqa/isort
rev: 5.6.3
rev: 5.12.0
hooks:
- id: isort
name: isort (python)
- repo: https://github.com/psf/black
rev: 20.8b1
hooks:
- id: black
additional_dependencies: ['click==8.0.4']
language_version: python3
- repo: https://gitlab.com/pycqa/flake8
- repo: https://github.com/pycqa/flake8
rev: 3.8.4
hooks:
- id: flake8
Expand Down
3 changes: 3 additions & 0 deletions datascience/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,6 @@

# Historic id ranges
HISTORIC_CONTROL_UNITS_MAX_ID = 9999

# Shift ids from Poseidon to MonitorEnv
POSEIDON_CACEM_MISSION_ID_TO_MONITORENV_MISSION_ID_SHIFT = -100000
Loading

0 comments on commit b2ab1ac

Please sign in to comment.