/majic

Extraction des données MAJIC

Primary LanguageJavaScriptMIT LicenseMIT

Données MAJIC

npm version XO code style

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