ménage dans les tables phase 5 à cause des systèmes de projection

Bizarrement : import depuis umap = 4326 et plus 3857 ??!!
This commit is contained in:
MaelReboux 2019-10-28 14:43:14 +01:00
parent bb50ca6ba4
commit c730c7b060
2 changed files with 53 additions and 29 deletions

View file

@ -532,7 +532,7 @@ ALTER TABLE phase_3_trace_secteurs_4326 OWNER TO redadeg;
-- la couche des PK calculés automatiquement
DROP TABLE IF EXISTS phase_3_pk_auto ;
DROP TABLE IF EXISTS phase_3_pk_auto CASCADE ;
CREATE TABLE phase_3_pk_auto
(
pk_id integer,
@ -632,8 +632,7 @@ ALTER TABLE phase_4_pk_auto_4326 OWNER TO redadeg;
==========================================================================
*/
-- la table des PK avant modifications manuelles
-- en WGS85 / EPSG:4326 pour se simplier les contrôles
-- la table des PK avant modifications manuelles = PK de référence = phase_3_pk_auto
DROP TABLE IF EXISTS phase_5_pk_ref ;
CREATE TABLE phase_5_pk_ref
(
@ -659,26 +658,40 @@ CREATE TABLE phase_5_pk_ref
the_geom geometry,
CONSTRAINT phase_5_pk_ref_pkey PRIMARY KEY (pk_id),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326)
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 2154)
) ;
ALTER TABLE phase_5_pk_ref OWNER TO redadeg;
-- on charge cette table avec les données finales de la phase 3
INSERT INTO phase_5_pk_ref SELECT * FROM phase_4_pk_auto_4326 ;
TRUNCATE TABLE phase_5_pk_ref ;
INSERT INTO phase_5_pk_ref SELECT * FROM phase_3_pk_auto ;
-- on définit manuellement la couche avec un type mixte parce qu'on a des lignes dans la couche de points…
DROP TABLE public.phase_5_pk_umap;
CREATE TABLE public.phase_5_pk_umap
DROP TABLE IF EXISTS phase_5_pk_umap_3857;
CREATE TABLE phase_5_pk_umap_3857
(
ogc_fid integer,
pk_id integer,
secteur_id integer,
the_geom geometry,
--CONSTRAINT phase_5_pk_umap_pkey PRIMARY KEY (ogc_fid),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326)
ogc_fid integer,
pk_id integer,
secteur_id integer,
the_geom geometry,
--CONSTRAINT phase_5_pk_umap_pkey PRIMARY KEY (ogc_fid),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 3857)
);
-- la table en 2154 pour travailler
DROP TABLE IF EXISTS phase_5_pk_umap;
CREATE TABLE phase_5_pk_umap
(
pk_id integer,
secteur_id integer,
the_geom geometry,
CONSTRAINT phase_5_pk_umap_pkey PRIMARY KEY (pk_id),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 2154)
);
-- la table finale
DROP TABLE IF EXISTS phase_5_pk ;

View file

@ -39,7 +39,7 @@ echo ""
# on commence par vider la table qui contiendra les calculs d'itinéraires
echo " vidage de la couche de routage"
$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME -c "TRUNCATE TABLE phase_5_pk_umap ;"
$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME -c "TRUNCATE TABLE phase_5_pk_umap_4326 ;"
echo " fait"
echo ""
@ -50,80 +50,91 @@ echo " secteur 1"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027042/ > data/phase_5_pk_umap_tmp.geojson
# chargement initial
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 2"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027081/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 3"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027101/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 4"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027104/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 5"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027107/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 6"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027110/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 7"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027114/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 8"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027117/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 9"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027120/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
echo " secteur 10"
curl -sS http://umap.openstreetmap.fr/fr/datalayer/1027123/ > data/phase_5_pk_umap_tmp.geojson
# on rajoute à la couche
ogr2ogr -f "PostgreSQL" PG:"host=$DB_HOST user=$DB_USER password=$DB_PASS dbname=$DB_NAME" \
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap -explodecollections -append
data/phase_5_pk_umap_tmp.geojson -nln phase_5_pk_umap_4326 -explodecollections -append
# ensuite on supprime les enregistrement aberrants
echo ""
echo " suppression des données nulles"
$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME -c "DELETE FROM phase_5_pk_umap WHERE ST_geometrytype(the_geom) <> 'ST_Point' OR secteur_id IS NULL OR pk_id IS NULL ;"
$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME -c "DELETE FROM phase_5_pk_umap_4326 WHERE ST_geometrytype(the_geom) <> 'ST_Point' OR secteur_id IS NULL OR pk_id IS NULL ;"
echo " fait"
# et on charge la couche en 2154 pour pouvoir travailler
echo ""
echo " chargement de la couche de travail en 2154"
$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME \
-c "TRUNCATE phase_5_pk_umap ;
INSERT INTO phase_5_pk_umap
SELECT pk_id, secteur_id, ST_Transform(the_geom,2154) AS the_geom
FROM phase_5_pk_umap_4326
ORDER BY pk_id ;"
echo " fait"
echo ""
echo ""
@ -219,7 +230,7 @@ echo ""
read nb_pk_deplaces <<< $( $PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME --no-align -t --quiet -c \
"SELECT COUNT(*)
FROM phase_5_pk_ref r FULL JOIN phase_5_pk_umap u ON r.pk_id = u.pk_id
WHERE TRUNC(ST_Distance(ST_Transform(r.the_geom,2154), ST_Transform(u.the_geom,2154))::numeric,2) > 1"
WHERE TRUNC(ST_Distance(r.the_geom, u.the_geom)::numeric,2) > 1 ;"
)
echo " $nb_pk_deplaces PK déplacés manuellement"
@ -233,9 +244,9 @@ $PSQL -X -h $DB_HOST -U $DB_USER -d $DB_NAME \
SELECT
r.pk_id,
r.secteur_id,
TRUNC(ST_Distance(ST_Transform(r.the_geom,2154), ST_Transform(u.the_geom,2154))::numeric,2) as distance
TRUNC(ST_Distance(r.the_geom, u.the_geom)::numeric,2) as distance
FROM phase_5_pk_ref r FULL JOIN phase_5_pk_umap u ON r.pk_id = u.pk_id
WHERE TRUNC(ST_Distance(ST_Transform(r.the_geom,2154), ST_Transform(u.the_geom,2154))::numeric,2) > 1
WHERE TRUNC(ST_Distance(r.the_geom, u.the_geom)::numeric,2) > 1
)
SELECT '1' as tri, '> 1000' as distance, COUNT(*) FROM liste_pk_decales WHERE (distance >= 1000)
UNION SELECT '2' as tri, '> 500' as distance, COUNT(*) FROM liste_pk_decales WHERE (distance >= 500 AND distance < 1000)
@ -261,7 +272,7 @@ echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
echo " Application des traitements SQL phase 5"
echo ""
#$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME < traitements_phase_5.sql
$PSQL -h $DB_HOST -U $DB_USER -d $DB_NAME < traitements_phase_5.sql
echo " fait"
echo ""