Skip to content

[EXPERIMENTAL] Script d'import et de mise à jour des données OSM dans une base PostgreSQL

License

Notifications You must be signed in to change notification settings

ignfab/osm-integration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

osm-integration

!!!EXPERIMENTAL!!! Scripts d'import et de mise à jour des données OSM dans PostgreSQL s'appuyant sur osm2pgsql et osm2pgsql-replication.

Prérequis

  • Instance PostgreSQL avec tuning adéquat
  • python3-psycopg2
  • osm2pgsql
  • unzip
  • gdal-bin

Principaux scripts

Paramétrage

La connexion à la base de données s'appuie sur les variables d'environnements standards de PostgreSQL (PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE,...).

Variable Description Valeur par défaut
OSM_PLANET_URL URL du fichier PBF utilisée uniquement pour l'import https://download.geofabrik.de/europe/monaco-latest.osm.pbf
OSM_DATA_DIR Dossier de téléchargement des données ./data
CACHE_SIZE Permet d'adapter la taille du cache pour les noeuds 2000 (1)
USE_FLAT_NODES Permet d'activer l'utilisation de --flat-nodes 0 (2)
OSM_FLAT_NODES_PATH Permet de personnaliser l'emplacement du fichier flat nodes ${OSM_DATA_DIR}/nodes.raw
CREATE_DB Permet de désactiver la création automatique de la base de données 0
LOG_PROGRESS Permet de désactiver le reporting de la progression 1

Remarques :

  • (1) Voir osm2pgsql.org - Caching, compter 20000 pour import monde (soit 20Gi)
  • (2) Il faut alors conserver le fichier ${OSM_DATA_DIR}/nodes.raw qui remplace la table planet_osm_nodes

Utilisation

# configuration de l'accès à la base de données
export PGHOST=localhost
export PGUSER=postgres
export PGPORT=5432
export PGPASSWORD=ChangeIt

# valeur par défaut
export CACHE_SIZE=2000
export OSM_PLANET_URL=https://download.geofabrik.de/europe/monaco-latest.osm.pbf

# France
#export CACHE_SIZE=6000
#export OSM_PLANET_URL=https://download.geofabrik.de/europe/france-latest.osm.pbf

# Espagne
#export CACHE_SIZE=2000
#export OSM_PLANET_URL=http://download.geofabrik.de/europe/spain-latest.osm.pbf

# Côte d'ivoire
#export OSM_PLANET_URL=https://download.geofabrik.de/africa/ivory-coast-latest.osm.pbf

# Monde entier
#export USE_FLAT_NODES=1
#export OSM_PLANET_URL=https://planet.openstreetmap.org/pbf/planet-latest.osm.pbf

bash bin/import.sh

Utlisation avec docker

Voir docker-compose.yaml qui permet de tester en local comme suit :

# Construire l'image
docker compose build

# Démarrer la stack avec osm-integration en mode terminal
docker compose up -d

# Configurer l'import
export OSM_PLANET_URL=https://download.geofabrik.de/europe/monaco-latest.osm.pbf
export CACHE_SIZE=2000
docker compose run integration bin/update.sh

# Mettre à jour les données
docker compose run integration bin/update.sh

Pour le debug :

# Se connecter à osm-integration en mode terminal
docker compose exec integration /bin/bash
#... on est alors dans le conteneur :

# Vérifier l'accès à la BDD
psql -l

Licence

MIT

Ressources

About

[EXPERIMENTAL] Script d'import et de mise à jour des données OSM dans une base PostgreSQL

Resources

License

Stars

Watchers

Forks

Packages