LINUX:Injection ou mise à jour des données

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour à la page du menu sur l'API de GéoLocalisation


But

La base crée à vide (voir article précédent) doit être remplie. C'est le but de cet article. Les scripts fournis peuvent aussi servir à mettre à jour les données existantes. Les scripts fournis sont pour la Belgique et la France. Ces scripts sont spécifiques car la structure des données sont fortement différentes d'une région à l'autre.

Seuls les informations pour les pays, les régions et les départements/provinces ont la même architecture. Les scripts les concernant sont très proches et communs.


Arborescence des scripts

Comme vu précédemment, un fichier d'un ensemble de script est disponible ci-dessous:

Télécharger le fichier ZIP contenant un ensemble de scripts

A la base, nous avons le fichier de configuration "config.bat" qu'il faut paramétrer avant toute action. Voici son contenu:


#!/bin/bash
BASE=/produc/geo
BASESQL="\/produc\/geo"
DATABASE=dblocalisation
DBUSER=root
DBPW=MonMotDePasse
OPTION=" -vv --show-warnings "

Il faut adapter sont contenu:

  • Les lignes 2 et 3 correspondent au répertoire où se trouve ce fichier "config.bat".
  • La valeur de la viariable "DATABASE" est changer selon vos désirs.
  • La variable "DBUSER" correspond à un utilisateur de MariaDB ayant tous les droits.
  • La variable "DBPW" contient le mot de passe de l'utilisateur mentionné sous la variable DBUSER.
  • La variable "OPTION" renseigne des options à utiliser avec la commande de ligne "mysql"; elle peut être vidée.


A côté de ce fichier, on remarque toute une série de répertoires différenciés par leur extension:

  • Sans extension : contient les scripts de traitement des données.
  • Extension "download" : contient les scripts de téléchargements des fichiers de données de base suivis d'un dézippage éventuel.
  • Extension "data" : contient les données à traiter, les fichiers de données intermédiaires et listings avant injection.
    • Sous-répertoire "zip" : contient les fichiers téléchargés zippés.
    • Sous-répertoire "in" : contient les fichiers, souvent au format "csv", servant au démarrage des traitements. Dans le cas du répertoire "commun.data/in", il contient un ensemble de sous-répertoires correspondant aux sous-répertoires du répertoire "commun" contenant les scripts par thèmes.
    • Sous-répertoire "dbf" : contient les fichiers de base de dBase (Flandre)
    • Sous-répertoire "csv" : contient les fichiers intermédiaires au format "csv" suite à l'extraction des fichier dBase (Flandre)
    • Sous-répertoire "out" : contient les fichiers découlant des traitements intermédiaires?
    • Sous-répertoire "lis" : contient les listings de requêtes SQL "select". Il faut surveiller ces listings qui doivent être vides pour la plupart sauf ceux servant à suivre l'évolution du processus de traitement


Le nom de base de ces répertoires correspond aux pays ou régions à traiter:

  • "commun" : pour le traitement commun
    • "base" : scripts de création à vide de la base de données (vu dans l'article précédent). A n'utiliser que dans le cadre précis de la seconde partie de l'article précédent.
    • "pays" : chargement des données des noms et codes des pays
    • "rd" : chargement des données des noms et codes des régions et des départements (FR) ou des provinces (BE)
    • "communeref" : chargement des noms et codes INSEE de communes de référence
    • "posteref" : chargement des noms et codes postaux des communes de référence (utilisé actuellement que pour la France)
    • "communeposte" : fusion des noms, codes Insee et codes postaux des communes utilisé actuellement que pour la France)
    • "nettoyage" : scripts de nettoyage final facultatif pour éliminer des données de références ci-dessus.
    • "dump" : scripts de sauvegarde et d'optimisation de la base de données
  • "france" : pour le traitement pour la France.
  • "belgique" : pour le traitement au niveau fédéral de la Belgique; seul le script de téléchargement est nécessaire. Les autres servent à la destruction de toutes les données belges; à ne pas utiliser sauf en toute connaissance de cause
  • "bruxelles" : pour le traitement de la région Bruxelles Capitale de Belgique
  • "flandre" : pour le traitement de la région flamande de Belgique
  • "wallonie" : pour le traitement de la région wallonne de Belgique


Dans cet ensemble fourni , les répertoires à l'extension "data" sont vides sauf les sous-répertoires sous "commun.data/in". Les fichiers qu'ils contiennent ne sont pas téléchargeables et doivent être gardés, spécialement ceux des sous-répertoires "pays" et "rd". Dans les sous-répertoires "communeref" et "posteref", les fichiers contenant dans leur nom ".ajout." ou ".MC." sont à garder.


Note: Le pays "principauté de Monaco" (MC) est repris car car il s'y retrouve dans les codes postaux de France mais aucune données n'est chargée.


Traitement

Les traitements pour chaque pays ou régions de Belgique peuvent se faire indépendamment. Seuls les traitement communs sont nécessaires dans tous les cas.


On commencera toujours par les scripts de type "download". Notons que pour les régions belges, il faut aussi effectuer le téléchargement "belgique". Attention, comme signalé lors de la description des sources de données, les URLs de ces sources sont à vérifier; leur contenu pouvant changer et donc leur référence en fonction de l'année d'édition par exemple.


Parmi tous les scripts qui suivent, seuls ceux ayant le canevas "job.*.bat" sont à exécuter !!!


Ensuite il faut passer aux tâches commune (répertoire "commun". On lance successivement les scripts "job.*.bat" des sous-répertoires suivants:

  • "pays" (sauf si on a déjà chargé la base de données complète fournie
  • "rd" (sauf si on a déjà chargé la base de données complète fournie
  • "communeref"
  • "posteref" (seulement pour la France)
  • "communeposte" (seulement pour la France)


Enfin on passe au pays (France) ou à la région de Belgique ciblé avec le script "job.*.bat" du répertoire du même nom.

Notons que le script "france/france.bat" comporte une variable de type liste nommée "LISTE". Elle regroupe la liste des numéros des départements français. En dédoublant cette liste et en ne gardant que les n° désirés, seils les départements cités seront traités par le script "france/job.france.bat".


On dispose des coordonnées géographiques des maisons (terrains). Pour calculer les coordonnées géographiques de chaque rue ou commune, on calcule les coordonnées moyennes à partir de celles des maisons. On obtient ainsi un point équivalent du centre de gravité de l'habitat concerné.




retour à la page du menu sur l'API de GéoLocalisation