Vincent GODARD

Département de Géographie

Université de Paris 8


V.1.4 - Dernière mise à jour : 12/10/2004

 

Fiche Guide n°2.3 du cours de SIG :

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

 

Opérateurs de distance et de voisinage

 

Objectifs : création de cartes d'aptitude

 

Fonctions décrites dans ce TD : ORTHO, SURFACE, Macro Modeler, RECLASS, Edit, DISTANCE, BUFFER, OVERLAY, GROUP, AREA,

 

Note : à ce point des exercices, il est supposé que vous êtes capables d'afficher une image et d'exécuter des modules comme OVERLAY et RECLASS sans instruction pas à pas. En cas d'incertitudes, utilisez les propositions par défaut. Indiquez toujours un titre aux images résultats.

Dans cet exercice nous allons introduire deux nouveaux groupes d'opérations analytique, les opérateurs de distance et de voisinage. Les opérateurs de distance calculent des distances depuis des objets cibles ou des jeux d'objets cibles. Dans un environnement raster, ils produisent une image où à chaque pixel est assignée la distance qui le sépare de l'objet cible le plus proche. Plusieurs distances peuvent être modélisées. La plus courante est la distance euclidienne, ou distance en ligne droite, c'est celle qui sera mise en oeuvre dans cet exercice. Dans IDRISI, les distances euclidiennes sont calculées par le module DISTANCE. Le module BUFFER créé des zones tampons autour des objets cibles à l'aide de la distance euclidienne. Dans l'exercice 2.5, c'est une autre distance, la distance-coût*, qui sera explorée.

Les opérateurs de contexte, ou de voisinage, déterminent la nouvelle valeur du pixel en fonction de son environnement. Le module GROUP, déjà vu lors de l'exercice 2.2, identifie des groupes de pixels contigus et leur assigne un identifiant commun. Dans l'exercice 2.3, nous allons nous familiariser avec l'opérateur de voisinage SURFACE qui permet de calculer des pentes à partir d'un MNT. La valeur de la pente, attribuée à chaque pixels, dépend de l'altitude de ses quatre plus proches voisins.

Nous allons utiliser les opérateurs de distance et de voisinage pour réaliser une des tâches les plus courantes dans l'utilisation des SIG : la création de cartes d'aptitude*, un type d'évaluation multicritère. Une carte d'aptitude montre, en tout lieu, le degré d'aptitude pour atteindre un objectif particulier. Elle est le plus souvent le produit de plusieurs images mais aussi parfois la combinaison de plusieurs critères d'aptitude eux mêmes multicritères. Dans cet exercice, des images booléennes seront combinées avec OVERLAY pour produire l'image finale qui montre les sites qui réunissent tous les critères retenus. Ce type d'évaluation booléenne multicritère est généralement appelée carte de contraintes*. Chaque critère est défini par une image booléenne où la valeur un est attribuée à la zone d'aptitude au critère et zéro pour les zones qui n'y répondent pas. La carte réalisée lors de l'exercice 2.2 est une carte de contraintes simple qui a permis de déterminer les zones d'aptitude à la culture du sorgho de décrue. Dans les exercices suivants, nous explorerons les outils d'approches non booléennes pour les analyses d'aptitudes multicritères.

Notre problème, dans cet exercice, est de trouver des sites aptes à l'installation d'une centrale électrique dans une petite région du centre du Massachusetts, près de l'Université de Clarks. L'entreprise désire d'abord trouver un terrain plat, avec une pente inférieure à 2.5° et d'une superficie de 10 hectares minimum. Les autorités locales sont soucieuses de préserver les réserves en eau potable. Elles imposent que la centrale soit à plus de 250 mètres des retenues d'eau. De plus, tous les terrains ne sont pas aptes à la construction de cette centrale. Seuls, les terrains boisés sont susceptibles de recevoir une telle infrastructure.

En résumé, les critères d'aptitude sont :

- pentes < 2.5°

- être à plus de 250 m de l'eau

- être en forêt

- avoir plus de 10 ha de superficie

Deux cartes sont fournies : " RELIEF " (MNT), et " LANDUSE " (occupation du sol, à afficher avec la palette landuse). Ces documents sont de petites tailles pour être traitées rapidement.

 

a) Pour se familiariser avec la zone d'étude :

- Exécuter ORTHO par le menu Display / ORTHO

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

- Spécifier :

- le nom du MNT (Surface image) => RELIEF

- le nom de l'image à draper (Drape image) => LANDUSE

- le nom de la palette (Palette file) => LANDUSE

Conserver tous les paramètres par défaut sauf la résolution d'affichage (Output resolution).

Choisir un niveau de résolution en deçà du niveau de résolution d'affichage du système.

Par exemple, si votre système d'affichage est en :

- 1024 colonnes par 768 lignes

choisir

- 800 colonnes par 600 lignes

- Valider par OK.

Comme vous pouvez le voir, la zone d'étude est :

- dominée par des forêts de feuillus ;

- vallonnée.

Il faut résoudre le problème d'aptitude en quatre étapes, une par contrainte.

 

1. La contrainte de la pente

1er Objectif : construire l'image SLOPEBOOL de pente inférieure à 2,5°

- SLOPEBOOL doit être une image booléenne où :

- les pixels de valeurs inférieures 2.5° seront codés "1" ;

- les autres seront codés "0".

- Pour créer cette image, il faut :

une carte des pentes

Mais celle-ci n'existe pas dans la base de données !

Il faut la créer.

- C'est le module SURFACE, à partir d'un MNT (le fichier RELIEF), qui va permettre sa réalisation.

- Puis le module RECLASS, qui va permettre d'isoler le critère d'aptitude.

fig. 1 - Obtention de SLOPEBOOL

Sources : EASTMAN 2001, p.56

1. Compléter le modèle graphique

 

b) Afficher RELIEF

avec la palette (Palette file) => Quantitative (Standard IDRISI Palette)

- Explorer les valeurs d'altitude

à l'aide du Curseur d'interrogation (Cursor Inquiry Mode)

- Qu'est-ce qui indique les pentes les plus fortes ?

 - Sur une carte topographique :

c'est le nombre de courbes de niveau sur une distance donnée ;

- Sur un MNT :

c'est le nombre de "couleurs différentes" sur une distance donnée.

A partir d'un MNT (le fichier RELIEF), la pente de chaque cellule est déterminée en comparant son altitude et celle de ses voisins. Dans IDRISI, c'est le module SURFACE qui est utilisé pour effectuer cette comparaison. Il sert également pour déterminer la direction de cette pente (Aspect) et l'ombrage (Analytical hillshading) qui est fonction d'un éclairement solaire donné.

 

c) Lancer le concepteur de macros (Macro Modeler) depuis le menu de modélisation

Modeling/Macro Modeler

ou par l'icône ci-dessous,

- Placer :

- le fichier raster RELIEF

- le module SURFACE

- Lier RELIEF à SURFACE

- Changer le nom du fichier de sortie (temp000), avec un clic droit sur son symbole

=> SLOPES

- Paramétrer le module SURFACE, avec un clic droit sur son symbole

- Conserver le calcul par défaut (Surface operation) => Calcul de pente (Slope)

- Modifier l'unité de mesures (Slope measurement) => Degrés (Degrees)

Le facteur de conversion n'est pas à modifier ici (Reference units et Value units sont identiques ici)

- Enregistrer ce modèle depuis la barre de menu du Macro Modeler

File/Save As...

sous le nom de => Exer2-3.

- Exécuter le modèle (Run) depuis la barre de menu du Macro Modeler

ou par l'icône ci-dessous,

- Accepter que SLOPES soit écrasé s'il existe déjà.

Il faut maintenant reclasser SLOPES pour produire une image booléenne qui réponde au premier critère : surfaces avec une pente de moins de 2,5°.

 

d) Ajouter le module RECLASS au modèle graphique Exer2-3.

- Lier SLOPES à RECLASS

- Changer le nom du fichier de sortie (temp001), avec un clic droit sur son symbole

=> SLOPEBOOL

- Paramétrer le module RECLASS, avec un clic droit sur son symbole.

Tous les paramètres par défaut sont bons.

Mais, il faut créer le fichier texte (.rcl) qui contienne les modifications.

- Nommer le fichier RCL (Name of RCL file), avec un clic droit dans la boîte de dialogue.

- Cliquer sur nouveau (New) en bas du menu déroulant.

- Saisir les valeurs comme suit (avec un blanc entre) :

1 0 2.5

0 2.5 999

- Enregistrer sous (Save As ...)

=> SLOPEBOOL

- Valider par OK.

 

e) Enregistrer et exécuter le modèle (Run)

- Accepter que SLOPEBOOL soit écrasé s'il existe déjà.

- Examiner le résultat.

Note : Si, lors de l'exécution de RECLASS, vous recevez le message suivant "Old end value must be a real number in the range of - 1E37 - + 1E37", deux attitudes sont possibles :

1) remplacer 2.5° par 3° dans le fichier RCL, pour avoir des entiers à la place des décimales ; c'est la méthode la plus rapide !

2) multiplier l'image des pentes par dix dans le module SCALAR (module décrit dans l'exercice 2.7) puis transformer les données réelles de ce fichier en données entières en les arrondissant (Rounding) à l'aide de la fonction CONVERT ; enfin les reclasser par RECLASS avec un fichier RCL modifié comme suit :

1 0 25

0 25 999

c'est la méthode la plus précise !

 

2. La contrainte de la zone tampon autour des retenues d'eau

2e Objectif : construire l'image BUFFERBOOL des zones d'aptitude à plus de 250 m des retenues d'eau.

Une zone tampon* (Buffer) est une zone qui entoure un objet cible ou d'un jeu d'objets cibles sur une distance déterminée. Il faut construire une image booléenne où la valeur "1" est attribuée aux pixels à plus de 250 m des retenues d'eau et "0" aux autres.

IDRISI comprend plusieurs opérateurs de distance tous situés dans la menu GIS Analysis/Distance Operators. Deux sont utilisables pour produire l'image dont nous avons besoin : DISTANCE ou BUFFER. Les deux requièrent une image d'entrée où les objets cibles, depuis lesquels les distance seront calculées, ont des valeurs différentes de zéro, alors que les autres pixels sont à zéro.

2. Comment créer une image booléenne des retenues d'eau ?

A partir de quelles images devez-vous la construire (deux modules différents peuvent être utilisés) ?

 

f) Afficher l'image LANDUSE

- Utiliser la palette définie par l'utilisateur => LANDUSE

- Quel est le code du thème retenues d'eau ?

 

On peut aussi bien utiliser RECLASS ou Edit/ASSIGN pour créer l'image booléenne des retenues d'eau. Les deux nécessitent d'éditer un fichier texte en dehors du Macro Modeler. C'est Edit/ASSIGN que nous allons utiliser pour créer l'image RESERVOIRS.

g) Ouvrir Edit depuis le menu

Data Entry /Edit

ou par l'icône ci-dessous,

- Écrire les valeurs sur deux colonnes (ancienne valeur, blanc, nouvelle valeur) comme suit :

2 1

- Depuis le menu de la boîte de dialogue d'Edit,

Enregistrer sous ... (Save As...)

- Nom => RESERVOIRS ;

- Type => Attribute values file ( .avl).

Cliquer sur sauver

- choisir comme Data type => Integer

- Fermer Edit.

 

h) Dans le Macro Modeler,

- placer le fichier attribut RESERVOIRS ;

- le déplacer sur le côté gauche du modèle ;

sous la branche du critère de pente

- placer le fichier image LANDUSE

sous le fichier attribut

- placer le module ASSIGN

à la droite des deux précédents fichiers

- Changer le nom du fichier de sortie (temp002), avec un clic droit sur son symbole

=> RESERVOIRS

- Dans quel ordre doivent être paramétrés les fichiers en entrée ?

Les fichiers entrés doivent être liés dans l'ordre où ils sont listés dans le module !

- Ouvrir le module ASSIGN, avec un clic droit sur son symbole

Il faudra :

- d'abord lier les objets à recoder (Feature definition image)

=> LANDUSE

- ensuite lier les attributs (Attribute values file)

=> RESERVOIRS

- Refermer le module ASSIGN

- Faire les liens dans l'ordre vu précédemment.

Cette partie du modèle doit ressembler à celle présentée sur la figure n°2.

- Enregistrer ce modèle depuis la barre de menu du Macro Modeler

- Exécuter le modèle (Run) depuis la barre de menu du Macro Modeler

ou par l'icône ci-dessous,

- Accepter que SLOPES et les autres fichiers soient écrasés car certains existent déjà.

L'exécution du modèle relance tout le modèle et réaffiche également SLOPEBOOL.

fig. 2 - Réalisation de RESERVOIRS

Sources : EASTMAN 2001, p.58

 

L'image RESERVOIRS définie les objets à partir desquels vont être mesurées les distances servant à créer les zones tampons (Buffer). Cette image va servir de fichier entré pour les calculs de distances.

Les images en sortie issues de DISTANCE et BUFFER sont assez différentes.

DISTANCE calcule une nouvelle image dans laquelle chaque valeur de pixels est la plus courte distance de ce pixel à l'objet cible le plus proche. Le résultat est une image connue sous le nom de "surface de distance*", une représentation spatiale continue de la distance.

BUFFER produit une image qualitative de catégories. L'utilisateur doit indiquer la valeur de trois paramètres :

- la valeur de la cible ;

- la valeur à attribuer à la zone tampon ;

- la valeur à attribuer en dehors de la zone tampon.

On utilise normalement BUFFER si le fichier sortie souhaité est catégoriel. Cette méthode requiert plusieurs étapes. Cependant, pour se familiariser avec les opérateurs de distance, nous allons voir les deux approches. On verra d'abord DISTANCE et RECLASS depuis le menu général, ensuite on exécutera BUFFER dans le modèle du Macro Modeler.

 

i) Exécuter DISTANCE depuis le menu

GIS Analysis/Distance Operators/DISTANCE

- Indiquer comme image :

- contenants les objets cibles (Feature image)

=> RESERVOIRS

- résultats (Output image)

=> RESDISTANCE

- Penser à mettre un titre

- Quel est l'aspect de l'image ?

 

j) Lancer RECLASS depuis le menu :

GIS Analysis/Database Query/RECLASS

ou par l'icône ci-dessous,

- Créer une image du buffer booléen où :

Input file => RESDISTANCE

Output file => DISTANCEBOOL

Avec pour les paramètres de reclassement (Reclass parameters) :

- 1ère ligne

Assign a new value of => 0

To values from => 0

To just less than => ???

- 2e ligne

Assign a new value of => 1

To values from => ???

To just less than => 999999

Rappel de la contrainte "être à plus de 250 m de l'eau"

- Valider par OK.

3. Quelles valeurs avez-vous saisies dans les boîtes de dialogues ?

 

DISTANCEBOOL satisfait le critère de la zone tampon dans notre modèle d'aptitude. Avant d'évaluer le prochain critère, nous allons voir comment le module BUFFER peut être utiliser.

 

k) Dans le Macro Modeler,

- Ajouter le module BUFFER ;

à la droite de l'image RESERVOIRS

- Connecter l'image et le module

- Changer le nom du fichier de sortie (temp003), avec un clic droit sur son symbole

=> BUFFERBOOL

- Paramétrer le module BUFFER, avec un clic droit sur son symbole.

- Valeur de la zone cible (Value for target areas) => 0

- Valeur de la zone tampon (Value for buffer zone) => 0

- Valeur hors de la zone tampon (Value for non buffer zone) => 1

- Valeur de la largeur du tampon (Buffer distance) => 250

 

La deuxième branche du modèle graphique est prête. Elle doit ressembler à celle proposée en figure n°3.

fig. 3 - Réalisation de BUFFERBOOL

Sources : EASTMAN 2001, p.59

 

DISTANCEBOOL et BUFFERBOOL devraient être identiques. Les deux approches sont utilisées pour compléter cet exercice. BUFFER est préféré à DISTANCE quand une image avec un tampon catégoriel est à réaliser. Cependant, il est parfois également utilisé pour générer des images quantitatives de distances. Les exercices sur les MCE permettront de voir une utilisation plus étendue des surfaces de distance.

 

3. La contrainte d'utilisation du sol

3e Objectif : construire l'image FORESTBOOL des zones enforestées.

A ce point, nous avons deux des quatre composantes nécessaires à la réalisation de la carte d'aptitude. Il faut maintenant la troisième composante qui est celle des zones exclusivement forestières.

4. Décrire le contenu de l'image finale pour cette contrainte ?

Quelles sont les deux méthodes possibles pour réaliser cette image booléenne ?

Réaliser le modèle graphique dont l'image finale est FORESTBOOL.

 

l) Déterminer le code des deux catégories de forêt dans l'image LANDUSE.

Plusieurs méthodes sont possibles. La plus simple est de consulter la légende dans le fichier en-tête de l'image LANDUSE.

- Sélectionner l'image LANDUSE dans le modèle ;

- Cliquer sur l'icône de description (Describe) des Metadata dans la barre des menus du Macro Modeler.

Cela ouvre le fichier de documentation du fichier sélectionné.

- Dérouler l'ascenseur jusqu'aux catégories de la légende ;

- Noter les catégories forestières ;

Les vergers (orchards) et les zones forestières humides (forested wetlands) ne sont pas aptes.

- Compléter les modules retenus dans le modèle ;

- Enregistrer et exécuter le modèle.

Note : il est possible de reprendre l'image LANDUSE précédemment utilisée dans le modèle graphique pour la lier à la "branche" forêt. Cependant, vous pouvez rajouter, en dessous, un autre fichier LANDUSE. Si vous êtes perdus, consultez la figure n°4 en fin d'exercice.

 

4. Combinaison des trois contraintes booléennes

La quatrième et dernière condition doit permettre de sélectionner des sites aptes de 10 hectares ou plus. Nous avons trois images booléennes séparées, une pour chacune des conditions déjà trouvées. Avant de calculer la dernière, nous allons combiner ces trois premières en une image booléenne finale. Nous allons modéliser la condition booléenne AND. Seules les surfaces prenant en compte ces trois critères d'aptitude seront calculées. Comme cela a été vu lors de l'exercice 2.2, cette algèbre booléenne est exécutée avec OVERLAY.

 

m) Ajouter les modules OVERLAY nécessaires pour créer l'image booléenne combinée montrant les surfaces répondants aux trois conditions.

- Il faut :

- d'abord combiner les deux premières images et créer une image temporaire ;

- puis combiner cette image temporaire avec la troisième pour produire le résultat final.

- Appeler cette image finale COMBINED ;

- Enregistrer et exécuter le modèle.

Note : on gagne du temps en utilisant l'Image Calculator. Il suffit de taper l'expression logique suivante

[COMBINED]=[SLOPEBOOL]AND[BUFFERBOOL]AND[FORESTBOOL]

5. Quelle opération avez-vous utilisée dans OVERLAY pour réaliser COMBINED ?

Réaliser le modèle graphique dont l'image finale est COMBINED.

 

n) Examiner COMBINED.

Il y a plusieurs zones contiguës qui sont des sites potentiels.

La dernière étape doit déterminer lesquelles ont dix hectares minimum.

 

5. Combinaison des trois contraintes booléennes

4e Objectif : construire l'image BIGAREAS des zones aptes de plus de 10 hectares.

Comme avec les parcelles de sorgho du précédent exercice, il apparaît qu'il y a plusieurs parcelles qui sont distinctes mais qui ont la même valeur (1). Celles-ci vont être différenciées avec la fonction contextuelle* GROUP avant d'être mesurées.

 

o) Ajouter le module GROUP au modèle.

- Lier COMBINED comme fichier d'entrée ;

- Changer le nom du fichier de sortie en GROUPS ;

- Choisir d'inclure les diagonales dans le paramétrage de GROUP ;

- Enregistrer et exécuter le modèle.

6. Analyser l'image GROUPS. Comment peut-on différencier les groupes de valeur 1 dans COMBINED (ceux qui étaient aptes) et ceux de valeurs 0 dans COMBINED (donc inaptes) ?

 

p) Nous allons prendre en compte les groupes inaptes à l'étape suivante.

- Ajouter le module AREA au modèle ;

- Lier GROUPS comme fichier d'entrée ;

- Changer le nom du fichier de sortie en GROUPAREA ;

- Dans le paramétrage d'AREA, choisir de :

- calculer les surfaces en hectares ;

- produire une image raster.

- Enregistrer et exécuter le modèle.

Dans l'image résultat, les pixels de chaque groupe ont la valeur du groupe. Utiliser le curseur d'interrogation (Cursor inquiry) pour le confirmer. Il peut être utile d'afficher GROUPS à côté de GROUPAREA. Cependant, comme le groupe le plus important a une valeur beaucoup plus importante que les autres groupes, l'affichage de GROUPAREA laisse apparaître moins de groupes qu'attendu.

Pour améliorer l'affichage, assurez-vous que GROUPAREA est en surbrillance et activez les propriétés de la couche (Layer Properties) du Composer. Amener le curseur du Display max sur 17. La valeur 17 est choisie car elle est juste plus grande que la surface du plus grand groupe apte.

 

Changer l'affichage maximum ne change pas la valeur des pixels. Cela indique simplement au système qu'il doit saturer à une valeur différente de l'actuelle. Cela facilite l'interprétation visuelle.

On veut maintenant isoler les groupes qui sont plus grands que 10 hectares, qu'ils soient aptes ou non.

7. Quels sont les modules nécessaires pour réaliser cela ?

Pourquoi Edit/ASSIGN n'est pas utilisable ici ?

 

q) Ajouter une étape RECLASS au modèle.

- Lier GROUPAREA à RECLASS

- Changer le nom du fichier de sortie (temp008), avec un clic droit sur son symbole

=> BIGAREAS

- Paramétrer le module RECLASS, avec un clic droit sur son symbole.

Tous les paramètres par défaut sont bons.

Mais, il faut créer le fichier texte (.rcl) qui contienne les modifications.

- Nommer le fichier RCL (Name of RCL file), avec un clic droit dans la boîte de dialogue.

- Cliquer sur nouveau (New) en bas du menu déroulant.

- Saisir les valeurs comme suit (avec un blanc entre) :

0 0 10

1 10 999999

- Enregistrer sous (Save As ...)

=> BIGAREAS

- Valider par OK.

 

r) Pour produire l'image finale, il faut masquer les groupes inaptes (inférieurs à 10 hectares) de l'image BIGAREAS.

- Ajouter un module OVERLAY au modèle pour multiplier BIGAREAS et COMBINED ;

- Appeler cette image finale SUITABLE.

 

Le modèle complet est présenté en figure n°4.

 

s) Pour compléter cet exercice, il faut créer une image bloc diagramme avec le module ORTHO.

Pour éviter qu'elle ne "flotte" dans l'air,

- Donner au fond (Background) une valeur différente de zéro ;

- Utiliser les fonction ASSIGN ou SCALAR pour réaliser cette nouvelle carte appelée

=> SUIT2

- Créer lui une palette spécifique de votre choix appelée

=> SUIT2

- Exécuter ORTHO en spécifiant :

- le nom du MNT (Surface image) => RELIEF

- le nom de l'image à draper (Drape image) => SUIT2

- le nom de la palette (Palette file) => SUIT2

 

Cet exercice a exploré deux importantes classes de fonctions SIG, les opérateurs de distance et les opérateurs contextuels. Nous avons vu en particulier les modules BUFFER et DISTANCE (combiné avec RECLASS) qui permettent de créer des zones tampon autour d'un jeu d'objets spatiaux cibles. Nous avons également vu DISTANCE qui crée des surfaces de distances. Nous avons utilisé l'opérateur contextuel SURFACE pour calculer des pentes et GROUP pour identifier des zones contiguës.

Nous avons vu comment utiliser l'algèbre booléenne, avec OVERLAY, sur trois (ou plus) images en utilisant des images intermédiaires.

Ne détruisez pas le modèle Exer2-3, ni les images originales LANDUSE et RELIEF. Vous en aurez besoin pour le prochain exercice où nous explorerons plus en profondeur les fonctionnalités du Macro Modeler.

 

fig. 4 - Présentation du modèle graphique complet

Sources : EASTMAN 2001, p.62

 

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.