Vincent GODARD

Département de Géographie

Université de Paris 8


V.1.3 - Dernière mise à jour : 06/01/2006

 

Fiche Guide n°2.5 du cours de SIG :

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

 

Opérateurs de distance-coûts et chemins de moindre coût

 

Objectifs : détermination après pondération d'une surface du trajet le moins coûteux pour aller d'un point à un autre

 

Fonctions décrites dans ce TD : ASSIGN, INITIAL, POINTRAS, COST, LINERAS, PATHWAY, LINEVEC,

 

Note : dans l'exercice 2.3, nous avons rencontré un premier opérateur de distance "DISTANCE". DISTANCE produit des surfaces continues* calculées en distance euclidienne* (en ligne droite) à partir d'objets cibles. Cette première "distance" ne tient pas compte d'éventuelles barrières ou obstacles, aux déplacements, pouvant exister sur le terrain.

Dans cet exercice, nous allons utiliser une variante du module DISTANCE appelée COST. Alors que DISTANCE produit des images exprimées en kilomètres ou en mètres, COST calcule les distances en "mesure de coûts" ou en "grid cell equivalents" (gce). Le résultat est connu sous le nom de distance-coût*. Le module COST nécessite une image définissant les objets-cibles en entrée à partir desquels les distances-coûts seront calculées. Cependant, contrairement à DISTANCE, COST requiert une image connue sous le nom de surface de friction*. Cette surface de friction indique la difficulté à se déplacer dans l'image. Le résultat de cette analyse est connu sous le nom d'analyse de distance-coût* (ou distance pondérée*).

Les valeurs des surfaces de friction sont exprimées dans une unité relative au coût à calculer. Ces unités ont souvent une valeur monétaire égale au coût du déplacement dans le paysage. Cependant, la valeur de friction peut être exprimée dans d'autres unités. Elle peut être exprimée en temps de transport, où elle représente le temps qu'il faut pour traverser une surface caractérisée par certains attributs. Elle peut également représenter un équivalent énergie, où elle est proportionnelle à la quantité de carburant ou de calories consommée pour joindre un pixel à une cible.

Ces valeurs de friction sont toujours calculées par rapport à une valeur étalon unitaire. Par exemple, si notre valeur unique de friction était la profondeur de la neige, les zones déneigées auraient une valeur de 1 (le coût minimal, la référence) et les zones recouvertes de neige, une valeur plus grande que 1. S'il en coûte deux fois plus pour traverser les zones qui ont entre 6 et 10 pouces (entre 15 et 25 cm) d'épaisseur de neige, que les sols nus, alors il faudra leur affecter un coefficient de friction égal à deux. Les coefficients de friction sont des réels qui peuvent avoir une valeur comprise entre 0 et 1037 (1*10E37). Ces coefficients ont rarement une valeur inférieure à un, car cela représente une aide au mouvement, une accélération ! Une valeur de 10E37 est un obstacle infranchissable. Les anciennes versions d'IDRISI indiquaient que la valeur maximale du coefficient de friction devait être le nombre de pixels compris dans la diagonale de l'image. Nous reviendrons ultérieurement sur cette notion.

COST produit une image de surface guère différente de celle produite par DISTANCE. Les différences tiennent aux unités et dans le fait que COST tient compte des barrières naturelles (perméables ou étanches) rencontrée sur la surface. Les distances-coût sont toujours relatives à la valeur de la friction de base. Par exemple, si une cellule a une distance-coût de 5,25, cela indique qu'il en coûte 5,25 fois plus de la traverser que de passer par celle qui sert d'étalon, de valeur un, ou bien encore, que cela revient à traverser cinq pixels un quart de valeur un ! Utilisé en combinaison avec SCALAR, COST permet de produire une image où les pixels verront leur unité relative de distance-coût devenir une unité monétaire, une unité de temps ou autre.

Les discussions précédentes ont porté sur les frictions isotropiques*, l'un des deux types de frictions. Les frictions isotropiques sont indépendantes de la direction du mouvement. Par exemple, la surface d'une route a une friction sans relation avec le sens du déplacement. C'est le revêtement (pavés, boue, etc.) qui conditionne la plus ou moins grande rugosité (faible à forte valeur de friction). C'est sur ce type de surface de friction que porte cet exercice. Le module COST prend en compte les effets des frictions isotropiques.

Cette friction qui varie en force selon la direction du mouvement est connue comme frictions anisotropiques*. Par exemple, la remontée au vent coûte beaucoup plus d'énergie que de se laisser porter par lui. Dans le but de modéliser les frictions anisotropiques, une double surface de friction est requise. Une image contient l'information sur la force de friction, l'autre sur la direction de l'effet de friction. C'est VARCOST qui prend en charge les frictions anisotropiques*. Pour plus d'information, voir le chapitre sur les Anisotropic Cost Analysis dans le IDRISI Guide to GIS and Image Processing Volume 2 .

Dans cet exercice, nous allons travailler sur les frictions isotropiques et donc utiliser le module COST. COST propose deux algorithmes pour calculer les surfaces-coûts. Le premier, COSTPUSH, est rapide et produit un bon résultat quand les surfaces de friction ne sont pas trop complexes ou en réseaux. Le second, COSTGROW, peut travailler sur des surfaces de frictions très complexes, incluant des barrières absolues (pour plus d'informations sur ces algorithmes cf. EASTMAN, J.R., 1989. Pushbroom Algorithms for Calculating Distances in Raster Grids. Proceedings, AUTOCARTO 9, 288-297).

Le module PATHWAY est un complément intéressant du module COST. Une fois la surface-coût réalisée à l'aide de COST, PATHWAY peut être utilisé pour déterminer le chemin de moindre coût* entre n'importe quel pixel ou groupe de pixels et l'objet le plus proche avec lequel une distance-coût doit être calculée.

Nous allons utiliser ces deux fonctions dans cet exercice.

L'analyse concerne l'implantation d'une nouvelle usine. Celle-ci requière une importante quantité d'électrécité, l'installation d'un transformateur et de tirer un câble d'alimentation jusqu'à la ligne haute tension. Le coût doit être le plus faible possible. Il faut donc déterminer le chemin de moindre coût pour tirer le câble du site de l'usine à la ligne haute tension.

 

a) Afficher l'image WORCWEST avec sa palette WORCWEST

- Assurez vous, pour cet exercice, que les paramètres d'affichage sont bien ceux par défaut (File / User Preference et cocher Revert to Defaults).

C'est une carte d'occupation du sol de la banlieue ouest de Worcester (Massachusetts, USA) qui a été créée par une classification non supervisée des données du capteur LANDSAT TM (cet type de traitement fait l'objet de l'exercice 4.4).

- A l'aide du Composer, ajouter les couches vecteurs :

- NEWPLANT avec le fichier symbole NEWPLANT défini par l'utilisateur ;

La localisation de la nouvelle usine correspond au gros cercle blanc situé au NW du centre de l'image.

- POWERLINE avec le fichier symbole POWERLINE défini par l'utilisateur ;

La ligne haute tension, représentée par une ligne rouge, est située dans le SW de l'image.

Ce sont les deux objets que l'on veut relier par un chemin de moindre coût.

 

b) On va utiliser un modèle graphique pour réaliser l'analyse.

- Ouvrez le Macro Modeler.

L'analyse par distance-coût nécessite deux couches d'information. Une couche contient les cibles à partir desquelles il faut calculer les distances-coûts, l'autre contient la surface de friction. Les deux doivent être des fichiers rasters.

En premier, nous allons créer la surface de friction qui définit les coûts associés aux déplacements à travers les différents types d'occupation du sol dans ce secteur. Pour les objectifs de cet exercice, on va définir le coût de base comme étant celui de la traversée d'espaces libres comme les terrains agricoles. Le tableau n°1 donne les coûts relatifs de la construction de la nouvelle ligne pour chaque type d'occupation du sol dans la banlieue de Worcester.

tab. 1 - Coûts relatifs par type d'occupation du sol

Occupation du sol

Friction

Explication

Agriculture

1

Coût de base

Forêts de feuillus

4

Les arbres doivent être abattus, débardés puis vendus

Forêts de conifères

5

La valeur de ces arbres est moindre que celle des feuillus, donc l'effet barrière est plus fort

Zones urbaines

1 000

Coût très élevé ; barrière virtuelle

Chaussées

1

Coût de base

Zones urbaines périphériques

1 000

Coût très élevé ; barrière virtuelle

Eau

1 000

Coût très élevé ; barrière virtuelle. Les habitants ne veulent pas voir modifié l'aspect des lacs et retenues d'eau.

Zones nues et gravières

1

Coût de base

Vous constatez que certaines friction sont très élevées. Elles agissent comme des barrières. Cependant, on ne veut pas totalement prohiber le passage par ces postes d'occupation du sol, seulement éviter ceux à coût élevé.

 

c) Insérer le raster WORCWEST dans le Macro Modeler.

- Enregistrez le modèle sous Exer2-5.

 

d) Ouverture du fichier documentation de WORCWEST pour déterminer les codes des postes de légende.

- Sélectionnez WORCWEST ;

- Cliquez sur l'icône des Metadata dans la barre d'outils du Macro Modeler ;

Vous pouvez aussi accéder aux Metadata par le menu des fichiers d'Idrisi (File / Metadata) à l'extérieur du Macro Modeler.

- Déterminez l'identifiant de chaque catégorie d'occupation du sol présente dans le tableau n°1.

- Activez Edit dans la barre des outils d'Idrisi.

pour créer un fichier attributs (.avl) nommé FRICTION.

Ce fichier attribut va servir à affecter une valeur de friction aux catégories d'occupation du sol de WORCWEST. La première colonne contient le numéro de la catégorie pendant que la seconde contient celle de la friction qui lui correspond.

- Enregistrez ce fichier attributs en spécifiant que les données sont de type réel.

COST requière, en entrée, une image de friction de type réel.

 

e) Insérez le fichier attribut, FRICTION, dans le modèle.

- Insérez le module ASSIGN ;

- Faites un clic droit sur ASSIGN pour connaître l'ordre de connexion au module.

C'est d'abord l'image WORCWEST puis le fichier attributs FRICTION qu'il faut connecter à ASSIGN.

- Faites un clic droit sur l'image de sortie et renommez-la FRICTION.

- Enregistrez et faites tourner le modèle (Run).

Vous venez de créer votre surface de friction. L'autre fichier nécessaire à COST est le fichier des cibles à partir desquelles seront calculées les distances-coûts. COST requière des fichiers images et pas des fichiers vecteurs. Donc, il faut convertir NEWPLANT en raster.

 

f) Pour créer une version raster d'une couche vecteur dans IDRISI, il faut d'abord créer une image vierge (pleine de zéros !) qui a les caractéristiques spatiales désirées (min/max des x et y ainsi que le nombres de lignes et de colonnes). Cette image vierge est ensuite mise-à-jour avec les informations du fichier vecteur. Le module INITIAL est utilisé pour créer cette image vierge.

- Ajoutez le module INITIAL au modèle ;

- Faites un clic droit dessus.

Notez qu'il y a deux options pour définir les paramètres de l'image de sortie. Par défaut, c'est une copie des paramètres d'un fichier existant. Or on veut créer une image qui a les même caractéristiques que WORCWEST. Notez aussi qu'INITIAL nécessite une valeur et un type de données. La valeur par défaut est zéro et le type de données est de l'octal (byte) pour cet exercice.

- Fermer le module Parameters et liez WORCWEST à INITIAL.

Réorganisez le modèle pour le rendre plus lisible si nécessaire.

Vous pouvez également rajouter une autre copie de WORCWEST à votre modèle plutôt que de lier celui déjà présent si vous le préférez.

- Clic droit sur l'image en sortie d'INITIAL pour la renommer BLANK.

- Enregistrez et faites tourner le modèle (Run).

Vous avez créé l'image raster vierge. Il faut maintenant la mettre à jour avec les informations du fichier vecteur.

- Ajoutez au modèle :

- le fichier vecteur NEWPLANT ;

- le module POINTRAS et faites un clic droit dessus.

POINTRAS requière deux fichiers en entrée, en premier le fichier vecteur point et ensuite l'image raster à mettre-à-jour. L'opération par défaut, enregistrer les ID des points (Record the identifiers), est bonne.

- Fermez le module Parameters et liez NEWPLANT ainsi que BLANK au module POINTRAS.

- Clic droit sur l'image en sortie de POINTRAS pour la renommer NEWPLANT.

Rappel : les fichiers vecteurs et raster ont des extensions différentes, donc on ne risque pas d'écraser le fichier vecteur existant.

- Enregistrez et faites tourner le modèle (Run).

 

g) NEWPLANT est automatiquement affiché.

Zoomez si vous ne voyez pas l'unique pixel cible ! Vous pouvez aussi le repérer en affichant / masquant le fichier vecteur que vous aurez préalablement ajouté à l'aide du Composer.

 L'opération que vous venez de réaliser est une conversion vecteur / raster, ou rasterisation*. Nous avons maintenant les deux images nécessaire pour activer le module COST, la surface de friction (FRICTION) et l'image d'un objet cible (NEWPLANT). Votre modèle doit ressembler à celui de la figure n°1, à l'arrangement des éléments près.

 

fig. 1 - Modèle à l'étape "g"

Sources : EASTMAN 2001, p.74

 

h) Ajouter le module COST au modèle et faites un clic droit dessus.

Notez que le fichier de la cible (Source feature image) doit être lié en premier, avant l'image de friction.

- Choisissez l'algorithme COSTGROW (car notre surface de friction est assez complexe).

Mais si votre processeur est ancien (!) utilisez l'algorithme COSTPUSH (c'est possible s'il n'y pas de "frictions infinies" ni trop de routes (réseaux)) !!!

- Laissez par défaut les deux derniers paramètres.

- Liez les fichiers entrés à COST.

- Clic droit sur l'image en sortie de COST pour la renommer COSTDISTANCE.

Le temps de calcul de la distance-coût peut être long si votre processeur est lent. Vous pouvez faire une pause ici et laisser le modèle tourner (plus de 1 h 20 mn avec un PII à 233 MHz pour COSTGROW, pour environ 4 mn avec COSTPUSH !).

 

i) Quand le modèle a fini de tourner, utiliser le mode Curseur d'interrogation (Cursor Inquiry Mode) pour analyser certaines des valeurs de COSTDISTANCE. Bien qu'inadaptée, la palette Qualitative 256 permet de visualiser le résultat.

- Vérifiez que les valeurs les plus faibles sont proches de la cible, le site de l'usine, et qu'elles s'accroissent en s'éloignant du site de l'usine. Notez qu'il n'y que quelques pixels à très hautes valeurs de friction, comme l'eau, qui monte à des valeurs très fortes sur de courtes distances.

Dans le but de calculer un chemin de moindre coût du site de l'usine à la ligne haute tension existante, il faut fournir au module PATHWAY la surface de distance-coût déjà créée mais également une image raster de la ligne haute tension existante.

 

j) Placez le module LINERAS dans le modèle et faites un clic droit dessus.

Comme POINTRAS, il requière un fichier vecteur ligne et ensuite l'image raster à mettre-à-jour.

- Fermez le module Parameters et liez POWERLINE (qui n'est pas encore présent, il faut l'insérer et c'est un fichier vecteur) ainsi que le BLANK existant au module LINERAS.

- Clic droit sur l'image en sortie de LINERAS pour la renommer POWERLINE.

- Enregistrez mais ne faites pas tourner le modèle.

Comme COST prend un temps de calcul important, nous allons finir le modèle avant de le faire tourner.

Nous sommes maintenant près à calculer le chemin de moindre coût liant la ligne haute tension existante et la nouvelle implantation de l'usine. Le module PATHWAY travaille en choisissant l'alternative de moindre coût chaque fois qu'il avance d'un pixel au suivant. Depuis que la surface de coût a été calculée en utilisant le site de l'usine comme image cible, les moindre coûts se trouvent plus près du site de l'usine. PATHWAY, doit commencer avec les pixels qui sont le long de la ligne haute tension (POWERLINE) et puis choisir les alternatives de moindre coût jusqu'à atteindre le point le plus faible sur la surface de distance coût, le site de l'usine. C'est la même analogie que l'eau dévalant une pente, s'écoulant toujours vers un point plus bas.

 

k) Ajoutez le module PATHWAY au modèle et faites un clic droit dessus.

Notez qu'il est requis de lier l'image de surface-coût en premier, puis l'image cible (celle de la ligne haute tension).

- Liez COSTDISTANCE, puis POWERLINE à PATHWAY.

- Clic droit sur l'image en sortie de PATHWAY pour la renommer NEWLINE.

- Enregistrez et faites tourner le modèle (Run).

 

NEWLINE est le chemin que doit prendre la nouvelle ligne pour respecter le moindre-coût, en rapport avec une valeur de friction donnée. Le modèle graphique complet est visible sur la figure n°2.

fig. 2 - Modèle complet

Sources : EASTMAN 2001, p.75

Pour un affichage final, il serait bien d'afficher NEWPLANT, POWERLINE et NEWLINE comme des couches vecteurs au dessus de WORCWEST. Cependant, la sortie de PATHWAY est une image raster. Il nous faut convertir celle-ci en vecteur à l'aide du module LINEVEC. Pour gagner du temps, nous allons réaliser cette vecteurisation* en dehors du modèle graphique.

 

l) Sélectionnez LINEVEC depuis le menu d'Idrisi Reformat/Raster-Vector Conversion.

- Le fichier entrée est NEWLINE

- Le fichier sortie peut aussi être appelé NEWLINE.

On peut également visualiser l'image d'occupation du sol (WORCWEST) avec l'image du plus court chemin (NEWLINE) grâce au module OVERLAY. Il faut cocher l'option [First covers Second except where zero]. De ce fait, on reste en raster.

 

m) Créez une composition cartographique avec WORCWEST, NEWPLANT, POWERLINE et NEWLINE.

1. L'emplacement ou la ligne d'alimentation rencontre la ligne haute tension est l'endroit où il faut installer un transformateur.

- Comment pensez-vous que PATHWAY a déterminé que la ligne d'alimentation devait rejoindre ici la ligne haute tension (Jetez un oeil sur le module de description de PATHWAY dans le système d'aide en ligne) ?

2. Quel aurait-été le résultat si PATHWAY avait été utilisé sur une surface en distance euclidienne créée par le module DISTANCE, avec NEWPLANT, et POWERLINE comme objets cibles ?

3. Quel aurait-été le résultat si les propriétaires de feuillus avaient opposé deux fois plus de résistance que ceux propriétaires de résineux (coef. de friction égale à 10) voire vingt fois plus de résistance [Représentez sur une même carte (WORCWEST) les trois alternatives] ?

4. Quelle(s) remarque(s) sur les coefficients de pondération ce résultat vous inspire-t-il ?

5. Quelle méthode utilisez-vous pour calculer la longueur de chaque alternative ?

6. Quelle est cette longueur ?

 

Dans cet exercice, nous avons introduit les distances-coûts comme une façon de modéliser les déplacements à travers un espace où sont présents des éléments comportant une rugosité variable freinant plus ou moins le déplacement. C'est utile pour modéliser des variables comme les temps ou les coûts financiers de déplacement. On a aussi vu comment le module PATHWAY peut être utilisé, avec une surface en distance-coût, pour déterminer un chemin de moindre coût entre objets à connecter.

De plus, nous avons vu comment convertir des objets vecteurs en rasters, avec POINTRAS pour les vecteurs-points, LINERAS pour les vecteurs-lignes. Un troisième module, POLYRAS, est utilisé pour rasteriser les vecteurs-polygones. Ces modules requière une image vierge à mettre-à-jour avec l'information vectorielle. C'est INITIAL qui est utilisé pour créer cette image vierge. Nous avons aussi transformé une image raster résultat en vecteur pour la superposer sur un raster. C'est le module LINEVEC qui a été utilisé. Les modules POINTVEC et POLYVEC font le même type de transformation pour les points et les polygones.

 

Il n'est pas nécessaire de sauvegarder les images résultats de cet exercice. 

 

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.