Vincent GODARD

Département de Géographie

Université de Paris 8


V.1.4 - Dernière mise à jour : 26/01/2006

Fiche Guide n°1.8 du cours de SIG :

(avec l'autorisation du Clark Labs - exercice librement inspiré du didacticiel d'Idrisi32)

 

Atelier de bases de données

 

Objectifs : pratiquer différentes requêtes par attributs dans la base de données

 

Fonctions décrites dans ce TP : Database Workshop, Collection Editor, Filter Table, Add field, SQL Calculate, EXTRACT, Import Value File, Export Value, INITIAL, ASSIGN

 

Dans un des exercices de la fiche guide 1.5, nous avons vectorisé la couche de texte (le nom) des provinces éthiopiennes. Nous allons ici travaillé sur une subdivision des provinces, les awrajas.

 

1. Exploration des données

Avant de commencer cet exercice, il faut se procurer les données !

- Les documents à télécharger seront à mettre dans un environnement de travail du genre :

D:\geo\Votre_Nom\FG18

Qui sera votre Working folder.

Attention : il ne faut pas d'accents, de blancs ou de caractères spéciaux dans l'arborescence pour le Data Paths d'Idrisi !

Les 8 fichiers nécessaires sont, soit :

- zippés gtdi18v3.zip (203 ko) pour un téléchargement plus rapide !

et vous les décompressez dans votre Working folder FG18.

[si vous rencontrez des problèmes avec Idrisi Kilimanjaro, téléchargez cette version compressée gtdi18v2.zip (190 ko) qui est celle d'origine (Idrisi for Windows, dite V2), puis après décompression, la convertir au format Idrisi 32, File / Conversion 16-32]

- à télécharger un par un !

1) le fichier raster awrajas.rst (400 ko)

2) le fichier en-tête du raster awrajas.rdc (1 ko)

3) le fichier palette du raster ethiopia.smp (1 ko)

4) le fichier vecteur awrajas.vct (304 ko)

5) le fichier en-tête du vecteur awrajas.vdc (1 ko)

6) le fichier base de données ethiopia.mdb (64 ko)

7) le fichier raster de températures tempsurf.rst (400 ko)

8) le fichier en-tête du raster de températures tempsurf.rdc (1 ko)

 

a) Pour cet exercice, vérifier, dans les préférences de l'utilisateur, que sont cochés :

- l'affichage automatique des résultats d'analyse ;

- le titre ;

- la légende.

- Afficher le fichier raster AWRAJAS pour visualiser la carte.

avec sa palette => ETHIOPIA

- Ajouter le fichier vecteur => AWRAJAS

avec sa palette (Symbol file) par défaut => Quantitative

- Sélectionner l'icône du Curseur d'interrogation (Cursor Inquiry Mode)

- A quoi correspondent les chiffres qui s'affichent ?

Ces identifiants ne sont pas continus :

- les deux derniers chiffres sont ceux de l'awrajas ;

- le ou les premiers sont ceux de la province.

- Comment afficher le contenu de la base de données ETHIOPIA ?

 

b) Ouvrir ETHIOPIA à partir du Database Workshop

GIS Analysis / Database Query / Database Workshop

ou à l'aide de l'icône ci-dessous,

 

c) Utiliser les barres de défilement pour visualiser les champs présents :

- idr_id => identifiant unique de chaque Awrajas ;

Destiné à établir le lien avec le fichier vecteur.

- name => nom de chaque awrajas ;

- population => nombre d'habitants ;

- cattle => nombre de bovins ;

- sheep => nombre de moutons ;

- goats => nombre de chèvres.

 

d) Pour en savoir plus sur la base de données :

- On peut aller dans Access ;

ou

- Visualiser les fichiers attributs (Attributes files) dans les Metadata.

 

2. Requête spatiale dans la base de données

Dans cet exercice, nous souhaitons faire des requêtes multiples sur les attributs, en utilisant uniquement le curseur d'interrogation.

- Comment procéder pour afficher plusieurs attributs pour un même objet (awrajas) ?

 

e) Fermer les cartes affichées et la base de données.

 

f) Création du lien entre le fichier vecteur AWRAJAS et la base de données ETHIOPIA

- Exécuter l'éditeur de collection Collection Editor

File menu / Collection Editor

ou à l'aide de l'icône ci-dessous,

- Ouvrir depuis son menu Fichier

File menu / New ...

- Sélectionner les fichiers liés de type vecteurs (*.vlx)

Files of Type => Vector link files (*.vlx)

- Lui donner le nom AWRAJAS.VLX

 

g) Remplir les 4 composants :

- le nom de la couche vecteur [Vector spatial frame file (vct)] => AWRAJAS

Elle décrit des objets avec un identifiant entier unique.

- le nom du fichier base de données [Database file (mdb)] => ETHIOPIA

C'est un fichier au format Microsoft Access. Les formats dBASE (.dbf) sont convertis par le Database Workshop.

- le nom de la table [Table] => ETHIOPIA

Une base de données peut contenir de très nombreuses tables.

Le fichier VLX indique quelle table utiliser (ici, il n'y a que celle là !).

- le nom du champ clef [Link field] => IDR_ID

Il établit le lien entre la base de données et les objets vecteurs.

- Sauvegarder puis fermer l'éditeur de collections.

 

h) Rouvrir la base de données ETHIOPIA à partir du Database Workshop

 

i) Sélectionner une cellule dans un enregistrement du champ chèvres (goats)

- Dans la fenêtre du Database Workshop, lancer l'affichage du champ sélectionné comme une couche cartographique

Query / Display Current Field as Map Layer

ou à l'aide de l'icône ci-dessous de la fenêtre Database Workshop,

- Indiquer le fichier vecteur auquel est lié cette table

=> AWRAJAS

- Valider par OK.

 

j) Redimensionner la fenêtre Database Workshop, pour que la carte et le tableau soient visibles.

 

k) Sélectionner l'icône du Curseur d'interrogation (Cursor Inquiry Mode)

- Cliquer dans la carte

- Si l'enregistrement existe

un pointeur se met en face de lui dans la base de données

- Si l'enregistrement n'existe pas

un message indique => idr_id = num not found

 

3. Affichage des attributs de la base de données

Pour examiner la répartition spatiale d'un champ, on a besoin de le cartographier. Comme premier exemple, nous allons créer pas-à-pas une carte de population.

 

l) Si ce n'est pas fait, fermer toutes les fenêtres

 

m) Afficher (Display) une couche vecteur (Vector Layer)

- Sélectionner dans le menu déroulant (Pick list) => + AWRAJAS

- A quoi sert le signe + ?

- Cliquer dessus

- Sélectionner dans la liste => POPULATION

- Laisser sélectionné le fichier de symbole par défaut (Symbol file) => Quantitative (Standard IDRISI Sequence)

- Contrôler que toutes les options sont sélectionnées

- Valider par OK.

La carte résultante indique la répartition de la population éthiopienne par awrajas.

 

n) Ouvrir l'atelier de base de données (Database Workshop)

- Sur quoi s'ouvre-t-il directement ?

- Pourquoi ?

 

o) Sélectionner un enregistrement du bétail (Cattle)

- Afficher ce champ

- Comment s'appelle le fichier ouvert (cf. bandeau bleu) ?

- Pourquoi ?

Nous savons, maintenant que le lien est établi entre le fichier vecteur et la base de données, afficher directement des cartes des différents champs.

- Saurions nous afficher des objets répondants à une requête ?

 

4. Requête sur la base de données - Filtrage

Comme cela a été vu dans la fiche guide 1.7, nous allons pratiquer des requêtes multiples sur des fichiers attributs en utilisant un langage qui nous est maintenant connu, le langage SQL (Structured Query Language).

Nous allons d'abord afficher les awrajas dont la population dépasse 300 000 habitants.

 

s) Fermer toutes les fenêtres sauf AWRAJAS.POPULATION

- Sélectionner l'icône des filtres de la table (Filter Table) du Database Workshop.

Rappel :

- chaque expression est séparée de la suivante par un espace ;

- les noms de champs qui contiennent des caractères spéciaux (comme les blancs) sont entourés de crochets "[ ]" ;

- il est recommandé d'utiliser l'utilitaire de rédaction d'expression SQL.

- Select => *

- La zone From est comprise dans la table courante (Ethiopia).

- Where => [POPULATION] > 300000

Attention : pas de blancs comme séparateur de milliers

- Valider par OK.

La carte résultante est une carte booléenne. Elle indique uniquement en rouge les awrajas de plus de 300 000 hab.

 

t) Il est préférable de désactiver les filtres précédents avant toutes nouvelles requêtes

- Pour enlever le filtre, activer l'icône correspondante (Remove Filter)

- Répondez à la question suivante :

1. Combien d'awrajas ont plus de 300 000 hab. ET plus de 300 000 bovins (Cattle) ?

2. Quel est l'awrajas frontalier concerné ?

 

u) Répondez aux questions suivantes :

3. Combien d'awrajas ont plus de :

- 300 000 hab. ;

- 300 000 bovins (Cattle) ;

- 300 000 moutons (Sheep) ?

4. Quel est leur nom ?

 

5. Calculs algébriques sur les cartes

Pour la fin de cet exercice, nous allons réaliser des opérations algébriques sur les cartes avec l'atelier de base de données dans le but d'évaluer une série d'équation qui modélise les émissions de méthane du cheptel.

Le contexte de cet exercice est donné par le United Nations Framework Convention on Climate Change (UNFCC). Les pays signataires de cet accord, doivent évaluer annuellement leurs émissions de gaz à effet de serre. Les émissions de méthane, relatives au cheptel, sont une des statistiques de gaz à effet de serre qu'il faut établir. Nous allons les calculer pour les awrajas éthiopiennes.

Les émissions de méthane du cheptel se décomposent en deux parties dont la somme fait :

Total de méthane émis (kg) = fermentation intestinale (kg) + décomposition des litières (kg)

avec :

- Fermentation = (Cattle*32)+(Sheep*5)+(Goats*5)

où 32 et 5 sont des constantes

- Décomposition = Cattle+(Sheep*(0,047+(0,0055*T)))+(Goats*(0,057+(0,0055*T)))

où T est la température moyenne annuelle en °C.

Ces équations sont fournies par les services de l'UNFCC.

L'équation de la fermentation entérique est assez robuste. Elle est basée sur des données empiriques pour lesquelles, pour chaque type de bétail, on connaît la quantité annuelle de méthane émise. Ces quantités moyennes sont des constantes qui multipliées par le nombre d'animaux fournissent la quantité de méthane émise par fermentation.

L'équation de de la décomposition des litières est plus complexe. La litière de chaque tête de bovidé produit un kilogramme de méthane par an. Pour les litières de moutons et de chèvres, il faut prendre en compte une relation impliquant la température moyenne annuelle. Les émissions de méthane issues de ces sources sont positivement corrélées avec la température de l'air (plus la température augmente, plus la quantité de méthane émise des litières augmente).

 

 

v) Enlever les derniers filtres réalisés et fermer toutes les cartes

 

w) Calcul du champ Fermentation

- Ajouter un champ par le menu d'édition de l'atelier de base de données.

Edit / Add field

Dans la fenêtre du gestionnaire de champs (Field Manager)

- Nom du nouveau champ => Ferment

- Type de données (Data Type) => Réel simple précision (Single Precision Real)

- Valider par OK.

- Contrôler que le nouveau champ a été créé à droite des champs existants.

- Cliquer sur l'icône de calcul de champs.

Dans la fenêtre de la calculatrice SQL (SQL Calculate)

- Nom du champ à calculer (Set) => Ferment

- Formule (zone "=") => ([cattle] * 32) + ([sheep] * 5) + ([goats] * 5)

Les taper directement ou les sélectionner dans les champs (Fields).

Attention : ne pas confondre les parenthèses et les crochets !

- Valider par OK.

puis

- Accepter de modifier la base de données.

Noter que :

- Il peut être nécessaire de redimensionner les colonnes de la base de données.

 

x) Calcul du champ Décomposition

Pour la décomposition, on a besoin de la température T, que l'on ne connaît pas encore. Ces données n'existent pas dans la base ETHIOPIA. Il n'y a pas non plus de carte des températures. Cependant, les températures sont collectées dans des stations météorologiques réparties sur l'ensemble du territoire. On connaît également l'altitude de ces stations. Comme on peut le voir dans l'exercice 2.6 (cf. fiche guide 26), la relation entre températures et altitudes est robuste* en Afrique de l'Est. Comme dans l'exercice 2.6, on va extrapoler une équation modélisant la relation entre les températures moyennes annuelles et l'altitude pour 35 stations météos éthiopiennes, puis en créer une carte des températures à partir du MNT.

La carte des températures créée s'appelle TEMPSURF. L'équation pour créer TEMPSURF est :

Y = 30,388041 - 0,006171 * X

avec :

Y la température en °C ;

X l'altitude en mètres.

 

y) Afficher le fichier raster TEMPSURF

avec la palette par défaut => Quantitative

- Ajouter le fichier vecteur => AWRAJAS

avec la palette (Symbol file) => Uniform Black

- Les hautes terres ont les températures les moins chaudes (du bleu au jaune)

- Les basses altitudes ont les températures les plus chaudes (du jaune au vert)

 

Le fichier image des températures est un fichier de données continues. Il faut résumer ces températures, qui couvrent toute la surface d'une awrajas, par la moyenne des températures par awrajas. C'est le module EXTRACT qui va le permettre.

EXTRACT utilise deux fichiers rasters :

- un fichier image (AWRAJAS)

où sont définis les objets pour lesquels on veut extraire l'information ;

- un fichier image (TEMPSURF)

où sont les données qui contiennent l'information.

Les résumés produits (Summary type) possibles sont les suivants :

Min

Range (amplitude)

Max

Population standard deviation

(écart type calculé sur la population)

Total (sum)

Sample standard deviation

(écart type calculé sur un échantillon)

Average (moyenne)

All listed summary types

(tous les types de résumés)

Le module EXTRACT produit une fichier attributs (.avl). La première colonne contient les identifiants "Idr_id", la deuxième, les moyennes des températures. Il faut ensuite importer le résumé statistique, par le Database workshop dans la base ETHIOPIA.

 

z) Calcul du champ Température moyenne

- Créer, dans le Database workshop, un nouveau champ pour recevoir les données extraites par le menu d'édition de l'atelier de base de données.

Edit / Add field

Dans la fenêtre du gestionnaire de champs (Field Manager)

- Nom du nouveau champ => AVGTEMP

- Type de données (Data Type) => Réel simple précision (Single Precision Real)

- Valider par OK.

On peut maintenant pratiquer l'extraction.

- Exécuter EXTRACT depuis le menu :

GIS Analysis/Database Query/EXTRACT

- Compléter les boîtes de dialogue comme suit :

- le fichier image des objets à renseigner (Feature definition image) => AWRAJAS

- le fichier image à traiter (Image to be processed) => TEMPSURF

- le type de résumé voulu (Summary type) => La moyenne (Average)

Comme type de fichier sortie (Output type)

- le nom du fichier attribut de sortie (Attribute value file) => AVGTEMP

- Valider par OK.

puis

- Réaliser l'importation dans le Database workshop.

File / Import Value (.avl) File

Dans la fenêtre du gestionnaire d'importation (Value File Manager)

- Nom du fichier attributs (Value file name) => AVGTEMP

- Nom du champ lien (Link field name) => Idr_id

- Nom du champ à compléter (Data field name) => Avgtemp

- Valider par OK.

 

aa) Calcul du champ Décomposition

- Créer, dans le Database workshop, un nouveau champ pour calculer les données relatives à la décomposition par le menu d'édition de l'atelier de base de données.

Edit / Add field

Dans la fenêtre du gestionnaire de champs (Field Manager)

- Nom du nouveau champ => Manure

- Type de données (Data Type) => Réel simple précision (Single Precision Real)

- Valider par OK.

- Cliquer sur l'icône de calcul de champs.

Dans la fenêtre de la calculatrice SQL (SQL Calculate)

- Nom du champ à calculer (Set) => Manure

5. Quelle formule avez-vous saisie pour calculer la décomposition des litières ?

Décomposition (Manure) = Cattle+(Sheep*(0.047+(0.0055*T)))+(Goats*(0.057+(0.0055*T)))

où T est la température moyenne annuelle en °C que l'on remplace par Avgtemp.

- Formule (zone "=") => ????

Attention, ce système est américain, avec les paramètres français de configuration régionale, il lui faut :

- des "," et pas des "." dans les tableaux (images, ....) ;

- des "." et pas des "," dans les requêtes SQL !!!

- Valider par OK.

puis

- Accepter de modifier la base de données.

 

Enfin, il faut combiner les apports de la fermentation entérique (Ferment) avec la décomposition des litières (Manure) pour obtenir le total des rejets de méthane par awrajas. On obtient un résultat en kilogramme. Il faut le convertir en tonnes.

 

ab) Calcul du champ TotMeth

- Créer, dans le Database workshop, un nouveau champ pour recevoir le total du méthane émis en tonnes.

6. Quelle formule avez-vous saisie pour calculer la quantité de méthane émise ?

 

ac) Affichage du champ TotMeth

7. Quelle est la répartition spatiale du méthane en Éthiopie ?

 

Les émissions de méthane constituent un des composants de la modélisation des gaz à effet de serre. Il est possible de combiner ces données avec plein d'autres couches d'information dans un modèle plus globalisant. Cependant, certaines de ces informations peuvent être des données continues, sous forme de raster, ou contenues dans des objets spatiaux ayant une autre géométrie que celles des awrajas. Il peut donc être nécessaire de transférer le total des émissions (TotMeth) du champ de la base de données, où il est stocké, à un fichier raster où il sera plus manipulable. Trois étapes sont nécessaires. C'est d'abord un export depuis le Database workshop, puis la création d'un fichier raster vide avec le module INITIAL et enfin l'intégration dans ce raster vide avec le module ASSIGN qui vont le permettre.

 

ad) Réaliser l'exportation depuis le Database workshop.

File / Export Value (.avl) File

Dans la fenêtre du gestionnaire d'exportation (Value File Manager)

- Nom du fichier attributs (Value file name) => TOTMETH

- Nom du champ lien (Link field name) => Idr_id

- Nom du champ à compléter (Data field name) => TotMeth

- Valider par OK.

 

ae) Création du fichier raster vide depuis le menu :

Data Entry / INITIAL

- Laisser cocher la définition spatiale des paramètres sur une autre image (Copy spatial parameters from another image) ;

- Fichier sortie à créer (Output image) => TOTMETH

- Copier les paramètres spatiaux de l'image suivante (Image to copy parameters from) => AWRAJAS ;

- Type des données de sortie (Output data type) => Réels (Real)

- Laisser la valeur initial par défaut => 0

- Valider par OK.

 

af) Remplissage du fichier raster vide depuis le menu :

Data Entry / ASSIGN

- Laisser cocher le type de fichier par défaut (File type) => Raster file

- Image contenant les objets spatiaux (Feature definition image) => AWRAJAS

C'est une image raster et non un fichier vecteur qui est demandée ici. Elle doit contenir le numéro des objets spatiaux pour accueillir les attributs du fichiers valeurs (.AVL). Si elle n'existait pas, il faudrait la créer avec le module POLYRAS à partir du fichier vecteur qui contient les identifiants des awrajas.

- Fichier sortie à compléter (Output image) => TOTMETH

- Fichier attribut (Attribut value file) => TOTMETH

- Titre du fichier de sortie (Output title) => Émissions totales de méthane en Ethiopie

- Valider par OK.

puis

- Accepter d'écraser le fichier existant.

Il est vide, il ne contient que des zéros !

La carte apparaît !

- Valider par OK.

Attention, là encore, si le fichier attributs TOTMETH.AVL contient des "," et pas des ".", vous riquez d'avoir le message d'erreur suivant "Check right hand column of values file for blanks or non-numeric values" !!!

Convertissez les "," en "." dans le fichier TOTMETH.AVL dans Edit par le menu

Tools / Find and Replace ...

 

ag) Utiliser le Database workshop pour réaliser une carte affichant la densité du bétail (Cattle / km2) et par awrajas.

Utiliser le module AREA pour calculer les surfaces des awrajas !

8. Décrivez les étapes

 

 

Retour au début de la fiche Guide

 

Fiche Guide suivante

 

NB : les mots suivis de "*" font partie du vocabulaire géographique, donc leur définition doit être connue. Faites-vous un glossaire.