From c7ea98c6da7a3844971fd445ab671069b7fed343 Mon Sep 17 00:00:00 2001 From: MaelREBOUX Date: Sat, 8 Jan 2022 17:28:45 +0100 Subject: [PATCH] phase_5_pk_diff -> phase_5_pk_diff_secteur --- README.md | 39 +++++++++++++++++--------------- scripts_v2/phase_5.py | 2 +- scripts_v2/sql/create_tables.sql | 21 ++++++++++++++--- 3 files changed, 40 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 0f054b4..4ba48f3 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,27 @@ Ce script va récupérer une couche des communes de France (source OpenStreetMap ## Charger et traiter les données + +### Phase 1 + +`./traitements_phase_1.sh {millesime}` + +* chargement des données depuis la [carte umap phase 1](http://umap.openstreetmap.fr/fr/map/ar_redadeg_2020_phase_1_274091) dans les tables : + * `phase_1_trace_3857` + * `phase_1_pk_vip_3857` +* chargement des tables de travail en Lambert 93 : + * `phase_1_trace` + * `phase_1_pk_vip --> ne sert pas au final` +* traitements : + * La table `phase_1_trace_troncons` est remplie à partir de la couche `phase_1_trace`. Les lignes du tracé sont découpées en tronçons de 1000 m. Mais attention : on repart à zéro à chaque nouvelle section de la couche `phase_1_trace`. Cette couche de points est surtout là pour donner une vague idée du nb de km "vrais". + * La vue `phase_1_pk_auto` consiste à placer un point à chaque extrémité de chaque ligne de la couche `phase_1_trace_troncons`. +* export en geojson WGS84 pour umap des tables : + * `phase_1_trace_4326.geojson` + * `phase_1_pk_auto_4326.geojson` +* export en Excel des tables : + * `phase_1_pk_auto_4326.xls` + + ### Création du filaire de voies support du routage #### filaire de voies OSM @@ -206,24 +227,6 @@ Si juste besoin de recalculer un itinéraire si les données Redadeg phase 1 ou -### Phase 1 - -`./traitements_phase_1.sh {millesime}` - -* chargement des données depuis la [carte umap phase 1](http://umap.openstreetmap.fr/fr/map/ar_redadeg_2020_phase_1_274091) dans les tables : - * `phase_1_trace_3857` - * `phase_1_pk_vip_3857` -* chargement des tables de travail en Lambert 93 : - * `phase_1_trace` - * `phase_1_pk_vip --> ne sert pas au final` -* traitements : - * La table `phase_1_trace_troncons` est remplie à partir de la couche `phase_1_trace`. Les lignes du tracé sont découpées en tronçons de 1000 m. Mais attention : on repart à zéro à chaque nouvelle section de la couche `phase_1_trace`. Cette couche de points est surtout là pour donner une vague idée du nb de km "vrais". - * La vue `phase_1_pk_auto` consiste à placer un point à chaque extrémité de chaque ligne de la couche `phase_1_trace_troncons`. -* export en geojson WGS84 pour umap des tables : - * `phase_1_trace_4326.geojson` - * `phase_1_pk_auto_4326.geojson` -* export en Excel des tables : - * `phase_1_pk_auto_4326.xls` ### Phase 2 (obsolète : à reprendre) diff --git a/scripts_v2/phase_5.py b/scripts_v2/phase_5.py index 5c98e87..b9259da 100755 --- a/scripts_v2/phase_5.py +++ b/scripts_v2/phase_5.py @@ -197,7 +197,7 @@ ORDER BY pk_id ;""" # on utilise la vue faite pour ça # normalement c'est impossible car pk_id est clé primaire - sql_test_nb = "SELECT * FROM phase_5_pk_diff ;" + sql_test_nb = "SELECT * FROM phase_5_pk_diff_secteur ;" db_redadeg_cursor.execute(sql_test_nb) controle_table = db_redadeg_cursor.fetchall() diff --git a/scripts_v2/sql/create_tables.sql b/scripts_v2/sql/create_tables.sql index dcccc94..992a792 100644 --- a/scripts_v2/sql/create_tables.sql +++ b/scripts_v2/sql/create_tables.sql @@ -760,9 +760,9 @@ CREATE INDEX phase_5_pk_umap_geom_idx ON phase_5_pk_umap USING gist(the_geom); ALTER TABLE phase_5_pk_umap OWNER TO redadeg; --- une vue de contrôle -DROP VIEW IF EXISTS phase_5_pk_diff ; -CREATE VIEW phase_5_pk_diff AS +-- une vue de contrôle par secteur +DROP VIEW IF EXISTS phase_5_pk_diff_secteur ; +CREATE VIEW phase_5_pk_diff_secteur AS WITH ref AS ( SELECT secteur_id, COUNT(pk_id) as ref FROM phase_5_pk_ref @@ -787,6 +787,21 @@ CREATE VIEW phase_5_pk_diff AS FROM "ref" r JOIN umap u ON r.secteur_id = u.secteur_id ORDER BY r.secteur_id ; +-- une vue de contrôle par PK +DROP VIEW IF EXISTS phase_5_pk_diff ; +CREATE VIEW phase_5_pk_diff AS + SELECT + r.secteur_id + ,r.pk_id + ,CASE + WHEN TRUNC(ST_Distance(r.the_geom, u.the_geom)::numeric,2) > 1 THEN true + ELSE false + END AS deplace + ,TRUNC(ST_Distance(r.the_geom, u.the_geom)::numeric,0) AS distance_droite + FROM phase_5_pk_ref r JOIN phase_5_pk_umap u ON r.pk_id = u.pk_id + ORDER BY r.pk_id ; + + -- la table finale DROP TABLE IF EXISTS phase_5_pk CASCADE ;