@etalab/majic
v0.11.0
Published
[![npm version](https://badge.fury.io/js/%40etalab%2Fmajic.svg)](https://badge.fury.io/js/%40etalab%2Fmajic) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
Downloads
27
Keywords
Readme
Données MAJIC
Scripts permettant d'extraire les données MAJIC au format NDJSON.
Prérequis
- Node.js >= 14
- Pour France entière : environ 20 Go d'espace disponible (5 Go pour les fichiers sources, 10 Go pour l'espace de travail, 5 Go pour les données résultantes)
Installation
yarn
Récupération des fichiers MAJIC
⚠️ Les fichiers MAJIC contiennent des données personnelles et des informations sous secret fiscal. La manipulation de ces données doit faire l'objet d'une déclaration CNIL.
Les données sources doivent être récupérées auprès des services de la DGFiP, ou de ses antennes locales.
Production des données
Actuellement la production des fichiers se déroule en 2 étapes, via 2 commandes.
Décompression des archives auto-extractibles (le cas échéant)
Les fichiers MAJIC sont fréquemment mis à disposition sous forme d’archives auto-extractibles (sous Windows).
Vous devez décompresser ces archives et placer tous les fichiers résultants dans un répertoire unique, par exemple un dossier ./data
.
Sous Mac ou sous Linux, vous pouvez utiliser les outils find
et unar
. Par exemple :
find /path/to/*.exe -exec unar -D -f -o data/ {} \;
Les fichiers résultants sont des fichiers texte à largeur fixe. Ils peuvent être en clair ou compressés via gzip
.
Import des fichiers MAJIC
Tout d'abord la commande import-data
explore le dossier contenant les fichiers MAJIC par direction, et les charge dans la base SQLite majic.sqlite
, par code commune et code fichier (BATI
, NBAT
, PROP
, PDLL
, LLOT
).
Pour France entière l'opération ne prend que quelques minutes sur une machine moyenne.
yarn import-data
Utilisation
La variable d'environnement MAJIC_PATH
doit être renseignée de manière à pointer vers le fichier généré à l'étape précédente.
Accéder aux données d'une commune
const {getCommuneData} = require('@etalab/majic')
// Données brutes
await getCommuneData('54084')
// Données simplifiées
await getCommuneData('54084', {profile: 'simple})
Licence
MIT