Requêtes création territoire Atlas
Dans le cadre du SINP PACA nous gérons maintenant la définition du territoire et la suppression des zones géographiques inutiles via le script de gestion des zones géographiques liées à un territoire.
Création du territoire pour l'Atlas
Créer le territoire couvert par l'Atlas dans le schéma ref_geo de la base GeoNature :
- Se placer à la racine du home de l'utilisateur admin :
cd ~
- Créer un dossier pour les téléchargements :
mkdir dwl
- Créer un dossier pour les données :
mkdir data
- Se placer dans le dossier des téléchargements :
cd ~/dwl
- Télécharger les contours administratifs français sur data.gouv.fr au format SHP :
wget https://www.data.gouv.fr/fr/datasets/r/4636895e-e64b-497c-a9bb-8cb49b75bd1a -O admin-express-cog_v2017-01-01.7z
- Décompresser l'archive :
p7zip -d admin-express-cog_v2017-01-01.7z
- Se placer dans le dossier suivant :
cd ADMIN-EXPRESS-COG_1-0SHPFRA_2017-06-19/ADMIN-EXPRESS-COG/1_DONNEES_LIVRAISON_2017-06-19/ADE-COG_1-0_SHP_LAMB93_FR/
- Créer un fichier SQL des contours des régions française :
shp2pgsql -c -D -s 2154 -I REGION ref_geo.tmp_region > ~/data/region.sql;
- Se connecter à la base :
psql -h 10.0.1.20 -d geonature2db -U geonatadmin
- Exécuter les commandes suivantes :
\i /home/admin/DATA/region.sql INSERT INTO ref_geo.bib_areas_types (type_name, type_code, type_desc, ref_name, ref_version) VALUES ('Territoire SINP', 'SINP', 'Région PACA', 'IGN admin_express', 2017); INSERT INTO ref_geo.l_areas (id_type, area_name, area_code, geom, "enable") SELECT ref_geo.get_id_area_type('SINP'), nom_reg, insee_reg, geom, TRUE FROM ref_geo.tmp_region WHERE insee_reg = '93';
Supprimer les communes hors zone SINP
Exemple de requête de désactivation des communes hors territoire SINP SUD-PACA. ATTENTION : après cette requête, il reste les mailles dans la base qu'il faudrait aussi supprimer.
-- Supprimer les communes inutiles pour le SINP SUD-PACA : -- Résultats obtenus : -- UPDATE 33895 rows -- Durée : 4333,858 ms (00:04,334) UPDATE ref_geo.l_areas SET enable = FALSE WHERE id_type = 25 AND id_area NOT IN ( SELECT a.id_area FROM ref_geo.l_areas AS a JOIN ref_geo.li_municipalities AS m ON (a.id_area = m.id_area) WHERE insee_dep IN ('04', '05', '06', '13', '83', '84') );