postgis-integration

[EXPERIMENTATION] Helper scripts to load several datasets into postgis (naturalearth, adminexpress, route500...)

MIT License

Stars
2
Committers
1

postgis-integration

!!! Warning : Personal and experimental project to explore opendata resources, not ready for production !!!

Description

This repository contains helpers to integrate data in postgis and dataset integration scripts mainly focused on open datasets about France.

Ce dépôt contient :

Jeux de données

ATTENTION : Reportez-vous aux descriptions des jeux de données pour connaître les conditions d'utilisation et licences exactes (voir homepage dans les fichiers config.json pour obtenir plus d'information)

Nom Description
adminexpress Région, département, commune, etc. (IGN)
cadastre Commune, section, feuille, parcelle, bâtiment (DGFIP retravaillé par ETALAB)
naturalearth Jeux de données de couverture mondiale (Pays, ports, lacs, batymétrie, etc.)
route500 Réseau routier à petite échelle

Usage

Installation des composants systèmes

Nom Description
nodejs Script JS côté serveur
unzip Extraction archive .zip
7z Extraction archive .7z (p7zip-full sur debian/ubuntu)
tar Extraction archive .tar.gz, .tar.bz2
ogr2ogr Lecture des formats geojson, shapefile, CSV, etc. (gdal-bin sur debian/ubuntu)
psql Chargement de données SQL (postgresql-client debian/ubuntu)
pg_dump Génération d'export des données (postgresql-client debian/ubuntu)

Installation de l'utilitaire

git clone https://github.com/mborne/postgis-integration
cd postgis-integration
npm install

Paramètres

Les scripts s'appuient sur des variables d'environnements :

Variable Description Valeur par défaut Obligatoire
PGHOST Nom du serveur localhost NON
PGDATABASE Nom de la base de données $USER NON
PGUSER Utilisateur $USER NON
PGPASSWORD Mot de passe utilisateur Aucune NON
DATA_DIR Dossier de travail postgis-integration/data NON

Création de la base de données

createdb gis
psql -d gis -c "CREATE EXTENSION postgis"

Import de jeux de données

PGDATABASE=gis bin/import.js adminexpress
#...

Utilisation sous docker

docker build -t postgis-integration .
# avec docker-devbox/postgis et la configuration par défaut
docker run --rm -ti \
    --net=devbox -e DEBUG=* -e PGHOST=postgis -e PGDATABASE=gis \
    -e PGUSER=postgres -e PGPASSWORD=ChangeIt \
    postgis-integration node bin/import.js adminexpress

Conventions

Organisation des fichiers

Pour chaque jeu de données, on retrouve les fichiers suivant :

Fichier Description
datasets/{datasetName} Dossier du jeu de données
datasets/{datasetName}/import.js Script d'import du jeu de données
datasets/{datasetName}/config.json Configuration du jeu de données (métadonnées)

Le fichier config.json fournit les informations suivantes :

Nom Description Exemple
name Identifiant du jeu de données ban
description Description du jeu de données en une phrase Base Adresse Nationale
homepage Page de présentation du jeu de données https://www.data.gouv.fr/fr/datasets/ban-base-adresse-nationale/
url URL de téléchargement du jeu de données https://adresse.data.gouv.fr/data/BAN_licence_gratuite_repartage_{CODE_DEP}.zip
version Version du jeu de données latest

Remarque :

  • version=latest traduit la possibilité pour le script de récupérer la dernière version du jeu de données
  • l'URL peut contenir des paramètres évalués au niveau du script d'intégration (ex : {CODE_DEP})

License

MIT