#Postgres / #PostGIS: Importation de nombreux shapefiles (Traitement par lots)

       Pour ceux qui travaillent avec Postgis de manière plus ou moins fréquente ,  si vous avez des difficultés d’intégration de plusieurs shapefiles en même temps, voici un  script batch  qui fera office d’ETL.

     Il peut être exécuté sans problème malgré un nombre important de shapefiles ( Tester sur un dossier de 55 shp ).  Voici les paramètres à modifier:

  • D’abord définir les variables vers les shp, et exécutables de postgres
set PATH_SHP="C:\Users\ABDOU\shapefiles"
set PATH_PSQL=C:\Program Files\PostgreSQL\9.5\bin\psql.exe
set PATH_SHP2SQL=C:\Program Files\PostgreSQL\9.5\bin\shp2pgsql.exe
set PATH_SQL="C:\Script_Abdou\shp\shp2pgsql\sql"
  • Les variables pour les paramètres de connexions
set pghost=votre host exemple localhost
set pgport=5432
set pgdb=votre base de données
set pgsrid= votre système de projection exemple 2154
set pggeom= le nom de votre colonne géométrique exemple geom
set pgencoding="CP1252"
set pgschema= le schema ou importer les shp
  • La procédure d’exécution pour chaque shp
REM "Parcourir le dossier et créer un fichier sql pour chaque shp "
for %%f in (%PATH_SHP%\*.shp) do "%PATH_SHP2SQL%" -s %pgsrid%   -g %pggeom% -d -D -i -I -W %pgencoding% %%f %pgschema%.%%~nf > %PATH_SQL%\%%~nf.sql

REM "Parcourir le dossier sql et intégrer les fichiers SQL dans la base de données Postgres et créer un fichier log pour chaque données intégrées"
for %%f in (%PATH_SQL%\*.sql) do "%PATH_PSQL%" -h %pghost% -p %pgport% -d %pgdb% -L %%~nxf.log -U %pguser% -f %%f

REM " Supprimer tous les fichiers sql dans le dossier SQL "
for %%f in (%PATH_SQL%\*.sql) do del %%f

Après ces changements enregistrer le fichier au format .bat
Exemple  shapefiles2postgis.bat
Double cliquer sur le fichier .bat pour l’exécuter
Et attendre les résultats …. 🙂

Pour plus de détails le fichier est disponible ici

Mise en place d’un système de routage et de calcul d’itinéraires intégrable à PostgreSQL/PostGIS : « Pgrouting »

Dijkstra voiture direction 2.png

 

Il existe de nombreuses recherches sur l’utilisation des algorithmes de pgRouting pour l’analyse du plus court chemin et le calcul des isochrones. PgRouting est une extension de PostgreSQL et PostGIS. Il fournit divers algorithmes comme All Pairs Short Path, Bi-directional Dijkstra, and A*, Shortest Path y compris Turn Restriction, Driving Distance etc… et d’autres fonctions d’analyses de graphes.

Les fonctions pgRouting sont basées sur les coûts, qui sont dynamiques par opposition coûts de pré-calculés et peuvent donc s’appliquer à différents types de scénarios réels sur un réseau routier.

En dépit de la diversité des possibilités offertes par pgRouting pour l’analyse d’un réseau, et malgré d’intenses recherches sur la toile, il existe peu d’exemples sur la réalisation d’isochrones parfaites ou sur la gestion multimodale des coûts (vitesses/temps) sur un réseau.

La plupart des tutoriels ou des recherches existantes se concentrent essentiellement sur sa facilité d’utilisation, sur la recherche du plus court chemin qui elle-même est basé sur la notion de coût.

Dans ce manuel, nous allons apprendre les différentes étapes de modélisation d’un réseau routier. Pour ce faire j’ai fait le choix de travailler uniquement avec des données gratuites d’OpenStreetMap au lieu des données d’IGN, TéléAtlas et autres qui sont payantes.

Nous allons donc voir aussi comment installer pgRouting, importer les données d’OpenStreetMap , créer un graphe planaire orienté et l’exploiter dans Qgis. Puis nous allons modéliser les coûts (voiture, peton, vélo et distance) en respectant le sens de la circulation. Je vous montrerai également comment créer des zones de chalandises ou isochrones.

Tutoriel accessible ici: