• Aucun résultat trouvé

Deux outils d’aide à la construction des bases de données PegasePegase

Chapitre 5 : La méthode Pegase

5.2 Données et outils

5.2.2 Deux outils d’aide à la construction des bases de données PegasePegase

5.2.2.1 Asc2Peg

5.2.2.2 Présentation d’Asc2Peg

Asc2Peg (Mazagol et Mayoud 2005) est un outil logiciel permettant la mise en forme automatique du corps de la base de données Pegase à partir d’une série de fichiers au format d’échange ESRI ASCII Grid.

Il est utilisable sous environnement Windows. Ayant été développé en .Net, il nécessite cependant l’installation du paquet .NET Framework (de Microsoft). Il peut théoriquement être utilisé sous environnement Linux par le biais du logiciel Mono.

5.2.2.3 Principe de fonctionnement d’Asc2Peg 5.2.2.3.1 Les fichiers d’entrée

Asc2Peg permet de structurer ces données pour une zone définie par n cellules organisées en c colonnes et l lignes à partir de fichiers d’échange ESRI ASCII Grid. Ces fichiers ascii concernent une même zone d’étude et doivent tous posséder un même nombre c de colonnes et l de lignes. Ils ont donc tous la même résolution. Les valeurs NoData doivent être égales à -9999 et l’en-tête de ces fichiers doit être de la forme :

ncols 440 nrows 742 xllcorner 706397 yllcorner 2047072 cellsize 50 NODATA_value -9999

Les données doivent apparaître tout de suite après (à la sixième ligne), séparées par des espaces.

que les 6 lignes d’en-tête existent dans chaque fichier : ncols, nrows, xllcorner, yllcorner, cellsize et NODATA_value ;

que les nombres de colonnes et de lignes « ne dépassent pas les bornes » : Si nbcol <= 0 ou nbcol > 1 000 000 ou nblig <= 0 ou nblig > 1 000 000 alors échec (le nombre maximum de cellules pour un fichier ascii en entrée est donc de un million) ;

que tous les fichiers sélectionnés ont le même nombre de lignes et colonnes (cette vérification se fait uniquement par rapport aux nbcol et nrows fournis en en-tête) ;

que les nombres de colonnes et lignes fournis en en-tête correspondent bien aux nombres de lignes et colonnes réellement contenues dans le fichier ; que le nombre de fichiers sélectionnés au total est inférieur ou égal à 10000. Si toutes ces conditions sont réunies, Asc2Peg peut alors créer le fichier *.pgd

5.2.2.3.2 Le fichier de sortie format .pgd

Le fichier créé comporte autant de colonnes qu’il y a de fichiers ascii en entrée. Chacune de ces colonnes correspond à un de ces fichiers. Leur ordre correspond à celui dans lequel ils ont été entrés dans le logiciel. Il intègre une autre colonne placée en premier, qui correspond aux coordonnées des cellules dans la grille.

D’autre part, il contient autant de lignes qu’il y a de cellules. Leur ordre correspond à celui des cellules, par ligne, à partir de la cellule supérieure gauche jusqu’à la cellule inférieure droite.

Pour expliquer le principe de création des coordonnées, nous avons pris l’exemple suivant :

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Numéros des cellules du raster

3 3 3 2 3 6 3 10 9 3 3 4 1 1 9 10 8 7 7 1 1 2 9 9 2 6 2 1 2 7 9 9 5 3 2 4 4 3 3 1 3 5 5 10 10 10 4 8 4 5 5 10 10 9 4 6 3 7 3 9 10 6 3 4 5 6 6 6 6 7 1 2 3 7 5 7 7 8 9 8 8 2 8 8 5 6 8 8 8 9 1 9 3 9 5 6 9 8 9 10 1 2 3 10

Attributs des cellules du raster

Chaque fichier « grid » possède c colonnes (ici 8) et l lignes (ici 13). Chacune des N (ici 104) cellules est localisée par un numéro n (ici de 1 à 104)

Ces cellules peuvent être localisées par leurs coordonnées (X, Y) où :

1 1 Y= c +

n

(NB : on note [x] la partie entière de x) de telle sorte que, dans notre exemple :

pour le cellule 1 : Y =  8  1 1 +1 = 0 + 1= 1 pour la cellule 20 : Y =  8  1 20 +1 = 2 +1 = 3 pour la cellule 40 : Y =  8  1 40 +1 = 4 +1 = 5 pour la cellule 101 : Y =  9  1 101 +1 = 12 +1 = 13

et )) 1 Y ( ( X=n c

de telle sorte que, dans notre exemple :

pour le cellule 1 : X = 1-((1-1) × 8) = 1 pour la cellule 20 : X = 20-((3-1) × 8) = 4 pour la cellule 40 : X = 40-((5-1) × 8) = 8 pour la cellule 101 : X = 101-((13-1) × 8) = 5

Asc2Peg met alors en forme les coordonnées des cellules comme étant : (X × s) + Y où : s = 10 si 0 < l < 9 s = 100 si 10 < l < 99 s = 1000 si 100 < l < 999 s = 10000 si 1000 < l < 9999 ...

de telle sorte que, dans notre exemple :

pour la cellule 1 : (1 ×100) + 1 = 101 pour la cellule 20 : (4 ×100) + 3 = 403 pour la cellule 40 : (8 ×100) + 5 = 805 pour la cellule 101 : (5 ×100) + 13 = 513

5.2.2.3.3 Présentation de l’interface graphique d’Asc2PEg

Il est à noter qu’une cellule non renseignée pour une variable (NoData) sera représentée, au sein du fichier « *.pgd », par une ligne incomplète non reconnue par

Pegase. Les supprimer (en cochant l’option prévue à cet effet) dès la mise en place de la base de données permet d’obtenir un fichier moins lourd.

Figure 53 : L’interface graphique d’Asc2Peg

5.2.2.4 XLPEg : outil de structuration des en-têtes

XLPeg (Mazagol 2005) se présente sous la forme d’un classeur Microsoft Excel. Ce dernier comprend 6 feuilles de calcul que l’utilisateur parcourt successivement et remplit en fonction des indications qui lui sont données. Il permet également de performer un rapide diagnostic permettant de repérer certaines erreurs couramment rencontrées.

La feuille d’introduction permet de rentrer tous les paramètres nécessaires au déroulement du processus Pegase. L’étape suivante consiste à fournir à XLPeg la base de données qui a au préalable été construite avec Asc2Peg. Ceci va permettre d’automatiser le

Liste des fichiers *.asc ou *.txt sélectionnés à importer dans la base de

données Pegase Boutons permettant l’ajout ou

la suppression de fichiers .asc ou .txt dans la base de données

Pegase

Boutons permettant de déplacer les fichiers .asc ou .txt

selon la place que l’on veut qu’il occupe dans la base de

données Pegase

Cocher cette option permet de supprimer les cellules qui ne sont pas renseignées pour au

moins une variable.

Génération de la base de données Pegase à partir des fichiers sélectionnés. Le fichier créé a, au choix,

codage des variables. C’est également lors de cette étape que va se performer le diagnostic de la base de données. XLPeg nommera les variables dont le reclassement est incorrect et celle comportant plus de 30 classes (au delà, il y a des risques d’échec dans l’exécution de Pegase).

Figure 54 : Capture de la première feuille de XLPeg

Outre ceux fournis dans la première feuille, trois éléments sont à renseigner : le nom complet des variables, leur ordre de priorité et un code de une à deux lettres, en fonction du nombre de classes (rappelons que le code de chaque variable ne doit pas dépasser trois caractères). Le choix de ce code de une à deux lettres peut être complexe dans le cas de méta-bases de données (chaque classe de chaque variable devant avoir, au final, un code unique).

Une fois toutes les étapes complétées, une macro permet l’exportation automatique de l’en-tête au format *.pnr (fichier texte : séparateurs espaces). Cette exportation crée malheureusement des séries d’espaces successives qu’il faut remplacer par des espaces

Nous avons également développé une alternative à XLPeg permettant son utilisation dans le tableur OpenOffice.org Calc (OOoPeg.ods). Il présente l’avantage de ne pas créer ces espaces multiples lors de l’exportation. Mais il possède encore quelques imperfections liées aux différences de syntaxe entre les formules Excel et OOoCalc. En effet, un grand nombre de formules et de requêtes logiques sont intégrées à XLPeg (et stockées dans une feuille de calcul cachée) et la détection des conflits entre les deux tableurs n’a pas encore été menée à son terme.

Enfin, une limite affecte XLPeg. Elle concerne le nombre maximal de cellules, les feuilles de calcul Excel ne pouvant posséder au maximum que 65536 lignes. Ainsi, au-delà de 65527 cellules, il n’est plus possible d’utiliser l’outil. Pour palier à ce problème, nous avons développé une variante d’XLPeg, appelée XXLPeg, qui automatise nettement moins la mise en place de l’en-tête puisque l’on ne fournit pas la base de données. L’utilité de cette variante reste cependant fort appréciable.

Une fois l’en-tête créée avec l’un de ces outils, il suffit alors de l’intégrer au début de la base de données.

Documents relatifs