Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mborne/postgis-integration
[EXPERIMENTATION] Helper scripts to load several datasets into postgis (naturalearth, adminexpress, route500...)
https://github.com/mborne/postgis-integration
Last synced: 3 months ago
JSON representation
[EXPERIMENTATION] Helper scripts to load several datasets into postgis (naturalearth, adminexpress, route500...)
- Host: GitHub
- URL: https://github.com/mborne/postgis-integration
- Owner: mborne
- License: mit
- Created: 2018-06-17T14:36:25.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-10T08:03:24.000Z (7 months ago)
- Last Synced: 2024-10-08T15:14:06.599Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 393 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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 :
* Des [utilitaires permettant d'écrire facilement des scripts d'intégration](helper) (appel à ogr2ogr, psql, etc.)
* Des [scripts d'intégration de données ouvertes dans postgis](datasets)## 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](./datasets/adminexpress/config.json) | Région, département, commune, etc. (IGN) |
| [cadastre](./datasets/cadastre/config.json) | Commune, section, feuille, parcelle, bâtiment (DGFIP retravaillé par ETALAB) |
| [naturalearth](./datasets/naturalearth/config.json) | Jeux de données de couverture mondiale (Pays, ports, lacs, batymétrie, etc.) |
| [route500](./datasets/route500/config.json) | 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
```bash
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
```bash
createdb gis
psql -d gis -c "CREATE EXTENSION postgis"
```### Import de jeux de données
```bash
PGDATABASE=gis bin/import.js adminexpress
#...
```## Utilisation sous docker
```bash
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](LICENSE)