Vous êtes sur la page 1sur 211

À la découverte de votre livre

Chapitre 1
Qu’est-ce qu’un SIG ?
Introduction
Un SIG peut être conçu comme un système informatique gérant une information géolo-

1 Ouverture de chapitre
calisée. Sa fonction première est de réaliser des cartes géographiques à partir de données
très diverses : relevés de terrain, photographie aérienne, image satellite, carte topogra-
phique… puis d’en automatiser l’analyse.

Objectifs Plan

Comprendre les usages d’un SIG. 1 Définition


Connaître l’évolution des SIG depuis leur 2 Brève histoire
origine et entrevoir leur futur. 3 Besoin et utilité
Définir les notions de raster/vecteur, de 4 Objet géographique
couches et de système de coordonnées 5 Vecteur versus Raster
de référence. 6 Structure en couches
7 Système de coordonnées de
référence
8 Briques du SIG

Elle donne :
1 Définition
Selon les auteurs, la notion de système d’information géographique (SIG) comprend le

 ne introduction aux sujets


•u
logiciel, le support matériel informatique, les données et même l’homme, concepteur ou
utilisateur des données. Devant la multiplicité des définitions possibles, celle adoptée par
la Société française de photogrammétrie et télédétection en 1989 fait référence : « Un
SIG est un système informatique permettant, à partir de diverses sources, de rassembler

et aux problématiques abordés


et d’organiser, de gérer, d’analyser et de combiner, d’élaborer et de présenter des infor-
mations localisées géographiquement, contribuant notamment à la gestion de l’espace. »
Le point de vue « logiciel » est privilégié et c’est celui adopté dans cet ouvrage.

dans le chapitre 2 Brève histoire


Les SIG sont la rencontre de trois disciplines : la géographie, l’informatique et l’analyse
de données. La géographie a fourni les bases à la cartographie utilisée dans les SIG

 n rappel des objectifs


•u
(Pinchemel 1979). L’informatique a assuré la mise en œuvre en développant les systèmes

pédagogiques 9782100834013_CH01.indd 2 1/22/22 10:52 AM

• le plan du chapitre

2 Le cours Chapitre 6 • Modèles de paysage


Partie 1 • Partie théorique

5 Implémentations
La description du paysage s’appuie sur la carte d’occupation du sol obtenue soit directement
par des relevés de terrain, soit le plus souvent suite à une classification d’images satellite.
1 2
À partir de cette donnée première, sont réalisés les calculs de métriques paysagères. Une
3
abondante littérature décrit l’analyse quantitative du paysage et ses outils associés. Fragstats
est l’un des plus utilisés (McGarigal 2012) ; r.li implémenté dans GRASS ou l’extension
zone entière unités fenêtre mobile LecoS de QGIS possèdent des fonctions très proches. Des packages sous R du CRAN

Le cours, concis et structuré,


dispersées (par exemple SDMTools) offrent les mêmes possibilités et ils présentent l’avantage d’être
1 2 3
inclus dans un environnement d’analyse de données.
1 1 2 3 4

5 6 7 8 5 6
L’échelle spatiale et le modèle Vecteur ou Raster d’implémentation impactent forte-
4
ment les calculs de métriques. Le résultat d’un calcul de périmètre à partir de vecteurs

est structuré en deux parties :


2
9 10 11 12 7 8
3 9
ou de rasters peut être différent si la résolution du raster est faible vis-à-vis de la précision
au hasard systématique systématique géométrique du tracé des vecteurs. De même, les calculs de métriques sont affectés par la
contigu non contigu résolution spatiale des rasters quand ils reposent sur des calculs de proximité ou d’agré-
gation ou quand ils prennent en compte les hétérogénéités du paysage. En conséquence,
1
1
échantillon la résolution spatiale des rasters doit être choisie, après une réflexion approfondie, en

• une partie théorique exposant les


2
2
3 fonction des processus étudiés.
3 4
4
Le contexte du calcul d’une métrique revêt tant d’importance qu’il est difficile d’inter-
préter sa valeur absolue. L’interprétation est plus aisée dans un objectif de comparaison
stratifié centré sur
les sites temporelle ou spatiale. Par exemple, la comparaison de la structure paysagère de deux

notions indispensables à l’utilisation


bassins versants peut être riche d’enseignements. De même, la perception de changements
Figure 6.3 – Protocoles d’échantillonnage du module r.li de GRASS.
temporels d’une zone géographique est quantifiable par des métriques paysagères.
Une étude peut demander de définir son propre protocole d’échantillonnage. Le plus Les métriques fournissent souvent une information très redondante. McGarigal (2001)
souvent, un protocole spécifique est créé en fonction d’une logique d’échantillonnage recommande de faire preuve de parcimonie, c’est-à-dire de choisir un petit nombre

des SIG.
commune aux relevés de terrain et à l’analyse paysagère. Par exemple, Watt (2004) de métriques se focalisant sur une question donnée. Une alternative est d’utiliser des
calcule les métriques à l’intérieur de deux cercles concentriques imbriqués pour lesquels batteries de métriques, ce qui entraîne une forte colinéarité. Cette contrainte impose
sont également réalisés des relevés d’abondance d’espèces animales (Fig. 6.4). Ces proto- d’utiliser des méthodes adaptées pour rechercher les métriques les plus informatives
coles spécifiques sont aisément implémentables sous GRASS en définissant des régions si tels les modèles de sélection de variables par pas (Lazraq et Cléroux 1988) ou la Partial
les zones d’échantillonnage sont rectangulaires ou en utilisant des masques géométriques Least Square regression (Abdi 2003).

• une partie pratique regroupant des


si la forme des zones est plus complexe. La notion de paysage ne peut être dissociée des modèles hydrologiques et réciproque-
ment un modèle hydrologique gagne beaucoup à intégrer dans son fonctionnement la
structure paysagère. Celle-ci influe sur le ruissellement, l’infiltration et par conséquent
© Dunod – Toute reproduction non autorisée est un délit.

l’intensité, la direction, voire le chemin emprunté par les flux hydriques. Elle impacte

exercices reprenant chaque notion


les processus d’érosion et elle joue un rôle de filtre des matières en suspension (Uuemaa
et al. 2009).

théorique.
76
Figure 6.4 – Échantillonnage utilisé dans le programme BioAsssess (Watt 2004).

9782100834013_CH06.indd 76 1/22/22 10:54 AM


75

9782100834013_CH06.indd 75 1/22/22 10:54 AM

3 En fin d’ouvrage
Index

• Une bibliographie Bibliographie A


aire de drainage 67, 156, 175
P
parallèle 26, 33, 37, 38
paysage 69, 175
B pente 62, 150
base de données 9, 106, 115 pixel 6, 79

• Une liste des sigles et acronyme Abdi H. 2003. « PLS-regression ». In Lewis-Beck MS., Bryman A. & Futing Liao bassin versant 67 polygone 14, 135
T. (Eds), Encyclopedia for Research Methods for the Social Sciences. (pp. 792-795). projection 43, 45, 80, 87, 93, 101
C
Thousand Oaks, CA : Sage. Q
couches 87
Allali G. 2015. Apprendre QGIS par l’exemple : Quand le Système d’Information Quadtree 21
Géographique devient libre. États-Unis : CreateSpace Independent Publishing Platform. D

• Un index
Auda Y. 1983. « Rôle des méthodes graphiques en analyse des données : application datum 27, 93 R
au dépouillement des enquêtes écologiques ». Thèse de doctorat, Université Lyon I, relief 42, 57
E
Lyon. reprojection 80, 87
Auda Y. 1987. « À l’intersection des domaines de l’analyse des données et des sciences échelle 44 résolution 60, 76, 79, 86, 100
ellipsoïde 27, 36, 38, 42, 45, 93 Run Length Code 21
humaines : un tour d’horizon ». Lettres d’information du centre de recherches archéo-
logiques, 33, 3-15. G S
Auda Y. 2008. « Représentation des faits en archéologie ». En ligne sur le site des géobase 8, 88 système de coordonnées de référence 8,
instituts de recherche sur l’enseignement des mathématiques d’Aix-Marseille http:// géoïde 28 93
www.irem.univ-mrs.fr/Yves-Auda-Representation-des-faits.html, consulté le 27/11/2015. GRID 58, 62 système de projection 8
Béguin M., Pumain D. 2014. La représentation des données géographiques. Statis- système géodésique 8, 27
L
tique et cartographie (3e éd.). Paris : Armand Colin. T
latitude 26, 31, 33, 36, 37, 46
Bertin J. 1967. Sémiologie graphique : Les diagrammes, les réseaux, les cartes. Paris :
longitude 27, 31, 37, 46 TIN 14, 58, 62

4 Ressources numériques
Mouton/Gauthier-Villars. topologie 10
Blomac (de) F., Gal R., Manuel H., Richard D., Tourret C. 1994. ARC/INFO : concepts M
et applications en géomatique, Hermes : Paris. méridien 27, 36, 37, 38
V
Bocher E, Ertz O. 2018. « A redesign of OGC Symbology Encoding standard for modèle numérique d’élévation 58, 146 vertex 12
sharing cartography. » PeerJ Comput Sci. 2018 Jan 8;4:e143. doi: 10.7717/peerj-cs.143. modèle numérique de terrain 58, 67, 141, 146
Bocher E., Ertz O. 2020. « OGC Symbology Conceptual Model: Core part. 2019. » N
En ligne https://docs.ogc.org/is/18-067r3/18-067r3.html, consulté le 30/09/2021.
nœud 12
© Dunod – Toute reproduction non autorisée est un délit.

Bouillot L. 2014. « Étude et amélioration des Modèles Numériques de Surface générés nord 46
à partir d’acquisitions tri-stéréoscopiques du satellite Pléiades-HR ». Thèse de doctorat,
Université de Strasbourg, Strasbourg.
© Dunod – Toute reproduction non autorisée est un délit.

Bouron P. 2005. « Cartographie. Lecture de carte ». En ligne sur le site de l’École


nationale des sciences géographiques http://cours-fad-public.ensg.eu/pluginfile.php/1319/
mod_resource/content/1/LDC_Mini.pdf, consulté le 3/10/2016.
Bouteloup P. 2006. « Topométrie. Mesures des angles ». En ligne sur le site de l’École

Retrouvez sur www.dunod.com


nationale des sciences géographiques http://cours-fad-public.ensg.eu/pluginfile.php/1353/
mod_resource/content/1/Topo2.pdf, consulté le 24/11/2017.
Burel F., Baudry J. 2001. Écologie du paysage. Concepts, méthodes et applications.
Paris : Tec & Doc Lavoisier.

l’ensemble des données liées aux


Burrough P.A., Mc Donell R.A. 1998. Principles of Geographical Information
199
Systems. New York, NY : Oxford University Press.

191
9782100834013_Index.indd 199 1/22/22 11:06 AM

exercices. 9782100834013_Bibliographie.indd 191 1/22/22 11:05 AM


Systèmes
d’information
géographique
Avec les logiciels libres GRASS et QGIS
2e ÉDITION

Yves Auda
Ingénieur CNRS
Géosciences Environnement Toulouse
Observatoire Midi-Pyrénées
Centre national de la recherche scientifique
Graphisme de couverture : Elizabeth Riba
Illustration de couverture : © M. Svetlana - Shutterstock.com

© Dunod, 2018, 2022


11, rue Paul Bert, 92240 Malakoff
www.dunod.com
ISBN 978-2-10-084196-7
Table des matières
Introduction VII

Partie 1
Partie théorique 1

1 Qu’est-ce qu’un SIG ? 2

1. Définition 2

2. Brève histoire 2

3. Besoins et utilité 4

4. Objet géographique 4

5. Vecteur versus Raster 5

6. Structure en couches 7

7. Système de coordonnées de référence 8

8. Briques du SIG 8

2 Modèles de données 10

1. Modèle Vecteur 10

2. Géométrie des vecteurs 10

3. Topologie des vecteurs 11

4. Opérations topologiques 14

5. Requêtes spatiales Vecteur 17

6. Modèle Raster 21
© Dunod – Toute reproduction non autorisée est un délit.

7. Internet et SIG 23

3 Localisation sur Terre 26

1. Représentation du globe terrestre 26

2. Système géodésique 27

3. Changement de système géodésique 30

4. Coordonnées géographiques 31

5. Coordonnées cartographiques 33

III
Table des matières

6. Exemples de projection 34

7. Changement de système de coordonnées de référence 39

8. Calcul d’une distance ou d’une surface 42

4 Composition de carte 44

1. Spécificité d’une carte géographique 44

2. Couleur 47

3. Niveaux de gris 49

4. Sémiologie graphique des objets 49

5. Standardisation des symbologies 54

6. Représentation des rasters 55

5 Modèles hydrologiques et MNT 57

1. Le relief 57

2. MNT versus MNE 58

3. Formes de MNT 58

4. Construction des MNT 59

5. Pente et orientation des MNT 62

6. Flux hydriques 66

7. Bassin versant 67

6 Modèles de paysage 69

1. Concept de paysage 69

2. Métriques paysagères 70

3. Distributions statistiques de métriques 73

4. Protocoles d’échantillonnage 74

5. Implémentations 76

7 Traitement des données 77

1. Typologie des variables 77

2. Emporte-pièce 79

3. Précautions d’usage 79

4. Exemples types 80

IV
Table des matières

Partie 2
Partie pratique 85

Exercice 1 Prise en main de GRASS et QGIS 86

Exercice 2 Repères cartographiques 93

Exercice 3 Géoréférencement d’une carte scannée 99

Exercice 4 Organisation des données et


de leur traitement 105

Exercice 5 Base de données et SQL 115

Exercice 6 SQL spatial, requêtes géométriques 124

Exercice 7 SQL spatial, requêtes topologiques 133

Exercice 8 Modèle numérique de terrain 141

Exercice 9 Les interfaces R du CRAN et Python 146

Exercice 10 Modèle hydrologique 156

Exercice 11 Traitement des données 162

Exercice 12 Modèle de paysage 175

Exercice 13 Composition de carte 183


© Dunod – Toute reproduction non autorisée est un délit.

Conclusion  190

Bibliographie 191

Sigles et acronymes 196

Remerciements 198

Index 199

V
Introduction
Cet ouvrage est un recueil de cours et de travaux pratiques dispensés dans le cadre du
Master 2 EEA, spécialité « Signal Imagerie, et Applications » de l’université Paul Saba-
tier de Toulouse. Plusieurs formations données auprès des chercheurs de l’Observatoire
Midi-Pyrénées dans le cadre de l’atelier permanent : « Méthodes numériques, données,
traitement du signal » ont également permis d’améliorer les supports pédagogiques dans
un autre contexte, celui de la formation continue.
Il est composé de deux parties. La partie théorique expose de manière simplifiée les
fondements théoriques indispensables à l’utilisation des systèmes d’information géogra-
phique. La partie pratique met en œuvre les notions abordées précédemment à partir de
données recueillies dans le cadre du Service national d’observation MSEC (Multi-Scale
Environmental Changes) dans un bassin versant Houay Xon situé au nord du Laos. Ce
choix donne une cohérence thématique aux exemples traités et facilite la compréhension
globale des questions environnementales abordées.
Le contenu de cet ouvrage reste valide quel que soit le logiciel utilisé. L’expérience
de l’auteur, en particulier dans le monde du logiciel libre, conduit à utiliser principale-
ment GRASS et QGIS pour les exercices. D’autres programmes (R du CRAN, sqlite3...)
sont également exploités. Pour faire partie de notre logithèque, un programme doit être
diffusé sous une licence « open source » et il doit exister une version pour chacun des
trois systèmes d’exploitation Linux, Windows et MacOS. Ce choix de privilégier dans
l’enseignement l’usage des logiciels libres est préconisé par l’article L. 123-4-1 de la loi
ESR du 9 juillet 2013 du parlement français.
© Dunod – Toute reproduction non autorisée est un délit.

VII
Partie 1

Partie théorique
L e premier chapitre présente les principes du SIG et donne une vue
d’ensemble de chacun de ses composants. Il explique les étapes
qui ont conduit à la construction des SIG sous leur forme actuelle puis
il introduit les notions d’objet géographique, de type de données
raster et vecteur, de couches et de projection qui sont approfondies
dans les chapitres suivants. Le chapitre 2 décrit l’organisation des don-
nées dans un SIG en s’appuyant sur les standards établis par l’OGC.
La topologie des vecteurs et la structure des rasters sont décrites en
attachant une attention particulière à la performance du stockage et
des traitements. Le chapitre 3 résume les principes de localisation sur
la terre par une description simplifiée des systèmes géodésiques et
des projections, ces deux éléments étant regroupés sous le terme de
système de coordonnée de référence. Il insiste sur les erreurs à ne
pas commettre lors d’un changement de SCR. Le chapitre 4 expose
les notions utiles à la réalisation d’une carte géographique. Il allie
concepts cartographiques et sémiologie graphique qui ne peuvent
être dissociés dans la réalisation d’une carte. Le chapitre 5 est dédié
aux modèles numériques de terrain et leur implication dans les pro-
cessus hydrologiques. Le chapitre 6 aborde les modèles de paysage.
Les métriques paysagères sont présentées en insistant sur l’influence
de la précision géométrique des données. Le chapitre 7 rend compte
d’une expérience de l’auteur dans l’analyse des données rasters. Il
propose un mode d’organisation des données qui sera utilisée dans
la partie pratique. L’objectif de cette partie théorique n’est pas de
réaliser un état de l’art complet de ces sujets mais plutôt de fournir les
fondements utiles à la compréhension des exercices.

1
Chapitre 1
Qu’est-ce qu’un SIG ?
Introduction
Un SIG peut être conçu comme un système informatique gérant une information géolo-
calisée. Sa fonction première est de réaliser des cartes géographiques à partir de données
très diverses : relevés de terrain, photographie aérienne, image satellite, carte topogra-
phique… puis d’en automatiser l’analyse.

Objectifs Plan

Comprendre les usages d’un SIG. 1 Définition


Connaître l’évolution des SIG depuis leur 2 Brève histoire
origine et entrevoir leur futur. 3 Besoin et utilité
Définir les notions de raster/vecteur, de 4 Objet géographique
couches et de système de coordonnées 5 Vecteur versus Raster
de référence. 6 Structure en couches
7 Système de coordonnées de
référence
8 Briques du SIG

1 Définition
Selon les auteurs, la notion de système d’information géographique (SIG) comprend le
logiciel, le support matériel informatique, les données et même l’homme, concepteur ou
utilisateur des données. Devant la multiplicité des définitions possibles, celle adoptée par
la Société française de photogrammétrie et télédétection en 1989 fait référence : « Un
SIG est un système informatique permettant, à partir de diverses sources, de rassembler
et d’organiser, de gérer, d’analyser et de combiner, d’élaborer et de présenter des infor-
mations localisées géographiquement, contribuant notamment à la gestion de l’espace. »
Le point de vue « logiciel » est privilégié et c’est celui adopté dans cet ouvrage.

2 Brève histoire
Les SIG sont la rencontre de trois disciplines : la géographie, l’informatique et l’analyse
de données. La géographie a fourni les bases à la cartographie utilisée dans les SIG
(Pinchemel 1979). L’informatique a assuré la mise en œuvre en développant les systèmes

2
Chapitre 1 • Qu’est-ce qu’un SIG ?

de base de données pour stocker les données, les interfaces homme machine (IHM)
pour le dialogue et toutes les procédures de traitements relevant de l’analyse de données.
Dans ce domaine, Bertin (1967) a initié les premiers traitements graphiques de données
spatialisées. Ils ont constitué les prémices à une automatisation rendue faisable par l’évo-
lution technologique des ordinateurs. Rimbert (1990) a décrit ces possibilités offertes
par l’alliance de la géographie et des traitements automatisés que permet l’informatique.
Les SIG sont nés de l’association de la cartographie et de l’informatique. Il est cepen-
dant difficile de tracer l’origine des SIG, d’identifier le moment où ces trois mondes de
la géographie, de l’informatique et de l’analyse de données se sont rejoints. Le premier
exemple cité date de 1854 quand le docteur John Snow a représenté la localisation des
malades atteints par le choléra dans le quartier de Soho à Londres, en Angleterre. Mais ce
n’est qu’à partir des années 1960 que l’informatique a permis l’essor des SIG. Le premier
SIG aurait été développé par Roger Tomlinson pour inventorier les terres du Canada dans
les années 1960. L’objectif était de réhabiliter les terres agricoles. D’autres initiatives
reposant sur des développements spécifiques apparurent à la même époque aux États-
Unis. Le département de l’eau et de contrôle de la pollution créa un système d’acquisition
et d’extraction de la qualité des eaux. Le service forestier conçut un système de gestion
des parcelles qui conduisit à la production de cartes à partir de couches d’information
(de Blomac et al. 1994). Puis de 1960 à 1970, virent le jour des produits non spécifiques
à un jeu de données : SYMAP, CALFORM, SYMVU, GRID, POLYVRT, ODYSSEY
développés dans le Hardward Lab for Computer Graphics (Malczewski 2004).
Mais les SIG ont vraiment pris leur essor avec le développement des systèmes de base
de données. Le plus populaire, ARCINFO, reposant sur la base de données PRIME, est
commercialisé en 1982 par la société ESRI (Environmental Systems Research Institute).
À la même époque, les ingénieurs de l’armée américaine et les chercheurs de l’université
de l’Illinois commencèrent à développer un SIG qui devint, quelques années plus tard,
GRASS (Westervelt 2004). Dès le début, sa philosophie de développement a été axée
sur l’ouverture du code offrant la possibilité à tout programmeur de participer à son
écriture. L’interface était minimaliste et ce n’est que dans les années 1990 que GRASS
a constitué une alternative aux SIG commerciaux. L’avènement de la micro-informatique
a ensuite conduit à la création de nombreux produits dont il est difficile d’établir une liste
© Dunod – Toute reproduction non autorisée est un délit.

exhaustive : IDRISI, MapInfo, ENVI, SAVANE, ILWIS, APIC, GeoConcept, SPRING,


GvSIG, QGIS... L’adoption de standard pour la définition des systèmes de projection
(proj.4) et pour le format de fichiers géographiques (GDAL) supportés par la fondation
OSGeo ont assuré l’échange de données entre ces SIG.
Le développement des services Internet dans les années 1990 a donné accès à de
nouvelles sources de données. Sous l’égide de l’Open Geospatial Consortium (OGC),
différents standards de formats ouverts de données, de protocoles… garantissent l’inte-
ropérabilité et favorisent l’accès à des bases de données spatiales souvent libres d’accès.
Citons Web Map Service (WMS), Web Map Tile Service (WMTS), Web Feature Service
(WFS), Web Coverage Service (WCS), Catalogue Service for the Web (CS-W), Web
Processing Service (WPS), Simple Feature Access (SFS), Geography Markup Language

3
Partie 1 • Partie théorique

(GML), Keyhole Markup Language (KML), Sensor Web Enablement (SWE), Table
Joining Service (TJS). Dans ce contexte, QGIS créé en 2002 s’est imposé. La raison de
son succès est liée à la facilité d’écrire de nouvelles extensions.
Très récemment, le Web sémantique a inclus des ontologies adaptées à l’information
spatiale et temporelle. Ce domaine fait actuellement l’objet de recherches pour formaliser
la représentation des connaissances et le raisonnement (Feyaerts 2010).

3 Besoins et utilité
Le traitement d’une information spatialisée est grandement facilité par les SIG. La
nécessité est d’autant plus grande que le volume des données est important et que
l’organisation de ces données est complexe. De nombreux domaines traitent d’une infor-
mation spatialisée : l’aménagement du territoire, l’étude d’impact d’une construction, la
gestion des réseaux, l’agriculture de précision, le suivi en temps réel des véhicules, les
risques naturels, la protection civile, la prospection minière, les études de démographie,
la socioéconomie et la santé, le géomarketing, etc. Cette liste n’est naturellement pas
exhaustive.
Les SIG sont adoptés par de nombreuses institutions, des entreprises, des organismes
de recherche, des écoles, des administrations pour des besoins de gestion, de formation
ou de recherche.
Les résultats obtenus sont multiples. La recherche du cheminement le plus économique
en termes de temps pour la distribution du courrier par le facteur, du tracé dont l’impact
sera le plus faible pour l’implantation d’une nouvelle ligne électrique, de la localisation du
central téléphonique optimisant le raccord des abonnés sont quelques exemples souvent
cités. Mais l’application la plus courante est la réalisation de cartes élaborées suite à des
traitements de données parfois complexes. Des données issues de relevés terrain, de
photographies aériennes, d’images de télédétection sont utilisées pour l’ensemble des
applications précitées. Leur nature très différente exige pour les traiter de les concevoir
comme des objets géographiques.

4 Objet géographique
Tout objet géographique possède deux caractéristiques : sa localisation et ses attributs
(Fig. 1.1). Par exemple, un arbre est situé à un endroit défini par sa position exprimée en
latitude/longitude. Ses attributs le caractérisent par son espèce, sa hauteur, etc. Le SIG
doit assurer le stockage des données correspondantes et permettre des requêtes sur les
valeurs prises par ces deux caractéristiques. Cette gestion dépend du modèle de repré-
sentation des objets géographiques.

4
Chapitre 1 • Qu’est-ce qu’un SIG ?

espèce : Quercus
hauteur : 7,30 m
couronne : 3,10 m

Grenoble, France
latitude : 45°10′00″ Nord
longitude : 5°43′00″ Est

localisation objet attributs


Figure 1.1 – L’objet géographique.

5 Vecteur versus Raster


Toute démarche scientifique impose de créer des modèles pour appréhender la réalité,
de facto à tout jamais inaccessible, car tout objet ne peut être perçu qu’au travers d’un
modèle (Auda 2008). Les SIG obéissent à cette logique en représentant le monde par
deux modèles : le modèle Vecteur et le modèle Raster (Fig. 1.2).

vecteur raster
© Dunod – Toute reproduction non autorisée est un délit.

Figure 1.2 – Modèle Vecteur versus Raster.

• Dans le modèle Vecteur, les objets sont modélisés par des éléments géométriques.
Les objets ponctuels sont représentés par un simple point. Les objets linéaires (route,
fleuve…) sont constitués de lignes. Les objets surfaciques (territoire géographique,

5
Partie 1 • Partie théorique

parcelle…) sont résumés sous forme de polygones. Les propriétés de ces objets sont
stockées dans une table attributaire annexe.
• Dans le modèle Raster, les objets sont modélisés par une grille dont les éléments sont
appelés pixels. La valeur de chaque pixel caractérise la partie de l’objet correspon-
dante. La localisation est simplement définie par la position du coin supérieur gauche
de l’image et la taille du pixel.
Ces deux modèles Vecteur/Raster impliquent des structures de stockage des données
très différentes (Fig. 1.3).

vecteur raster
A J 1
I 1
B
1 H 1 1
C 1
Q 1
1 2
R P
D 2 O 1 2 2 2
G 1 2 2 3
3 1 1 3 3
S K N
1 1 3
E F L M 1

poly ID coordonnées position du coin supérieur gauche


taille du pixel
1 A,B,C,D,E,F,G,H,I,J
2 P,Q,R,S,K géobase
3 K,L,M,N,O,P
géobase code pixel occupation
du sol

poly ID occupation 1 rivière


du sol 2 chêne
1 rivière 3 pin
2 chêne
pin donnée image
3

table attributaire
Figure 1.3 – Stockage des données dans les modèles Vecteur et Raster.

Au tout début de l’histoire des SIG, rares étaient les logiciels qui permettaient de gérer
les deux modèles. Un SIG était orienté Vecteur (ArcInfo, MapInfo, APIC...) ou Raster
(IDRISI, ENVI, ERDAS...). Aujourd’hui, GRASS et QGIS permettent la conversion de
données d’un modèle à l’autre et le stockage de ces deux modèles dans une même base
de données, les vecteurs et les rasters constituant des couches séparées.

6
Chapitre 1 • Qu’est-ce qu’un SIG ?

6 Structure en couches
Avant l’avènement des SIG, les cartographes utilisaient des calques pour séparer les
thématiques. Ils prenaient soin d’utiliser des codes graphiques pour chaque calque
qui permettaient par superposition de visualiser les relations spatiales entre théma-
tiques. McHarg (1969) a théorisé cette méthode à des fins de planification de systèmes
naturels.

infrastructure
pont, barrière, route

élevage
bovin

végétation
arbre, prairie, culture

hydrographie
cours d'eau

topographie

superposition
des couches

Figure 1.4 – Structuration en couches des données SIG.


© Dunod – Toute reproduction non autorisée est un délit.

Cette organisation en calques superposés se traduit dans les SIG par une organisation
de la donnée en couches (Fig. 1.4). Chaque couche ne peut contenir qu’un modèle de
donnée, Vecteur ou Raster. Les données d’une couche correspondent habituellement à
une seule thématique : géologie, occupation du sol, cours d’eau, routes, etc. La carte est
construite par superposition des couches décrivant les objets utiles à sa réalisation. Pour
que la superposition des couches ait un sens, toutes les couches doivent représenter les
objets dans un même référentiel spatial, c’est-à-dire utiliser le même système de coor-
données de référence.

7
Partie 1 • Partie théorique

7 Système de coordonnées de référence


Le système de coordonnées de référence (SCR) définit les paramètres utiles au calcul
de la position des objets situés à la surface de la Terre. La position des objets peut être
définie dans un repère géographique en latitude/longitude ou dans un repère cartogra-
phique projeté dans un plan.
Le SCR est constitué de deux éléments :
• le système géodésique modélise la forme de la Terre par un ellipsoïde. Le modèle de
l’ellipsoïde peut être amélioré par le géoïde qui prend en compte l’équipotentielle du
champ de pesanteur terrestre coïncidant avec le niveau moyen des océans ;
• le système de projection 1 est une transformation nécessaire à la représentation dans
un plan, des objets situés à la surface de la Terre communément modélisée par un
ellipsoïde.
Les coordonnées d’un point sont exprimées en unité de longueur (mètre) dans les
repères cartographiques et en unité d’angle (degré, radian, grade) dans les repères géogra-
phiques. Les repères cartographiques définissent une position, dans un espace projeté,
par le triplet abscisse, ordonnée et altitude (x, y, z). Les repères géographiques utilisent,
pour représenter un point de l’ellipsoïde, le triplet angle par rapport au méridien-origine,
angle par rapport à l’équateur et altitude (λ, φ, h).
Les SCR ayant évolué en fonction des progrès réalisés par la géodésie, leur étude
est souvent un préalable avant l’enregistrement d’une carte ancienne dans un SIG car
une erreur commise à ce niveau entache toute opération réalisée par une des briques
du SIG.

8 Briques du SIG
Les nombreuses fonctions assurées par le SIG sont résumées dans la figure 1.5. Les
potentialités des fonctions dépendent beaucoup de la spécialisation du SIG :
• les SIG nomades mettront l’accent sur la saisie et l’affichage des données ;
• les SIG cartographiques posséderont des modules performants de composition
graphique.
Les données du SIG sont réparties en deux entités :
• la géobase contient les données de localisation ;
• les données thématiques renferment la description des objets.
En entrée, un SIG lit toute forme de donnée géographique qu’il est possible de situer
à la surface de la Terre. Des fonctions d’import de données enregistrées par un GPS,

1. Par souci de simplification, le repère latitude/longitude est souvent appelé improprement « projec-
tion » bien que ce mode de représentation ne fasse pas appel à cette opération.

8
Chapitre 1 • Qu’est-ce qu’un SIG ?

de cartes papier scannées, d’image de télédétection… assurent l’enrichissement de la


géobase et des données thématiques. Ces données sont stockées dans des systèmes de
gestion de base de données (SGBD) propriétaires ou dans des SGBD standards. L’ana-
lyse peut être dans certains SIG très évoluée, en particulier lorsqu’elle est assurée par
couplage à des logiciels d’analyse d’images. Les sorties des SIG sont naturellement des
cartes, des rapports d’analyse, de modélisation, etc.

relevés spatialisés
cartes papier
images de télédétection

/ géoréférenceme
is ition nt
qu gestion
ac
données
géobase
thématiques
na ti

on
a

lys
e SGBD li s a
visua
rapports statistiques
graphiques cartes numériques
modélisation cartes papier
Figure 1.5 – Fonctionnalités d’un SIG.
© Dunod – Toute reproduction non autorisée est un délit.

9
Chapitre 2
Modèles de données
Introduction
L’enregistrement des données dans un SIG nécessite une étude pour modéliser les
­données dans une démarche très proche de la conception des bases de données. L’aspect
localisation dans l’espace rajoute une complexité supplémentaire liée à la résolution
­spatiale et au modèle Raster ou Vecteur retenu pour stocker puis traiter la donnée.

Objectifs Plan
Connaître la spécificité des données 1 Modèle Vecteur
géolocalisées. 2 Géométrie des vecteurs
Comprendre le stockage et l’interrogation 3 Topologie des vecteurs
des données spatialisées. 4 Opérations topologiques
5 Requêtes spatiales Vecteur
6 Modèle Raster
7 Internet et SIG

1 Modèle Vecteur
Le modèle Vecteur comprend deux composantes spatiales :
• la composante géométrique décrit la position, la taille, l’orientation, la forme des
objets graphiques et la dimension de l’espace. La géométrie est modifiée lorsque le
SCR est changé ;
• la composante topologique caractérise les relations entre les objets. Elle ne varie pas
lorsque l’espace est déformé de manière élastique ou continue. La topologie est donc
conservée lors d’un changement de SCR. Dans le contexte de données spatiales, la
topologie est utilisée, par exemple, pour décrire les relations de connectivité entre les
différents éléments d’une carte.

2 Géométrie des vecteurs


L’implantation géométrique des objets est ponctuelle, linéaire ou zonale :
• les éléments ponctuels sont représentés par le point ;
• les éléments linéaires par le segment et la ligne brisée ;
• les éléments surfaciques par le polygone et la face (aire intérieure).

10
Chapitre 2 • Modèles de données

Ces éléments peuvent être caractérisés par des variables thématiques, sans lien direct
avec des propriétés spatiales.

vecteur
polygone ID lignes brisées
A 8 J
1 5,6,7,8,9
B9 I 2 1,4
1 H
3 2,3,4
C
Q
7 1
R P
D 2O ligne brisée ID points
4
G
S K 3 3 1 P,Q,R,S,K
5 N 2 K,L,M,N
2
E L M 3 N,O,P
6 F
... ...

polygone ID occupation nature


du sol du sol point ID X,Y
... ...
1 rivière limon N 7,5 8,7
2 chêne limon
O 7,7 8,5
3 pin sable
... ...
table attributaire
géobase
Figure 2.1 – Exemple de structure de stockage de la géométrie des vecteurs.

La figure 2.1 propose une structure de stockage de la géométrie des vecteurs. Chaque
polygone se décompose en lignes brisées qui sont elles-mêmes formées de points. L’enre-
gistrement des coordonnées géographiques des points assure la localisation dans l’espace
de l’ensemble de la structure. Trois tables sont donc suffisantes pour stocker les données
géométriques. Une quatrième table reliée à la table polygone stocke les données théma-
tiques relatives aux polygones. Chaque propriété des objets est stockée dans une colonne
de la table, dans l’exemple : l’occupation du sol et la nature du sol.
© Dunod – Toute reproduction non autorisée est un délit.

3 Topologie des vecteurs


Lors de la digitalisation de cartes sous forme de vecteurs, la création de la topologie est une
opération qui suit la saisie, soit par un post-traitement, soit à la fin de la saisie de chaque
élément géométrique. Cette opération consiste à transformer un vectoriel spaghetti en un
vectoriel connecté en créant des nœuds à chaque croisement de lignes, puis à nettoyer
les vecteurs connectés en éliminant les morceaux de lignes pendantes ou en rallongeant
certaines pour les connecter à la voisine (Fig. 2.2). Un seuil de tolérance permet de définir la
dimension en dessous de laquelle une ligne est considérée comme pendante ou la dimension
maximale au-dessus de laquelle une ligne ne sera pas connectée à sa voisine la plus proche.
11
Partie 1 • Partie théorique

nettoyage
création de la des vecteurs
topologie connectés

segment pendant nœud


à connecter arc
nœud
arc
Figure 2.2 – Création d’une topologie des vecteurs.

Après création de la topologie, les éléments géométriques acquièrent de nouvelles


propriétés et changent même de statut (Fig. 2.3). Le point devient nœud s’il se trouve
aux extrémités d’une ligne et vertex s’il est placé au milieu. Le segment de droite devient
un arc qui possède un sens de parcours et, par conséquent, un côté gauche et droit.

objets géométriques objets topologiques

objets ponctuels vertex


point
(zéro dimension) nœud

segment de droite arc

objets linéaires Z2
(une dimension)
N1 Z1 N2
ligne brisée
polyligne
(nœuds de départ N1, de fin N2,
zones à gauche Z1, à droite Z2)

polygone polygone
(ligne brisée et (polyligne, aire intérieure
aire intérieure) et centroïde Z)
objets surfaciques
(deux dimensions)
Z
P1
P1

P2

face zone composée de deux


(aire intérieure polygones P1 inclus dans P2
du polygone) Z centroïde de la zone

Figure 2.3 – Géométrie et topologie du modèle vecteur.

12
Chapitre 2 • Modèles de données

La ligne brisée devient polyligne. Le polygone peut se doter d’un centroïde, point de
référence auquel est rattachable une étiquette utilisée par certains SIG pour réaliser le
lien avec la table attributaire contenant les données thématiques. Il devient également
possible de définir un polygone à l’intérieur d’un autre polygone pour représenter par
exemple une clairière à l’intérieur d’une forêt. De plus, dans le cas de polygones adjacents,
l’arc commun aux deux polygones n’est pas dupliqué.
La structure de stockage des vecteurs évolue pour prendre en compte la topologie.
Peucker et Chrisman (1975) proposent un format POLYVRT sous forme de tables enre-
gistrant géométrie et topologie (Fig. 2.4).

vecteur
A 8 J
B9 I 4
1 H
C
Q polygones
7 1
R P polygone ID polylignes
D 2 O 4
G
S K 3 3 1 5,6,7,8,9
5 N 2 1,4
2
E 6 F L M 3 2,3,4

polylignes

polyligne ID points ND NF PG PD

1 P,Q,R,S,K K P 4 2
2 K,L,M,N K N 3 4
3 N,O,P N P 3 4
4 K,P K P 2 3
...

nœuds points
nœud ID points point ID X,Y
1 A A 3,1 10,2
© Dunod – Toute reproduction non autorisée est un délit.

... ... ... ...


6 K N 7,5 8,7
7 N O 7,7 8,5
8 P ... ...

Figure 2.4 – Exemple de structure de stockage de la topologie des vecteurs.


L’enregistrement des coordonnées géographiques dans la table « points » assure la
localisation dans l’espace de l’ensemble de la structure. La table « nœuds » identifie
les points de début et fin de polylignes. La table « polylignes » contient la liste des
points formant chaque polyligne, le nœud de début (ND) et de fin (NF) indiquant
l’orientation de la polyligne, les polygones à gauche (PG) et à droite (PD). La table
« polygones » référence les polylignes composant chacun des polygones. La table
attributaire « thématique » n’est pas représentée pour ne pas surcharger la figure.

13
Partie 1 • Partie théorique

Les travaux de l’OGC ont standardisé le format des fichiers vecteur. Le standard
OGC-SFA (Herring 2010) introduit d’autres objets que le point, la ligne et le poly-
gone. Le triangle, les TIN, les anneaux… et plusieurs collections d’objets sont définis
(Fig. 2.5). Ce standard se limite à décrire les objets 2D et 2.5D (TIN, PolyhedralSur-
face) ; les objets 3D modélisables, par exemple les faces et les volumes, ne sont pas pris
en compte (Ramos 2003). Le SCR est inclus. Ce standard OGC-SFA est implémenté
dans de nombreux produits : bibliothèques sp de R du CRAN, langage GML… et le
langage SQL spatial.

ReferenceSystems::
+spatialRS SpatialRefrenceSystem
Geometry 1
+mesureRS
ReferenceSystems::
0..1 MeasureReferenceSystem

Point Curve Surface GeometryCollection


2..*
+v
e
rte
x

LineString Polygon PolyhedralSurface MultiSurface MultiCurve MultiPoint


0..* 1..*
+element
+element

+patch

0..*
+ring

1..*
Triangle TIN MultiPolygon MultiLineString
Line LinearRing 1..* +patch

Figure 2.5 – Typologie des objets vectoriels du standard OGC-SFA (Herring 2011).

4 Opérations topologiques
Des modèles de raisonnement spatial tentent de s’affranchir des aspects quantitatifs
pour adopter une logique plus proche du raisonnement humain. Pour l’implémenta-
tion, l’OGC s’est appuyé sur le Dimensionally Extended nine-Intersection Model
(DE-9IM) et le Region Connection Calculus (RCC8) qui décrivent les relations entre
deux objets spatiaux.
Le raisonnement à l’aide du DE-9IM demande de préciser les notions d’intérieur,
d’extérieur et de frontière (Fig. 2.6) :
• la frontière d’un objet de dimension (n) est un objet de dimension (n-1) qui entoure
l’objet. La frontière du polygone est la polyligne qui constitue son périmètre. La
frontière de la polyligne est constituée par ses deux nœuds. La frontière du point est
l’ensemble vide ;

14
Chapitre 2 • Modèles de données

• l’intérieur d’un objet est constitué par l’ensemble de l’objet duquel la frontière
est supprimée. L’intérieur du polygone est sa surface interne. L’intérieur de la
polyligne est cette polyligne amputée de ses nœuds. L’intérieur du point est le
point lui-même ;
• l’extérieur d’un objet est l’univers considéré comme une surface théorique qui enve-
loppe l’objet. L’extérieur est tout ce qui entoure l’objet.

frontière
intérieur frontière
extérieur intérieur

intérieur
extérieur extérieur

Figure 2.6 – Notion d’extérieur, d’intérieur et de frontière pour


les polygones, les lignes et les points.

Le modèle DE-9IM détermine la dimension de l’intersection entre les intérieurs, exté-


rieurs et frontières des polygones, polylignes et points. Par exemple, la figure 2.7 indique la
dimension des intersections entre les intérieurs, extérieurs et frontières de deux polygones.
L’intersection entre les intérieurs de deux polygones est un plan (dim = 2). L’intersec-
tion entre l’intérieur d’un polygone et la frontière d’un autre polygone est une polyligne
(dim = 1).

intérieur frontière extérieur

intérieur

I F E
I 2 1 2
frontière F 1 0 1
© Dunod – Toute reproduction non autorisée est un délit.

E 2 1 2

extérieur

Figure 2.7 – Graphique et matrice de dimension des intersections entre


deux polygones en fonction du modèle DE-9IM.

Les intersections sont noircies. La dimension des intersections correspond au plan


dim = 2, à la polyligne dim = 1 et au point dim = 0.
La figure 2.8 fournit les dimensions des intersections entre les intérieurs, exté-
rieurs et frontières entre un polygone et une polyligne. L’intersection entre les

15
Partie 1 • Partie théorique

intérieurs d’un polygone et d’une polyligne qui le recoupe partiellement est une
polyligne (dim = 1). L’intersection entre l’intérieur du polygone et la frontière de la
polyligne est le nœud de la polyligne situé à l’intérieur du polygone, soit un point
(dim = 0)…

intérieur frontière extérieur

intérieur

I F E
I 1 0 1
frontière F 0 ∅ 0
E 2 1 2

extérieur

Figure 2.8 – Graphique et matrice de dimension des intersections entre un


polygone et une polyligne en fonction du modèle DE-9IM.

Les intersections sont noircies. La dimension des intersections correspond au plan


dim = 2, à la ligne dim = 1 et au point dim = 0, et à l’ensemble vide dim = Ø.
Le modèle DE-9IM est utilisable pour, par exemple, déterminer le bon positionnement
d’un ponton au bord d’un étang. Le ponton doit toucher le bord de l’étang matérialisé par
la frontière du polygone le dessinant. Le ponton ne doit donc pas être situé au milieu de
l’étang ni empiéter sur la terre ferme. Les conditions nécessaires au bon positionnement
d’un ponton sont modélisables par une matrice d’intersection DE-9IM entre une polyligne
représentant le ponton et un polygone représentant l’étang (Fig. 2.9).

pontons
adaptés
I F E
pontons
I 1 ∅ ∅
inadaptés
F 0 0 ∅
E 2 1 2

Figure 2.9 – Exemple d’application du modèle DE-9IM.

Si le ponton touche le bord sans empiéter sur la terre ferme, l’intersection entre les
intérieurs du polygone et de la polyligne est la polyligne (dim = 1). L’intersection entre
l’intérieur de la polyligne et la frontière du polygone est l’ensemble vide. L’intersection

16
Chapitre 2 • Modèles de données

entre les frontières de la polyligne et du polygone est le nœud, point de contact entre
le polygone et la polyligne (dim = 0). Le modèle RCC obéit à une logique légèrement
différente. Il décrit les régions en fonction de leurs relations aux autres (Fig. 2.10). RCC8
comprend huit relations possibles entre deux régions : déconnexion (DC), connexion
extérieure (EC), chevauchement (PO), égal (EQ), inclusion tangentielle (TPP), inclusion
tangentielle inverse (TPPi), inclusion non tangentielle (NTPP), inclusion non tangentielle
inverse (NTPPi).

Y Y
X Y X Y
X X

X DC Y X EC Y X TPP Y X NTPP Y

X X X
X Y Y
Y Y

X PO Y X EQ Y X TPPi Y X NTPPi Y
Figure 2.10 – Relations RCC8.

Ces raisonnements DE-9IM et RCC8 sont utilisés dans les requêtes spatiales.

5 Requêtes spatiales Vecteur


GeoPackage est un standard OGC conforme à l’OGC-SFS (Open Geospatial Consor-
tium – Simple Feature SQL) qui décrit les objets géométriques sous forme de tables
SQL (Herring 2010) (Fig. 2.11). Les types géométriques correspondent au standard de
l’OGC : Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, Geom-
Collection. Une table enregistre le SCR. Des index spatiaux Rtree accélèrent les requêtes
spatiales. SpatiaLite, extension de SQLite, et PostGIS, extension de PostgreSQL, sont
les plus connues des implémentations. À cette structure de fichier est associé un langage
de requête : le SQL spatial.
© Dunod – Toute reproduction non autorisée est un délit.

Le langage SQL spatial permet des requêtes géométriques et topologiques standardisées


par l’OGC (Runnion et al. 1999).
Des fonctions quantifient la géométrie d’un objet :
• Length : longueur d’une polyligne.
• Perimeter : périmètre d’un polygone.
• Area : surface d’un polygone.
Par défaut, ces calculs sont réalisés sur la sphère mais il est possible d’utiliser
l’ellipsoïde.

17
Partie 1 • Partie théorique

class GeoPackage

GeoPackage Tables

gpkg_extensions
gpkg_spatial_ref_sys gpkg_contents

gpkg_tile_matrix_set

gpkg_geometry_columns gpkg_data_columns
gpkg_tile_matrix

sample_feature_table gpkg_data_column_constraints sample_file_pyramid

gpkg_metadata gpkg_metadata_reference

Table Color Key

Required Metadata Optional Metadata Optional Data

Figure 2.11 – Tables SQL de stockage vecteur du standard OGC (Daisey 2015).

Des fonctions calculent des relations de distances entre deux objets :


• Distance : distance entre deux objets exprimée dans le SCR de la couche.
• PtDistWithin : teste si la distance entre deux objets est inférieure à un seuil.
Des fonctions assurent la construction de nouvelles géométries (Fig. 2.12) :
• Frontière (boundary) : telle que définie figure 2.6.
• Enveloppe : rectangle englobant l’objet.
• Tampon (buffer) : zone tampon autour de l’objet.
• Intersection : intersection géométrique entre deux objets.
• Union : union géométrique entre deux objets.
• SymDifference : différence symétrique entre deux objets. Toutes les parties qui ne
sont pas en commun constituent l’objet résultat. Cette opération est l’opposée de
l’intersection.
• Difference : différence géométrique entre deux objets. Cette opération n’est pas
symétrique.

18
Chapitre 2 • Modèles de données

enveloppe frontière tampon

intersection union différence différence


symétrique
Figure 2.12 – Illustration des opérations : frontière, enveloppe, tampon,
intersection, union, différence symétrique et différence.

Les zones résultantes sont grisées. Dans l’opération de différence, le carré est le premier
argument, le cercle le deuxième, ce qui conduit à soustraire le cercle au carré.

D’autres fonctions testent les relations topologiques entre deux objets (Fig. 2.13) :
• Equals : égalité entre deux objets.
• Disjoint : les objets sont disjoints (DC de RCC8).
• Intersects : les objets possèdent une intersection non vide. Cette fonction n’impose
aucune contrainte sur les caractéristiques de l’intersection contrairement à Crosses
ou Overlaps.
• Touches : les deux objets se touchent (EC de RCC8).
• Crosses : la dimension de l’intersection est de dimension inférieure au maximum
des dimensions de chacun des objets. L’intersection inclut une partie de l’intérieur
des deux objets et elle n’est égale à aucun des deux objets.
• Within : le premier objet est situé à l’intérieur du second (NTPP de RCC8).
• Contains : le premier objet contient le second (NTPPi de RCC8).
• Overlaps : la dimension de l’intersection est la même que celle des objets qui sont
eux-mêmes de dimension identique. L’intersection ne correspond à aucun des deux
© Dunod – Toute reproduction non autorisée est un délit.

objets.
• Relate : teste les matrices d’intersection du modèle DE-9IM.
Ces fonctions peuvent être combinées pour réaliser des requêtes associant géométrie,
topologie et thématique. L’exemple, les pontons au bord de l’étang, est mis à profit pour
illustrer la puissance du modèle DE-9IM dans les requêtes topologiques.
Le script suivant retourne les pontons correctement positionnés au bord de l’étang.
La chaîne ‘1FF00F212’ représente la matrice d’intersection DE-9IM caractérisant ce
bon positionnement.

19
Partie 1 • Partie théorique

A
A disjoint B B

A touches B

A crosses B

A within B

B contains A

A overlaps B

Figure 2.13 – Fonctions topologiques du standard OGC.

CREATE TABLE ponds ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT);


CREATE TABLE pontoons (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
good text);
SELECT AddGeometryColumn(‘ponds’, ‘geometry’, 32648, ‘POLYGON’, ‘XY’);
SELECT AddGeometryColumn(‘pontoons’, ‘geometry’, 32648, ‘LINESTRING’, ‘XY’);
-- peuple les tables
INSERT INTO ponds (Geometry) VALUES (
MakePolygon( GeomFromText( ‘LINESTRING(203100 2197200, 203140 2197230,
203180 2197310, 203280 2197310, 203390 2197270, 203400 2197210, 203320 2197140,
203215 2197141, 203150 2197170, 203100 2197200)’, 32648 ) ) );
INSERT INTO pontoons ( geometry, good) VALUES ( MakeLine( GeomFromText
(‘MULTIPOINT(203170 2197290, 203205 2197272)’, 32648 ), 0 ), ‘TRUE’);
INSERT INTO pontoons ( geometry, good) VALUES ( MakeLine( GeomFromText
(‘MULTIPOINT(203120 2197215, 203176 2197197)’, 32648 ), 0 ), ‘TRUE’);
INSERT INTO pontoons ( geometry, good) VALUES ( MakeLine( GeomFromText
(‘MULTIPOINT(203290 2197260, 203340 2197250)’, 32648 ), 0 ), ‘FALSE’);

20
Chapitre 2 • Modèles de données

INSERT INTO pontoons ( geometry, good) VALUES ( MakeLine( GeomFromText


(‘MULTIPOINT(203350 2197300, 203400 2197320)’, 32648 ), 0 ), ‘FALSE’);
INSERT INTO pontoons ( geometry, good) VALUES ( MakeLine( GeomFromText
(‘MULTIPOINT(203370 2197230, 203420 2197240)’, 32648 ), 0 ), ‘FALSE’);
INSERT INTO pontoons ( geometry, good) VALUES (MakeLine( GeomFromText
(‘MULTIPOINT(203370 2197180, 203390 2197160)’, 32648 ), 0 ), ‘FALSE’);

SELECT pontoons.*
FROM pontoons, ponds
WHERE ST_Relate(pontoons.Geometry, ponds.Geometry, ‘1FF00F212’);

Les exemples présentés ont été testés avec SpatiaLite mais ils restent valides avec un
autre SGBD supportant le spatial SQL, tel PostGIS, excepté les créations d’objets dont
la syntaxe est quelque peu différente selon les implémentations.

6 Modèle Raster
Le modèle Raster est plus simple que le modèle Vecteur. Il se résume au stockage infor-
matique d’une grille. Pour optimiser l’espace disque, les données sont compressées sans
perte d’information (Fig. 2.14). Plusieurs techniques existent :
• le RAW ne réalise aucune compression ;
• le Run Length Code est une forme très simple de compression sans perte. Les
séquences de données consécutives de même valeur sont codées par cette valeur et
la longueur de la séquence ;
• le Quadtree représente une partition de l’espace en deux dimensions en décomposant
la région en quatre quadrants égaux, puis chaque quadrant en quatre sous-quadrants,
et ainsi de suite, jusqu’à ce que le dernier quadrant soit homogène ;
• l’Octree repose sur un principe de décomposition similaire adapté au stockage d’objets
3D (Ramos 2003).
© Dunod – Toute reproduction non autorisée est un délit.

RAW
1 2 2 2 1 2 2 2 1 2 2 2 1 1 1 1 2 2 1 1
1 2 2 2
Run Length Code
1 1 1 1
1 1 3 2 1 1 3 2 4 1 2 2 2 1
2 2 1 1

1
1 2 2 2 2
1
1 2 2 2 2 2
Quadtree
1 1 1 1 1
1
2 2 1 1 2
1 2
Figure 2.14 – Compression des rasters sans perte d’information.

21
Partie 1 • Partie théorique

La structure de Quadtree qui se présente sous la forme d’un arbre facilite le chan-
gement de résolution spatiale. Les feuilles terminales de l’arbre correspondent à la
résolution maximale. En descendant dans l’arbre, l’image est dégradée par une dimi-
nution de résolution (Fig. 2.15). Cette propriété est utilisée pour optimiser l’accès à des
sous-résolutions.

image codée avec codée avec codée avec


initiale 4000 pixels 2000 pixels 700 pixels

Figure 2.15 – Structure en arbre d’une image compressée en Quadtree. Musée


Goya de Castres : “Dali l’autre visage - Dali et le livre d’art”. Creative commons.

Cette structure en pyramides accélère


l’affichage des données rasters en récu- +
pérant uniquement les données à une
résolution requise pour un affichage. Elle
permet également de choisir une résolution
de travail pour réaliser des traitements sur 🔍🔍
des collections d’images enregistrées à des
résolutions spatiales différentes (Fig. 2.16).
La gestion des fichiers est optimisée pour
minimiser la quantité de données lues pour -
une résolution donnée. Sans les pyramides,
les données auraient dû être lues dans leur Figure 2.16 – Un exemple de deux niveaux
de pyramides créées pour un jeu de
intégralité puis ré-échantillonnées à la données rasters.
résolution requise.
Cette structure en pyramides est utilisée lors d’accès à des images géoréferencées sur
l’internet. L’affichage sous Google Earth bénéficie de ce mode de stockage des images.
Le logiciel commence par télécharger la donnée à faible résolution, puis progressivement
aux résolutions plus grandes. Pour visualiser un paysage, l’utilisateur n’attend pas que
l’image à pleine résolution soit téléchargée. Il commence par voir une image de faible
résolution qui s’améliore au fur et à mesure que le téléchargement progresse.

22
Chapitre 2 • Modèles de données

L’algorithme de ré-échantillonnage utilisé pour construire les pyramides est essentiel


car il influe sur la valeur des pixels (Laporterie 2002). Cette opération transparente sous
GRASS est réalisée lors de la création de chaque couche raster sans que l’utilisateur
puisse la paramétrer. Le niveau de la pyramide utilisé pour l’affichage et les analyses
est choisi lors de la définition de la résolution spatiale de travail. De plus, la structure en
pyramides nécessite que toutes les images soient géoréférencées dans le même système
de coordonnées de référence pour conserver une qualité de traitement, quelle que soit
la résolution choisie, en assurant une parfaite superposition pixel à pixel de toutes les
images. Cette contrainte explique que GRASS impose que toutes les couches d’un projet
soient dans le même SCR et que GRASS ne permette pas la projection à la volée.
La normalisation des données et des traitements des rasters n’est pas aussi aboutie
que celle des vecteurs. Le standard OGC Grid (Burry et al. 2011) a été retiré et seuls les
formats reconnus par GDAL font actuellement référence. Aucun consensus n’a permis
de standardiser le mode de calcul des pyramides. Le standard OGC GeoPackage (Daisey
2015) définit cependant quelques caractéristiques de stockage des rasters découpés en
tuiles et de certains metadata associés (SCR, contour géographique, taille des pixels, etc.),
dans le souci d’offrir une interrogation possible au travers de SQLite. QGIS et GRASS
lisent les données au format GeoPackage. Néanmoins, l’absence d’un standard de format
de fichiers pourrait freiner la diffusion des données rasters sur l’internet.

7 Internet et SIG
La diffusion de données sur le Web demande une interopérabilité apportée par les stan-
dards de l’OGC et la création de services Web. Un service Web est un programme
informatique permettant la communication et l’échange de données entre applications
et systèmes hétérogènes dans des environnements distribués. Il assure la prise en charge
distante de données soit pour l’accès au catalogue des données (WCS), l’affichage de
rasters (WMS) ou la requête et modification de vecteurs (WFS), soit pour du traitement
distant afin de soulager le processeur et la mémoire du client et de minimiser le flux de
© Dunod – Toute reproduction non autorisée est un délit.

données entre le serveur et le client. Ainsi, WMTS préconstruit les tuiles sur le serveur
avant leur transfert.
La directive européenne INSPIRE de 2007 impose la diffusion des données géogra-
phiques par les organismes des États membres ayant une mission publique. Elle favorise
le développement d’applications interopérables. Geolittoral1 distribue grâce aux services
WFS et WMS des données très complètes sur le littoral français.
Ces ressources sont accessibles par le client WMS ou WFS de QGIS. Après avoir
réalisé la connexion au service, la manipulation de ces couches utilise les outils de

1. http://www.geolittoral.developpement-durable.gouv.fr/, consulté le 20/12/2017.

23
Partie 1 • Partie théorique

l’interface graphique. La partie serveur repose sur des outils de catalogage : Géo-IDE
Catalogue, PRODIGE, GeOrchestra.
OpenStreetMap (OSM) est un projet collaboratif de production de données publié
sous la licence Creative Commons qui couvre le globe. Les données au format vecteur
représentent les voies d’accès, les zones en eau, les habitats, l’occupation du sol, etc. Leur
affichage et téléchargement nécessitent des plugins QGIS particuliers.
Très récemment, les informations spatialisées sémantisées ont bouleversé la structure
des données spatiales et leur méthode de traitement. La notion de couches n’est plus
fondatrice de la structure des données. Elle est remplacée par les triplets et leur organi-
sation en graphes (Gandon et al. 2012). Pour prendre en compte la structure spatiale, de
nouvelles ontologies sont ajoutées au Web sémantique (Feyaerts 2010). Une implémen-
tation d’une ontologie de vecteurs respectant les standards de l’OGC est GeoSPARQL
(Perry et Herring 2012) (Fig. 2.17). Cette extension d’OWL (Web Ontology Language)
reprend le standard OGC-SFA de description des objets géométriques.

Envelope
Point
Polygon
GM_Object Complex

CRS Geometry Surface


PointGrid
owl:Thing SpatialModel LinearReference
Collection
Solid
SpatialThing Curve

Area
Volume

Extent Path
Position

Figure 2.17 – Extension de l’ontologie OWL pour gérer les


données géospatiales (W3C s.d.).

Pour illustrer la syntaxe GeoSPARQL, l’exemple des pontons et de l’étang est traduit
en GeoSPARQL.

@prefix lk:<http://example.devlog.org/id/pond/>.
@prefix dck:<http://example.devlog.org/id/pontoon/>.
@prefix geo: <http://www.opengis.net/ont/geosparql#>.
@prefix sf:<http://www.opengis.net/ont/sf#>.

lk:125487 a <https://schema.org/PondBodyOfWater>;
      geo:hasGeometry [ a sf:Polygon ;
       geo:asWKT “<http://registre.crs.org/def/.../> Polygon((100 200,
140 230, 180 310, 280 310, 390 270, 400 210, 320 140, 215 141, 150 170, 100
200))”^^geo:wktLiteral].

24
Chapitre 2 • Modèles de données

dck:001 a <http://linkedgeodata.org/ontology/Pontoon>;
    geo:hasGeometry [ a sf:Linestring;
          geo:asWKT “<http://registre.crs.org/def/...> Linestring(170 290,
205 272)” ^^geo:wktLiteral].
dck:002 a <http://linkedgeodata.org/ontology/Pontoon>;
     geo:hasGeometry [ a sf:Linestring;
           geo:asWKT “<http://registre.crs.org/def/...> Linestring(120 215,
176 197)” ^^geo:wktLiteral].
dck:003 a <http://linkedgeodata.org/ontology/Pontoon>;
     geo:hasGeometry [ a sf:Linestring;
       geo:asWKT “<http://registre.crs.org/def/...> Linestring(290 260,
340 250)”^^geo:wktLiteral].
dck:004 a <http://linkedgeodata.org/ontology/Pontoon>;
     geo:hasGeometry [ a sf:Linestring;
          geo:asWKT “<http://registre.crs.org/def/...> Linestring(290 260,
340 250)” ^^geo:wktLiteral].
dck:005 a <http://linkedgeodata.org/ontology/Pontoon>;
     geo:hasGeometry [ a sf:Linestring;
           geo:asWKT “<http://registre.crs.org/def/...> Linestring(350 300,
400 320)” ^^geo:wktLiteral].
dck:006 a <http://linkedgeodata.org/ontology/Pontoon>;
     geo:hasGeometry [ a sf:Linestring;
           geo:asWKT “<http://registre.crs.org/def/...> Linestring(370 230,
420 240)” ^^geo:wktLiteral].
dck:007 a <http://linkedgeodata.org/ontology/Pontoon>;
     geo:hasGeometry [ a sf:Linestring;
          geo:asWKT “<http://registre.crs.org/def/...> Linestring(370 180,
390 160)” ^^geo:wktLiteral].

<!-- Requête GeoSPARQL -->


PREFIX geo: <http://www.opengis.net/ont/geosparql#>
PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
© Dunod – Toute reproduction non autorisée est un délit.

SELECT *
WHERE {
?s ?p ?o.
?s a <http://linkedgeodata.org/ontology/Pontoon>.
?s geo:hasGeometry / geo:asWKT ?dwkt.
?x ?y ?z.
?x a <https://schema.org/PondBodyOfWater>.
?x geo:hasGeometry / geo:asWKT ?lwkt.
FILTER (geof:sfIntersects(?dwkt, ?lwkt) && geof:relate(?dwkt, ?lwkt,
‘1FF00F212’)).
}

25
Chapitre 3
Localisation sur Terre
Introduction
La littérature concernant la localisation sur Terre est abondante. L’Institut national de l’infor-
mation géographique et forestière (IGN), maître en ce domaine, diffuse une information très
complète (SEIG 2017, ENSG s.d.). Le manuel de SAVANE (Souris 2014) et la documentation
d’ESRI (Kennedy et Kopp 1994-2000) sont également incontournables. Ce chapitre simplifie
intentionnellement les notions de projection pour n’exposer que l’essentiel indispensable
à l’utilisation d’un SIG.

Objectifs Plan
Maîtriser les notions de cartographie 1 Représentation du globe
indispensables à l’utilisation d’un SIG. terrestre
Comprendre le système de coordonnées de 2 Système géodésique
référence incluant le système géodésique 3 Changement de système
et les projections. géodésique
4 Coordonnées géographiques
5 Coordonnées
cartographiques
6 Exemple de projection
7 Changement de système de
coordonnées de référence
8 Calcul d’une distance ou
d’une surface

1 Représentation du globe terrestre


Pour faciliter le repérage d’un point sur le globe terrestre, deux ensembles de lignes
imaginaires sont tracées à sa surface, les parallèles et les méridiens (Fig. 3.1).
Les parallèles forment des cercles parallèles à l’équateur. L’équateur est le parallèle
de référence. Il partage le globe en deux hémisphères, l’hémisphère nord et l’hémisphère
sud. La latitude est la distance mesurée en degré qui sépare une position à la surface du
globe de l’équateur. Quatre autres parallèles découpent le globe :
• le cercle polaire arctique se situe à la latitude 66,34° au nord de l’équateur ;
• le cercle polaire antarctique à la latitude 66,34° au sud de l’équateur ;
• le tropique du Cancer à la latitude 23,26° nord ;
• le tropique du Capricorne au 23,26° sud.

26
Chapitre 3 • Localisation sur Terre

pôle Nord
ce 90°N
rc
le
arc
tiqu 66°33'N
e

h
ic
nw
tro

ee
piq

Gr
ue
du

de
Can
cer
ien
23°27'N
éq
ua
rid
te ur

tro
piq 0°
ce ue
rcl du
C ap
e an ricor
tar ne
ctiq 23°27'S
ue
90°S 66°33'S
pôle Sud

Figure 3.1 – Parallèles et méridiens du globe terrestre.

Les méridiens forment des lignes verticales qui rejoignent les deux pôles. Aujourd’hui,
le méridien de référence est le méridien de Greenwich qui passe par l’observatoire de
Greenwich situé à proximité de Londres. La longitude est la distance mesurée en degré
qui sépare une position à la surface du globe du méridien de Greenwich. Les méridiens
sont numérotés par ordre croissant d’ouest en est à partir du méridien de référence pour
les méridiens est, et d’est en ouest pour les méridiens ouest. Le méridien 180°, situé à
l’opposé de celui de Greenwich, correspond à la ligne de changement de date.
Toute position peut être repérée à partir de ses coordonnées en latitude/longitude qui
dépendent dans leur formulation la plus courante d’un modèle de la forme de la Terre
appelé système géodésique.
© Dunod – Toute reproduction non autorisée est un délit.

2 Système géodésique
La sphère constitue la représentation la plus simple de la Terre mais l’ellipsoïde est le
plus souvent utilisé (Fig. 3.2). La traduction anglaise de système géodésique est datum.

sphère ellipsoïde
Figure 3.2 – Deux représentations de la forme de la Terre : sphère et ellipsoïde.

27
Partie 1 • Partie théorique

L’ellipsoïde est défini par les dimensions de son demi-grand axe a et de son demi-
petit axe b. Des auteurs préfèrent le définir par son demi-grand axe a et le coefficient
2
d’aplatissement f = a − b ou le carré de l’excentricité e2 = ( a − b ) . Ces définitions sont
a a 2
strictement équivalentes (Fig. 3.3).

petit axe
demi-
axe majeur

demi-grand axe

mineur
axe

Figure 3.3 – Ellipsoïde, objet mathématique.

Plusieurs systèmes géodésiques sont issus des améliorations successives de la qualité


de l’estimation de la forme de la Terre (Tab. 3.1).

Tableau 3.1 – Exemples de systèmes géodésiques.

Systèmes Méridien
géodésiques Ellipsoïde a b 1/f e origine Unité

NTF Clarke 6378249,2 6356515,0 293,466021 0,08248325676 Paris grade


1880 IGN

ED50 Hayford 6378388,0 6356911, 297,000000 0,08199188998 Potsdam degré


1909 9461

RGF93 IAG GRS 6378137,0 6356752, 298,257222101 0,08181919106 Greenwich degré


1980 314

WGS84 WGS 84 6378137,0 6356752, 298,257223563 0,08181919132 Greenwich degré


314140

a : demi-grand axe, b : demi-petit axe, 1/f : inverse du coefficient d’aplatissement, e : excentricité.

L’ellipsoïde ne constitue pas un modèle parfait et le géoïde améliore la représentation


de la forme de la Terre (Fig. 3.4).
Le géoïde correspond à une équipotentielle du champ de gravité terrestre choisie de
manière à coller au plus près de la surface terrestre. Il rend compte de l’inégale réparti-
tion des masses à l’intérieur de la Terre. Il correspond au niveau moyen des océans en
l’absence de vent, de courants et de marées. Sur la terre ferme, le niveau de l’eau dans
un canal imaginaire connecté à l’océan définirait le géoïde.
Le choix du modèle de la représentation de la Terre influe sur la précision de mesure
de distance ou d’altitude qui ne peuvent être dissociées (Bouteloup 2006). L’altitude d’un
point donné peut être mesurée de plusieurs manières. La « meilleure » mesure serait celle
qui permettrait de prédire la dynamique de l’écoulement des rivières. Ne pas prendre
en compte le géoïde pour des fleuves comme l’Amazone, s’étirant sur des milliers de
28
Chapitre 3 • Localisation sur Terre

anomalies du champ de gravité en milligals

-50 -40 -30 -20 -10 0 10 20 30 40 50


Figure 3.4 – Le géoïde. (Crédit Esa)

kilomètres, peut conduire à des inversions de sens d’écoulement ! (Callède et al. 2013).
Le GPS fournit une mesure imparfaite de l’altitude par l’estimation de la distance h, à la
normale du point sur l’ellipsoïde, entre le point et l’ellipsoïde Cette altitude est nommée
« altitude géodésique » ou « altitude ellipsoïdale ». Mais il est plus exact de considérer l’al-
titude comme la distance H, à la verticale d’un point (direction donnée par le fil à plomb),
entre le point et le géoïde (Fig. 3.5). Cette altitude est appelée « altitude orthométrique »
ou « altitude vraie ». Si la pente du géoïde est négligée, l’altitude orthométrique peut être
calculée par la formule H = h − N, N étant l’ondulation qui correspond à la hauteur entre
le géoïde et l’ellipsoïde. D’autres méthodes dont certaines sont très anciennes (Levallois
1988), fondées sur la triangulation et les techniques de nivellement, permettent d’obtenir
des cartes de grande qualité géométrique. La difficulté est souvent de raccrocher ces cartes
à un système géodésique de caractéristiques connues (Naizot et al. 2002).
Pour améliorer la représentation d’une zone géographique donnée, des systèmes
géodésiques locaux, aussi appelés datums locaux, furent créés. Ils ne sont valides
que dans une région géographique limitée (Fig. 3.6). L’International Hydrographic
verticale du lieu
© Dunod – Toute reproduction non autorisée est un délit.

relief réel normale à l'ellipsoïde


géoïde
ellipsoïde de référence

mer

Figure 3.5 – Mesure d’altitude.


h : altitude géodésique, H : altitude orthométrique, N : ondulation.
29
Partie 1 • Partie théorique

Organization (IHO) publie une liste de systèmes géodésiques locaux utilisés à travers
le monde (IHO 2008).

bon ajustement bon ajustement global


dans cette zone

ellipsoïde
géoïde
datum local datum global
Figure 3.6 – Principe d’un système géodésique local.

Les agences spatiales fournissant actuellement des données géo-référencées dans


le système WGS84, les systèmes géodésiques locaux sont de moins en moins utilisés.

3 Changement de système géodésique


Pendant très longtemps, les techniques géométriques reposant sur la triangulation s’ap-
puyaient sur un point connu dans un système géodésique local. Puis la connaissance de
la forme de la Terre s’est progressivement améliorée donnant naissance à de nouveaux
systèmes géodésiques. En France, la Nouvelle Triangulation de la France (NTF) utilisant
l’ellipsoïde de Clarke 1880 fut remplacée à la fin du xxe siècle par le Réseau géodésique
français 1993 (RGF93) associé à l’ellipsoïde IAG-GRS80 très proche de WGS84. Dans
d’autres pays, au Laos par exemple, un système géodésique local reposant sur l’ellipsoïde de
Krassovsky 1940 a longtemps été employé. Aujourd’hui, le système WGS84 s’est imposé de
manière quasi universelle. Pour comparer ces données enregistrées dans différents systèmes
géodésiques, une transformation est nécessaire. Elle repose sur de simples translations
(Fig. 3.7) ou sur des combinaisons de translations, rotations et mise à l’échelle (Fig. 3.8).
Les formules sont exprimées avec des coordonnées géocentriques tridimensionnelles.

Z
Z
Y
Y
ΔX
X
ΔY
ΔZ

at X
um
d

at rés X ΔX X
um ultat
d

init Y = ΔY + Y
ial
Z résultat ΔZ Z initial

Figure 3.7 – Transformation de système géodésique par la formule


de trois paramètres.
30
Chapitre 3 • Localisation sur Terre

Z
rz

datu
m ré
su
lta
t

ry

rx
da
tu
ΔZ
m
in

Y
itia
l

ΔX

ΔY
X
X ΔX 1 rz -ry X
Y = ΔY + (1+s) z 1
-r rx Y
r -r 1
résultat ΔZ
Z y x Z initial

Figure 3.8 – Transformation de système géodésique par la formule de sept


paramètres, également appelée transformation de Helmert.

Des transformations polynomiales peuvent également être utilisées mais leur validité
est limitée à des espaces géographiques restreints.

4 Coordonnées géographiques
La localisation d’un point est définie par ses coordonnées géographiques : latitude, longi-
© Dunod – Toute reproduction non autorisée est un délit.

tude et altitude. Les coordonnées géographiques s’expriment en coordonnées sphériques.


Les unités de mesure des coordonnées sphériques sont des unités d’angle.
La longitude l est égale à l’angle entre le plan du méridien-origine et le plan du méri-
dien du lieu (Fig. 3.9). Le méridien de Greenwich a été choisi de manière arbitraire en
1884 comme référence internationale pour la mesure de la longitude.
La latitude peut être enregistrée de trois manières (Fig. 3.10) :
• la latitude géodésique ou géographique £ est égale à l’angle entre la normale à
l’ellipsoïde de référence et le plan équatorial. Elle est acquise par le GPS et elle est
actuellement utilisée pour construire la plupart des cartes ;

31
Partie 1 • Partie théorique


e
rigin

rid
ie
o

nd
méridien

u lieu
λ longitude

ellipsoïde

Figure 3.9 – Longitude.

• la latitude astronomique j est égale à l’angle entre la verticale du lieu et le plan


équatorial. Elle est mesurée à partir d’observations (navigation astronomique, nivel-
lement topographique) ;
• la latitude géocentrique i’ est égale à l’angle entre une droite menée du centre de la
Terre au plan équatorial. Elle est employée en astronomie.

vecteur normal

Ø φ' φ
uatorial
plan éq Ø
e
s oïd
ellip
de
s oï
ellip

Figure 3.10 – Mesure de latitude.


∅ : latitude géographique, j : latitude astronomique, j´ : latitude géocentrique.

La latitude géographique, tout comme la longitude, dépendent du système géodésique


car leur estimation est fonction de la forme de l’ellipsoïde. La position de la tour Eiffel à
Paris de coordonnées géographiques (48°51′29″N, 2°17′40″E) mesurée dans le système
géodésique WGS84 est décalée de 140 m si le système ED50 lui est substitué (IOGP
2008).

32
Chapitre 3 • Localisation sur Terre

5 Coordonnées cartographiques
Les données de positionnement enregistrées sous forme de latitude et de longitude
doivent être projetées dans un repère plan pour, par exemple, les positionner sur une
carte topographique (Fig. 3.11). Les coordonnées cartographiques s’expriment en unités
de longueur.

projection
75°
60°

45°

30°
20 ° N

15°
0° 102°E
0° 15° 45° 60°
30°

coordonnées géographiques coordonnées cartographiques


latitude Ø, longitude λ plan X,Y
angle en degré distance en mètre
Figure 3.11 – Notion de projection.

Les projections cartographiques, qui consistent à passer d’une localisation d’un espace
à trois dimensions vers un espace plan, introduisent des déformations dans la localisation
des données dont l’importance varie souvent en fonction de la localisation géographique
sur le globe. Pour cette raison, de nombreuses familles et types de projection existent.
Trois grandes familles de projection existent : azimutale ou planaire, conique,
cylindrique.
L’espace d’arrivée des projections planaires est une surface plane touchante ou sécante
au globe (Fig. 3.12). La déformation due à la projection sera d’autant plus faible que le
point de tangence est proche de la zone concernée.
© Dunod – Toute reproduction non autorisée est un délit.

polaire équatoriale oblique


Figure 3.12 – Projection azimutale.

L’espace d’arrivée des projections coniques est un cône qui peut être tangent au
globe, au point appelé standard parallèle ou sécant au niveau des deux standards
parallèles (Fig. 3.13). Ces projections coniques sont adaptées aux zones de latitude
moyenne. Les projections Lambert utilisées en France se différencient par le point de
tangence et elles doivent être choisies en fonction de la latitude du lieu étudié.

33
Partie 1 • Partie théorique

méridien central méridien central

parallèles standards
parallèle standard

Figure 3.13 – Projection conique.

L’espace d’arrivée des projections cylindriques est un cylindre. Elles se différencient


par la position du cercle, partie du cylindre, sécant au globe (Fig. 3.14). La projection
Transverse Universelle de Mercator (Universal Transverse Mercator, UTM) découpe
le globe en 60 fuseaux de 6 degrés. L’UTM entraîne peu de déformation au niveau de
l’équateur et des déformations acceptables aux latitudes moyennes. Elle est inadaptée aux
pôles. Elle constitue un bon compromis pour l’ensemble du globe, raison pour laquelle
elle est souvent retenue, en particulier par les fournisseurs de données.

normale transverse oblique


Figure 3.14 – Projection cylindrique.

Les projections de la surface terrestre ne peuvent conserver à la fois les angles, les
longueurs et les surfaces :
• les projections équivalentes conservent localement les surfaces ;
• les projections conformes conservent localement les angles et par conséquent
les formes ;
• les projections équidistantes conservent localement les distances.

6 Exemples de projection
Chaque projection est adaptée à une région du globe et à un usage en minimisant un
type de déformation pour une zone géographique donnée. L’indicatrice de Tissot permet
d’apprécier visuellement la qualité d’une projection en fonction de la zone géographique.

34
Chapitre 3 • Localisation sur Terre

Les déformations d’un cercle tracé sur la surface terrestre sont matérialisées, lors de sa
projection, par une ellipse dont la taille, la forme et l’orientation dépendent de sa loca-
lisation sur le globe terrestre.
La projection orthographique, projection azimutale dont le point de perspective est un
point infini dans l’espace, sur le côté opposé de la Terre, est adaptée à la représentation
des pôles (Fig. 3.15) 1.

Figure 3.15 – Projection orthographique du pôle Nord et indicatrice de Tissot.


La projection azimutale équidistante (Fig. 3.16) est intéressante pour la navigation car
la distance et la direction mesurée à partir du point central de la projection sont exactes.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 3.16 – Projection azimutale équidistante et indicatrice de Tissot.

1. Les figures de ce chapitre sont réalisées avec le logiciel R du CRAN en s’appuyant sur les biblio-
thèques ggplot2 et rworldmap.
35
Partie 1 • Partie théorique

Parmi les projections coniques, l’une des plus utilisées est la projection conique
conforme de Lambert. En France, l’IGN l’emploie depuis le début du siècle pour deux
raisons (Sillard 2000) :
• son caractère conforme facilite la transposition cartographique des relevés par
triangulation ;
• elle occasionne également de faibles déformations pour des territoires situés aux
petites latitudes. Ces déformations sont d’autant plus faibles que la zone étudiée est
proche du point de contact entre le cône et l’ellipsoïde.
L’IGN a initialement adopté une projection conique conforme, associée au système
géodésique NTF, utilisant l’ellipsoïde de Clarke 1880, ayant comme origine le méridien
de Paris. La France est découpée en quatre zones du nord au sud qui se différencient
par la latitude à l’origine (Fig. 3.17). La déformation due à la projection Lambert est
représentée sur la figure 3.18.

51°

Lambert I
50°

49°

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

48°

47°

Lambert II
46°

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

45°

44°

43°

Lambert III

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

42°

Lambert IV 43°

41°

8 9 10

Figure 3.17 – Projections Lambert I, II, III et IV.


36
Chapitre 3 • Localisation sur Terre

Figure 3.18 – Indicatrice de Tissot pour une projection Lambert II.

Depuis 2000, pour répondre à une recommandation du Groupe « Obligation de


rattachement » de la Commission des référentiels du CNIG (Conseil national de l’in-
formation géographique), la projection préconisée en France est le Lambert 93. Le
système géodésique utilisé est le RGF93 associé à l’ellipsoïde IAG GRS 1980, très
proche de l’ellipsoïde WGS84. Neuf zones se recouvrant partiellement sont définies
pour l’ensemble de la France. Les neuf zones CC sont centrées sur des parallèles du 42e
au 50e degré de latitude nord, avec une emprise de 1 degré de latitude de part et d’autre
de ces parallèles. À chaque zone est associée une projection conique conforme sécante
portant la dénomination CCxx (xx étant la latitude du parallèle origine) soit CC42,
© Dunod – Toute reproduction non autorisée est un délit.

CC43, CC44, CC45, CC46, CC47, CC48, CC49 et CC50 (Fig. 3.19). Ce découpage
assure un recouvrement de 50 % entre deux zones consécutives. L’altération linéaire
est comprise entre - 9 cm/km et + 7 cm/km.
La projection cylindrique équidistante (encore appelée plate carrée, projection équi-
rectangulaire ou projection géographique) est très simple (Fig. 3.20). Les coordonnées
polaires de latitude et longitude sont considérées comme des coordonnées planes. Les
méridiens sont projetés sur des lignes verticales régulièrement espacées. De même, les
parallèles sont projetés sur des lignes horizontales régulièrement espacées. Les distances
sont conservées le long des méridiens. Cette propriété donne le qualificatif d’équidistant
à cette projection.

37
Partie 1 • Partie théorique

9
8
7
6
5
4
3
2
1

Figure 3.19 – Projections Lambert CC9 zones.

Figure 3.20 – Projection cylindrique équidistante et indicatrice de Tissot.


La projection UTM est une projection cylindrique conforme de la surface de la Terre
(Fig. 3.21). L’axe du cylindre croise perpendiculairement l’axe des pôles au centre de
l’ellipsoïde. La Terre est découpée en 60 fuseaux de 6 degrés de longitude. La projection
de l’équateur est une droite perpendiculaire au méridien central. La représentation étant
conforme, les méridiens et les parallèles sont des courbes perpendiculaires. Pour obtenir
des coordonnées positives, une constante égale à 500 000 m est ajoutée aux abscisses,
et dans l’hémisphère sud les ordonnées sont calculées par la formule 10 000 000 – y
exprimées en mètre. Dans un fuseau, l’altération des longueurs est inférieure à 1/1 000.
Cette projection UTM est la plus utilisée dans le monde.
Les données modis sont souvent fournies par l’Institut d’études géologique des
États-Unis (USGS) dans une projection sinusoïdale (Fig. 3.22). La particularité de cette

38
Chapitre 3 • Localisation sur Terre

projection est de ne pas modéliser la Terre par un ellipsoïde mais par une sphère de
rayon égal à 6371007,181 m.

Figure 3.21 – Projection Universal Transverse Mercator et indicatrice de Tissot.


© Dunod – Toute reproduction non autorisée est un délit.

Figure 3.22 – Projection sinusoïdale et indicatrice de Tissot.

7 Changement de système de coordonnées


de référence
Le changement de système de coordonnées de référence (SCR) englobe le changement
de système géodésique et le changement de projection.
Le changement de SCR des couches vecteurs d’un système de coordonnées cartogra-
phiques vers un autre système de coordonnées cartographiques comprend trois étapes :

39
Partie 1 • Partie théorique

1. Les coordonnées cartographiques sont transformées en coordonnées géographiques


(latitude/longitude).
2. Si le système géodésique diffère entre les deux systèmes cartographiques, une
conversion est réalisée (cf. paragraphe 3). Pour cette opération, les coordonnées
géographiques doivent être transformées en coordonnées géocentriques (ECEF :
earth-centered, earth-fixed).
3. Les coordonnées géographiques sont projetées dans le nouveau système cartographique.
L’étape 1 n’est évidemment pas nécessaire pour le changement d’un système géogra-
phique vers un système cartographique. Réciproquement, l’étape 3 n’est pas réalisée pour
un changement d’un système cartographique vers un système géographique.
Des transformations directes qui n’utilisent pas de conversions intermédiaires en
coordonnées géocentriques et/ou géographiques existent. Les mises en correspondance
géométriques de grilles assurent une conversion directe entre des systèmes de coor-
données cartographiques ou géographiques. La méthode de Molodensky permet des
changements de systèmes de coordonnées géographiques sans calcul de coordonnées
géocentriques.
Pour les vecteurs, ces transformations ne recourent qu’à de simples opérations géomé-
triques qui ont peu de conséquence sur la qualité des données. Seules les coordonnées
des points sont recalculées. La topologie n’est pas modifiée. Les imprécisions liées aux
calculs étant négligeables devant les sources d’erreurs liées aux levées des données, cette
opération ne demande pas de précaution particulière.
Au contraire, le changement de SCR des rasters est plus complexe. Une première
transformation géométrique qui s’apparente aux étapes de changement des SCR des
vecteurs conduit à calculer une nouvelle grille correspondant à la position du centre
des pixels du SCR source dans le SCR cible. Comme le centre des pixels ne s’aligne
pas avec ceux de l’image source (Fig. 3.23), un ré-échantillonnage doit être réalisé.
Trois méthodes existent (Caloz et Collet 2001) :
• la méthode des plus proches voisins est la méthode la plus rapide. Elle consiste à
affecter au pixel de la nouvelle image la valeur du pixel de l’image source le plus
proche. Les valeurs des pixels restent inchangées ;
• l’interpolation bilinéaire utilise la valeur des quatre pixels les plus proches du pixel
de l’image source pour déterminer la valeur du pixel de l’image cible. La nouvelle
valeur est la moyenne pondérée des valeurs de ces quatre pixels par la distance les
séparant du centre du pixel de l’image cible ;
• la convolution cubique repose sur un principe similaire à l’interpolation bilinéaire
si ce n’est que la moyenne pondérée est calculée sur seize pixels de l’image source.
Cette méthode comme l’interpolation bilinéaire ne peut être utilisée sur les variables
qualitatives.
La méthode des plus proches voisins conduit à un effet visuel d’escalier. Certains pixels
de l’image source peuvent ne correspondre à aucun pixel de l’image cible ; leurs données
seront perdues. Et certains pixels de l’image source peuvent correspondre à plusieurs

40
Chapitre 3 • Localisation sur Terre

ro jection
rep

image source
image cible
Figure 3.23 – Transformation géométrique lors de la reprojection de raster.
En cercles noirs : centres des pixels de l’image source. En cercles blancs :
centres des pixels de l’image cible.

pixels de l’image cible ; leurs données seront dupliquées. Au contraire, l’interpolation


bilinéaire ou la convolution cubique lissent l’image.
Dans le cas multitemporel, les images ne se superposant pas entre les différents
passages du satellite, la méthode de ré-échantillonnage des plus proches voisins conduirait
à introduire des différences de valeurs de pixels qui ne seraient pas liées à un change-
ment temporel mais à un décalage des images entre acquisitions. Prenons l’exemple d’un
espace composé d’un lac jouxtant une prairie pour lequel deux acquisitions d’images
sont réalisées (Fig. 3.24). Dans la première image, l’eau contribue majoritairement à
la réflectance du pixel mixte. Dans la deuxième image, la prairie est essentiellement

image 1
du rges

lac
la c
be
© Dunod – Toute reproduction non autorisée est un délit.

image 2
prairie

pixel ré-échantillonné
Figure 3.24 – Influence de la position des images lors du ré-échantillonnage
d’acquisitions multiples par la méthode des plus proches voisins.

41
Partie 1 • Partie théorique

responsable de la réflectance de ce pixel. Si la méthode de ré-échantillonnage utilisée


est celle des plus proches voisins, au nouveau pixel ré-échantillonné, sera affectée une
réflectance associée plutôt à l’eau pour la première image et plutôt à la prairie pour la
seconde image. Les différences de réflectance entre les deux images après ré-échantillon-
nage ne sont pas dues à un changement d’occupation du sol mais à un artefact introduit
par la reprojection.
En résumé, la méthode des plus proches voisins convient aux variables qualitatives
(catégories d’occupation du sol…). L’interpolation bilinéaire qui interpole les valeurs
entre deux points convient aux modèles numériques de terrain. La convolution cubique
qui est en accord avec la physique du mode d’acquisition des capteurs optiques est utilisée
pour les photographies aériennes et les images satellite.

8 Calcul d’une distance ou d’une surface


La qualité du calcul des distances ou des surfaces dépend du SCR. S’il est cartogra-
phique, comme aucune projection ne conserve, pour des zones géographiques étendues,
les distances et les surfaces, leur calcul est affecté par la projection, en particulier si
celle-ci n’est pas adaptée au calcul de distance et/ou de surface. Si le calcul est réalisé
sur la sphère ou mieux l’ellipsoïde, l’approximation sera meilleure, d’autant plus que la
distance ou la surface sont importantes.
Le calcul de distance entre deux points localisés à la surface de la Terre peut donc
s’effectuer par plusieurs méthodes :
• prendre en compte le relief. Cette distance correspond en quelque sorte au chemin
parcouru par un voyageur qui se déplacerait sans changer de direction. Ce calcul
demande de prendre en compte le modèle numérique de terrain ;
• calculer sur l’ellipsoïde de référence du système de coordonnée utilisé ;
• calculer sur l’ellipsoïde de la route fictive tracée entre les deux points ;
• calculer à partir des coordonnées projetées. Si la mise en œuvre est possible, le choix
d’une projection équidistante est logique.
La méthode 1 correspond à un observateur qui se déplacerait à la surface de la Terre,
sans emprunter les chemins et sans limiter ses efforts en évitant les montagnes. La
méthode 3 s’apparente à un vol d’avion. La méthode 2 implémentée dans peu de logiciels
fournit de meilleurs résultats que la méthode 4, la plus courante.
Sillard (2000) établit une comparaison de ces méthodes par le calcul de la distance sépa-
rant le Sud de l’Espagne du Nord de la Scandinavie. La distance géodésique (méthode 2)
calculée sur l’ellipsoïde WGS84 est de 3 719 km. La distance vraie (méthode 3) calculée
sur l’ellipsoïde de la route fictive entre les deux points est de 3 739 km. La distance
calculée à partir des coordonnées projetées en Lambert II (méthode 4) donne une distance
de 3 850 km.

42
Chapitre 3 • Localisation sur Terre

Le calcul de la surface pose des problèmes similaires. Plusieurs méthodes sont


possibles :
• conserver les « vraies » surfaces mesurées selon la pente et à leur altitude. Les surfaces
sont calculées dans une application opérant en 3D sur un modèle numérique de terrain ;
• calculer la surface réduite à l’horizontale et au niveau zéro, selon la méthode pratiquée
par le cadastre français ;
• calculer la surface sur l’ellipsoïde de référence du système de coordonnées utilisé. Le
Géoportail de l’IGN utilise cette méthode ;
• calculer la surface à partir des coordonnées projetées. Si la mise en œuvre est possible,
le choix d’une projection équivalente est logique.
Ces méthodes donneront des résultats différents en fonction de l’emprise considérée.
La méthode 1 est adaptée à l’estimation de la surface d’une parcelle. Le résultat serait
très différent si le calcul était effectué par les autres méthodes, en particulier en présence
d’une forte pente. Pour de grandes emprises, la méthode 3, encore peu implémentée dans
les SIG, fournit de meilleurs résultats que la méthode 4, la plus courante.
Le plus souvent, les SIG utilisent pour leurs calculs de distance ou de surface un SCR
associé à une projection. Les erreurs liées à ce choix deviennent importantes lorsque
les altérations linéaires dues à la projection sont conséquentes. Pour donner un ordre de
grandeur, une imprécision de 10 m sur un périmètre de 400 km conduit un écart de 4 km².
© Dunod – Toute reproduction non autorisée est un délit.

43
Chapitre 4
Composition de carte
Introduction
La réalisation d’une carte doit répondre à une logique scientifique pour être comprise. Les
notions de couleur, de niveaux de gris, les règles de représentation graphique sont à la
base de la sémiologie graphique dont Bertin (1967) reste le maître incontesté. La carte
géographique doit respecter ces règles et s’ancrer dans l’espace, ce qui lui confère une
spécificité (Weger 1999).

Objectifs Plan
Connaître la sémiologie graphique utile à la 1 Spécificité d’une carte
réalisation d’une carte. géographique
Appréhender la représentation des données 2 Couleur
issues de la télédétection. 3 Niveaux de gris
4 Sémiologie graphique des
objets
5 Standardisation des
symbologies
6 Représentation des rasters

1 Spécificité d’une carte géographique


Une carte géographique décrit l’espace et, à ce titre, sa représentation présente des spéci-
ficités propres à la représentation d’un repère cartographique. Sur une carte doivent être
indiqués l’échelle, la localisation, l’orientation et le SCR.
Deux formes de représentation de l’échelle existent :
•• la première, graphique, est la plus simple à mettre en œuvre à l’aide d’un SIG car elle
ne dépend pas du format final d’impression du document cartographique ;
•• la deuxième, numérique, se rencontre souvent sur les cartes papier. Elle s’exprime par
un rapport 1/20 000, 1/50 000, etc. 1/50 000 signifie que 1 mm sur la carte représente
50 000 mm sur le terrain, soit 50 m. La double représentation est possible comme sur
l’exemple en bas de la figure 4.1.

44
Chapitre 4 • Composition de carte

0 500 1 000

kilomètres

0 250 500 750 1 000 km

0 250 500 750 1 000 km

échelle de 1/20 000

Figure 4.1 – Représentations graphiques de l’échelle d’une carte.

L’échelle est complétée par les coordonnées indiquées en marge de la carte. Elles
assurent la localisation de la carte. Différents SCR sont souvent portés en marge
des cartes. Par exemple, sur la carte d’Eymet (Fig. 4.2) figurent les coordonnées
cartographiques en Lambert III et en UTM. La projection Lambert III, projec-
tion Lambert conique de l’ellipsoïde de Clarke 1880 IGN est le SCR utilisé pour

Coordonnées géographiques du coin de feuille


Latitude et longitude
en degrés, méridien origine Greenwich
Système ED50
Latitude et longitude
en grades, méridien origine Paris Longitude par rapport à Greenwich
Système NTF croissant vers l'est
(Feuille située à l'est du méridien de Greenwich)
0°22' 0°23' 0°24'

km du fuseau adjacent (30) Quadrillage


UTM
766 292 767 293 768 294 km du fuseau de la feuille (31) axe X
ST
E-

Subdivision en minutes (Greenwich) Échelle


FO 17

des
Y- -36

0°21'28"

Subdivision en centigrades (Paris) longitudes


LA
-G

444 444 445 445 446 446 Lambert zone II étendu Quadrillage
2,20 gr
RA

Lambert
Lambert zone de la feuille (III) axe X
ND

44°49'16"
E

49,80 gr 2,19 gr 2,18 gr 2,17 gr


Longitude par rapport à Paris
croissant vers l'ouest
44°49' (Feuille située à l'ouest du méridien origine)
4966
4968

3281
1981
49,79 gr
Latitude
en degrés
rapportées
au système Latitude 1837 EYMET 1 : 50 000 coin N.O.
ED50 en grades
4965 rapportées
4967 au système
Lambert
Exemple de la feuille au 1 : 50 000 de
(NTF)
Eymet N°1837
© Dunod – Toute reproduction non autorisée est un délit.

3280
1980 49,78 gr
Cette carte est située dans la zone
44°48' Lambert III et dans le fuseau UTM 31
4964
4966

3279
1979

km du fuseau adjacent (30) Quadrillage


UTM
km du fuseau de la feuille (31) axe Y
Subdivision en minutes (ED50) Échelle
des
Subdivision en centigrades (NTF) latitudes

Lambert zone II étendu Quadrillage


Lambert
Lambert zone de la feuille (III) axe Y

Figure 4.2 – Carte d’Eymet (Bouron 2005).

45
Partie 1 • Partie théorique

construire la carte. L’UTM zone 31N de l’ellipsoïde WGS84 facilite l’utilisation


des GPS. Sur cette carte, les coordonnées géographiques, latitude et longitude,
sont également indiquées ponctuellement en degré dans le système ED50 (méridien
origine : Greenwich) et en grades dans le système NTF (méridien origine : Paris).
Le SCR utilisé pour construire la carte est indiqué dans le cartouche qui est un
rectangle contenant les informations relatives à la réalisation de la carte : auteur,
SCR, sources, etc.
L’orientation différencie trois types de nord :
•• le nord magnétique est situé près du pôle Nord, à la surface de la Terre, dans
les îles de la reine Elizabeth, dans les territoires du Nord-Ouest, au Canada.
L’aiguille aimantée de la boussole indique cette position. Elle varie légèrement
d’année en année ;
•• le nord géographique, appelé communément le pôle Nord, est l’endroit où aboutissent
tous les méridiens ;
•• le nord du quadrillage, encore appelé nord cartésien ou nord de la carte, est la posi-
tion portée sur la carte. Il est légèrement différent du nord géographique parce que
les projections entraînent une légère distorsion.
Afin que l’utilisateur puisse orienter sa carte avec une boussole, un croquis comporte
les directions du nord géographique, du nord magnétique et la valeur de la déclinaison
(Fig. 4.3). La déclinaison est l’angle entre le nord magnétique et le nord géographique.
Comme il varie en fonction du lieu et du temps, il est donné à une date donnée et il est
valable pour le centre de la feuille. Exceptionnellement, les cartes peuvent ne pas être
orientées nord-sud. Par exemple, les cartes marines sont orientées perpendiculairement
au trait de côte.

nord magnétique
nord géographique
0°8'

Figure 4.3 – Croquis de déclinaisons magnétiques.

Sans échelle, localisation et orientation, une carte est incomplète. Insistons sur l’impor-
tance de ces données qui sont essentielles pour situer la carte dans l’espace. Abstraction
faite de ces spécificités, la sémiologie graphique d’une carte est la même que celle de
toute représentation graphique réalisée dans un cadre scientifique.

46
Chapitre 4 • Composition de carte

2 Couleur
La couleur possède des caractéristiques esthétiques évidentes mais sa perception dépend
de la physiologie de chaque individu. Certains sujets possèdent des altérations patho-
logiques de la vision colorée (daltonisme) ou tout simplement un discernement plus ou
moins bon des couleurs qui, de plus, dépend de la fatigue.
La couleur influence notre comportement et, en conséquence, notre ressenti des objets
cartographiques :
•• le bleu est reposant et invite à la méditation ;
•• le rouge est excitant et stimulant ;
•• le vert donne confiance et sérénité.
La couleur a un impact sur nos sensations :
•• le noir réduit l’espace, le blanc l’augmente ;
•• les teintes chaudes (du jaune au rouge) sont plus gaies que les teintes froides (bleues et vertes).
Nos environnements culturels et notre éducation modifient également notre ressenti
des couleurs. La difficulté pour obtenir du bleu à partir de pigments naturels a engendré
un mépris pour cette couleur chez les Romains qui l’ont attribuée aux ennemis. En Inde,
l’indigo est la couleur emblématique de la caste la plus basse. Pour les peuples arabes,
la couleur bleue est associée au froid, aux impies, aux peuples du nord. En Asie, elle est
menaçante, couleur de mort. Mais cette méfiance du bleu va évoluer vers une approbation
généralisée et, dans la majorité des pays occidentaux, le bleu bénéficie d’une grande
positivité, perçue comme neutre, pacifique. Le succès du jean démontre son acceptation.
Plusieurs modèles colorimétriques existent. Les principaux sont le modèle RVB, le
modèle CMJ et le modèle TSL :
•• le modèle RVB (rouge, vert, bleu) ou RGB (red, green, blue) repose sur la synthèse
additive. Trois couleurs primaires (rouge, vert, bleu) restituent par leur association
toutes les autres. Le noir est obtenu par combinaison des valeurs les plus faibles pour
les trois couleurs ; le blanc par la combinaison des valeurs les plus élevées. L’œil
utilise ce modèle. Il perçoit les couleurs au travers de trois types de cônes, chacun
sensible à l’une des couleurs primaires additives. L’affichage des couleurs sur un écran
© Dunod – Toute reproduction non autorisée est un délit.

de télévision ou d’ordinateur, à l’aide d’un vidéoprojecteur, est basé sur ce modèle ;


•• le modèle CMJ (cyan, magenta, jaune) ou CMY (cyan, magenta, yellow) utilise la
synthèse soustractive. Chaque couleur est obtenue par un mélange, en proportion
adéquate, des trois couleurs primaires soustractives (cyan, magenta, jaune). Ce modèle
est utilisé en imprimerie. L’absence d’encre correspond au blanc ;
•• le modèle TSL (teinte, saturation, luminosité) ou HSL (hue, saturation, lightness) est
plus intuitif. Il se rapproche fortement de la perception physiologique de la couleur
par l’œil humain. La simplicité de la conversion du modèle TSL en RVB facilite son
implémentation dans les logiciels de traitement d’image (Fig. 4.4). Il est représenté par
deux cônes inversés placés l’un au-dessus de l’autre (Fig. 4.5). La teinte qui corres-
pond à la perception de la couleur est mesurée sur une échelle circulaire (cercle de

47
Partie 1 • Partie théorique

chromaticité de Newton) par un angle de 0° à 360°. La saturation mesure le degré de


pureté d’une couleur, quantité de gris ajoutée à la couleur. Elle est représentée par le
rayon d’une section circulaire du cône et varie de 1 (pure ou saturée) à 0 (niveau de
gris correspondant). La luminosité représente le degré d’éclaircissement ou d’assom-
brissement d’une couleur. Elle est définie selon une échelle linéaire allant de 0 (noir)
à 1 (blanc) en passant par tous les niveaux de gris.
Le modèle TSL basé sur un cercle chromatique a l’avantage de présenter les teintes
complémentaires face à face et dans l’ordre logique des couleurs spectrales. Les mélanges
entre complémentaires donnent une couleur neutre correspondant à un gris 50 % sur la
roue chromatique centrale. Le modèle TSL simplifie l’utilisation de la variable visuelle

Figure 4.4 – Différentes représentations du modèle TSV : roue de couleurs,


cône et correspondance RVB – TSV dans l’interface de GIMP (GNU Image
Manipulation Program). (Figure reproduite en couleur en fin d’ouvrage.)

Figure 4.5 – Modèle colorimétrique TSL. (Figure reproduite en couleur


en fin d’ouvrage.)

48
Chapitre 4 • Composition de carte

couleur. La teinte est utilisable comme variable de séparation. La saturation exprime


le niveau de vivacité d’une couleur par rapport aux couleurs du spectre lumineux. Les
variations de saturation construisent les camaïeux, si teinte et luminosité restent fixées.

3 Niveaux de gris
Le modèle niveaux de gris correspond à l’affectation de la même valeur aux couleurs
du modèle RVB. Dans le modèle TSL, les niveaux de gris se réduisent à la luminosité
(Fig. 4.6).

0 127 255

0% 50 % 100 %

Figure 4.6 – Modèle niveau de gris.

Ce modèle ne permet d’afficher qu’un seul canal d’une image et il se prête à l’ensemble
des techniques de traitement du signal : amélioration du contraste, égalisation d’histo-
gramme, filtres spatiaux, analyse de texture, etc. L’analyse des images couleur passe
souvent par un traitement séparé des canaux reposant sur ces techniques.

4 Sémiologie graphique des objets


Une représentation graphique doit permettre une lecture à plusieurs niveaux : de détail,
moyen et d’ensemble. Cette règle proscrit par exemple les collections de camembert qui
ne permettent pas une lecture d’ensemble (Bertin 1967). Tout comme les représentations
graphiques en analyse de données (Auda 1983), la représentation cartographique obéit
© Dunod – Toute reproduction non autorisée est un délit.

à des règles.
La représentation graphique d’une variable statistique se caractérise par une implan-
tation et une variable visuelle. En sémiologie graphique, la typologie des variables
statistiques distingue quatre types de variables :
•• une variable qualitative nominale sépare les individus sans les classer. L’occupation
du sol perçue au travers des cultures en constitue une bonne illustration ;
•• une variable qualitative ordinale classe les individus par ordre croissant. Par
exemple, la fertilité du sol peut être estimée par les qualitatifs faible, moyen ou élevé ;
•• les données quantitatives relatives s’expriment sous la forme d’un rapport (densité,
taux..). Le pourcentage d’argile dans des parcelles agricoles est calculé en divisant la
quantité d’argile par la quantité totale de sol des échantillons prélevés ;

49
Partie 1 • Partie théorique

•• les données quantitatives absolues correspondent à une mesure. Dans l’exemple


précédent, la quantité d’argile est une variable quantitative.
L’implantation d’une représentation graphique peut être : ponctuelle, linéaire ou
zonale (Fig. 4.7). L’implantation est souvent choisie en adéquation avec la géométrie
des vecteurs : point, ligne, polygone. L’implantation ponctuelle peut être utilisée pour
représenter les rasters mais l’implantation zonale lui est souvent préférée.

implantation ponctuelle

implantation linéaire

implantation zonale

Figure 4.7 – Implantations des variables graphiques.

Bertin (1967) définit six variables visuelles : la forme, l’orientation, le grain, la valeur,
la taille, et la couleur (Fig. 4.8). D’autres auteurs définissent une typologie légèrement
différente. Weger (1999) distingue la forme, la dimension, l’orientation, la valeur, la
couleur, la dynamique et la texture/structure. Béguin et Pumain (2014) ajoutent à la
typologie de Bertin la texture/structure. Mais la typologie de Bertin est suffisante et très
efficace pour concevoir une bonne représentation graphique par combinaison des six
variables visuelles. La texture/structure peut, par exemple, être construite par combi-
naison des variables visuelles de forme, d’orientation et de taille.

forme orientation grain valeur taille couleur

Figure 4.8 – Six variables visuelles de Bertin. (Figure reproduite en couleur


en fin d’ouvrage.)

50
Chapitre 4 • Composition de carte

La variation de forme convient aux implantations ponctuelles et surfaciques. Les


symboles utilisés peuvent être figuratifs, évoquer l’objet à représenter ou être stylisés sous
une forme préétablie ou simplement géométrique (Fig. 4.9). La densité des symboles peut
être utilisée pour représenter des variations de texture. La forme est uniquement sépara-
trice, adaptée aux variables qualitatives nominales. Les symboles doivent être utilisés en
nombre limité (5 à 7) et être suffisamment différenciables pour une meilleure efficacité.

figuratif évocateur conventionnel

Hôpital

Figure 4.9 – Symboles utilisés pour exprimer la forme : le figuratif,


l’évocateur et le conventionnel.

L’orientation définit l’angle entre un figuré et la verticale. En implantation linéaire, seule


deux orientations sont possibles, dans l’axe de la ligne et perpendiculairement à cet axe
(Fig. 4.10). Elle exprime des différences et elle convient aux variables qualitatives nomi-
nales. Elle gagne en efficacité à être combinée avec des variations de grain et de valeur.

Figure 4.10 – Variation d’orientation en implantation surfacique (en haut) et en


implantation linéaire (en bas).

La variation de grain s’obtient par agrandissement ou réduction d’un semis de taches sans
© Dunod – Toute reproduction non autorisée est un délit.

modifier les quantités de noir et de blanc par unité de surface (Fig. 4.11). Elle est adaptée à la
représentation de variables qualitatives ordonnées, particulièrement en implantation zonale.

Figure 4.11 – Variation de grain dans une structure trait (en haut)
et une structure point (en bas).

51
Partie 1 • Partie théorique

La valeur est définie comme la progression continue du rapport entre les quantités
de noir (ou de couleur) et les quantités de blanc sur une surface donnée. Par exemple en
aquarelle, un bleu outremer peut être graduellement dilué à l’eau pour réaliser une palette
quasi infinie de variation de valeurs (Fig. 4.12). Cependant, la capacité de l’œil humain
n’est pas infinie. Elle n’est pas uniforme tout au long du spectre, et elle est fonction de la
longueur d’onde. Notre œil perçoit plus de dégradés dans le rouge que dans le vert. En
cartographie, le nombre de paliers discernables est estimé à 6 du blanc au noir, 5 pour
les violets et rouges, 4 pour les bleus et orangés, 2 ou 3 pour les jaunes (Weger 1999).
Les valeurs claires traduisent une moindre importance du phénomène représenté ; le
blanc correspondant souvent à une valeur nulle ou une absence d’information. La valeur
est adaptée à la représentation de variables quantitatives relatives.

Figure 4.12 – Variation de valeur. (Figure reproduite en couleur en fin d’ouvrage.)

Camaïeu de bleu (en haut). Jeux de structure (en bas).

La taille est la seule variable visuelle adaptée à la représentation de variables quan-


titatives (Fig. 4.13).

Figure 4.13 – Variation de taille en implantation ponctuelle (en haut) et en


implantation linéaire (en bas).

Elle implique une modification proportionnelle de la taille par rapport à la quantité


à cartographier. En implantation surfacique, les paramètres de cette transformation
géométrique reposent sur des abaques ou sur un calcul :
Qi × Rref
Ri =
Qref

avec :
Ri rayon du cercle ;
Qi quantité à représenter ;
Rref rayon supportable choisi de manière à ne pas masquer les voisins ;
Qref maximum des Qi.

52
Chapitre 4 • Composition de carte

La taille maximale des cercles ne doit pas entraîner un trop fort chevauchement des
cercles. La taille minimale est limitée par la surface minimale du signe perceptible
(cercle : diamètre 0,2 mm).
La couleur, comme indiqué précédemment, est modélisable par trois composantes :
teinte, saturation et luminosité. La variation de teinte est utilisée pour représenter des
variables qualitatives. La variation de luminosité et/ou d’intensité combinée à des varia-
tions de valeur permet de construire des palettes de dégradés pour représenter des
variables quantitatives.
Implantation et variables visuelles sont combinées pour représenter les quatre types
de variables statistiques : qualitatif nominal, qualitatif ordinal, quantitatif relatif et
quantitatif absolu. La figure 4.14 résume l’usage des variables visuelles en fonction de
l’implantation et du type des variables statistiques.
Dans le cas de variables quantitatives, le signe des valeurs à représenter (positif,
négatif) peut être traduit, en implantation ponctuelle, par une variation de forme (carré,
cercle) associée à une variation de taille (surface du cercle ou du carré proportionnel à
la valeur) en prenant soin de garder, pour une même quantité, une surface équivalente

ponctuelle linéaire zonale

forme forme +
qualitatif forme couleur orientation couleur

nominal couleur

forme + forme + grain


orientation valeur orientation
valeur

qualitatif taille
ordinal taille couleur valeur couleur
couleur

forme + forme +
orientation valeur orientation grain
valeur
© Dunod – Toute reproduction non autorisée est un délit.

quantitatif
relatif couleur valeur couleur
couleur

points
comptables
taille
quantitatif taille
absolu
anamorphose
*
Figure 4.14 – Variables visuelles utilisées en fonction de l’implantation
pour représenter les variables statistiques. (Figure reproduite en couleur
en fin d’ouvrage.)

53
Partie 1 • Partie théorique

pour la représentation de la variable de taille (Auda 1983). Pour les variables quantitatives
relatives, le signe peut être traduit par une gradation de deux couleurs, couleur chaude
pour les quantités positives et couleur froide pour les quantités négatives.
Une représentation cartographique très particulière, l’anamorphose, conduit à déformer
les objets géographiques proportionnellement à leur valeur, c’est-à-dire à appliquer une
variation de taille en implantation surfacique. Une alternative à cette représentation est
la carte par points comptables qui consiste à représenter une variable quantitative par un
semis de points d’autant plus dense que la valeur de la variable est grande.

5 Standardisation des symbologies


L’internet conduit à la mise en commun de cartes conçues indépendamment. Si la
symbologie utilisée diffère selon les producteurs, l’assemblage des cartes conduira à
une composition visuelle non concordante, source de confusion. Par exemple, le réseau
des eaux usées d’un village sera représenté par un trait brun de fine épaisseur et celui
d’un autre village par un trait violet hachuré. Un standard de représentation des cartes est
donc nécessaire pour assurer l’interopérabilité des représentations diffusées sur l’Internet
(Bocher et Ertz 2018).
Actuellement, la norme OGC WMS est la seule norme qui décrit la manière dont
les clients Web peuvent demander des cartes avec une symbolisation prédéfinie par les
descripteurs de style (SLD) (Iosifescu-Enescu et al. 2010). Mais SLD (Lupp 2007), les
recommandations de l’INSPIRE Drafting Team (2014) ou les spécifications de symbo-
logie (SE) (Müller 2006) sont encore insuffisantes pour décrire toute la symbologie
graphique utilisée par les infrastructures de données spatiales (SDI). Par exemple, lors
de la superposition de plusieurs cartes, le SDI choisit une palette de couleur au hasard
que l’utilisateur pourra modifier, ce qui suppose une connaissance de sa part de la
symbologie adaptée.
Pour formaliser ces aspects et rendre possible leur automatisation, Iosifescu-Enescu et
Hurni (2007) définissent une ontologie cartographique en considérant que les éléments
constitutifs de la cartographie numérique sont les variables visuelles primaires (couleur,
opacité, texture, orientation, disposition, forme, taille, mise au point) et les motifs (dispo-
sition, texture et orientation). Pour la mise en œuvre, Bocher et Ertz (2020) ont développé
« Symbology Conceptual Core Model » (SymCore), un standard approuvé par l’OGC
qui fournit un vocabulaire, des référents communs, offrant la possibilité de constituer
des bibliothèques de descriptions cartographiques en accord avec la sémiologie de
Bertin (1967). SymCore est indépendant des codages de la symbologie et il accepte
des implémentations dans plusieurs formats (JSON, XML, CSS…). Cette souplesse
permet de répondre aux besoins de nombreuses disciplines (aéronautique, météorologie,
géologie…).

54
Chapitre 4 • Composition de carte

6 Représentation des rasters


Photographies aériennes et images satellite constituent la majorité des rasters importés
dans les SIG. Les autres rasters tels l’occupation du sol ou le résultat de classification sont
convertibles en polygones et la sémiologie de leur représentation renvoie à celle des objets.
Les photographies aériennes noir et blanc relèvent des techniques de représentation
par niveaux de gris : amélioration du contraste, égalisation d’histogramme…
La sélection de trois canaux des images satellite permet une représentation en couleur
appelée composition colorée qui affecte trois bandes spectrales d’un capteur satellite à
chacune des trois couleurs primaires (RVB) de l’image affichée. Le tableau 4.1 répertorie
différentes possibilités par sélection de trois bandes spectrales d’images Landsat (Tab. 4.2).

Tableau 4.1 – Différentes compositions colorées réalisées à


partir d’images satellite. R : rouge, G : vert, B : bleu, NIR : proche infrarouge,
SWIR1 : infrarouge court, SWIR2, infrarouge court 2, PAN : panchromatique.

Composition colorée RVB Bandes spectrales


Couleur naturelle RGB
Fausse couleur (urbain) SWIR2 SWIR1 R
Couleur infrarouge (végétation) NIR R G
Agriculture SWIR1 NIR B
Pénétration de l’atmosphère SWIR2 SWIR1 NIR
Végétation vigoureuse NIR SWIR1 B
Sol/Eau NIR SWIR1 R
Naturel sans atmosphère SWIR2 NIR G
Courtes longueurs d’onde SWIR2 NIR R
Végétation (la plus utilisée) SWIR1 NIR R

Tableau 4.2 – Bandes spectrales des satellites Landsat 7 et Landsat 8.

Bande spectrale Landsat 7 Landsat 8


© Dunod – Toute reproduction non autorisée est un délit.

Bleu 1 2
Vert 2 3
Rouge 3 4
NIR 4 5
SWIR1 5 6
SWIR2 7 7
PAN 8 8

La composition « NIR, rouge, vert » est la plus utilisée bien que la végétation soit
représentée en rouge. Historiquement, les photographies aériennes utilisées pour la
cartographie des espaces naturels, en particulier forestiers, étaient réalisées avec des
pellicules proche infrarouge. Cette longueur d’onde permet de discriminer les feuillus des

55
Partie 1 • Partie théorique

résineux, voire descendre la détermination au niveau des espèces. Les photo-interprètes


sont donc habitués à une représentation de la végétation en rouge. De plus, l’œil humain
discrimine plus de valeurs de rouge que de valeurs de vert. Ces deux raisons expliquent
que la composition « PIR, rouge, vert » soit préférée à la composition en couleur naturelle
pour cartographier la végétation.
L’amélioration de la lisibilité des images passe par des techniques appliquées à chacun
des canaux identiques à celles utilisées pour les images en niveaux de gris. Le rendu des
images est également assuré par des palettes de couleur adaptées à des données spéci-
fiques : NDVI (Normalized Difference Vegetation Index), température, pluviométrie,
modèle numérique de terrain…

Figure 4.15 – Parcellaire du bassin de Houay Pano (Nord Laos),


incrusté sur une représentation 3D du MNT Tan-DEM-X à l’aide
de l’extension Qgis2threejs de QGIS.

Le drapage 3D de modèles numériques de terrain par une composition colorée ou


l’incrustation 3D d’un parcellaire sont des exemples de représentation visuellement
attrayante. Son interprétation nécessite de la visualiser sous différents angles de vue pour
ne pas être trop influencé par des effets de perspective exacerbant certains caractères.
Pour cette raison, peu de représentations 3D sont présentées dans cet ouvrage bien que
leur intérêt soit indéniable, en particulier dans les études d’urbanisme.

56
Chapitre 5
Modèles
hydrologiques et MNT
Introduction
Ce chapitre n’a pas pour objectif d’expliciter les différentes méthodes d’acquisition d’un
modèle numérique de terrain (MNT). D’excellents ouvrages existent sur ce sujet (Maune
2007). Il se limite à rappeler quelques principes élémentaires utiles à la compréhension
des modèles du relief, à leur traitement par les SIG et à présenter quelques applications
en hydrologie.

Objectifs Plan

Connaître les principes élémentaires de 1 Le relief


construction des MNT et de leurs 2 MNT versus MNE
dérivés. 3 Formes de MNT
4 Construction des MNT
5 Pente et orientation des MNT
6 Flux hydriques
7 Bassin versant

1 Le relief
Le relief désigne l’ensemble des irrégularités, en creux ou en saillie, qui caractérisent
la surface de la Terre. De sa connaissance dépendent de nombreuses applications. En
hydrologie, il est utilisé pour modéliser les écoulements. En écologie, l’altitude, les expo-
© Dunod – Toute reproduction non autorisée est un délit.

sitions ensoleillées ou à l’ombre sont quelques-uns des éléments structurant le paysage.


Dans les problématiques d’aménagement, il conditionne naturellement le tracé d’une
route, l’implantation d’un barrage, etc. Nul n’est besoin de compléter cette liste pour
souligner son importance dans l’étude de l’ensemble des processus qui se déroulent à
la surface de la Terre.
L’étude du relief fait partie d’une science, la topographie, qui permet la mesure puis
la représentation sur un plan des formes et détails visibles sur le terrain, qu’ils soient
naturels (le relief et l’hydrographie) ou artificiels (les bâtiments, les routes...). Son
objectif est de déterminer la localisation et l’altitude d’un point situé sur la surface
terrestre.

57
Partie 1 • Partie théorique

2 MNT versus MNE


Un modèle numérique de terrain (MNT ou DTM, Digital Terrain Model) est une représen-
tation 3D de la surface de la Terre. Le MNT ne prend pas en compte les objets présents à
la surface du terrain tels la végétation et les bâtiments. Un modèle numérique d’élévation
(MNE ou DEM, Digital Elevation Model) est une représentation des élévations sur un terrain
intégrant la végétation et les bâtiments (Fig. 5.1). Les modèles construits par acquisition
satellite correspondent toujours au MNE, quelquefois également appelé modèle numérique
d’altitude (MNA). Pour obtenir le MNT, il est nécessaire de retirer les objets (végétation ou
bâtiment) ; opération qui est rendue compliquée par la pénétration plus ou moins importante
du signal dans la canopée. Par exemple, la pénétration du signal optique est fonction de la
présence de feuilles ; la pénétration des ondes radar dépend de leur fréquence.

MNT

MNE

Figure 5.1 – Éléments distinguant le MNT du MNE.

3 Formes de MNT
Trois formes de MNT existent : GRID (grille), TIN (Triangulated Irregular Network)
et courbes de niveaux (Fig. 5.2) :
• les GRID sont des rasters dont la valeur des pixels correspond à l’altitude ;
• les TIN sont constitués de triangles contigus sans chevauchement localisés dans un
espace 3D. La composante z de chaque sommet identifie l’altitude. La surface de
chaque triangle est plane ;
• les courbes de niveaux qui correspondent au tracé d’isolignes d’altitude représentent
le relief sur les cartes topographiques.

0
3,2 0
3,4

0 0
3,8
3,6
0 0
4,2
4,0
0 0
4,6
4,4 0
4,8

Figure 5.2 – TIN, GRID et courbes de niveaux.

58
Chapitre 5 • Modèles hydrologiques et MNT

Les GRID appartiennent au mode Raster tandis que les TIN et courbes de niveaux
relèvent du mode Vecteur. Les TIN découpent l’espace en un réseau de facettes triangu-
laires jointives de taille variable pour reproduire les formes du relief. Ils sont construits
à partir de semis de points répartis de manière irrégulière dans l’espace. Les régions
accidentées bénéficient d’une densité de points cotés plus grande que les zones relati-
vement planes. Lors de la construction du TIN, les sommets des triangles sont définis à
partir des points cotés. Certains, dans les secteurs plats, sont retirés, d’autres sont ajoutés
dans les secteurs de relief accidenté.
Les TIN sont gérés comme des vecteurs par les SIG. Dans leur stockage sous forme
de tables, la gestion des voisins joue un rôle important (Fig. 5.3).

B
triangle nœuds voisins
1 A,B,C -,2,4
A 1 2 D 2 B,D,C -,3,1
3 D,H,C -,7,2
4 C A,C,E 1,6,5
5 E 3 4
5 A,E,F 4,8,-
6
F 8 7 6 C,G,E 7,8,4
H 7 C,H,G 3,-,6
8 E,G,F 6,-,5
G
Figure 5.3 – Stockage des TIN.

Les TIN nécessitent des opérations de calcul plus complexes que les GRID mais
la précision géométrique n’est pas dépendante de la résolution spatiale choisie lors de
l’enregistrement des données. La qualité des TIN n’est pas affectée par les reprojections
successives tandis que celle des GRID l’est. Les TIN peuvent rendre compte avec une
grande précision de particularités du relief circonscrites à certaines zones sans conduire
à des volumes trop importants de données tandis que la précision géométrique des GRID
est conditionnée par la taille des pixels. En résumé, les GRID possèdent les qualités et
défauts des rasters ; les TIN ceux des vecteurs.
© Dunod – Toute reproduction non autorisée est un délit.

4 Construction des MNT


Les méthodes de mesure d’altitude sont classables en deux grandes familles :
• l’altimétrie détermine l’altitude ou la différence de hauteur entre deux points en utili-
sant des mesures de distance, de durée du trajet d’une onde et d’angle. Ces opérations
reposent sur des calculs trigonométriques ;
• la photogrammétrie utilise la parallaxe obtenue entre des images acquises selon des
points de vue différents de la position et de la forme d’objets dans l’espace. Pour nos
applications, elle consiste à exploiter des couples stéréoscopiques d’images.

59
Partie 1 • Partie théorique

Le théodolite, les GPS, les altimètres radar, les altimètres lidar, les interféromètres
radar sont des instruments d’altimétrie. En photogrammétrie, les couples stéréosco-
piques d’images, et même des triplets pour les applications les plus récentes (Bouillot
2014) peuvent être construits à partir de photographies aériennes, d’images satellite
optiques (SPOT, Pléiades, les deux canaux proche infrarouge d’Aster visant au nadir
et en arrière).
La qualité d’un MNT s’évalue au travers de trois paramètres :
• la précision planimétrique définit la précision de localisation du point dans le cas
d’un TIN, ou du centre du pixel dans le cas du MNT grille ;
• la précision altimétrique traduit la qualité de l’estimation de l’altitude ;
• la résolution géométrique est facile à établir dans le cas des MNT grille car elle
correspond à la taille des pixels. Elle est plus difficile à cerner pour les TIN car elle
dépend de la surface des triangles.
Les SIG intègrent des fonctions pour construire des MNT à partir de sources de
données diverses incluant des semis de points cotés dispersés régulièrement selon un
carroyage spatial ou possiblement situés en des points remarquables (sommet d’une
montagne...), des lignes de cassure et par combinaison d’autres MNT sous forme de
TIN, GRID et courbes de niveaux.
À partir d’un semis de points, des techniques d’interpolation permettent de construire
des GRID ou des TIN.
La méthode de pondération par l’inverse de la distance pondère les points interpolés
en fonction de la distance qui les sépare du point où la valeur est estimée.
n
∑ wk ( x) × uk 1
k=0
u ( x) = n
avec wk ( x) =
d ( x, xk ) p
∑ wk ( x)
k=0

avec :
u ( x) valeur estimée ;
wk ( x) poids associé à la distance entre le point interpolé x et le point connu xk ;
uk valeur au point xk ;
p paramètre de puissance.
Le paramètre de puissance p permet de jouer sur l’influence des points par rapport à
la distance. Les plus grandes valeurs de p donnent une influence plus grande aux points
les plus proches du point interpolé.
Cette interpolation est adaptée à des relevés réalisés par GPS ou théodolite. Elle
construit des GRID. La qualité des résultats diminue quand le relief est accidenté et le
semis des points irrégulier.

60
Chapitre 5 • Modèles hydrologiques et MNT

L’interpolation des TIN repose sur la triangulation de Delaunay qui découpe l’espace
en triangles contigus de manière qu’un cercle tracé à travers les trois nœuds d’un triangle
ne contienne aucun autre nœud (Fig. 5.4).

Figure 5.4 – Création d’un TIN à partir d’un semis de points cotés par
la méthode de Delaunay.

Les courbes de niveaux sont essentiellement utiles pour créer un fond de carte topogra-
phique. Cette opération réalisable à partir des GRID ou des TIN fait appel à la création
d’isolignes. Une isoligne est une ligne qui parcourt tous les points contigus dont les
valeurs sont égales.
L’ensemble des algorithmes de ces méthodes d’interpolation possèdent des
améliorations qui prennent en compte des contraintes liées aux ruptures dans le relief
(falaise, effondrement, surcreusement dus à l’érosion…).
Plusieurs produits disponibles sur l’Internet résultent de la composition de
plusieurs sources (Tab. 5.1). Le MNT SRTM30 est construit par interférométrie radar
à partir de données acquises par la navette spatiale américaine Endeavour lors d’une
mission de onze jours en 2000. Le GDEM Aster est élaboré à partir des deux bandes
spectrales proche infrarouge d’un capteur embarqué sur le satellite japonais Terra.
Quand les acquisitions optiques sont insuffisantes, il est complété par les données du
MNT SRTM. Les MNE ALOS sont construits à partir de couples d’images
© Dunod – Toute reproduction non autorisée est un délit.

panchromatiques acquises par le satellite japonais ALOS.


Le produit BD ALTI de l’IGN (IGN 2014) combine plusieurs techniques pour
construire un MNT sur l’ensemble du territoire français. Les courbes de niveaux figurant
sur les cartes topographiques sont prises en compte. L’altimétrie lidar est déployée pour
les zones inondables et littorales, et sur les grands massifs forestiers. L’interférométrie
radar est utilisée sur les zones de montagne. La photogrammétrie de photographies
aériennes est appliquée au reste du territoire.

61
Partie 1 • Partie théorique

Tableau 5.1 – Quelques produits MNT en libre accès sur l’internet

Résolution Précision Précision


Technique Région
Produit géométrique altimétrique planimétrique
principale couverte
(m) (m) (m)
Interférométrie
SRTM-30 30 20 16 Globe
radar
Couple
GDEM Aster stéréoscopique 30 20 30 Globe
PIR
ALOS Interférométrie
12,5 5 5 Globe
PALSAR radar
BD Alti 75* Relevés terrain 75 1 10** France

*Des versions de résolution 25 m et de précision altimétrique métrique


existent mais elles sont payantes. **La précision planimétrique est égale à la
demi-équidistance entre courbes de niveaux séparées de 5 m en plaine,
40 m en zone montagneuse.

5 Pente et orientation des MNT


Les GRID et les TIN étant respectivement des rasters et des vecteurs particuliers, toutes
les fonctions des SIG s’appliquent à ces données. Leur spécificité conduit à leur appliquer
d’autres fonctions plus élaborées qui permettent, par exemple, de construire la carte des
pentes, de l’orientation de la plus grande pente, de l’ombrage :
• la pente se définit comme l’angle d’inclinaison d’une surface par rapport au plan
horizontal. Elle s’exprime en pourcentage ou en unité d’angle : degré, radian, grade ;
• l’orientation (ou exposition ou aspect) indique la direction horizontale de la plus
grande pente. Cette direction peut être exprimée soit en unité mathématique, sous
forme d’un azimut, par rapport à l’est, origine du cercle trigonométrique, soit en unité
géographique par rapport au nord. Dans ce cas, elle est codée par une valeur selon
les quatre quadrants des points cardinaux, par exemple : N, E, S, W ou avec plus de
précision en ajoutant les directions : N-E, S-E, S-O, N-O ;
• l’ombrage simule l’intensité de l’éclairement par le soleil de la surface de la Terre.
Cette donnée est utile dans les analyses paysagères en influençant dans les zones
vallonnées la répartition des espèces végétales. Les géographes distinguent l’adret
ensoleillé de l’ubac plus ombragé.
La pente et son orientation se calculent à partir de la dénivellation par mètre sur l’axe des x
et sur l’axe des y. La pente d en un point M est l’angle entre la direction de la plus grande pente
et l’horizontale du plan passant par le point. Elle peut se déduire (Caloz et Collet 2011) de :

tan (δ ) = b2 + c 2
avec :
b : dénivellation par mètre sur l’axe des x ;
c : dénivellation par mètre sur l’axe des y.

62
Chapitre 5 • Modèles hydrologiques et MNT

L’orientation w est l’angle de la ligne de la plus grande pente par rapport à l’axe
des x. Elle se calcule à partir de :

tan (ω ) = b / c

Pente, orientation de la plus grande pente et ombrage peuvent se calculer à partir de


MNT stockés dans des GRID. Considérons quatre points d’un GRID constituant une
matrice 2 × 2 dans laquelle est stockée l’altitude de chacun des points (Fig. 5.5).

Z3 Z4 9 7

dy Z1 Z2 10 8 5

dx 10
Figure 5.5 – Matrice 2 × 2 représentant un extrait de GRID, notation et exemple
numérique.
zi altitude du point i, dx dénivelé selon X, dy dénivelé selon Y.

À partir des altitudes se calculent :

a = (z1 + z2 + z3 + z4 ) / 4
b = (− z1 + z2 − z3 + z4 ) / 2 / d x
c = (− z1 − z2 + z3 + z4 ) / 2 / d y

( )
puis la pente δ = arctan b 2 + c 2 et l’orientation de la plus grande pente
ω = arctan2 (c,b). arctan2 est une version informatique de la fonction mathématique arc
tangente qui améliore le résultat en fournissant une valeur signée appropriée indiquant
le quadrant de l’angle.
L’application à l’exemple donne :
a = (8 + 5 + 9 + 7) / 4 = 7,25 m d’altitude au centre de la matrice 2 × 2
© Dunod – Toute reproduction non autorisée est un délit.

b = (−8 + 5 − 9 + 7) / 2 / 10 = −0,25 m de dénivellation selon X


c = (−8 − 5 + 9 + 7) / 2 / 10 = +0,15 m de dénivellation selon Y
La pente égale :
δ = atan ( )
(−0,25)2 + (0,15)2 × 180 / pi

δ = 16,25°

L’expression de la pente en pourcentage est simple :


δ % = 100 × tan (δ ) = 100 × (−0,25)2 + (0,15)2
δ % = 29 %

63
Partie 1 • Partie théorique

L’orientation égale :

ω = arctan2 (0,15, − 0,25) × 180 / Π


ω = 149°

Cet angle, mesuré par rapport à l’axe des x, dans le sens anti-horaire, indique la direc-
tion du point (c, b), opposée à la pente. La pente est donc orientée à 180 − 149 = 31° par
rapport à l’est, soit à l’est-sud.
L’ombrage, fonction reliée à l’ensoleillement, dépend de la pente, de l’orientation
et de l’angle d’éclairage du soleil (Burrough et McDonell 1998). Toutes les valeurs à
l’ombre seront codées 0 ; les autres seront codées par des entiers compris entre 1 et 255
proportionnels à l’ensoleillement.

(ombrage = 255.0 × (cos (zenith) × cos (δ ) + sin (zenith) × sin (δ ) × cos (azimut – ω ))
avec :
δ : angle de la pente ;
ω : angle de l’orientation ;
zenith : angle zénithal ;
azimut : angle azimutal.
L’angle zénithal se déduit de l’angle d’élévation solaire :
zenith = 90 − elev.
Par défaut, l’angle d’élévation solaire est égal à 45° :
zenith = 90 − 45 = 45°.
L’angle azimutal est choisi, pour l’exemple, égal à 135°. Les angles doivent être
convertis en radians pour les calculs.
ombrage = 255 × (cos(45/180 × Π) × cos(16.25/180 × Π) + sin(45/180 × Π) ×
sin(16.25/180 × Π) × cos((135 − 149)/180 × Π))
ombrage = 222
Dans le cas des TIN (Fig. 5.6), le calcul de pente, orientation de la plus grande pente
et l’ombrage font appel à la trigonométrie. La pente (au sens ligne de plus grande pente)
de chaque triangle est calculée par l’angle d’inclinaison entre la surface du triangle et
le plan horizontal. Le TIN ne peut cependant pas rendre compte des pentes négatives,
cas exceptionnels rencontrés pour des falaises, des grottes… L’orientation des TIN se
déduit de l’angle entre la projection sur le plan horizontal de la normale à la surface
du triangle et la direction du nord. L’angle entre la direction du soleil et la normale
à la surface du triangle, l’angle azimutal, la pente et l’orientation sont suffisants pour
calculer l’ombrage.

64
Chapitre 5 • Modèles hydrologiques et MNT

z z

nord

δ x x
ω
y y

Figure 5.6 – Pente et orientation d’un triangle de TIN.

TIN, GRID se prêtent à tous les calculs et formes de représentations. Les mêmes
avantages et inconvénients relevés lors de la comparaison des vecteurs et des rasters
s’appliquent. La difficulté des TIN et leur qualité de la donnée intéressent les théoriciens
(van Kreveld 1996). La simplicité des GRID et leur manipulation proche des rasters
séduisent le monde de la télédétection.
Si le MNT est enregistré sous forme de courbes de niveaux ou de points cotés, sa
transformation en GRID ou TIN est nécessaire avant de calculer les cartes des pentes,
d’orientation et d’ensoleillement. La figure 5.7 illustre les cartes de pente, orientation et
ombrage calculée à partir du MNT du bassin de Houay Pano (Laos) enregistré sous le
format GRID.

A B

C D E
© Dunod – Toute reproduction non autorisée est un délit.

Figure 5.7 – Modèle numérique de terrain tandem-X (A) du bassin de Houay Pano
(Laos) et ses dérivés : courbes de niveaux (B), pente (C), orientation (D) et ombrage (E).

65
Partie 1 • Partie théorique

Les cartes d’altitude, pente et orientation jouent un rôle primordial en hydrologie car
ces facteurs conditionnent le ruissellement et l’infiltration.

6 Flux hydriques
Comprendre la modélisation des flux hydriques d’écoulement potentiels à partir des
modèles numériques de terrain est important car ils sont utilisés pour délimiter les
bassins versants. Ils servent également à caractériser le ruissellement des pluies.
La structure GRID facilite le calcul des flux d’écoulement. Le déplacement des flux
peut s’effectuer selon les axes horizontaux et verticaux (mouvements de la tour d’un échi-
quier) ou selon les axes horizontaux, verticaux et diagonaux (mouvements de la reine). La
figure 5.8 expose un modèle de flux d’écoulement utilisant les mouvements de la reine.

1 1 1 1 2 4 1
1 1 1 1 8
8 1 2 1 1 1 1 exemple de calcul
mo des flux accumulés
7 0 3 1 1 1 1
uv

matrice
em

6 5 4 1 1 1 1
ent de la reine

des poids
1 2 4 1 seuil ≥ 2
10 9 10 11 4 4 5 6 1 2 8 1
8 7 6 7 4 4 5 6 1 3 16 1
5 4 2 4 4 4 5 6 flux accumulés canaux
4 1 0 5 3 3 0 7
MNT direction
des flux
Figure 5.8 – Modèle de flux d’écoulement d’un GRID.

Pour chaque case de la grille, la direction des flux est déterminée. Les flux accumulés
sont ensuite calculés par sommation des cellules tributaires. Dans le petit exemple de
calcul, la cellule reçoit les flux des trois cellules supérieures auxquels est ajoutée sa valeur
(2 + 4 + 1 + 1 = 8). Les canaux sont finalement identifiés en fonction d’un seuil fixé à
partir de critères externes au modèle. Ce modèle peut être complexifié en remplaçant la
grille uniforme des poids par des données correspondant, par exemple, à une répartition
spatiale de la pluie.
Les TIN se prêtent également à la modélisation des flux d’écoulement et à la recherche
des réseaux de drainage (Fig. 5.9).

66
Chapitre 5 • Modèles hydrologiques et MNT

direction du flux
canal

B1 B2
Figure 5.9 – Modèles de flux d’écoulement d’un TIN par la méthode des facettes
(A) ou par la méthode des canaux (B1 : flux d’un canal vers une facette,
B2 : flux d’un canal vers deux facettes).

La connaissance des directions d’écoulement sert à délimiter les bassins versants et


les zones de drainage, la zone dont les flux convergent vers un point donné.

7 Bassin versant
Les eaux de surface ne constituent qu’une petite partie du système hydrologique qui
doit également prendre en compte les écoulements de subsurface liés aux processus
d’exfiltration, des nappes phréatiques, etc. Le modèle numérique de terrain ne donne
cependant accès qu’à la modélisation des écoulements de surface.
Le bassin versant est une zone qui recueille et conduit l’eau et les substances
qu’elle transporte jusqu’à un exutoire qui est le point d’écoulement le plus bas. Il
© Dunod – Toute reproduction non autorisée est un délit.

est situé en limite du bassin versant. L’eau circule dans un réseau hydrographique
modélisé sous la forme d’un arbre, la base du tronc correspondant à l’exutoire, les
branches aux canaux d’écoulement. Il est possible de choisir un point quelconque
sur un canal d’écoulement puis d’estimer l’aire de drainage en amont dont les flux
arrivent en ce point.
La figure 5.10 illustre des zones de drainage en amont de points de prélèvement dans
un bassin versant de la rivière Nam Xe Don (Laos).

67
Partie 1 • Partie théorique

P3 P4 P13 P6
P2 P14

P7
P12
P8
P9
P10
P11
P1
0 10 20 km

Figure 5.10 – Bassin versant de la rivière Nam Xe Don (Laos) et zones de


drainage délimitées à partir de la position de points de prélèvement.

La délimitation d’un bassin versant ou d’une aire de drainage en amont d’un point
du réseau hydrographique passe par plusieurs étapes :
• création d’un MNT sans dépression ;
• identification du réseau hydrographique ;
• délimitation du bassin versant ou de l’aire de drainage.
Pour construire un bassin versant, le MNT ne doit pas contenir de cuvettes, zones dont
aucun flux ne sortirait. Ce cas de figure peu fréquent doit être identifié au début de l’étude.
Dans la majorité des cas, les cuvettes sont un artefact qui est corrigé. La construction
de la grille d’accumulation de flux modélise un réseau hydrographique potentiel qui
sera utilisé pour délimiter le contour du bassin versant ou de l’aire de drainage. Si le
réseau hydrographique naturel ne correspond pas au réseau hydrographique potentiel,
un surcreusement du MNT aux emplacements du réseau hydrographique naturel apporte
une solution.
Les résultats obtenus représentent un modèle où la pluie est uniforme, l’interception
et l’évapotranspiration ne sont pas pris en compte, l’infiltration est homogène sur toute la
zone. Une modélisation plus poussée demande le recours à des modèles hydrologiques.

68
Chapitre 6
Modèles
de paysage
Introduction
Le paysage est souvent perçu au travers de l’occupation du sol et de la mosaïque paysa-
gère qu’elle construit. Le modèle de paysage a été conceptualisé par les écologues. Les
SIG s’appuient sur ces théories pour décrire le paysage par des métriques

Objectifs Plan
Comprendre la théorie du paysage formalisée 1 Concept de paysage
par le modèle tache-corridor-matrice. 2 Métriques paysagères
Connaître la notion de métrique et ses 3 Distributions statistiques de
modes de calcul. métriques
4 Protocoles d’échantillonnage
5 Implémentations

1 Concept de paysage
La théorie biogéographique des îlots (Mac Arthur et Wilson 1967) lie mathématique-
ment le nombre d’espèces présentes sur une île, les taux d’immigration et d’extinction
des espèces en fonction de la surface de l’île et de sa distance au continent. Cette
théorie fut étendue à la terre ferme en recherchant des analogies entre les îles et
des parcelles de terre ferme relativement homogènes appelées taches dans la théorie
© Dunod – Toute reproduction non autorisée est un délit.

« patch-corridor-matrix » (Forman et Godron 1986). Le paysage est composé de trois


éléments : les taches, les corridors et la matrice (Fig. 6.1). Les taches constituent les
unités fonctionnelles. Une tache est composée d’un noyau et d’une lisière. Plus la tache
est allongée et sa forme est complexe, plus la longueur de sa lisière est importante. La
lisière interagit avec la matrice et les lisières des taches voisines tandis que le noyau
n’est en relation qu’avec la lisière de sa tache. Les corridors sont des unités de forme
linéaire qui assurent les connections, les flux entre taches. Taches et corridors sont
inclus dans la matrice qui représente un englobant relativement uniforme et neutre
(Burel et Baudry 2001).

69
Partie 1 • Partie théorique

La définition de ces éléments dépend de la problématique de l’étude. Par exemple, une


étude des clairières considérera les clairières comme taches et la forêt comme matrice.
Par contre, une étude portant sur le développement d’îlots forestiers identifiera les espaces
boisés comme taches et les espaces ouverts comme matrices.

he

tac
re
lisiè
noyau

corridor

matrice

Figure 6.1 – Éléments théoriques du paysage (d’après Burel et Baudry, 2001).

La description du paysage dans le modèle « patch-corridor-matrix » comprend trois


niveaux hiérarchiques imbriqués : la tache, la classe constituée par toutes les taches de
même type et le paysage englobant l’ensemble des éléments. Pour chacun de ces niveaux
sont définies des métriques pour les caractériser.

2 Métriques paysagères
Huit grands groupes de métriques paysagères sont définies par K. McGarigal, et B. J.
Marks (1995) : surface/densité et bordure, forme, noyau, isolement/proximité, contraste,
agrégation/subdivision, connectivité, diversité. Le nombre de métriques étant très grand,
seuls quelques exemples de métriques appliqués aux taches, aux classes et au paysage
illustrent chacun des groupes (Tab. 6.1, 6.2, 6.3).
Les différentes implémentations proposent des métriques supplémentaires et l’uti-
lisateur a tout le loisir de créer une métrique spécifiquement adaptée à une question
donnée. La nomenclature utilisée reprend celle utilisée par fragstats (McGarigal 2012),
les principes de calculs sont valides pour toutes les implémentations.

70
Chapitre 6 • Modèles de paysage

Tableau 6.1 – Exemple de métriques de taches

Nom Description Formule Paramètres

Surface/densité/bordure

AREA Surface de la tache (ha) ai /10 000 ai : surface de la tache i

PERIM Périmètre de la tache (m) pi pi : périmètre de la tache i

Forme

pi pi : périmètre de la tache i
LSI Rapport périmètre/surface
ai ai : surface de la tache i

Noyau (épaisseur de la bordure choisie par l’utilisateur)

CORE Surface du noyau (ha) aic / 10 000 aic : Surface du noyau de la


tache i

Isolement/proximité

Distance euclidienne du plus


ENN hij
proche voisin entre deux taches

Contraste

m
pik : longueur de la bordure de

ECON Contraste de bordure


∑ pik × dik la tache i adjacente à la tache k
dik : dissimilarité entre les
k =1
× 100
pi catégories de tache i et k
pi : périmètre de la tache i

Tableau 6.2 – Exemple de métriques de classes

Nom Description Formule Paramètres

Surface/densité/bordure

PLAND
Pourcentage du paysage
occupé par une classe de
∑ aij aij : surface de la tache j
appartenant à la classe i
j =1
× 100
© Dunod – Toute reproduction non autorisée est un délit.

taches A A : surface totale du paysage

Forme

LSI Indice de forme


0, 25 × ∑ eij eij : longueur de la bordure de la
tache j appartenant à la classe i
j =1
(T ) T : surface totale des taches (m2)

Noyau (épaisseur de la bordure choisie par l’utilisateur)

n aicj : surface du noyau de la


CPLAND
Pourcentage du paysage
occupé par les noyaux
∑ acij tache j appartenant à la classe i
j =1 A : surface totale du
d’une classe de taches × 100
A paysage (m2)

71
Partie 1 • Partie théorique

Nom Description Formule Paramètres

Contraste

eik : longueur de la bordure de la


m
Contraste de bordure tache i adjacente à la tache k
CWED de classe pondéré par la ∑ eik × dik dik : dissimilarité entre les
k =1
surface × 10 000 catégories de tache i et k
A
A : surface totale du paysage (m2)

Agrégation/subdivision

n 2 aij : surface de la tache j


 aij 
DIVISION Division du paysage 1− ∑  A  appartenant à la classe j
j =1 A : surface totale du paysage (m2)

Connectivité

Connexion entre taches


d’une même classe. Deux n
taches sont considérées
comme connectées si la
∑ cijk cijk : 0 = disjoint, 1 joint
CONNECT j ≠k
distance qui sépare leur × 100 ni : nombre de taches de la classe i
ni (ni − 1)
centre est inférieure à 2
une valeur définie par
l’utilisateur

Tableau 6.3 – Exemple de métriques du paysage

Nom Description Formule Paramètres

Surface/densité/bordure

n
Nombre de taches du ni : nombre de taches appartenant
NP
paysage ∑ ni à la classe i
i =1

n
ni : nombre de taches appartenant
PD
Densité de taches du ∑ ni à la classe i
paysage i =1
× 100
A A : surface totale du paysage (m2)

Les applications de l’analyse quantitative du paysage sont nombreuses en écologie.


Dans le cadre du programme européen Bioassess (Watt 2004), des protocoles sont définis
pour mesurer la biodiversité dans huit pays, et en particulier pour caractériser, par diffé-
rentes métriques, les structures paysagères de nombreuses espèces occupant des zones
naturelles soumises à des changements (Fig. 6.2). Les méthodes quantitatives d’analyse
du paysage permettent de caractériser les habitats des espèces, de quantifier la fragmen-
tation des forêts (Jomaa et al. 2007), etc.

72
Chapitre 6 • Modèles de paysage

minimum maximum métriques

aire

densité

bordure

forme

noyau

voisinage

diversité

contagion

Figure 6.2 – Métriques de taches utilisées dans le programme BioAssess


(Rego et al. 2004).
© Dunod – Toute reproduction non autorisée est un délit.

3 Distributions statistiques de métriques


Les métriques utilisées pour les taches peuvent être étendues, dans certains cas, aux
classes ou aux paysages par de simple sommation comme l’illustrent les tableaux 4.2
et 5.1 précédents. Mais la sommation n’est pas la seule possibilité pour résumer la
distribution statistique de ces métriques. Moyenne, médiane, étendue, écart-type et coef-
ficient de variation fournissent une donnée parfois plus facile à interpréter. La moyenne
pondérée par la surface est une statistique particulièrement adaptée aux métriques qui
possèdent un paramètre relatif à la surface (Tab. 6.4 et 6.5).

73
Partie 1 • Partie théorique

Tableau 6.4 – Exemple de métriques de classe obtenues par un


résumé de la distribution statistique des métriques de taches

Nom Description Formule Paramètres


n

MN Moyenne de métrique
∑ X ij Xij : métrique de tache j appartenant
à la classe i
j =1
ni ni : nombre de taches de la classe i

n aij aij : surface de la tache j appartenant


Moyenne pondérée par ∑ X ij n
à la classe i
AM
la surface
j =1
∑ aij Xij : métrique de tache j appartenant
à la classe i
j =1
ni : nombre de taches de la classe i

Tableau 6.5 – Exemple de métriques de paysage obtenues par un


résumé de la distribution statistique des métriques de taches

Nom Description Formule Paramètres


m n

MN Moyenne de métrique
∑ ∑ X ij Xij : métrique de tache j appartenant
à la classe i
i =1 j =1
ni ni : nombre de taches de la classe i

m n aij aij : surface de la tache j appartenant


Moyenne pondérée par
∑ ∑ X ij n à la classe i
AM
la surface
i =1 j =1
∑ aij Xij : métrique de tache j appartenant
j =1 à la classe i
ni : nombre de taches de la classe i

4 Protocoles d’échantillonnage
La zone géographique sur laquelle porte le calcul des métriques est tout aussi importante
que le choix de la métrique elle-même. Cette zone d’échantillonnage peut être :
• circonscrite à la zone d’étude ;
• calée sur l’échantillonnage d’une variable mesurée, par exemple l’abondance d’une
espèce ;
• définie en accord avec une structure spatiale pré-existante à l’analyse paysagère, par
exemple un bassin versant, une zone de drainage, une subdivision ville/campagne ou
toute partition a priori de l’espace ;
• dictée par un protocole d’échantillonnage. Le module r.li de GRASS offre huit possi-
bilités (Fig. 6.3).

74
Chapitre 6 • Modèles de paysage

1 2

zone entière unités fenêtre mobile


dispersées

1 1 2 3
1 2 3 4

5 6 7 8 4 5 6

2
9 10 11 12 7 8
3 9

au hasard systématique systématique


contigu non contigu

1
1
2
2
échantillon
3
3 4 4

stratifié centré sur


les sites
Figure 6.3 – Protocoles d’échantillonnage du module r.li de GRASS.

Une étude peut demander de définir son propre protocole d’échantillonnage. Le plus
souvent, un protocole spécifique est créé en fonction d’une logique d’échantillonnage
commune aux relevés de terrain et à l’analyse paysagère. Par exemple, Watt (2004)
calcule les métriques à l’intérieur de deux cercles concentriques imbriqués pour lesquels
sont également réalisés des relevés d’abondance d’espèces animales (Fig. 6.4). Ces proto-
coles spécifiques sont aisément implémentables sous GRASS en définissant des régions si
les zones d’échantillonnage sont rectangulaires ou en utilisant des masques géométriques
si la forme des zones est plus complexe.
© Dunod – Toute reproduction non autorisée est un délit.

Figure 6.4 – Échantillonnage utilisé dans le programme BioAsssess (Watt 2004).

75
Partie 1 • Partie théorique

5 Implémentations
La description du paysage s’appuie sur la carte d’occupation du sol obtenue soit directement
par des relevés de terrain, soit le plus souvent suite à une classification d’images satellite.
À partir de cette donnée première, sont réalisés les calculs de métriques paysagères. Une
abondante littérature décrit l’analyse quantitative du paysage et ses outils associés. Fragstats
est l’un des plus utilisés (McGarigal 2012) ; r.li implémenté dans GRASS ou l’extension
LecoS de QGIS possèdent des fonctions très proches. Des packages sous R du CRAN
(par exemple SDMTools) offrent les mêmes possibilités et ils présentent l’avantage d’être
inclus dans un environnement d’analyse de données.
L’échelle spatiale et le modèle Vecteur ou Raster d’implémentation impactent forte-
ment les calculs de métriques. Le résultat d’un calcul de périmètre à partir de vecteurs
ou de rasters peut être différent si la résolution du raster est faible vis-à-vis de la précision
géométrique du tracé des vecteurs. De même, les calculs de métriques sont affectés par la
résolution spatiale des rasters quand ils reposent sur des calculs de proximité ou d’agré-
gation ou quand ils prennent en compte les hétérogénéités du paysage. En conséquence,
la résolution spatiale des rasters doit être choisie, après une réflexion approfondie, en
fonction des processus étudiés.
Le contexte du calcul d’une métrique revêt tant d’importance qu’il est difficile d’inter-
préter sa valeur absolue. L’interprétation est plus aisée dans un objectif de comparaison
temporelle ou spatiale. Par exemple, la comparaison de la structure paysagère de deux
bassins versants peut être riche d’enseignements. De même, la perception de changements
temporels d’une zone géographique est quantifiable par des métriques paysagères.
Les métriques fournissent souvent une information très redondante. McGarigal (2001)
recommande de faire preuve de parcimonie, c’est-à-dire de choisir un petit nombre
de métriques se focalisant sur une question donnée. Une alternative est d’utiliser des
batteries de métriques, ce qui entraîne une forte colinéarité. Cette contrainte impose
d’utiliser des méthodes adaptées pour rechercher les métriques les plus informatives
tels les modèles de sélection de variables par pas (Lazraq et Cléroux 1988) ou la Partial
Least Square regression (Abdi 2003).
La notion de paysage ne peut être dissociée des modèles hydrologiques et réciproque-
ment un modèle hydrologique gagne beaucoup à intégrer dans son fonctionnement la
structure paysagère. Celle-ci influe sur le ruissellement, l’infiltration et par conséquent
l’intensité, la direction, voire le chemin emprunté par les flux hydriques. Elle impacte
les processus d’érosion et elle joue un rôle de filtre des matières en suspension (Uuemaa
et al. 2009).

76
Chapitre 7
Traitement des
données
Introduction
Les SIG gèrent le stockage, l’extraction des données et comprennent des fonctions de trai-
tement de données. Ces fonctions sont, soit directement implémentées dans le SIG, soit
accédées par un couplage avec les bibliothèques de traitement de données. Elles couvrent
un large domaine qui englobe l’analyse du signal, la télédétection, l’analyse d’image, l’ana-
lyse de données... Nous limiterons notre présentation à un retour d’expérience et à une
proposition d’organisation de la structure des données qui permet d’optimiser les chaînes
de traitement.

Objectifs Plan
Entrevoir les possibilités offertes par un SIG 1 Typologie des variables
dans le traitement des données. 2 Emporte-pièce
Comprendre le bon usage des méthodes 3 Précautions d’usage
d’analyse spatiale. 4 Exemples types

1 Typologie des variables


Auda (1987) distingue les variables qui structurent des données de celles qui renseignent
sur les caractéristiques intrinsèques d’un objet. Les données intrinsèques caractérisent
toute information directement accessible sur l’objet, telle que le poids d’un homme, la
© Dunod – Toute reproduction non autorisée est un délit.

taille d’une plante, la teneur en argile d’un échantillon de terre, la valeur radiométrique
d’un pixel, etc. Les structures ou données extrinsèques concernent tout ce qui est fonc-
tion du contexte ; en premier lieu, l’espace et le temps mais également la structure des
objets. Selon les disciplines, cette structure porte différents noms. En agronomie, le
terme « plan d’expérience » est employé, en biochimie « protocole expérimental », etc.
L’appartenance à un groupe connu avant toute analyse peut également faire partie de
la structure des objets. Par exemple, la séparation homme/femme peut être considérée
comme une structure si l’objectif est de discriminer ces deux populations.
Les SIG prennent en compte naturellement l’espace. Et le temps est géré sous forme d’un
empilement de couches. Cette gestion du temps et la dichotomie extrinsèque/intrinsèque

77
Partie 1 • Partie théorique

conduisent à considérer trois catégories de variables qui sont associées aux couches du
SIG (Fig. 7.1) :
• variables extrinsèques ;
• variables intrinsèques mono-temporelles ;
• variables intrinsèques multi-temporelles.
La position des relevés de terrain est souvent enregistrée sous forme de polygones
délimitant certaines parcelles et identifiant l’occupation du sol. La transformation en
raster construit deux couches, la première qui correspond à l’identifiant du polygone
(numéro) est considéré comme une variable extrinsèque. La seconde qui renferme la
classe d’occupation du sol est une variable intrinsèque.
Les variables mono-temporelles sont enregistrées une seule fois dans le cadre de
l’étude tandis que les variables multi-temporelles sont enregistrées plusieurs fois,
souvent à intervalles réguliers comme dans le cas d’acquisitions satellites multiples qui
construisent des séries temporelles. Les mesures réalisées lors des relevés de terrain,
LAI (Leaf Area Index), hydrométrie, caractéristiques du sol... constituent des variables
mono-temporelles si leur acquisition n’est pas répétée dans le temps. Les variables mono
et multi-temporelles quand elles résultent d’un calcul (indice de paysage, filtre, combi-
naison de canaux d’images satellite…) sont appelées néo-canaux.
extrinsèque

4
2
1
3 7 parcelles
5 6

végétation
hydrologie
mono-temporel

route
MNT
intrinsèque

néo-canal
multi-temporel

images satellite

Figure 7.1 – Typologie des couches en vue de leur traitement.

78
Chapitre 7 • Traitement des données

2 Emporte-pièce
Nombre d’études, en particulier celles de télédétection, consistent à mettre en regard
les données terrain recueillies en certaines localisations avec les données satellite
pour étendre l’information connue ponctuellement à l’ensemble de la zone couverte
par l’image satellite. Pour cet usage, un petit programme a été développé par nos
soins (cf. exercice 11) en langage R du CRAN pour extraire un tableau de données
à partir de couches raster stockées sous GRASS dans la logique exposée au para-
graphe précédent. Chaque ligne de ce tableau correspond à un pixel possédant
une valeur dans la couche de la première variable extrinsèque. Les pixels de cette
couche « sans donnée » ne sont pas pris en compte. La première colonne du tableau
contient les valeurs de cette première variable pour l’ensemble des pixels « avec
donnée ». Les colonnes suivantes contiennent les valeurs prises pour les mêmes
pixels par les autres variables mono-temporelles et multi-temporelles. Chaque
variable ­multi-temporelle construit autant de colonnes que de nombre de dates où
la variable est observée.
À partir de ce tableau, les calculs de critères (moyenne, variance, médiane, quar-
tiles…) par groupes constitués à partir des variables intrinsèques sont aisés. Par
exemple, l’évolution d’une variable multi-temporelle ou la réflectance d’un type
d’occupation du sol dans différents canaux d’une image satellite sont facilement
représentables.

3 Précautions d’usage
Cette logique de superposition de couches et d’extraction de la donnée par une
fonction « emporte-pièce » nécessite une parfaite correspondance entre pixels situés
à la même localisation. Des données enregistrées dans différents SCR, dans des
résolutions différentes ne recouvrant pas exactement la même zone géographique,
dont les pixels ne sont pas alignés entre différentes couches peuvent introduire une
© Dunod – Toute reproduction non autorisée est un délit.

non-reproductibilité des résultats. Le logiciel GRASS, du fait de sa conception,


résout ces problèmes :
• un même SCR est imposé pour toutes les couches d’un même secteur ;
• la région circonscrit la zone géographique contenant les pixels soumis aux analyses.
Les pixels extérieurs ne sont pas pris en compte pour optimiser les temps de calculs.
Définir une région est beaucoup plus efficace que la création d’un masque géométrique
qui doit être réservé à la délimitation de zones non rectangulaires ;
• la résolution est choisie indépendamment de la résolution initiale des images. L’aligne-
ment des pixels et le ré-échantillonnage sont gérés à la volée de manière transparente
par l’algorithme du plus proche voisin.

79
Partie 1 • Partie théorique

Imposer un même SCR interdit la projection à la volée. GRASS est donc un outil
de traitement de données peu souple dans la visualisation des données, une opéra-
tion de reprojection étant souvent nécessaire. QGIS intègre la projection à la volée
mais ne gère pas ni zone de calcul ni changement de résolution spatiale. Pour cette
raison, le couple QGIS/GRASS, deux logiciels « open source », complémentaires et
parfaitement intégrés l’un à l’autre, est idéal. QGIS est plutôt dévolu aux fonctions
de visualisation, même s’il comprend de nombreux plugins d’analyse tandis que
GRASS couplé à des logiciels statistiques tels que R du CRAN est mieux adapté
aux traitements.

4 Exemples types
Les analyses proposées par les SIG sont pléthoriques. Les thèmes abordés sont si vastes et
comme chacun d’entre eux possèdent des ouvrages dédiés, une synthèse dans un ouvrage
est difficile. Notre objectif est de présenter quelques exemples de fonctions assurées par
les SIG. Ces fonctions sont choisies parce qu’elles demandent une attention particulière
pour assurer l’efficacité et la qualité des traitements.
Tous les traitements proposés concernent les rasters. Réaliser les calculs en mode
Vecteur ou en mode Raster est une question d’école de pensée. Nombre d’analyses
existent dans les deux modèles. Le choix de présenter des traitements en mode Raster
est celui de l’auteur de cet ouvrage qui possède une expérience en télédétection. Les
conseils d’analyse en mode Vecteur seraient autres.
Toutes les opérations sont pensées pour être réalisées sous GRASS. Les couches
sont géoréférencées dans le même SCR. La zone de calcul et la résolution spatiale sont
définies avant le début des analyses.

4.1 Transformation Vecteur en Raster


Les relevés terrain dédiés aux classifications sont enregistrés dans une couche vecteur de
polygones circonscrivant des zones homogènes vis à vis des classes. Chaque polygone
possède au moins deux attributs : sa classe et son statut indiquant s’il est utilisé comme
zone d’entraînement ou comme zone test. Ces données sont utilisées pour construire
deux couches rasters : une couche « classe » et une couche « statut » (Fig. 7.2). Cette
structure garantit une chaîne de traitement efficace. Si les relevés terrain semblent en
nombre insuffisant pour garantir une bonne estimation de la classification, un simple
changement dans l’affectation de l’attribut entraînement/test des polygones permet de
mettre en œuvre des méthodes de bootstrap.

80
Chapitre 7 • Traitement des données

rivière
maison
chêne
pin

géométrie des classes


relevés de terrain
id code classe statut
1 1 rivière train
2 3 chêne train
3 3 chêne test train
4 4 pin train test
7 2 maison train
6 3 chêne test
... ... ... ...

table attributaire statut


Figure 7.2 – Création des couches rasters « classes » et « statut » à partir de la
couche vecteur « relevé terrain ».

4.2 Calcul d’indice : le NDVI


En télédétection, de nombreux indices ont été définis pour caractériser un aspect parti-
culier du paysage : la croissance de la végétation, la présence de feux, etc. L’algèbre de
cartes est un outil efficace pour construire ces indices reposant sur des combinaisons de
PIR − rouge
canaux d’images satellite. Le NDVI de formule NDVI = s’implémente
PIR + rouge
facilement avec l’outil r.mapcalc de GRASS. L’écriture est naturelle :
NDVI = float(PIR – rouge)/float(PIR + rouge)
PIR et rouge représentant respectivement les couches contenant le canal proche
infrarouge et le canal rouge ; float est nécessaire pour forcer la conversion en réel
du calcul.

4.3 Extraction de la carte d’une classe


© Dunod – Toute reproduction non autorisée est un délit.

À partir d’une image, où chaque pixel prend une valeur égale au code de la classe corres-
pondante, une nouvelle couche est construite par un test logique sur les codes de classe
(Fig. 7.3). Par exemple, la carte de la forêt correspondant aux classes chêne (code 3) et
pin (code 4) est créée avec l’outil r.mapcalc de GRASS par l’expression :
foret = if(classes == 3 || classes == 4, 1,null())
Les pixels prenant les valeurs 3 et 4 sont codés 1 dans la nouvelle carte ; les autres
sont codés « nodata ».

81
Partie 1 • Partie théorique

rivière
maison
forêt
chêne
pin

classes extraction
Figure 7.3 – Extraction de la carte des forêts à partir de la carte
d’occupation du sol.

4.4 Indices du paysage


La couche « foret » est adaptée au calcul d’indices pour caractériser le paysage. Les outils
internes à GRASS (r.li…) sont utilisables directement sur cette couche. Certains indices
du paysage, en particulier ceux qui sont relatifs aux bords des patchs ou à leur fragmen-
tation, sont très sensibles à la résolution spatiale. Seule la connaissance thématique peut
aider aux choix et guider l’interprétation. Le calcul de ces indices à partir des vecteurs
poserait le même problème en renvoyant à des questions de qualité de la digitalisation
et à l’utilisation de procédure de généralisation chère aux géographes.
L’influence de la résolution spatiale est illustrée par le calcul d’une métrique de classe
du groupe forme, le LSI. La figure 7.4 montre qu’un changement de résolution spatiale
impacte fortement l’indice LSI.

Figure 7.4 – Influence de la résolution sur l’indice de forme LSI.

4.5 Morphologie mathématique


Une squelettisation de la couche « foret » délimite les zones profondes (Fig. 7.5). Comme
précédemment, la résolution spatiale influe sur la structure du squelette, en particulier
sur l’épaisseur des ramifications centrales.

82
Chapitre 7 • Traitement des données

Figure 7.5 – Influence de la résolution sur une opération de squelettisation.

4.6 Filtres
Les filtres sont utiles pour calculer des images de texture, des gradients, des critères
statistiques (moyenne, médiane, maximum, minimum, variance…), des lissages (filtre
majoritaire). La résolution spatiale doit être celle de l’image d’origine. Une résolution
plus grande, obtenue par une duplication de pixels conduirait à des résultats aberrants
pour les calculs de texture, variance, etc. Une résolution plus faible entraînerait une
perte d’information.
Le lissage par un filtre médian d’une image obtenue par une classification d’une
image satellite limite l’aspect visuel pointilliste et donne un caractère plus réaliste au
résultat (Fig. 7.6).

Figure 7.6 – Lissage par un filtre médian appliqué à une fenêtre


mobile de taille 7x7.

4.7 Procédures spécifiques


© Dunod – Toute reproduction non autorisée est un délit.

L’algèbre de cartes ne permet pas de réaliser des calculs efficaces qui portent sur des
fenêtres spatiales mobiles. Si une implémentation sous forme de filtre est inopérante,
des mises en œuvre spécifiques recourant à la programmation dans un langage externe
garantissant des temps de calculs acceptables sont nécessaires. Par exemple, Lafite
Olano et al. (2005) ont développé un programme en langage C de classification fondée
sur les spectres de texture.
Les exemples présentés dans ce chapitre n’illustrent qu’une petite partie des traite-
ments disponibles sous les SIG. Outre le fait d’illustrer quelques traitements de rasters
réalisés avec les logiciels GRASS/QGIS, les exemples ont été choisis pour souligner
toute l’importance du choix de la résolution spatiale.

83
Partie 2

Partie pratique
C ette partie pratique met en œuvre les notions traitées dans la
partie théorique. Chaque exercice s’appuie sur une étude réelle
entreprise dans le cadre du Service national d’observation M-TROPICS.
Une brève description accompagne chaque exemple pour présenter
le contexte scientifique.
Les procédures et leur logique sont exposées pour introduire les spé-
cificités de deux logiciels GRASS et QGIS. L’interface de ces SIG avec
SpatiaLite, R du CRAN est également explicitée. Les opérations réa-
lisées sont, pour la plupart, présentées sous la forme d’un tableau.
Le caractère / est utilisé pour décrire la hiérarchie des menus. Le
caractère | est employé pour séparer les entrées multiples de com-
mandes. Le symbole … qui désigne le début des chemins d’accès
aux répertoires doit être remplacé par la localisation du fichier. Pour
GRASS, l’appel au menu est doublé de la commande indiquée entre
les caractères []. La connaissance de cette commande est utile à
l’écriture des scripts.
Les versions des logiciels utilisées pour construire ces exercices sont
GRASS 7.8.6, QGIS 3.16, R du CRAN 3.6.3, SQLite 3 3.31.1, Spa-
tiaLite 4.3.0a. Les scripts ont été testés dans des environnements
Linux (Ubuntu, Debian, Suse), Mac OS X, Windows 10 (la version 10
est préférable aux versions antérieures). Les scripts MSDOS (exten-
sion de fichier .bat) ne donnent pas accès à des fonctions avancées
de programmation. Lors de l’écriture des scripts, les utilisateurs de
Windows devront encapsuler sous R les commandes GRASS ou les
appels aux fonctions du système d’exploitation.
D’un point de vue pratique, il est conseillé de suivre les exercices
dans l’ordre. Les notions exposées dans les premiers exercices sont
utilisées dans les suivants et leur difficulté croît du premier au dernier.
Les données utilisées dans les exercices sont déposées sur le site
www.dunod.com.

85
Exercice 1
Prise en main de
GRASS et QGIS

1 L’exemple
Pour appréhender les SIG, GRASS et QGIS, une carte d’occupation du sol du bassin
de Houay Pano (Laos) est fournie par l’antenne du SNO MSEC implantée au Laos. Les
relevés sont réalisés par GPS réglé en mode enregistrement à intervalle régulier. L’opé-
rateur suit à pied le contour de chaque parcelle puis note ses caractéristiques.
Les données sont stockées sous forme Vecteur (shape, polygone). Elles doivent être
transformées en Raster pour les rendre compatibles avec les chaînes de traitement.

2 Structure des données GRASS et QGIS


La géobase de GRASS est constituée d’un répertoire contenant des secteurs (locations).
Chaque location contient à son tour des jeux de cartes (mapsets) (Laloux 2011) (Fig. E1.1).
Un jeu de cartes particulier appelé « PERMANENT » contient les caractéristiques du
SCR. L’utiliser pour stocker les données est fortement déconseillé pour ne pas mélanger
les informations sur le SCR et les autres données.
Les autres jeux de cartes utilisent le même SCR. Ils sont créés dans le seul but de
classer les couches en fonction de critères laissés au choix de l’utilisateur : modèle numé-
rique de terrain, hydrographie, paysage, occupation du sol, pluviométrie, etc.
La région définit les caractéristiques de la zone géographique dans laquelle les
commandes GRASS opèrent :
• l’extension géographique, les limites nord/sud/est/ouest de la zone ;
• la résolution, la taille des pixels. Elle est le plus souvent identique en N-S et E-O mais
GRASS permet de les différencier ;
• le nombre de lignes et colonnes des données (information redondante avec les
précédentes).
Le SCR ne peut pas être changé après la création du secteur. En revanche, les caracté-
ristiques de la région sont modifiables pour, par exemple, ajuster l’extension géographique
ou la résolution aux objectifs de l’étude.

86
Exercice 1 • Prise en main de GRASS et QGIS

géobase de GRASS

location 1 location 2 location 3


projection UTM48N projection latlong projection Ventiane

mapset 1 PERMANENT mapset 1 PERMANENT mapset 1 PERMANENT


Région Région Région

mapset 2 occsol mapset 2 MNT mapset 2 carte Topo


données données données

mapset 3 MNT mapset 3 hydrologie


données données

mapset4 hydrologie
données

Figure E1.1 – Structure de la géobase de GRASS.

QGIS n’utilise pas une structure particulière de stockage des données. Différents
formats d’échange de données peuvent être choisis lors de l’enregistrement. Les projec-
tions peuvent s’effectuer à la volée. Des couches enregistrées dans différents SCR peuvent
donc être traitées sans une opération de reprojection préalable. L’avantage est une grande
souplesse dans l’utilisation des données. Les inconvénients sont un allongement des
temps de calcul et un moindre contrôle des opérations en mode Raster.

3 Un aperçu de GRASS
3.1 Interface homme machine de GRASS
L’IHM de GRASS (Fig. E1.2) se compose de trois fenêtres séparées (A, B et C) (Neteler
et Mitasova 2008) :
A est un gestionnaire de couches comprenant :
• une barre de menus déroulants d’accès aux commandes ;
© Dunod – Toute reproduction non autorisée est un délit.

• deux barres d’icônes. La première gère l’affichage des couches (espace de travail,
sélection des couches rasters, vecteurs…). La deuxième comporte des raccourcis à
des fonctions essentielles de GRASS (edition, géoréférenceur, import…) ;
• une barre située en bas permettant de choisir la fonction de la partie centrale de la
fenêtre :
–– couches visualisées dans la fenêtre « display » ;
–– messages des commandes exécutées ;
–– accès alternatif aux commandes ;
–– console Python.
B est une console shell à partir de laquelle seront exécutées les commandes en ligne.

87
Partie 2 • Partie pratique

C est la fenêtre « display » des couches visualisées. La barre d’icônes donne accès
aux fonctions de zoom habituelles, des interrogations graphiques sur le contenu, des
mesures de distance, surface… et une gestion des régions (sauvegarde et sélection de
région, définition de la région de calcul…).

A C

Figure E1.2 – IHM de GRASS.

3.2 Création de la géobase GRASS


Un répertoire « bdgis » qui contiendra la géobase est créé en utilisant une commande
du système d’exploitation. Puis un secteur « UTM48N » et un jeu de cartes « laos » sont
enregistrés au début de la session GRASS.

Opérations GRASS Description de la procédure


Créer location Création de la location (secteur) UTM48N
EPSG : 32648
Créer mapset Création d’une mapset (jeu de cartes) laos
Ne jamais travailler dans la mapset permanent
Vérifier la projection Paramètres/Projections de carte/Affiche la projection
de la carte [g.proj -p]

3.3 Opérations GRASS sur les vecteurs


Le fichier au format shape « LU2007 » est importé dans une couche vecteur, puis visua-
lisé. Observez le lien entre les polygones et la table attributaire.

88
Exercice 1 • Prise en main de GRASS et QGIS

Opérations GRASS Description de la procédure

Importer vecteur Fichier/Importer des données vectorielles/


Import de vecteur de formats communs
[v.in.ogr input=.../LU2007/LU2007.shp layer=LU2007

Région étendue Zoomer sur l’étendue de la carte

Ouvrir la table Onglet Couches


attributaire Clic droit couche/Montrer les attributs
Clic droit/Surligner les objets sélectionnés

Manipuler outils Zoom in/out


graphiques Interrogation éléments graphiques
Mesurer distance

3.4 Opérations GRASS sur les rasters


Les caractéristiques de la région (extension et résolution) sont modifiées afin de visualiser
ses effets sur la transformation de la couche vecteur en raster.

Opérations GRASS Description de la procédure

Afficher la carte [d.vect map=LU2007]

Résolution (30 m) Paramètres/Région calculée/Définir la région (onglet Résolution/


Résolution de la grille 2D)
[g.region res=30]

Région de calcul Zoomer sur une partie de la carte


(fenêtre « display ») Définir la région calculée à partir de celle de l’écran

Vérifier la projection Paramètres/Projections de carte/


Affiche la projection de la carte [g.proj -p]

Transformer en Raster Fichier/Conversions de type de carte/Vecteur vers Raster


[v.to.rast input=LU2007 output=LU2007 use=attr attribute_
column=ID3 label_column=LU3]

Visualiser le résultat

Résolution (250 m) Paramètres Région/Définir la région (onglet Résolution/Résolution


© Dunod – Toute reproduction non autorisée est un délit.

de la grille 2D)
[g.region res=250]

Visualiser le résultat

Essayez différentes combinaisons d’extension et de résolution.

89
Partie 2 • Partie pratique

4 Un aperçu de QGIS
4.1 Interface homme machine de QGIS
L’IHM de QGIS (Fig. E1.3) se compose de cinq éléments (D, E, F, G, H) (Allali 2015).
D est une barre horizontale de menus déroulants d’accès aux commandes.
E se compose de deux barres horizontales d’icônes. La première donne accès à la
gestion de projet et au composeur d’impression, aux fonctions habituelles de zoom,
d’interrogation graphique, au module d’algèbre de cartes, etc. La deuxième barre gère
l’édition des vecteurs et elle comporte des raccourcis à des fonctions essentielles : style,
console Python, etc.
F est une barre verticale de menus qui gère principalement l’import et la création de
couches.
G représente des panneaux verticaux dont l’affichage est optionnel. Les plus impor-
tants sont « Couches » et « Explorateur ». Le panneau « Couches » permet de choisir
les paramètres d’affichage de chaque couche (style...) et d’en modifier toutes les carac-
téristiques (SCR, table attributaire des vecteurs…). Le panneau « Explorateur » assure
le chargement d’une couche par sélection d’un fichier dans l’arborescence des dossiers.
H est une fenêtre de visualisation des couches.
Cette interface se modifie en fonction de l’activation des outils et de l’activation
d’extension qui apportent de nouvelles fonctionnalités accessibles et paramétrables à
partir de nouveaux menus, panneaux ou icônes.

D
E
F
H

Figure E1.3 – IHM de QGIS.

4.2 Opérations QGIS sur les vecteurs


Comme pour GRASS, le fichier au format shape « LU2007 » est importé, puis visualisé.
Observez le lien entre les polygones et la table attributaire.

90
Exercice 1 • Prise en main de GRASS et QGIS

Opérations QGIS Description de la procédure

Importer vecteur D : Couche/Ajouter une couche/Ajouter une couche vecteur


« LU2007 » ou
F : Se déplacer dans l’arborescence des fichiers/Clic droit/
Ajouter une couche au projet

Région étendue E : Zoomer sur l’emprise totale

Ouvrir la table G : Couches


attributaire Clic droit couche LU2007/Ouvrir la table d’attributs
Clic gauche/Surligner les lignes pour sélectionner les objets

Manipuler outils E : icône


graphiques Zoom in/out
Interrogation des éléments graphiques
Mesurer une distance

4.3 Plugin GRASS 7


Une extension GRASS 7 de QGIS permet à partir de l’explorateur de charger des couches
stockées dans la géobase de GRASS.

Opérations QGIS Description de la procédure

Installation extension D : Extension/Installer gérer les extensions


GRASS 7 Rechercher et installer l’extension GRASS 7 à partir
des dépôts officiels
Installer le plugin

Chargez les couches GRASS dans QGIS.

Opérations QGIS Description de la procédure

Ouvrir mapset GRASS D : Extension/GRASS/ouvrir le jeu de donnée


Base de données GIS : bdgis
Localisation : UTM48N
Jeu de données : occsol
© Dunod – Toute reproduction non autorisée est un délit.

Ouvrir couche vecteur GRASS G : Explorateur/ Double clic gauche/.../UTM48N/occsol/


« LU2007 » LU2007

Ouvrir la table attributaire G : Couches


Clic droit couche LU2007/Ouvrir la table d’attributs
Clic gauche/Surligner les lignes pour sélectionner
les objets

Remarquez que la table attributaire est rattachée au centroïde pour les couches
gérées par GRASS, tandis qu’elle est directement associée aux polygones pour les
shapes.

91
Partie 2 • Partie pratique

5 Commentaires
Les paramètres de la région, extension géographique et résolution spatiale confèrent à
GRASS une puissance inégalée par les autres SIG dans le traitement des données.
Mais son utilisation demande de respecter quatre contraintes :
‒‒ définir la localisation par un SCR ;
‒‒ ne jamais travailler dans la mapset PERMANENT ;
‒‒ définir l’extension géographique ;
‒‒ choisir la résolution spatiale.
La résolution spatiale lors de la conversion vecteur-raster est choisie en accord avec la
qualité géométrique des relevés ou en fonction de la caractéristique des autres données
analysées (photographies aériennes, images satellite). L’extension géographique permet
de limiter les calculs à la zone d’étude. Il est même possible de restreindre les calculs à
une petite zone lors de la mise au point des méthodes puis de redéfinir, une fois les tests
terminés, la taille de la région à celle de la zone d’étude.

6 Pour aller plus loin


La prise en main de GRASS et QGIS se poursuit en colorant la carte en fonction des
catégories d’occupation du sol, en étiquetant les polygones, etc.

92
Exercice 2
Repères
cartographiques

1 Présentation de l’étude de cas


Comprendre les repères cartographiques est un préalable à toute activité cartographique.
Bien avant l’existence des systèmes d’information géographique, les cartographes ont
défini les concepts de projection. Pour mieux les comprendre, le système de coordonnées
de référence d’une carte topographique ancienne de la région de Luang Prabang (Laos)
est étudié.
Cette carte est dressée en 1983 par les services cartographiques laotiens avec l’aide
de collègues russes. Ils ont utilisé une projection particulière comme en témoigne le
cartouche de la carte (Fig. E2.1).

Figure E2.1 – Cartouche de la carte topographique de Luang Prabang (1983).

Analysez ce cartouche pour déterminer :


• l’ellipsoïde ….........
• la projection …......…
© Dunod – Toute reproduction non autorisée est un délit.

Plus précisément, le SCR de cette carte est « Vientiane 1982 ». L’ellipsoïde est basé
sur le sphéroïde de Krassovsky 1940. La projection est Gauss-Kruger. L’échelle de la
carte est 1:100 000.
La documentation technique (LAO DATUM SETUPS For GARMIN GPS-60 GPS
Receivers GEOMAP LAOS JUNE 2008) 1 précise les paramètres de ce SCR :
• Name : Vientiane 1982
• Ellipsoid : Krassovsky
• Local datum, Dx = 42, Dy = – 115, Dz = – 30

1. Disponible à l’adresse http://www.geomap.net.au/Doccuments/eTrex%20for%20Laos%20June%20


2008.pdf, consulté le 19/01/2022.

93
Partie 2 • Partie pratique

• Zone : 18
• Gauss-Krüger coordinate system, Latitude Origin = 0, Central Meridian = 105 East,
Scale Factor = 1.0, False Easting = 18500000, False Northing = 0
Pour faciliter la déclaration des SCR, l’European Petroleum Survey Group constitua
une liste de la plupart des SCR nommée « codes EPSG ». Ces codes EPSG sont reconnus
par l’OGC et ils sont maintenus à jour. De nombreux logiciels les utilisent. Le site
internet https://epsg.io donne accès à l’ensemble des codes EPSG. Malheureusement,
aucune définition ne correspond à notre cas d’étude et le SCR doit être codé. Dans ce
but, complétez les rubriques suivantes :

+proj …... Projection name


+ellps …... Ellipsoid name
+lat_0 …... Latitude of origin
+lon_0 …... Central meridian
+k_0 …... Scaling factor
+x_0 …... False easting
+y_0 …... False northing
+towgs84 …... 3 or 7 term datum transform parameters
+units …... meters, US survey feet, etc.
+no_defs
Codez ce SCR dans le style proj.4 en complétant sa description ci-dessous :

+proj=tmerc +lat_0=0 +lon_0=105 +k_0=1 +x_0=…… +y_0=0 +ellps=krass


+towgs84=…… +units=m +no_defs <>

2 Étapes de l’étude

Opérations GRASS Description de la procédure

Créer location Secteur du projet « Vientiane 1982 »


...
Spécifiez le SCR en utilisant des paramètres PROJ.4 personnalisés

Créer mapset Création d’une mapset (jeu de cartes) carteTopo


Ne jamais travailler dans la mapset permanent

Vérifier le SCR Paramètres/Projections de carte/Affiche la projection de la carte [g.proj -p]

94
Exercice 2 • Repères cartographiques

La commande g.proj -p fournit la sortie suivante :

-PROJ_INFO-------------------------------------------------
name : Transverse Mercator
proj : tmerc
ellps : krassovsky
lat_0 : 0
lon_0 : 105
k : 1
x_0 : 18500000
y_0 : 0
towgs84 : 42,-115,-30,0,0,0,0
no_defs : defined

-PROJ_UNITS------------------------------------------------
unit : Meter
units : Meters
meters : 1

Pour vérifier la validité du SCR « Vientiane 1982 » créé, la position d’un point
géographique particulier, correspondant à un croisement de route situé près de l’aéro-
port de Louang Prabang, est relevé sur la carte topographique et sur Google Maps
(Fig. E2.2).
© Dunod – Toute reproduction non autorisée est un délit.

Figure E2.2 – Localisation d’un croisement de route sur la carte topographique


de Vientiane 1982 et sur Google Maps.

En l’absence d’un exemplaire papier de la carte topographique, un scan de cette carte


est importé sous GRASS dans un espace non géoréférencé.

95
Partie 2 • Partie pratique

Opérations GRASS Description de la procédure

Créer location Création de la location (secteur) plane (système de coordonnées


non-terrestres arbitraire XY)

Créer mapset Création d’une mapset (jeu de cartes) import


Ne jamais travailler dans la mapset permanent

Importer image Fichier/Importer une carte raster/Import de raster de formats


communs
[r.in.gdal input=.../SRC/lpb.jpg output=lpb --overwrite]

Composition colorée Raster/Gérer les couleurs/Créer RVB [r.composite --overwrite red=lpb.


red green=lpb.green blue=lpb.blue output=compoColr]

Déterminez la position du croisement de routes en utilisant les outils « Pointer » et


« Mesurer une distance » de la fenêtre « Display » de GRASS. Reportez les valeurs dans
le tableau ci-dessous puis calculez les coordonnées cartographiques.

Plan (pixel) Vientiane 1982 (m)

Taille du pixel s1 = ... s2 = ...

Abscisse du coin inférieur gauche de la maille xc1 = ... xc2 = ...


contenant le point

Ordonnée du coin inférieur gauche yc1 = ... yc 2 = ...


de la maille contenant le point

Abscisse du point x1 = ... à calculer

Ordonnée du point y1 = ... à calculer

Utilisez ensuite Google Maps pour relever les coordonnées du même point. Clic droit
« Plus d’infos sur cet endroit » pour afficher les coordonnées géographiques du point visé.

X (degré) Y (degré)

Google Maps ... ...


latitude longitude WGS84

Les coordonnées sous Google Maps sont exprimées en latitude longitude, ellipsoïde
WGS84. Il est nécessaire de les projeter dans le SCR « Vientiane 1982 ».
Se connecter sous GRASS sous la location/mapset « Vientiane 1982/carteTopo ».

Opérations GRASS Description de la procédure

Projeter les coordonnées « latitude (Paramètres/Projections de carte/


longitude » en « Vientiane 1982 » Convertir des coordonnées [m.proj -i
coordinates=102.144017,19.887557]

96
Exercice 2 • Repères cartographiques

Pour préciser que le SCR source est LL WGS84, l’option -i est utilisée.
Complétez le tableau ci-dessous.

X (m) Y (m)

Carte topographique ….... …....


Google Maps ….... …....
Écarts ….... …....

Concluez.

3 Commentaires
Les codes EPSG qui existent pour la plupart des SCR sont efficaces. Leur utilisation,
quand c’est possible, est vivement conseillée pour éviter le décryptage des styles de
projection (proj.4) et les erreurs de saisie.

4 Corrections des exercices


Le cartouche de la carte topographique de Luang Prabang (1983) indique que l’ellipsoïde
est Krasovskie et que la projection est Gauss.
Le SCR « Vientiane 1982 » se définit par :
+proj tmerc Projection name
+ellps krass Ellipsoid name
+lat_0 0 Latitude of origin
+lon_0 105 Central meridian
+k_01 Scaling factor
+x_0 18500000 False easting
+y_00 False northing
© Dunod – Toute reproduction non autorisée est un délit.

+towgs84 42,-115,-30,0,0,0,0 3 or 7 term datum transform parameters


+units m meters, US survey feet, etc.
+no_def
Ces caractéristiques sont codées dans le style proj.4 :

+proj=tmerc +lat_0=0 +lon_0=105 +k_0=1 +x_0=18500000 +y_0=0 +ellps=krass


+towgs84=42,-115,-30,0,0,0,0 +units=m +no_defs <>

Les formules suivantes permettent de convertir les coordonnées du point exprimées


en unité pixel relevées sur le scan papier en coordonnées cartographiques dans le SCR
« Vientiane 1982 ».

97
Partie 2 • Partie pratique

X = xc2 + (x1 − xc1) × s2 / s1


Y = yc2 + (y1 − yc1) × s2 / s1
X = 18 200 000 + (1 956 − 1 856) × 2 000 / 236
Y = 2 202 000 + (845 − 790) × 2 000 / 236
La conversion des coordonnées géographiques relevées sous Google Maps en coor-
données cartographiques dans le SCR « Vientiane 1982 » permet le calcul des écarts
observés entre la carte topographique et l’image Google Maps.

X (m) Y (m)

Carte topographique 18 200 847 2 202 466

Google Maps 18 200 833 2 202 480

Écarts 14 - 14

Sachant que pour cette carte topographique au 1/100 000, 10 m correspondent à


0,1 mm, ces écarts sont bien en deçà de la précision attendue. La définition du SCR
« Vientiane 1982 » est validée.

98
Exercice 3
Géoréférencement
d’une carte scannée

1 Présentation de l’étude de cas


Le géoréférencement consiste à projeter une image raster ou vecteur d’un système plan
qui n’est pas géolocalisé dans un système de référence cartographique. En mode Raster, la
localisation d’un objet exprimée en nombre de lignes et de colonnes de la grille de pixels
comptés à partir du coin inférieur gauche de l’image (dimension sans échelle cartographique)
est transformée en coordonnées cartographiques exprimées en unités de distance (m).
L’opération de géoréférencement est réalisée après toute acquisition de photographie
aérienne, d’image satellite, d’image radar ou de digitalisation de carte. Ces opérations
sont spécifiques du type d’image et elles sont assez complexes. Cet exemple se limite au
cas le plus simple, celui d’une carte scannée.

2 Analyse du problème
La carte topographique de Luang Prabang (Laos, 1983) est fournie sous forme papier.
Elle est scannée par morceau. L’objectif de cet exercice est de géoréférencer l’un de ces
morceaux.
Le principe de ce géoréférencement est illustré par la figure E3.1.

rojection
rep projection Vientiane 1982
projection plane
© Dunod – Toute reproduction non autorisée est un délit.

image source
image cible
point 1 point 1
69.14 , 389.24 606110 , 1695138

Figure E3.1 – Principe de géoréférencement d’une carte papier scannée.

99
Partie 2 • Partie pratique

Déterminez le nombre de dpi (dot per inch) à laquelle doit être scannée une carte
sachant que la résolution attendue pour une carte papier est de 0,1 mm, compte tenu
de la déformation du papier due par exemple à l’humidité de la pièce de stockage. Pour
mémoire, un inch correspond à 2,5 cm.
Résolution du scan : ... Précisez le calcul : ...
Sachant que l’échelle de la carte est 1/100 000, quelle est la taille d’un pixel : …
La taille du pixel correspond à la résolution de la future location (secteur)
« Vientiane 1982 ».
La carte scannée est fournie sous la forme d’un fichier au format jpeg, lpb.jpg qui
compte 3 508 lignes et 2 552 colonnes.

3 Principe de géoréférencement
Le géoréférencement de la carte topographique scannée comprend deux étapes :
une transformation géométrique suivie du calcul de la nouvelle valeur des pixels.
Quand la transformation géométrique consiste en la projection d’une grille d’un
repère plan vers un autre repère plan, une transformation polynomiale de premier
ordre est suffisante.
x′ = Ax + By + C
y′ = Dx + Ey + F
avec :
x : abscisse du pixel dans l’image source ;
y : ordonnée du pixel dans l’image source ;
x′ : abscisse du pixel dans l’image cible ;
y′ : ordonnée du pixel dans l’image cible ;
A : largeur du pixel exprimée en unité de l’image cible ;
B : terme de rotation ;
C : abscisse du centre du pixel du coin supérieur gauche de l’image cible ;
D : terme de rotation ;
E : opposé de la hauteur du pixel exprimé en unité de l’image cible (négatif) ;
F : ordonnée du centre du pixel du coin supérieur gauche de l’image cible.
Les termes B, C, D, F sont estimés par la mise en correspondance d’amers identifiés
sur l’image source avec leurs coordonnées cartographiques dans l’image cible. Trois
liens suffisent pour estimer ces paramètres mais il est recommandé de créer le plus
possible de liens et de les répartir sur l’ensemble de l’image afin de prendre en compte
les imprécisions de pointage et les déformations du support papier.
La qualité de l’ajustement est mesurée par l’erreur quadratique moyenne (RMSE,
« root mean square error ») encore appelée erreur de positionnement.

100
Exercice 3 • Géoréférencement d’une carte scannée

n
avec a distance entre la localisation relevée d’un
∑ ai2 point d’amer et sa localisation calculée par la trans-
i =1
RMSE = formation polynomiale.
n
Pour diminuer la RMSE, il est tentant d’utiliser des polynômes d’ordre supérieur au
premier ordre mais cette pratique n’est pas recommandée. La projection d’un plan sur un
autre plan ne nécessite que translation, dilatation et rotation. Toute autre transformation
introduirait des distorsions. Le recours à des polynômes d’ordre supérieur au premier ne
se justifie que quand un plan est projeté sur une surface plus complexe.

4 Étapes de l’étude
La préparation du géoréférencement comprend plusieurs étapes :
• Importez l’image « lpb.jpg » dans un système non géoréférencé.

Opérations GRASS Description de la procédure

Créer location Création de la location (secteur) plane (système de


coordonnées non-terrestres arbitraire XY)

Créer mapset Création d’une mapset (jeu de cartes) import


Ne jamais travailler dans la mapset permanent

Importer image Fichier/Importer une carte raster/Import de raster de


formats communs
[r.in.gdal input=.../SRC/lpb.jpg output=lpb --overwrite]

Composition colorée Raster/Gérer les couleurs/Créer RVB


[r.composite --overwrite red=lpb.red green=lpb.green
blue=lpb.blue output=compoColr]

• Créez un secteur de SCR correspondant à la carte topographique.

Opérations GRASS Description de la procédure


© Dunod – Toute reproduction non autorisée est un délit.

Créer location Création de la location (secteur) Vientiane 1982


Spécifiez le SCR en utilisant des paramètres PROJ.4
personnalisés
+proj=tmerc +lat_0=0 +lon_0=105 +k_0=1 +x_0=18500000
+y_0=0 +ellps=krass +towgs84=42,-115,-30,0,0,0,0 +units=m
+no_defs <>

Créer mapset Création d’une mapset (jeu de cartes) carteTopo

Vérifier le SCR Paramètres/Projections de carte/Affiche la projection de la


carte [g.proj -p]

101

9782100834013_Exercice.indd 101 1/27/22 4:13 PM


Partie 2 • Partie pratique

Définissez la région (étendue, résolution) qui correspond à l’emprise de la carte dans


la location « Vientiane 1982 » en utilisant les amorces de la carte.
Géoréférencez l’image sous la location « Vientiane 1982 », mapset « carteTopo » en
suivant les étapes suivantes :
1. Sélectionner l’outil A : géorectifier.
2. Choisir le type de carte : raster.
Choisir le secteur : plane.
Choisir le jeu de cartes source : import.
3. Choisir un groupe d’images/cartes à géorectifier.
Choisir un groupe : lpb.
Créer un groupe si aucun n’existe.
Si le groupe lpb n’existe pas, le créer en lui ajoutant les couches lpb.blue, lpb.green,
lpb.red (voire une composition colorée).
Suffixe pour les cartes de sortie : .georect...
4. Sélectionner les cartes à afficher pour la création des points de contrôle.
Sélectionner la carte source à afficher : lpb.red (voire une composition colorée).
Sélectionner la carte cible à afficher.
5. Créer les points de contrôles avec l’interface graphique.
Définissez les points de contrôle à la position des croix matérialisant le quadrillage.
Cliquez sur l’image sur une croix pour enregistrer la coordonnée dans la projection
arbitraire (non géoréférencée). Lisez la valeur des coordonnées géographiques inscrites
sur la carte au niveau des amorces. Les valeurs de la projection « Vientiane 1982 » sont
situées à l’intérieur du cadre. Par exemple, les coordonnées de la croix située en haut à
gauche sont X = 18 188 000 m, Y = 2 214 000 m.
Les points de contrôle sont enregistrés dans le fichier POINTS dans le répertoire
group associé à la mapset « source ». Pour faciliter la saisie des points de contrôle, un
fichier POINTS contenant les coordonnées dans la projection arbitraire de l’ensemble
des croix peut être créé. La saisie se limitera ainsi à identifier sur la carte la position de
la croix correspondant à chaque coordonnée arbitraire et à cliquer.
6. Calculer la RMSE.
7. Géoréférencer l’image.
Le degré du polynôme associé à la transformation géométrique doit être de degré 1.
Choisir un degré supérieur à 1 ne ferait que masquer des erreurs dues à la localisation
des points de contrôles.
L’enchaînement des opérations de création des points de contrôle est résumé dans la
figure E3.2.

102
Exercice 3 • Géoréférencement d’une carte scannée

identification
point sur la carte
(Vientiane 1982)
1786000, 2214000

Figure E3.2 – Création des points de contrôle sous le module géoréférencement


de GRASS.

Les coordonnées de la source lues sur la carte topographique sont indiquées en km.
N’oubliez pas de les enregistrer en m.
Indiquez le nombre de points de contrôle utilisés pour le géoréférencement :
• nombre de points actifs : ...
• nombre de points inutilisés : ...

5 Commentaires
Il y a quelques dizaines d’années, le géoréférencement à partir de points de repère
était une opération courante préalable à toute analyse de carte, d’image satellite ou de
photographie aérienne. Aujourd’hui, les données sont souvent fournies sous une forme
© Dunod – Toute reproduction non autorisée est un délit.

géoréférencée. Il est cependant parfois utile de procéder à cette opération pour utiliser
des cartes anciennes, ou pour améliorer la localisation d’une image à partir de points de
contrôle relevés par nos soins au sol, si le relief n’est pas accentué.

6 Pour aller plus loin


1. La carte a été scannée par les services laotiens qui ne nous ont pas fourni la résolution
du scan. Est-il possible à partir de l’image de retrouver cette résolution ? Détaillez
les calculs.

103
Partie 2 • Partie pratique

2. Reprojetez la carte topographique de la location « Vientiane 1982 » vers la location


UTM48N avec la commande r.proj.
3. Superposez à cette carte reprojetée, l’occupation du sol LUT2007.

7 Corrections des exercices

7.1 Nombre de dpi du scan d’une carte pour obtenir une


résolution de 0,1 mm
Un inch correspond à 2,5 cm = 25 mm = 250 dixième de mm.
Si la taille du pixel est de 0,1 mm, un inch (2,5 cm = 25 mm) contient 25/0,1 = 250
pixels.
Pour scanner une carte avec une résolution de 0,1 mm, la résolution du scan doit être
réglée à 250 dpi.

7.2 Taille d’un pixel


Sachant que l’échelle de la carte est de 1/100 000, une précision de relevé sur la carte
papier de 0,1 mm correspond sur le terrain à 100 000 × 0,1·10-3 = 10 m.

7.3 Résolution de la carte fournie par les services laotiens


Pour connaître la résolution d’un scan à partir d’une image, il est nécessaire de déterminer
la correspondance entre la dimension d’un objet exprimée en pixel et celle exprimée en
unité de mesure de la carte papier.
Sur la carte topographique la distance entre deux croix est de 2 000 m sur le terrain.
Sur l’image, cette distance lue sur la couche importée dans la mapset plane est de 240
pixels. Comme l’échelle de la carte topographique est 1/100 000, 2 000 m correspondent
à 2 000/100 000 m sur la carte papier, soit 2 000/100 000/240 m par pixel. Un inch
(2,5 cm) recouvre donc 2,5·10-2/(2 000/100 000/240) = 300 dpi.

104
Exercice 4
Organisation des
données et de leur
traitement

1 Un besoin et une nécessité


La création d’un système d’information géographique s’accompagne souvent de la gestion
d’un projet. Les données à analyser et les documents à produire sont d’une grande diver-
sité et d’un nombre conséquent. Une organisation pensée de la structure de ces données
est donc indispensable. La structure proposée résulte d’une expérience de plusieurs
années. Elle n’est certainement pas parfaite ni la seule possible mais elle constitue un
socle que chacun pourra améliorer en fonction de la spécificité de ses besoins.
Cette organisation des données facilitera grandement leur gestion. Elle permettra de
les catégoriser en fonction de leur origine. Elle indiquera clairement la valeur de ces
données. Certaines sont le résultat d’un calcul et peuvent facilement être reconstruites.
D’autres sont le fruit de longues missions de terrain dont la perte mettrait à mal le projet.
Cette catégorisation aide aux procédures de sauvegarde. Elle permet également lors de
cette formation d’homogénéiser les scripts entre les différents systèmes d’exploitation.
Comme cette logique est commune à tous nos projets, elle rend aussi plus simple la réuti-
lisation des scripts. Le dernier point de ce texte insistera sur la bonne manière d’écrire
des scripts de fonction du SIG GRASS dans trois environnements de programmation :
les shells Linux (sh ou bash), le langage R du CRAN et le langage Python.
© Dunod – Toute reproduction non autorisée est un délit.

2 Structure des données


Les données d’un projet sont organisées selon une structure hiérarchique de répertoires :
• DOC : la documentation. Ses sous-répertoires comprennent BIBLIO, RAPPORT,
ADM...
• SRC : les données source. Ses sous-répertoires varient selon les projets. Ils contiennent
par exemple des relevés d’occupation du sol, des images satellite...
• PROG : les scripts et tout programme écrit pour le besoin du projet.
• RES : les résultats sous forme de fichiers texte.
• FIG : les figures construites par programme.

105
Partie 2 • Partie pratique

• TRAV : répertoire temporaire.


• LIB : les bibliothèques utilisées par tous les projets.
• BDGIS : base de données GRASS.
Les répertoires SRC, PROG, DOC doivent impérativement être régulièrement sauve-
gardés. Les autres répertoires RES, FIG peuvent être reconstruits. TRAV est destiné
aux calculs intermédiaires qui ne seront pas conservés.
Les répertoires BDGIS et LIB sont communs à tous les projets. BDGIS est situé
dans une localisation particulière, parfois sur un disque dur dédié pour optimiser
les temps de calcul. LIB contient les programmes communs tels les bibliothèques
d’utilitaires.
Trois environnements de programmation permettent d’accéder aux commandes
GRASS sans passer par l’interface graphique et d’écrire des scripts. Sous Linux et Mac
OS X, l’interpréteur bash, R du CRAN et Python sont efficaces. Sous Windows, seuls R
et Python sont conseillés car la pauvreté de l’interpréteur MSDOS limite beaucoup les
fonctionnalités offertes par la programmation des fichiers batch.
Pour chacun de ces environnements, avant d’exécuter un script, il est nécessaire de
définir les variables renseignant sur la structure des répertoires et de se déplacer dans le
répertoire PROG. L’appel aux commandes de GRASS, la lecture et l’écriture des couches
sont spécifiques aux trois environnements de programmation.

3 L’interpréteur bash
Initialement, sh était destiné à la programmation pour ses qualités de rapidité et de
portabilité tandis que bash était plus adapté à une utilisation interactive. Mais les fonc-
tionnalités de bash le rendent aujourd’hui plus plaisant que sh à utiliser. L’interpréteur
bash est disponible sur Linux et Mac OS X.
Choisir le répertoire de travail
L’exécution des scripts demande d’être dans le répertoire PROG.

cd .../PROG1

Définition des variables de structure des répertoires


La gestion des données est grandement facilitée par la déclaration des variables décrivant
la localisation des répertoires à l’aide du script envir.cf.

1. ... désigne le début du chemin. Il doit être remplacé par la localisation du fichier.

106
Exercice 4 • Organisation des données et de leur traitement

dirRac="monRepertoire"
dirRacGis="monRepertoireGis"
dirLib="momRepertoireLIB"
location="UTM48N"
mapset="laos"
bdProg="sqlite"

Ce script est exécuté par des scripts spécifiques à chacun des environnements pour
construire les variables de localisation des répertoires. Le script envir.sh construit les
variables de l’environnement pour le bash.

source "envir.cf"
dirSrc=$dirRac"/SRC"
dirRes=$dirRac"/RES"
dirProg=$dirRac"/PROG"
dirTrav=$dirRac"/TRAV"
dirFig=$dirRac"/FIG"
dirGis=$dirRacGis"/"$location"/"$mapset
bdGis=$dirGis"/"$bdProg

Appel des fonctions GRASS


L’appel sous bash se fait directement par la commande GRASS qui apparaît dans la
fenêtre « command outpout » des modules graphiques lors de l’exécution. Recopier cette
trace et la coller dans un script est suffisant pour exécuter à nouveau la commande. Cette
méthode est très efficace pour créer un script.
• Exemple 1. Importer une couche vecteur
Recopiez les données de l’exercice 4 fournies dans le répertoire SRC.
Démarrez GRASS dans un secteur de datum UTM48N (EPSG 32648) sous le jeu de
cartes laos, puis importez le fichier au format shape LU1998.
© Dunod – Toute reproduction non autorisée est un délit.

Opérations GRASS Description de la procédure


Créer location Création de la location (secteur) UTM48 EPSG : 32648
Créer mapset Création d’une mapset (jeu de cartes) laos
Ne jamais travailler dans la mapset permanent
Importer vecteur Fichier/Importer des données vectorielles/Import de vecteur de
formats communs [v.in.ogr input=.../landuse/LU1998.shp]

Copiez/collez la trace de la commande dans l’éditeur de texte sous le nom script4_1.sh


qui doit être enregistré dans le répertoire .../PROG. Modifiez le chemin d’accès pour
pointer sur le répertoire indiqué par la variable dirSrc.

107
Partie 2 • Partie pratique

v.in.ogr input=$dirSrc/landuse/LU1998.shp --overwrite

L’option --overwrite qui autorise le remplacement des fichiers existants permet d’exé-
cuter le script plusieurs fois.
Ajoutez un shebang et l’appel au script envir.sh.

#!/bin/bash
source envir.sh
v.in.ogr input=$dirSrc/landuse/LU1998.shp --overwrite

Donnez les droits d’accès et exécutez le script.

chmod +x ./script4_1.sh pour donner la permission d'exécution


./script4_1.sh pour exécuter le script

• Exemple 2. Définir la région et transformer un couche vecteur en raster


Créez le fichier script4_2.sh dans .../PROG.

#!/bin/bash
source envir.sh
g.region vector=LU1998 res=10
v.to.rast --overwrite input=LU1998 output=LU1998 use=attr attribute_
column=ID2 label_column=LU2

Donnez les droits d’accès et exécutez le script.

chmod +x ./script4_2.sh
./script4_2.sh

4 Le logiciel R du CRAN
L’appel de fonction GRASS et la lecture/écriture des couches raster/vecteur est possible
sous R. Ces fonctionnalités sont conseillées sous Windows qui ne possède pas d’inter-
préteur de commandes système évolué.
Choisir le répertoire de travail
Sous Linux et Mac OS X, utilisez le terminal associé à l’application GRASS, pour se
déplacer dans le répertoire PROG et démarrer R.

108
Exercice 4 • Organisation des données et de leur traitement

cd .../PROG
R

Sous Windows, R doit être exécuté dans la fenêtre « terminal de GRASS » pour que
les variables de l’environnement GRASS soient renseignées. Cette contrainte impose
une suite d’opérations :

Opérations console Description de la procédure


Créer raccourci Glisser l’icône R sur le bureau
Changer de nom Clic droit renommer sous le nom « R »
Exécuter R C:\users\nomUtilisateur\Desktop\R.lnk

Opérations R Description de la procédure


Définir le répertoire courant Fichier/changer le répertoire courant Choisir le répertoire
.../PROG

Définition des variables de structure des répertoires


Le script envir.R construit les variables d’environnement pour R du CRAN.

source("envir.cf")
"%+%" <- function(x,y) paste0(x,y)
dirSrc <- dirRac %+% "/SRC"
dirRes <- dirRac %+% "/RES"
dirProg <- dirRac %+% "/PROG"
dirTrav <- dirRac %+% "/TRAV"
dirFig <- dirRac %+% "/FIG"
dirGis <- dirRacGis %+% "/" %+% location %+% "/" %+% mapset
bdGis <- dirGis %+% "/" %+% bdProg
© Dunod – Toute reproduction non autorisée est un délit.

Le script ci-dessous nommé script4_3.R permet de vérifier l’environnement.

source("envir.R")
print("répertoire courant")
print(getwd())
print("liste des répertoires de SRC")
print(dir(dirSrc))
if(file.exists(dirGis)) print("Base GIS OK")

Pour l’exécuter sous R : source(« script4_3.R »).

109
Partie 2 • Partie pratique

Appel des fonctions GRASS


Les commandes du bash peuvent être encapsulées sous R. Cette méthode est recom-
mandée sous Windows et elle est également possible sous Linux et Mac OSX. Le nom
de la fonction d’appel système diffère pour Windows et Unix.
Un script d’initialisation init.R redéfinit les appels au système afin de rendre compa-
tibles nos scripts pour les trois systèmes d’exploitation.

OSys <- .Platform$OS.type


if (OSys == "windows"){
cmd <- function(cmds, ...) shell(cmds, translate=TRUE, ...)
} else {
cmd <- function(cmds, ...) system(cmds, ...) # unix
}

Son appel est réalisé dans le script envi.R. Rajoutez la ligne suivante en début du
script envi.R.

source("init.R")

• Exemple 3. Importer puis transformer en raster une couche vecteur

source("envir.R")
cmd("v.in.ogr input=" %+% dirSrc %+% "/landuse/LU1998.shp --overwrite")
cmd("g.region vector=LU1998 res=10")
cmd("v.to.rast --overwrite input=LU1998 output=LU1998_A use=attr attri-
bute_column=ID2 label_column=LU2")

Lecture et écriture des rasters


La bibliothèque rgrass7 assure l’interface avec R du CRAN. La fonction readRAST
assure la lecture des rasters, writeRAST leur écriture. Les fonctions readVECT et write-
VECT lisent et écrivent les vecteurs.
• Exemple 4. Lire et écrire un raster
Une couche LU1998 est lue sous R. Un carré est rempli du code 47 (village) au milieu
de l’image. Puis la couche est réécrite dans la base de donnée GRASS.

source("envir.R")
library(rgrass7)
library(sp)
use_sp()
layerR <- readRAST("LU1998")
print(summary(layerR))

110
Exercice 4 • Organisation des données et de leur traitement

context <- gmeta()


n1 <- context$rows
c1 <- context$cols
mat2 <- matrix(layerR$LU1998, nrow=c1, ncol=n1, byrow=FALSE)
nb1 <- 10
centx <- trunc(c1/2)
centy <- trunc(n1/2)
mat2[(centx - nb1) : (centx + nb1),(centy - nb1) : (centy + nb1)] <- 47
for (i in (centy - nb1) : (centy + nb1))
for (j in (centx - nb1) : (centx + nb1))
mat2[j,i] <- 47
layerR$LU1998 <- as.vector(mat2)
writeRAST(layerR, "LU1998New", overwrite=TRUE)
cmd("r.colors map=LU1998New raster=LU1998")

5 Le langage Python
L’appel de fonctions GRASS sous Python est une alternative à l’utilisation de R du
CRAN. GRASS étant écrit pour partie en Python, plusieurs bibliothèques sont déve-
loppées pour interfacer Python à GRASS : grass.script, pygrass (Zambelli et al 2013).
Nous avons cependant préféré réaliser des appels système par souci de simplicité et
pour conserver une cohérence avec les procédures développées en bash et R du CRAN.
Choisir le répertoire de travail

Opérations GRASS Description de la procédure

Choisir répertoire courant Paramètres/Environnement de travail GRASS/Modifier le


dossier de travail Choisir le répertoire .../PROG
© Dunod – Toute reproduction non autorisée est un délit.

Utilisez la console Python du gestionnaire de couches pour exécuter les scripts.

Opérations Simple editor Description de la procédure

Lire le script File/Open

Exécuter le script Run/Run

Sous Linux et Mac OS X, il est également possible d’utiliser le terminal. Et d’exécuter


les scripts avec l’instruction : python3 scriptXX.py
Définition des variables de structure des répertoires
Le script envir.py ci-dessous construit les variables d’environnement pour Python.

111
Partie 2 • Partie pratique

dirSrc=dirRac + "/SRC"
dirRes=dirRac + "/RES"
dirProg=dirRac + "/PROG"
dirTrav=dirRac + "/TRAV"
dirFig=dirRac + "/FIG"
dirGis=dirRacGis + "/" + location
+ "/" + mapset

Le script suivant permet de vérifier l’environnement.

#!/usr/bin/env python3
# coding: utf-8
import sys, os
if __name__ == '__main__':
exec(open("./envir.py").read())
print("répertoire courant")
print(os.getcwd())
print("liste des répertoires de SRC")
print(os.listdir(dirSrc))
if os.path.exists(dirGis): print("Base GIS OK")

Pour l’exécuter, l’ouvrir dans le « Simple editor » de GRASS puis utiliser le menu Run/Run.
Appel des fonctions GRASS
L’interface avec les fonctions GRASS repose sur deux fonctions os.system et subprocess
subprocess.check_output. subprocess possède l’avantage de gérer les entrées/sorties stan-
dard mais demande de transformer l’instruction en liste. Elle est très sensible à l’écriture des
instructions et elle n’est utilisée que lorsque que le résultat est enregistré dans une variable.
Le script init.py ci-dessous assure les appels au système en s’adaptant aux différents
systèmes d’exploitation.

import subprocess, os, platform


def cmd(cmd9,intern=False):
maListe = cmd9.split(" ")
if intern:
if platform.system() == "Windows":
output = s u b pr o c e s s.c h e c k _ o u t p u t(m a L i s t e,u n iv e r s a l _
newlines=True,shell=True)
else: # Linux
output = subprocess.check_output(maListe,universal_newlines=True)
return output
else:
os.system(cmd9)

112
Exercice 4 • Organisation des données et de leur traitement

Rajoutez la ligne suivante en début du fichier envir.py

exec(open("./init.py").read())

• Exemple 5. Importer puis transformer en raster une couche vecteur

# coding: utf-8
if __name__ == '__main__':
exec(open("./envir.py").read())
cmd("v.in.ogr input=" + dirSrc + "/landuse/LU1998.shp --overwrite
cmd("g.region vector=LU1998 res=10")
cmd("v.to.rast input=LU1998 output=LU1998 use=attr attribute_column=ID2
label_column=LU2 --overwrite")

Lecture et écriture des rasters


Le module PyGRASS possède de nombreuses fonctions pour manipuler les rasters.
• Exemple 6. Lire et écrire un raster
Cet exemple reprend le dessin du carré (code 47, village) au centre de la couche
LU1998.

#!/usr/bin/env python3
# coding: utf-8
import numpy as np
from grass.pygrass.raster.buffer import Buffer
from grass.pygrass.gis.region import Region
from grass.pygrass.raster import RasterRow
def raster2numpy(rastname, mapset="):
"""Return a numpy array from a raster map"""
with RasterRow(rastname, mapset=mapset, mode='r') as rast:
return np.array(rast)
def numpy2raster(array, mtype, rastname, overwrite=False):
© Dunod – Toute reproduction non autorisée est un délit.

"""Save a numpy array to a raster map"""


reg = Region()
if (reg.rows, reg.cols) != array.shape:
msg = "Region and array are different: %r != %r"
raise TypeError(msg % ((reg.rows, reg.cols), array.shape))
with RasterRow(rastname, mode='w', mtype=mtype, overwrite=overwrite)
as new:
newrow = Buffer((array.shape[1],), mtype=mtype)
for row in array:
newrow[:] = row[:]
new.put_row(newrow)

113
Partie 2 • Partie pratique

if __name__ == '__main__':
exec(open("./envir.py").read())
LU1998 = raster2numpy('LU1998', mapset='laos')
dimLU = LU1998.shape
n1 = dimLU[0]
c1 = dimLU[1]
nb1 = 10
centx = (int)(c1/2)
centy = (int)(n1/2)
LU1998[centy-nb1-1:centy+nb1-1,centx-nb1-1:centx+nb1-1] = 47
numpy2raster(LU1998, 'CELL', 'LU1998New', overwrite=True)
cmd('r.colors map=LU1998New raster=LU1998')

L’exercice 9, « Les interfaces R du CRAN et Python », montre comment traiter les


données avec pandas.

6 Conclusion
Les trois environnements de programmation, bash, R du CRAN et Python sont complé-
mentaires pour créer des scripts. L’interpréteur bash est le plus simple, mais il ne
fonctionne pas sous Windows. Il ne permet pas de lire des rasters ou vecteurs. R permet
de lire des rasters et vecteurs assez simplement bien que l’ensemble de la région doit
être chargée en mémoire lors de la lecture. Python est plus complexe, mais la lecture
des rasters comprend trois modes de gestion de la mémoire (Row, RowIO, Segment),
la gestion des types de raster (CELL, FCELL, DCELL). La topologie des vecteurs est
gérée. Une parallélisation des tâches reposant sur le découpage de l’espace en sous
régions est même possible.

114
Exercice 5
Base de données
et SQL

1 Présentation de l’étude de cas


Dans le nord du Laos, la mise en valeur des terres se fait par une alternance de brûlis,
culture, jachère. Les plantations de teck qui apportent un revenu complémentaire au
détriment des cultures maraîchères ont un impact sur le ruissellement et l’érosion que
l’équipe cherche à mieux caractériser. Dans ce but, l’occupation du sol dans le petit bassin
de Houay Pano est relevée chaque année depuis 1998.
L’un des besoins exprimés par les chercheurs est de regrouper les catégories d’occu-
pation du sol (Banana, Banana & corn, Banana & corn & pineapple, Banana & teak...)
en sept grandes catégories : 1. Culture, 2. Fallow, 3. Permanent garden, 4. Forest, 5.
Teak + culture, 6. Teak, 7. Settlement.
Les données sont analysées selon la logique MERISE (Tardieu et al. 1983). Le langage
SQL est utilisé pour toutes les opérations. Le fichier landuse.tar.gz contient les relevés
d’occupation du sol entre 1998 et 2013.

2 Comprendre les données fournies


Créez, si elle n’existe pas, la location/mapset « UTM48N/laos ». Définissez la région
(emprise, résolution).

Opérations GRASS Description de la procédure


© Dunod – Toute reproduction non autorisée est un délit.

Créer location Création de la location (secteur) UTM48


EPSG : 32648

Créer mapset Création d’une mapset (jeu de cartes) laos


Ne jamais travailler dans la mapset permanent

Vérifier la projection Paramètres/Projections de carte/Affiche la projection


de la carte [g.proj -p]

Par défaut GRASS utilise le gestionnaire de base de données SQL qui permet d’utiliser
toute la puissance de ce langage.

115
Partie 2 • Partie pratique

Opérations GRASS Description de la procédure

Vérifier l’activation du Base de données/Gérer les bases de données/


gestionnaire SQLite Se connecter [db.connect driver=sqlite
database=’$GISDBASE/$LOCATION_NAME/$MAPSET/
sqlite/sqlite.db’]

Importez les couches. Vérifiez l’existence du fichier sqlite.db dans le dossier location/
mapset/sqlite.

Opérations GRASS Description de la procédure

Importer vecteur Fichier/Importer des données vectorielles/Import de vecteur


de formats communs
[ v.in.ogr input=../landuse/LU2007.shp overwrite ]

Région Zoomer sur l’étendue de la carte


étendue Définir la région de calcul à partir de l’extension d’affichage
et résolution (10 m) Région/Définir la résolution [g.region res=10 ]

Visualisez la table d’attributs de la couche « LU2007 » sous l’interface GRASS.


Vérifiez d’une autre manière que le gestionnaire sql est activé sous GRASS : clic droit
sur la couche « LU2007 », « Montrer les attributs », onglet « Gérer les tables ».
La forme des données initiales est présentée dans la figure E5.1.

LU2007
- cat
- LANDUSE

Figure E5.1 – Forme initiale des relevés d’occupation du sol du bassin de Houay
Pano, Laos.

Utilisez le logiciel SQLite 3 pour afficher le contenu de la table LU2007.

sqlite3 .../bdgis/UTM48N/laos/sqlite/sqlite.db
select * from LU2007;
.q

Cette séquence d’instruction peut être enregistrée dans un script shell (annexe 1).
Créez un script pour importer l’ensemble des couches d’occupation du sol entre 1998
et 2013. Il suffit simplement de reporter les instructions GRASS dans un script shell
(annexe 2) ou les encapsuler dans un programme R (annexe 3). Cette dernière solution
est recommandée sous Windows.

116
Exercice 5 • Base de données et SQL

Sous une console Unix :

chmod +x ./script5_2.sh #Accorder l'autorisation d'éxécution


./script5_2.sh #exécute le programme de l'annexe 2

Une alternative, sous R du CRAN :

source("script5_3.R") #exécute le programme de l’annexe 3

3 Analyse MERISE
Construisez le modèle conceptuel des données (n’oubliez pas les cardinalités).
...
• cat : code interne à GRASS identifiant chaque polygone ;
• ID2 : code occupation du sol ;
• LU2 : libellé occupation du sol ;
• ID3 : code catégories couverture du sol ;
• LU3 : libellé catégories couverture du sol ;
Construisez le modèle logique des données.
...
Construisez deux modèles physiques des données.
Le premier MPD est identique au MLD.
...
Le second MPD qui implique une dénormalisation totale est nécessaire pour exploiter
facilement les données sous GRASS. Une forte redondance dans les données est présente.
...
Comme la taille des données est faible, la redondance n’est pas pénalisante en ce qui
concerne l’espace disque occupé et la rapidité des requêtes. En revanche, lors des mises
à jour, les contrôles de cohérence sont rendus difficiles. L’avantage de cette dénorma-
© Dunod – Toute reproduction non autorisée est un délit.

lisation est la simplicité apportée par la gestion d’une seule table. L’inconvénient est la
complexité des contrôles de cohérence lors des mises à jour.

4 Implémenter les MPD


Commencez par créer la table LUCODE en extrayant la liste du contenu du champ
LANDUSE de la table LU2007. Puis créez une nouvelle table LU2007 du MPD à partir
de la table LU2007 fournie par le laboratoire laotien qui est remplacée lors de cette
opération (annexe 4).

117
Partie 2 • Partie pratique

LUCODE LU2007
- ID2 - cat
- LU2 # ID2

Figure E5.2 – Tables LUCODE et LU2007 du MPD.

cat : code interne à GRASS identifiant chaque polygone.


ID2 : code occupation du sol.
LU2 : libellé occupation du sol.

La syntaxe MERISE demande de souligner les clefs primaires et de préfixer par # les
clefs secondaires (Fig. E5.2).
Pour afficher les libellés de la table LUCODE associés au code ID2 de la table LU2007,
une jointure est réalisée.

SELECT cat, LUCODE.ID2, LU2 FROM LU2007, LUCODE WHERE LU2007.ID2 = LUCODE.
ID2;

Réalisez ces opérations pour toutes les couches de Houay Pano. Attention, la même
codification doit être utilisée pour toutes les couches. La couche « LU2007 » doit être
importée à nouveau pour revenir à l’état initial (annexe 5).
Poursuivez l’implémentation du MPD en fonction du schéma ci-dessous (Fig. E5.3).

TYCODE LUCODE
- ID3 - ID2
- LU3 - LU2
# ID3

Figure E5.3 – Table TYCODE et LUCODE du MPD.

La table TYCODE est fournie et elle doit simplement être importée (annexe 6).
La table LUCODE doit être modifiée pour intégrer la clef secondaire ID3. La corres-
pondance entre les catégories d’occupation du sol détaillées (LU2) et les catégories
regroupées (LU3) est fournie dans le fichier LUCODErec.csv.
Pour construire la table LUCODE, les trois correspondances ID2/LU2, ID3/LU3
et LU2/LU3 sont respectivement stockées dans les tables LUCODE, TYCODE et
LUCODErec.
La double jointure suivante fait le lien entre ces tables.

SELECT LUCODE.ID2, LUCODE.LU2, TYCODE.ID3 FROM $layer, TYCODE, LUCODErec


WHERE LUCODE.LU2 = LUCODErec.LU2 AND LUCODErec.LU3 = TYCODE.LU3;

L’annexe 6 présente la modification de la table LUCODE.


L’affichage des données se fait à l’aide d’une double jointure.

118
Exercice 5 • Base de données et SQL

SELECT cat, LUCODE.ID2, LUCODE.LU2, TYCODE.ID3, TYCODE.LU3 FROM TYCODE,


LUCODE, LU2007
WHERE LU2007.ID2=LUCODE.ID2 AND LUCODE.ID3=TYCODE.ID3;

De même, la dénormalisation pour construire le premier MLD (annexe 7).

5 Commentaires
Cette fiche expose la logique Vecteur des traitements. Une alternative serait de trans-
former les couches Vecteur en rasters puis de procéder à une recodification des catégories.
Comment choisir entre ces deux alternatives ? Travailler sur les couches en mode Vecteur
ou en mode Raster dépend souvent des écoles de pensée. Dans la pratique, le mode
Vecteur est bien adapté à l’enregistrement de données terrain et à la correction et mise
en forme de ces données. Le mode Raster est plus adapté aux analyses, en particulier
quand les données terrain sont analysées conjointement à des photographies aériennes
ou à des images de télédétection.

6 Corrections

MCD
TYCODE LUCODE LU2007
- ID3 1,1 regrouper 1,n - ID2 1,1 décrire 1,n - cat
- LU3 - LU2

MLD
TYCODE LUCODE LU2007
- ID3 - ID2 - cat
- LU3 - LU2 # ID2
# ID3
© Dunod – Toute reproduction non autorisée est un délit.

MPD
TYCODE LUCODE LU2007
- ID3 - ID2 - cat
- LU3 - LU2 # ID2
# ID3

MPD dénormalisé
LU2007
- cat
- ID2
- LU2
- ID3
- LU3

Figure E5.4 – Corrigé de l’analyse MERISE appliquée aux relevés d’occupation


du sol du bassin de Houay Pano, Laos.

119
Partie 2 • Partie pratique

7 Annexes

Annexe 1

#!/bin/bash
source ./envir.sh
cat > $dirTrav/script.sql <<EOF
SELECT * FROM LU2007;
EOF
sqlite3 $bdGis/sqlite.db < $dirTrav/script.sql

Annexe 2

#!/bin/bash
source ./envir.sh
cd $dirSrc/landuse
for fici in `ls -1 *.shp`
do
v.in.ogr input=$fici --overwrite
done

Annexe 3

source("./envir.R")
dirSrc2 <- dirSrc %+% "/landuse/"
for (fici in list.files(path=dirSrc2, pattern="*.shp")) {
cmd("v.in.ogr input=" %+% dirSrc2 %+% fici %+% " --overwrite")
}

Annexe 4

#!/bin/bash
source ./envir.sh
cat > $dirTrav/script.sql <<EOF
DROP TABLE IF EXISTS LUCODE;

120
Exercice 5 • Base de données et SQL

CREATE TABLE LUCODE(ID2 INTEGER PRIMARY KEY, LU2 TEXT);


INSERT INTO LUCODE(LU2) SELECT DISTINCT LANDUSE FROM LU2007;
CREATE TABLE temp AS SELECT cat, LUCODE. ID2 FROM LU2007, LUCODE WHERE
LANDUSE = LU2;
DROP TABLE LU2007;
ALTER TABLE temp RENAME TO LU2007;
EOF
sqlite3 $bdGis/sqlite.db < $dirTrav/script.sql

Annexe 5

#!/bin/bash
source ./envir.sh
COUCHE="LU1998 LU1999 LU2000 LU2001 LU2002 LU2003 LU2004 LU2005 LU2006
LU2007 LU2008 LU2009 LU2010 LU2011 LU2012 LU2013"
for layer in $COUCHE
do
echo -n " " $layer
v.in.ogr input=$dirSrc/landuse/$layer.shp --overwrite
done
# creation table LUCODE
cat > $dirTrav/script.sql <<EOF
DROP TABLE IF EXISTS LUCODE;
CREATE TABLE LUCODE(ID2 INTEGER PRIMARY KEY, LU2 TEXT);
EOF
# remplit la table
for layer in $COUCHE
do
cat >> $dirTrav/script.sql <<EOF
INSERT INTO LUCODE(LU2) SELECT DISTINCT LANDUSE FROM $layer;
© Dunod – Toute reproduction non autorisée est un délit.

EOF
done
# Classe par ordre alphabetique
cat >> $dirTrav/script.sql <<EOF
CREATE TABLE temp(ID2 INTEGER PRIMARY KEY, LU2 TEXT);
INSERT INTO temp(LU2) SELECT DISTINCT LU2 FROM LUCODE
ORDER BY LU2;
DROP TABLE IF EXISTS LUCODE;
ALTER TABLE temp RENAME TO LUCODE;
EOF
# Crée les couches

121
Partie 2 • Partie pratique

for layer in $COUCHE


do
cat >> $dirTrav/script.sql <<EOF
CREATE TABLE temp AS SELECT cat, ID2 FROM $layer, LUCODE WHERE LANDUSE
= LU2;
DROP TABLE IF EXISTS $layer;
ALTER TABLE temp RENAME TO $layer;
EOF
done
sqlite3 $bdGis/sqlite.db < $dirTrav/script.sql

Annexe 6

#!/bin/bash
source ./envir.sh
# Lecture table TYCODE
cat > $dirTrav/script.sql <<EOF
DROP TABLE IF EXISTS TYCODE;
CREATE TABLE TYCODE (ID3 INTEGER, LU3 TEXT);
.separator;
.import $dirSrc/TYCODE.csv TYCODE
EOF
# Lecture table LUCODErec
cat >> $dirTrav/script.sql <<EOF
DROP TABLE IF EXISTS LUCODErec;
CREATE TABLE LUCODErec (LU2 TEXT, LU3 TEXT);
.separator;
.import $dirSrc/LUCODErec.csv LUCODErec
EOF
cat >> $dirTrav/script.sql <<EOF
CREATE TABLE temp AS SELECT LUCODE.ID2, LUCODE.LU2, TYCODE.ID3 FROM LUCODE,
TYCODE, LUCODErec WHERE LUCODE.LU2 = LUCODErec.LU2 AND LUCODErec.LU3 =
TYCODE.LU3;
DROP TABLE IF EXISTS LUCODE;
ALTER TABLE temp RENAME TO LUCODE;
EOF
sqlite3 $bdGis/sqlite.db < $dirTrav/script.sql

122
Exercice 5 • Base de données et SQL

Annexe 7

#!/bin/bash
source ./envir.sh
COUCHE="LU1998 LU1999 LU2000 LU2001 LU2002 LU2003 LU2004 LU2005 LU2006
LU2007 LU2008 LU2009 LU2010 LU2011 LU2012 LU2013"
cat > $dirTrav/script.sql <<EOF
DROP TABLE IF EXISTS temp;
EOF
for layer in $COUCHE
do
cat >> $dirTrav/script.sql <<EOF
CREATE TABLE temp AS
SELECT cat, LUCODE.ID2, LUCODE.LU2, TYCODE.ID3, TYCODE.LU3 FROM TYCODE,
LUCODE, $layer
WHERE $layer.ID2=LUCODE.ID2 AND LUCODE.ID3=TYCODE.ID3;
DROP TABLE IF EXISTS $layer;
ALTER TABLE temp RENAME TO $layer;
EOF
done
sqlite3 $bdGis/sqlite.db < $dirTrav/script.sql
© Dunod – Toute reproduction non autorisée est un délit.

123
Exercice 6
SQL spatial, requêtes
géométriques

1 Présentation de l’étude de cas


L’occupation du sol est relevée en 2007 dans un bassin versant à Houay Xon situé au
nord du Laos. La figure E6.1 donne une idée du contexte de l’étude en présentant la carte
d’occupation du sol traversée par une route au nord de la zone d’étude.

route
village
forêt mature
forêt secondaire
teck
rotation de culture
riz
verger
jardin

Figure E6.1 – Carte d’occupation du sol du bassin de Houay Xon, Laos.

Le modèle physique des données est établi selon une analyse MERISE (Tardieu
et al. 1983) (Fig. E6.2). Chaque parcelle est identifiée par un enregistrement de la
table LUT2007 de clef primaire cat auquel est associé un code ID2 d’occupation
du sol. La table LUCODE contient la correspondance entre le code d’occupation du
sol (ID2) et son libellé (LU2), acccompagné d’une clef étrangère ID3 pointant sur la
table TYCODE. Celle-ci contient une recodification de l’occupation du sol, suite à
un regroupement des classes en grandes catégories, de code ID3 accompagné de son
libellé LU3. La structure des tables décrivant la géométrie des polygones et le SCR
sont transparents pour l’utilisateur, les requêtes spatiales s’appuyant sur les fonctions
du SQL spatial.

124
Exercice 6 • SQL spatial, requêtes géométriques

MPD
TYCODE LUCODE LU2007
- ID3 - ID2 - cat
- LU3 - LU2 # ID2
# ID3

Figure E6.2 – Modèle physique des données décrivant l’occupation du sol


du bassin de Houay Xon, Laos. Les clefs primaires sont soulignées. Les clefs
secondaires sont préfixées par #.

La première partie de cette fiche introduit le logiciel SpatiaLite pour réaliser des
jointures. La deuxième partie manipule des requêtes spatiales entre objets géométriques
qui aident à comprendre la logique et la puissance du SQL spatial.

2 Étapes de l’étude
Les données sont importées, puis différentes requêtes en SQL spatial illustrent la puis-
sance de cet outil. La logique de manipulation de SpatiaLite est très proche de celle de
SQLite dont il est une extension.
Pour créer ou se connecter à une base spatialite : spatialite « nom de la base ».

spatialite …/LU.sqlite

Importez un shapefile : .loadshp shapefile nomTable CHARSET SRID.

.loadshp .../LUT2007/LUT2007 LUT2007 CP1252 32648

Cette instruction crée automatiquement les tables spatiales si elles n’existent pas.
Examinez ces tables spatiales avec les instructions .table et .schema.
© Dunod – Toute reproduction non autorisée est un délit.

Importez les tables csv à l’aide d’instructions SQL : exemple pour la table LUCODET.

CREATE TABLE LUCODET (ID2 INTEGER, LU2 TEXT, ID3 INTEGER);


.separator;
.import .../LUCODET.csv LUCODET

Le script consigné en annexe 1 réalise l’ensemble de ces opérations.


Listez les tables de la base (.table) et examinez les opérations associées à la création
de la table LUT2007 (.schema LUT2007) pour comprendre les opérations réalisées par

125
Partie 2 • Partie pratique

la commande .loadshp. Un champ Geometry est ajouté à la table LUT2007 pour gérer
la géométrie stockée dans les autres tables.

SELECT * FROM LUT2007 LIMIT 5;

De simples requêtes SQL assurent les jointures entre la table LUT2007 et les tables
décrivant le landuse TYCODET et LUCODET (annexe 2).

SELECT CAT AS PARCEL, TYCODET.LU3 AS Type, LUCOçDET.LU2 AS Landuse


FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3 LIMIT 5;

Une vue est créée pour manipuler plus simplement cette jointure.

CREATE VIEW vue2 AS SELECT CAT, Geometry, LUCODET.ID2,


LUCODET.LU2, TYCODET.ID3, TYCODET.LU3 FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3
ORDER BY CAT;

Précisez le champ Geometry lors de la jointure permet de conserver la géométrie


des couches.
L'instruction suivant affiche la vue :

SELECT * FROM vue;

Utilisez QGIS pour visualiser les vues enregistrées dans le fichier LU.sqlite précé-
demment créé.

Opérations QGIS Description de la procédure

Sélectionner la base Menu D : Base de données/Gestionnaire de base de données


Clic droit SpatiaLite/Nouvelle connexion
Ouvrir .../RES/LU.sqlite

Afficher un shape Ouvrir onglet SpatiaLite/LU.sqlite


Clic droit sur une couche vecteur
Ajouter au canevas

Afficher la table attributaire (Gestionnaire de base de données)Base de données/Fenêtre


d’une couche SQL
Saisir la requête « SELECT * FROM vue2 »
Exécuter

126
Exercice 6 • SQL spatial, requêtes géométriques

Opérations QGIS Description de la procédure

Visualiser une couche (Gestionnaire de base de données) Base de données/Fenêtre SQL


Cocher Charger en tant que nouvelle couche
Saisir la requête « SELECT * FROM vue2 »
Exécuter
Cliquer Récupérer colonnes
Cocher colonne avec des valeurs uniques
Indiquer CAT pour cette colonne avec des valeurs uniques
Indiquer Geometry pour colonne de géométrie
Nom de la couche : landuse
Cliquer Charger pour voir la vue dans le canevas

La signification du terme Menu D est donnée dans l’exercice 1, « Prise en main de


GRASS et QGIS ».
L’avantage du SQL spatial ne se limite pas à la gestion des jointures. Des calculs
statistiques géométriques sont implémentés.
Utilisez les fonctions ST_Area et ST_Perimeter pour calculer :
• la surface exprimée en ha et le périmètre en m de chacune des parcelles classées par
ordre décroissant des surfaces ;
• la surface des parcelles de culture ;
• la somme des surfaces de toutes les parcelles de culture ;
• la somme des surfaces des parcelles de chacun des types d’occupation du sol
• la surface de la plus grande parcelle de chacun des types d’occupation du sol ;
• la moyenne des surfaces des parcelles de chacun des types d’occupation du sol.
Ces calculs reposent essentiellement sur le SQL (annexe 3).
Le SQL spatial offre un ensemble de fonctions évoluées pour créer, modifier, lire les
caractéristiques d’un objet géométrique, gérer les opérations ensemblistes entre objets
géométriques, mesurer des longueurs, des aires, des périmètres..., calculer des distances
entre objets, créer des tampons, etc. Une liste des fonctions est disponible à l’adresse :
http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html, consulté le 19/01/2022.
L’exercice suivant consiste à calculer l’intersection entre l’occupation du sol et un
tampon (buffer) de 100 m construit autour de la route. La couche décrivant l’occupation
© Dunod – Toute reproduction non autorisée est un délit.

du sol est LUT2007. Le tracé de la route est fourni sous forme d’un shapefile, roads.
Les instructions essentielles du script (annexe 4) sont explicitées ci-dessous.
L’instruction .loadshp construit l’ensemble des tables relatives à la topologie de la
polyligne représentant la route.

.loadshp .../roads/roads roads CP1252 32648

La construction du tampon de 100 m demande de détailler les étapes :


• création de la table road_zones : CREATE TABLE road_zones... ;

127
Partie 2 • Partie pratique

• ajout d’une colonne de type ‘geometry’ : SELECT AddGeometryColumn(‘road_


zones’, ‘geometry’ ;
• création d’un buffer de 100 m : ... ST_Buffer(geometry, 100.0))... ;
• calcul des statistiques de recouvrement à l’aide de la fonction ST_Area qui retourne
la surface de l’objet, ce dernier pouvant lui-même résulter d’une opération, dans cet
exemple l’intersection.

ST_Area(ST_Intersection(LUT2007.Geometry,road_zones.geometry))/10000 AS
"aire de recouvrement (ha)" … WHERE ST_Intersects(LUT2007.Geometry, road_
zones.geometry)...

Lors de la création du buffer, les opérations liées à la complétion des différentes tables
sont gérées par la fonction ST_Buffer.
ST_Intersects teste l’existence de l’intersection. ST_Intersection retourne l’objet
géométrique correspondant.

3 Commentaires
SpatiaLite, même s’il ne gère pas les accès concurrents, possède de nombreux atouts :
• portabilité du logiciel dans les OS : Linux, MacOS, Windows ;
• un seul fichier, pour stocker les tables et requêtes associées, réutilisable dans les trois
OS ;
• garantie des propriétés ACID (atomicité, cohérence, isolation, durabilité) ;
• respect des standards de l’OGC-SFS, facilitant le portage des applications vers
postGIS, MySQL spatial.
Ces qualités le rendent adapté à la gestion des sites Internet. Il est utilisé par de
nombreux acteurs du Web : Firefox, Skype, Google, Apple, Android, McAffee, Adobe,
etc.

4 Pour aller plus loin


Une abondante littérature accompagnée d’exemples est disponible sur Internet :
• http://www.gaia-gis.it/gaia-sins/spatialite-cookbook-fr/index.html, consulté le
21/12/2017.
Un livre dédié à postGIS constitue une approche théorique intéressante : Obe et al.
(2011).
Un document explicite les standards de l’OGC-SFS : Herring (2010).

128
Exercice 6 • SQL spatial, requêtes géométriques

5 Annexes

Annexe 1

#!/bin/bash
source ./envir.sh
rm -f $dirRes/LU.sqlite
cat > $dirTrav/script.sql <<EOF
-- crée la structure et importe le shape LUT2007
.loadshp $dirSrc/LUT2007/LUT2007 LUT2007 CP1252 32648
-- importe la table TYCODET
DROP TABLE IF EXISTS TYCODET;
CREATE TABLE TYCODET (ID3 INTEGER, LU3 TEXT);
.separator;
.import $dirSrc/TYCODET.csv TYCODET
-- importe la table LUCODET
DROP TABLE IF EXISTS LUCODET;
CREATE TABLE LUCODET (ID2 INTEGER, LU2 TEXT, ID3 INTEGER);
.separator;
.import $dirSrc/LUCODET.csv LUCODET
EOF
spatialite $dirRes/LU.sqlite < $dirTrav/script.sql

Annexe 2

#!/bin/bash
source ./envir.sh
cat > $dirTrav/script.sql <<EOF
© Dunod – Toute reproduction non autorisée est un délit.

.nullvalue NULL
.headers on
--.mode column
-- affiche le contenu de la table
SELECT * FROM LUT2007 LIMIT 5;
-- jointure
SELECT CAT AS PARCEL, TYCODET.LU3 AS Type, LUCODET.LU2 AS Landuse FROM
TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3 LIMIT 5;
-- vue

129
Partie 2 • Partie pratique

DROP VIEW IF EXISTS vue1;


CREATE VIEW vue1 AS SELECT CAT AS PARCEL, TYCODET.LU3 AS Type, LUCODET.
LU2 AS Landuse FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3;
SELECT * FROM vue1 LIMIT 5;
-- vue
DROP VIEW IF EXISTS vue2;
CREATE VIEW vue2 AS SELECT CAT, Geometry, LUCODET.ID2, LUCODET.LU2,
TYCODET.ID3, TYCODET.LU3 FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3
ORDER BY CAT;
EOF
spatialite $dirRes/LU.sqlite < $dirTrav/script.sql

Annexe 3

#!/bin/bash
source ./envir.sh
cat > $dirTrav/script.sql <<EOF
.nullvalue NULL
.headers on
--.mode column
-- la surface exprimée en ha et le périmètre en m de chacune des quinze
parcelles les plus grandes classées par ordre décroissant des surfaces
SELECT CAT AS PARCEL, TYCODET.LU3 AS Type, LUCODET.LU2 AS Landuse,
ST_Area(Geometry) / 10000.0 AS "Surface (ha)",
ST_Perimeter(Geometry) AS "Périmètre (m)"
FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3
ORDER BY 4 DESC LIMIT 15;
-- la surface et le périmètre des seules parcelles de culture classées
par ordre décroissant des surfaces
SELECT CAT AS PARCEL, TYCODET.LU3 AS Type, LUCODET.LU2 AS Landuse,
ST_Area(Geometry) / 10000.0 AS "Surface (ha)",
ST_Perimeter(Geometry) AS "Périmètre (m)"
FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3 AND TYCODET.
LU3="Culture"
ORDER BY 4 DESC;
-- la somme des surfaces de toutes les parcelles de culture

130
Exercice 6 • SQL spatial, requêtes géométriques

SELECT TYCODET.LU3 AS Type, sum(ST_Area(Geometry) / 10000.0) AS "Somme


Surface (ha)"
FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3 AND TYCODET.
LU3="Culture";
-- la somme des surfaces des parcelles de chacun des types d'occupation
du sol
SELECT TYCODET.LU3 AS Type, sum(ST_Area(Geometry) / 10000.0) AS "Somme
surface (ha)"
FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3
GROUP BY TYCODET.LU3;
-- la surface de la plus grande parcelle de chacun des types d'occupa-
tion du sol
SELECT TYCODET.LU3 AS Type, max(ST_Area(Geometry) / 10000.0) AS "Maximum
surface (ha)"
FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3
GROUP BY TYCODET.LU3;
-- la moyenne des surfaces des parcelles de chacun des types d'occupa-
tion du sol
SELECT TYCODET.LU3 AS Type, sum(ST_Area(Geometry) / 10000.0) / count(*)
AS "Moyenne surface (ha)"
FROM TYCODET, LUCODET, LUT2007
WHERE LUT2007.ID2=LUCODET.ID2 AND LUCODET.ID3=TYCODET.ID3
GROUP BY TYCODET.LU3;
EOF
spatialite $dirRes/LU.sqlite < $dirTrav/script.sql

Annexe 4

#!/bin/bash
© Dunod – Toute reproduction non autorisée est un délit.

source ./envir.sh
cat > $dirTrav/script.sql <<EOF
.nullvalue NULL
.headers on
--.mode column
.loadshp $dirSrc/roads/roads roads CP1252 32648
CREATE TABLE road_zones (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
road_name TEXT NOT NULL,
zone_name TEXT NOT NULL);

131
Partie 2 • Partie pratique

SELECT AddGeometryColumn('road_zones', 'geometry',


32648, 'MULTIPOLYGON', 'XY');
INSERT INTO road_zones
(id, road_name, zone_name, geometry)
SELECT NULL, 'name', 'A class [< 100m]',
CastToMultiPolygon(
ST_Buffer(geometry, 100.0))
FROM roads;
-- les caractéristiques des polygones intersectants
SELECT CAT, ID2 FROM LUT2007, road_zones WHERE ST_Intersects(LUT2007.
Geometry, road_zones.geometry);
-- pourcentage de recouvrement entre buffer et landuse
SELECT
LUT2007.CAT AS PARCEL, LUT2007.ID2 AS LU,
ST_Area(ST_Intersection(LUT2007.Geometry,road_zones.geometry)) AS "aire
de recouvrement",
ST_Area(ST_Intersection(LUT2007.Geometry,road_zones.geometry)) / ST_Area
(LUT2007.Geometry)
AS "pourcentage de recouvrement"
FROM LUT2007, road_zones WHERE ST_Intersects(LUT2007.Geometry, road_
zones.geometry);
-- afficher les libellés d'occupation du sol des parcelles intersectant
le tampon à l'aide d'une jointure
SELECT LUT2007.CAT AS PARCEL, LUT2007.ID2 AS "code LU", LUCODET.LU2 AS
LandUse,
ST_Area(ST_Intersection(LUT2007.Geometry,road_zones.geometry))/10000 AS
"aire de recouvrement (ha)",
ST_Area(ST_Intersection(LUT2007.Geometry,road_zones.geometry))*100 / ST_
Area (LUT2007.Geometry)
AS "pourcentage de recouvrement (%)"
FROM LUT2007, road_zones, LUCODET WHERE ST_Intersects(LUT2007.Geometry,
road_zones.geometry) AND LUT2007.ID2=LUCODET.ID2;
EOF
spatialite $dirRes/LU.sqlite < $dirTrav/script.sql

132
Exercice 7
SQL spatial, requêtes
topologiques

1 Présentation de l’étude de cas


Un projet fictif de création d’un étang dans le sud du bassin de Houay Pano (Laos) est
étudié en fonction de la mise en place de pontons et de l’existence de maisons. Ces
pontons, pour être fonctionnels, doivent être implantés en bordure du futur étang sans
empiéter sur la terre ferme. Le devenir des maisons est étudié en fonction de leur loca-
lisation : au milieu du futur étang, en bordure de ce dernier, en bordure de ce dernier
accolée à un ponton, isolée sur la terre ferme.
La figure E7.1 donne une image de ce cas d’étude fictif.

maison
ponton
étang

Figure E7.1 – Implantation du futur étang, des pontons et des maisons.

2 Le SQL spatial
Les fonctions spatial SQL implémentées sous SpatiaLite permettent de créer les tables
correspondant aux pontons, aux maisons, au lac et de les peupler.
© Dunod – Toute reproduction non autorisée est un délit.

-- crée les tables


CREATE TABLE ponds ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT);
CREATE TABLE pontoons ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
good text);
SELECT AddGeometryColumn('ponds', 'geometry', 32648, 'POLYGON', 'XY');
SELECT AddGeometryColumn('pontoons', 'geometry', 32648, 'LINESTRING',
'XY');
-- peuple les tables
INSERT INTO ponds (Geometry) VALUES (

133
Partie 2 • Partie pratique

MakePolygon( GeomFromText( 'LINESTRING(203100 2197200, 203140 2197230,


203180 2197310, 203280 2197310, 203390 2197270,
203390 2197210, 203320 2197140, 203215 2197141, 203150 2197170, 203100
2197200)', 32648 ) ) );
INSERT INTO pontoons ( geometry, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203170 2197290, 203205 2197272)', 32648
), 0 ), 'TRUE');
INSERT INTO pontoons ( geometry, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203120 2197215, 203176 2197197)', 32648
), 0 ), 'TRUE');
...

La logique DE-9IM est utilisée pour traiter ce cas. Les requêtes spatiales demandent
de construire les matrices d’intersection. Par exemple, la figure E7.2 présente la matrice
d’intersection correspondant aux pontons rattachés sans empiéter sur la terre ferme.

pontons
adaptés
I F E
pontons
I 1 F F
inadaptés
F 0 0 F
E 2 1 2
Figure E7.2 – Matrice d’intersection entre polylignes (pontons) et polygones
(étang) valides.

L’instruction suivante identifie les pontons valides.

SELECT pontoons.*
FROM pontoons, ponds
  WHERE ST_Relate(pontoons.Geometry, ponds.Geometry, '1FF00F212');

L’annexe 1 récapitule ces opérations de création de tables et de requêtes.


Visualisez le lac et ses pontons sous QGIS.

Opérations QGIS Description de la procédure

Sélectionner la base Menu D : Base de données/Gestionnaire de base de données


Clic droit SpatiaLite/Nouvelle connexion
Ouvrir .../RES/QUAI.sqlite

Afficher un shape Ouvrir onglet SpatiaLite/QUAI.sqlite


Clic droit sur une couche vecteur
Ajouter au canevas

134
Exercice 7 • SQL spatial, requêtes topologiques

Opérations QGIS Description de la procédure

Réaliser une requête (Gestionnaire de base de données)Base de données/Fenêtre SQL


SQL Cocher Charger en tant que nouvelle couche
Saisir la requête :
SELECT pontoons.*
FROM pontoons, ponds
WHERE ST_Relate(pontoons.Geometry, ponds.Geometry,
‘1FF00F212’);
Exécuter
Cliquer Récupérer colonnes
Cocher colonne avec des valeurs uniques
Indiquer id pour cette colonne avec des valeurs uniques
Indiquer geometry pour colonne de géométrie
Nom de la couche : pontoonValid
Cliquer Charger pour voir la vue dans le canevas

La suite de la fiche demande de manipuler les fonctions SpatiaLite pour répondre à


une série de questions relatives à ce cas d’étude.

3 Les requêtes topologiques


Utilisez le script consigné en annexe 2 pour ajouter les maisons.
Puis, réalisez les requêtes selon la logique DE-9IM et RCC8 pour identifier :
• les maisons à l’intérieur du lac ;
• les maisons sur la rive du lac ;
• les maisons à l’extérieur du lac ;
• les maisons aux extrémités des pontons ;
• les maisons aux extrémités d’un ponton en bordure du lac.
SpatiaLite ou QGIS tel que décrit précédemment sont utilisables pour les requêtes.
Par exemple, pour identifier les maisons à l’intérieur du lac, la logique DE-9IM
demande de construire une matrice d’intersection entre un point (maison) et un polygone
(lac) correspondant aux points situés à l’intérieur du polygone (Fig E7.3).
© Dunod – Toute reproduction non autorisée est un délit.

I F E
I 0 F F
F F F F
E 2 1 2
Figure E7.3 – Matrice d’intersection entre un point situé à l’intérieur
d’un polygone et ce dernier.

135
Partie 2 • Partie pratique

La requête dans la logique DE-9IM est la suivante :

SELECT ' house inside pond';


SELECT houses.*
FROM houses, ponds
WHERE ST_Relate(houses.Geometry, ponds.Geometry, '0FFFFF212');

La requête dans la logique RCC8 est :

SELECT ' house inside pond';


SELECT houses.*
FROM houses, ponds
WHERE ST_Within(houses.Geometry, ponds.Geometry);

Procédez de même pour les autres requêtes. La requête « les maisons sur un ponton
en bordure du lac » est plus complexe car elle dépend de deux conditions. Elle nécessite
de réaliser une jointure (annexe 3).
Calculez l’enveloppe des constructions à l’intérieur du lac, affichez le résultat au format
WKT (Well-known Text) puis créez l’objet géométrique. (annexe 4).

4 Commentaires
Le SQL spatial montre une grande puissance. Sa standardisation par l’OGC conduit
à des implémentations sous SpatiaLite et sous postGIS qui sont très proches. Seule la
syntaxe de la création d’objets est différente.

5 Pour aller plus loin


Découvrez l’ensemble des fonctions implémentées sous le SQL spatial de SpatiaLite
à l’adresse : https://live.osgeo.org/fr/overview/spatialite_overview.html, consulté le
19/01/2022.

6 Annexes
Annexe 1

#!/bin/bash
source ./envir.sh

136
Exercice 7 • SQL spatial, requêtes topologiques

rm -f $dirRes/QUAI.sqlite
cat > $dirTrav/script.sql <<EOF
-- cree les tables et leurs attributs geometriques
CREATE TABLE ponds ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT);
CREATE TABLE pontoons ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name TEXT, good TEXT);
SELECT AddGeometryColumn('ponds', 'geometry', 32648, 'POLYGON', 'XY');
SELECT AddGeometryColumn('pontoons', 'geometry', 32648, 'LINESTRING',
'XY');
-- peuple les tables
INSERT INTO ponds (Geometry) VALUES (
MakePolygon( GeomFromText( 'LINESTRING(203100 2197200, 203140 2197230,
203180 2197310, 203280 2197310, 203390 2197270,
203390 2197210, 203320 2197140, 203215 2197141, 203150 2197170, 203100
2197200)', 32648 ) ) );
INSERT INTO pontoons ( geometry, name, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203170 2197290, 203205 2197272)', 32648
), 0 ), 'ponton1', 'TRUE');
INSERT INTO pontoons ( geometry, name, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203120 2197215, 203176 2197197)', 32648
), 0 ), 'ponton2', 'TRUE');
INSERT INTO pontoons ( geometry, name, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203290 2197260, 203340 2197250)', 32648
), 0 ), 'ponton3', 'FALSE');
INSERT INTO pontoons ( geometry, name, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203350 2197300, 203400 2197320)', 32648
), 0 ), 'ponton4', 'FALSE');
INSERT INTO pontoons ( geometry, name, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203390 2197230, 203420 2197240)', 32648
), 0 ), 'ponton5', 'FALSE');
INSERT INTO pontoons ( geometry, name, good) VALUES (
MakeLine( GeomFromText('MULTIPOINT(203390 2197180, 203390 2197160)', 32648
), 0 ), 'ponton6', 'FALSE');
-- dernier argument makeline ordre des points 1 inverse ordre, 0 inchangé
© Dunod – Toute reproduction non autorisée est un délit.

-- select id, good, ASText(Geometry) from pontoons;


SELECT 'Pontons correctement positionnes DE-9IM';
SELECT pontoons.*
FROM pontoons, ponds
WHERE ST_Relate(pontoons.Geometry, ponds.Geometry, '1FF00F212');
EOF
spatialite $dirRes/QUAI.sqlite < $dirTrav/script.sql

137
Partie 2 • Partie pratique

Annexe 2

#!/bin/bash
source ./envir.sh
cat > $dirTrav/script.sql <<EOF
CREATE TABLE houses ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL, location TEXT NOT NULL);
SELECT AddGeometryColumn('houses', 'geometry', 32648, 'POINT', 'XY');
INSERT INTO houses ( geometry, name, location) VALUES ( GeomFromTex-
t('POINT(203170 2197290)', 32648 ), 'house1', 'house on pond bank and
pontoon');
INSERT INTO houses ( geometry, name, location) VALUES ( GeomFromTex-
t('POINT(203240 2197240)', 32648 ), 'house2', 'pond inside');
INSERT INTO houses ( geometry, name, location) VALUES ( GeomFromTex-
t('POINT(203100 2197300)', 32648 ), 'house3', 'outside pond');
INSERT INTO houses ( geometry, name, location) VALUES ( GeomFromTex-
t('POINT(203150 2197250)', 32648 ), 'house4', 'pond bank');
INSERT INTO houses ( geometry, name, location) VALUES ( GeomFromTex-
t('POINT(203230 2197340)', 32648 ), 'house5', 'outside pond');
INSERT INTO houses ( geometry, name, location) VALUES ( GeomFromTex-
t('POINT(203176 2197197)', 32648 ), 'house6', 'house on end of pontoon');
INSERT INTO houses ( geometry, name, location) VALUES ( GeomFromTex-
t('POINT(203187.5 2197281)', 32648 ), 'house7', 'house on middle of pontoon');
EOF
spatialite $dirRes/QUAI.sqlite < $dirTrav/script.sql

Annexe 3

#!/bin/bash
source ./envir.sh
cat > $dirTrav/script.sql <<EOF
SELECT ' DE-9IM';
SELECT 'maison interieur etang';
SELECT houses.*
FROM houses, ponds
WHERE ST_Relate(houses.Geometry, ponds.Geometry, ‘0FFFFF212’);
SELECT ‘maison sur berge’;
SELECT houses.*
FROM houses, ponds
WHERE ST_Relate(houses.Geometry, ponds.Geometry, ‘F0FFFF212’);
SELECT ‘maison exterieur etang’;
SELECT houses.*
FROM houses, ponds

138
Exercice 7 • SQL spatial, requêtes topologiques

WHERE ST_Relate(houses.Geometry, ponds.Geometry, 'FF0FFF212');


SELECT 'maison extremite ponton';
SELECT houses.*
FROM houses, pontoons
WHERE ST_Relate(houses.Geometry, pontoons.Geometry, 'F0FFFF102');
SELECT 'maison sur berge et ponton';
SELECT houses.*
FROM houses, ponds, pontoons
WHERE ST_Relate(houses.Geometry, ponds.Geometry, 'F0FFFF212')
AND ST_Relate(houses.Geometry, pontoons.Geometry, 'F0FFFF102');
SELECT 'RCC8';
SELECT 'maison interieur etang';
SELECT houses.*
FROM houses, ponds
WHERE ST_Within(houses.Geometry, ponds.Geometry);
SELECT 'maison sur berge';
SELECT houses.*
FROM houses, ponds
WHERE ST_Touches(houses.Geometry, ponds.Geometry);
SELECT 'maison exterieur etang';
SELECT houses.*
FROM houses, ponds
WHERE ST_Disjoint(houses.Geometry, ponds.Geometry);
SELECT 'maison extremite ponton';
SELECT houses.*
FROM houses, pontoons
WHERE ST_Touches(houses.Geometry, pontoons.Geometry);
SELECT 'maison sur berge et ponton';
SELECT houses.*
FROM houses, ponds, pontoons
WHERE ST_Touches(houses.Geometry, ponds.Geometry)
AND ST_Touches(houses.Geometry, pontoons.Geometry);
© Dunod – Toute reproduction non autorisée est un délit.

EOF
spatialite $dirRes/QUAI.sqlite < $dirTrav/script.sql

Annexe 4

#!/bin/bash
source ./envir.sh
cat > $dirTrav/script.sql <<EOF
CREATE TABLE envelopHouses (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT);

139
Partie 2 • Partie pratique

SELECT AddGeometryColumn(‘envelopHouses’, ‘geometry’, 32648, ‘POLYGON’,


‘XY’);
-- WKT envelopp enclosing houses
SELECT ASText(ST_Envelope(GUnion(houses.Geometry)))
FROM houses, ponds
WHERE ST_Relate(houses.Geometry , ponds.Geometry, ‘0FFFFF212’);
INSERT INTO envelopHouses (Geometry)
SELECT ST_Envelope(GUnion(houses.Geometry))
FROM houses, ponds
WHERE ST_Relate(houses.Geometry, ponds.Geometry, ‘0FFFFF212’);
EOF
spatialite $dirRes/QUAI.sqlite < $dirTrav/script.sql

140
Exercice 8
Modèle numérique
de terrain

1 Présentation de l’étude de cas


L’expansion des plantations d’arbres et le changement climatique modifient le fonction-
nement hydrosédimentaire des bassins versants tropicaux de montagne.
Pour étudier l’érosion due aux plantations de tecks dans le petit bassin de Houay Pano
(Laos), un modèle numérique de terrain est essentiel. Un MNT de synthèse est fourni par
le laboratoire laotien sans que la connaissance précise de son mode de construction soit
connue. Pour le valider, plusieurs campagnes de mesures utilisant des GPS différentiels
(DGPS, Differential Global Positioning System) sont réalisées.

2 Étapes de l’étude
La première partie de cet exemple expose l’importation des données sous le SIG GRASS
en insistant sur le paramétrage de la région (limite, taille des pixels, alignement des
pixels par rapport aux points côtés).
Les données comprennent :
• une grille MNT, synthèse d’anciennes campagnes de terrain : XYZsynthesis ;
• des relevés DGPS et théodolites accompagnés d’une mesure d’incertitude : accuracy.
csv.
Toutes les données sont géoréférencées dans la projection UTM 48N. Les coordon-
© Dunod – Toute reproduction non autorisée est un délit.

nées X (Easting), Y (Northing), leur altitude (Elevation), la précision de positionnement


(en X, Y, Horizontal Accuracy), la précision altitudinale (Z, Vertical Accuracy) sont
exprimées en m.
Créez, si elle n’existe pas, la location/mapset « UTM48N/laos ».

141
Partie 2 • Partie pratique

Opérations GRASS Description de la procédure


Importer vecteur Fichier/Importer des données vectorielles/Points ASCII ou format
point ASCII GRASS
[v.in.ascii --overwrite input=XYZsynthesis.csv output=synthesis
skip=1 columns=’x double precision, y double precision, z double
precision’ x=1 y=2]
Importer vecteur Fichier/Importer des données vectorielles/Points ASCII ou format
point ASCII GRASS
[v.in.ascii --overwrite input=accuracy.csv output=accuracy skip=1
columns=’nom varchar(20), x double precision, y double precision, z
double precision, ha double precision, va double precision, auteur
varchar(25)’ x=2 y=3]

L’objectif étant d’analyser le MNT raster construit à partir des points côtés fournis
par le laboratoire laotien, la région sera définie de manière que les points côtés soient
positionnés au centre des pixels du MNT raster. La résolution spatiale sera donc égale
à la distance séparant deux points, 10 m. Cette distance est identique selon la direction
nord-sud et ouest-est. Pour définir l’étendue de la région, la zone est préalablement gros-
sièrement délimitée de manière qu’elle contienne tous les points. Puis ces limites sont
affinées pour que le centre des pixels coïncide avec les coordonnées des points côtés.
Relevez l’emprise de la couche vecteur « synthesis ».

Opérations GRASS Description de la procédure


Emprise de la couche Paramètres/Région calculée/Définir la région
vecteur synthesis [g.region vect=synthesis]
Emprise de la couche Paramètres/Région calculée/Afficher/Afficher la région courante
vecteur synthesis [g.region -p]

Nord : 2198822.61602
Sud : 2197326.8
Ouest : 203225.16355
Est : 204510.746557
Relevez les coordonnées d’un point quelconque de la grille dans sa partie régulière.
X : 203418.68125
Y : 2198246.8
Affinez l’étendue de la région en retranchant (ou ajoutant) aux coordonnées du point
un multiple du pas de la grille (10 m) et la demi-taille d’un pixel (5 m) pour définir les
limites de la région.
Nord : 2198246.8 + (trunc((2198822.61602 – 2198246.8)/10) + 1) × 10 + 5 = 2198831.8
Sud : 2198246.8 – (trunc((2198246.8 – 2197326.8)/10) + 1) × 10 + 5 = 2197321.8
Ouest : 203418.68125 – (trunc((203418.68125 – 203225.16355)/10) + 1) × 10 + 5 =
203223.68125
Est : 203418.68125 + (trunc((204510.746557 – 203418.68125)/10) + 1) × 10 + 5 =
204523.68125

142
Exercice 8 • Modèle numérique de terrain

Définissez la nouvelle région de calcul.

Opérations GRASS Description de la procédure

Définir région Paramètres/Région calculée/Définir la région [g.region n=2198831.8


étendue /résolution s=2197321.8 e=204523.68125 w=203223.68125 res=10]

Digitalisez puis appliquez un masque géométrique.

Opérations GRASS Description de la procédure

Appliquer masque Raster/Masque [r.mask –overwrite vector=masque]

Une simple transformation de Vecteur en Raster convient pour créer le MNT raster à
partir de la couche « synthesis ». La méthode Inverse Distance Weighted (IDW) inter-
polation est utilisée pour interpoler la couche vecteur « accuracy » correspondant aux
relevés GPS.

Opérations GRASS Description de la procédure

Créer le MNT raster Fichier/Conversion Type de cartes/Vecteur vers Raster


grille [v.to.rast --overwrite input=synthesis output=MNTsynthesis
use=attr attribute_column=z]

Créer le MNT raster v.surf.idw --overwrite input=accuracy output=accuracyG


point column=z

Remplissez par des nulls les pixels ne contenant aucun point de mesure GPS.

Opérations GRASS Description de la procédure

Transformer vecteur en Fichier/Conversion Type de cartes/Vecteur vers Raster


raster [v.to.rast --overwrite input=accuracy output=accuracy use=attr
attribute_column=z]

Remplir par null les pixels [r.mapcalc --overwrite expression= ‘alt = if(isnull(accuracy),null(),
non côtés accuracyG)’]
© Dunod – Toute reproduction non autorisée est un délit.

Utilisez l’algèbre de cartes pour comparer le MNT grille et les points GPS. Repré-
sentez les écarts entre ces deux mesures d’altitudes sous la forme d’un histogramme.

Opérations GRASS Description de la procédure

Différence entre [r.mapcalc --overwrite expression= ‘dMNTacc =


MNTsynthesis et alt MNTsynthesis - alt’]

Modifier table des Raster/Gérer les couleurs/Tables de couleur


couleurs [r.colors.stddev -b -z map=dMNTacc]

Histogramme raster Menu C : créer un histogramme de carte raster

143
Partie 2 • Partie pratique

-19 -16 -13 -10 -7 -4 -1 0 1 4 7 10


Figure E8.1 – Histogramme des écarts entre le MNT grille et les points DGPS.

Comme le montre la figure E8.1, les valeurs négatives sont majoritaires, indiquant une
sous-estimation de l’altitude par le MNT synthèse. Pour pousser cette analyse et prendre
en compte les incertitudes fournies par les relevés GPS différentiels, le développement
de programmes sous R du CRAN est nécessaire.

3 Commentaires
Le MNT synthèse sous-estime les altitudes. La répartition spatiale de ces erreurs doit
être analysée. Le GPS différentiel fournissant des incertitudes, la qualité du MNT de
synthèse doit être également évaluée compte tenu de cette donnée.
Quelles informations fournissent les incertitudes de positionnement, d’altimétrie ?
Discutez de la nécessité de corriger le biais en fonction de la répartition spatiale des
écarts MNT/points GPS. Est-il préférable de corriger par la moyenne, la médiane ?

4 Annexes
Annexe 1

#!/bin/bash
source ./envir.sh
v.in.ascii --overwrite input=$dirSrc/terrestrialRecords/XYZsynthesis.csv
output=synthesis skip=1 columns='x double precision, y double precision,
z double precision' x=1 y=2
v.in.ascii --overwrite input=$dirSrc/terrestrialRecords/accuracy.csv
output=accuracy skip=1 columns='nom varchar(20), x double precision, y
double precision, z double precision, ha double precision, va double
precision, auteur varchar(25)' x=2 y=3

144
Exercice 8 • Modèle numérique de terrain

Annexe 2

#!/bin/bash
source ./envir.sh
g.region n=2198831.8 s=2197321.8 e=204523.68125 w=203223.68125 res=10
v.in.ogr input=$dirSrc/masqueMNT/masque.shp layer=masque output=masque
--overwrite
r.mask --overwrite vector=masque

Annexe 3

#!/bin/bash
source ./envir.sh
v.to.rast --overwrite input=synthesis output=MNTsynthesis use=attr
attribute_column=z
v.surf.idw --overwrite input=accuracy output=accuracyG column=z
v.to.rast --over write input=accuracy output=accuracy use=attr
attribute_column=z
r.mapcalc --overwrite expression='alt = if(isnull(accuracy),null(),accuracyG)'
r.mapcalc --overwrite expression='dMNTacc = MNTsynthesis - alt'
r.colors.stddev -b -z map=dMNTacc
© Dunod – Toute reproduction non autorisée est un délit.

145
Exercice 9
Les interfaces R du
CRAN et Python

1 Présentation de l’étude de cas


La comparaison du MNT de synthèse fourni par le laboratoire laotien à un MNE global,
le GDEM ASTER, demande de prendre en compte la végétation et les bâtiments, donnée
qui est apportée par la carte d’occupation du sol. Sur le plan technique, cet exercice repose
sur la complémentarité entre GRASS et les deux langages R du CRAN ou Python. En
annexe, deux versions des scripts en R et en Python sont fournies.

2 Analyse du problème
Les données comprennent :
• le MNT synthèse réalisé par le laboratoire laotien : XYZsynthesis.csv ;
• le GDEM ASTER : ASTGTM2_N19E102_dem.tif ;
• l’occupation du sol relevée en 2007 : shape LUT2007 ;
• l’occupation du sol relevée en 2012 : shape LUT2012.
Les écarts observés entre le GDEM ASTER et le MNT de synthèse peuvent être
fonction de la pente, de la hauteur et de la densité du couvert végétal. Il est donc néces-
saire de construire une carte d’occupation du sol valide pour la période 2000-2011 qui
corresponde aux dates d’acquisition des images utilisées pour construire le GDEM
ASTER v2. Une carte des pentes est aussi réalisée pour tester l’influence de ce facteur.

3 Étapes de l’étude
La région est définie en fonction du MNT de synthèse (cf. exercice 8, Modèle numérique
de terrain).
Opérations GRASS Description de la procédure

Import du masque Fichier/Importer des données vectorielles/Importer des


formats standards [v.in.ogr input=.../masqueMNT/masque.shp
layer=masque output=masque --overwrite]

Création du masque Raster/Mask [r.mask vector=masque --overwrite]

146
Exercice 9 • Les interfaces R du CRAN et Python

Pour faciliter la création du masque géométrique, une couche Vecteur englobant le


MNT synthèse est fournie : masque.shp

Opérations GRASS Description de la procédure

Importer vecteur point Fichier/Importer des données vectorielles/Points ASCII ou


format ASCII GRASS
[v.in.ascii --overwrite input=…/teresstrialRecords/XYZsynthesis.csv
output=synthesis skip=1 columns=’x double precision,
y double precision, z double precision’ x=1 y=2]

Transformation Vecteur Fichier/Conversion de type de carte/Vecteur vers Raster


en Raster [v.to.rast --overwrite input=synthesis output=MNTsynthesis
use=attr attribute_column=z]

Le GDEM ASTER est référencé dans un système géographique latitude, longitude,


WGS84. Sa résolution est de 1 seconde d’arc (30 m à l’équateur). Il est reprojeté lors de
son importation. La méthode de rééchantillonnage recommandée pour les MNT est la
méthode bilinéaire.

Opérations GRASS Description de la procédure

Importer GDEM ASTER Fichier/Importer une carte raste/Import raster simplifié avec
reprojection [r.import --overwrite input=.../SRC/ASTGTM2_
N19E102/ASTGTM2_N19E102_dem.tif output=ASTDEM
resample=bilinear extent=region]

L’analyse de l’occupation du sol demande de construire une carte d’occupation du


sol valide entre 2007 et 2011 intégrant les changements apparus durant cette période à
partir des relevés de 2007 et 2012.

Opérations GRASS Description de la procédure

Importer couche vecteur Fichier/Importer des données vectorielles/Import de


vecteur de formats communs [v.in.ogr input=.../LUT2007.shp
layer=LUT2007 output=LUT2007]
© Dunod – Toute reproduction non autorisée est un délit.

Importer couche vecteur Fichier/Importer des données vectorielles/Import de


vecteur de formats communs [v.in.ogr input=.../LUT2012.shp
layer=LUT2012 output=LUT2012]

Transformation Vecteur Fichier/Conversion de type de carte/Vecteur vers Raster


en Raster [v.to.rast input=LUT2007 output=LUT2007 use=attr column=ID3
labelcolumn=LU3]

Transformation Vecteur Fichier/Conversion de type de carte/Vecteur vers Raster


en Raster [v.to.rast input=LUT2012 output=LUT2012 use=attr column=ID3
labelcolumn=LU3]

147
Partie 2 • Partie pratique

Les catégories d’occupation du sol sont recodées pour construire une typologie adaptée
à l’analyse des changements d’usage. Jachère et Culture sont par exemple confondues
car ces deux classes correspondent à une rotation de culture et elles ne signifient pas un
changement d’usage du sol. Le tableau E9.1 fournit la nouvelle codification.

Tableau E9.1 – Nouvelle codification des classes des couches « LUT2007 » et « LUT2012 »

Ancienne Ancien code Nouvelle Nouveau code


occupation du sol occupation du sol

Culture 1 Crop 3

Fallow 2 Crop 3

Permanent garden 3 Crop 3

Forest 4 Forest 1

Teak 6 Teak 2

Settlment 7 Settlment 4

Opérations GRASS Description de la procédure

Recodification des Raster/Modifier des valeurs de catégories et des


catégories étiquettes/Reclasser [r.reclass --overwrite input=LUT2012
output=LUT2012REC rules=$dirSrc/divers/recod.txt]

Recodification des Raster/Modifier des valeurs de catégories et des


catégories étiquettes/Reclasser [r.reclass --overwrite input=LUT2007
output=LUT2007REC rules=$dirSrc/divers/recod.txt]

Pour les comparer, la couche « LUT2012REC » est soustraite à la couche


« LUT2007REC ». Comme le résultat montre que les différences portent essentielle-
ment sur la création de nouvelles plantations de teck, une synthèse de l’occupation du
sol entre 2007 et 2012 est créée en s’appuyant sur la carte 2007 à laquelle est ajoutée la
catégorie 5 : newTeak qui correspond aux parcelles de teck plantées durant cette période.

Opérations GRASS Description de la procédure

Algèbre de cartes r.mapcalc –overwrite expression= ‘dif07_12 = LUT2012REC


- LUT2007REC’

Algèbre de cartes r.mapcalc –overwrite expression= ‘OCCSOL = if(dif07_12 ==


-1,5,LUT2007REC)’

L’étape suivante consiste à calculer la carte des pentes exprimée en pourcentage à


partir du MNT de synthèse.

148
Exercice 9 • Les interfaces R du CRAN et Python

Opérations GRASS Description de la procédure

Construction de la carte des r.slope.aspect --overwrite elevation=MNTsynthesis


pentes slope=MNTslope format=percent

La carte des écarts entre le GDEM ASTER et le MNT de synthèse est construite.

Opérations GRASS Description de la procédure

Construction de la carte des r.mapcalc –overwrite expression = ‘diffMNT = ASTDEM


écarts entre GDEM ASTER et - MNTsynthesis’
MNT synthèse

Certains traitements ne sont pas inclus dans les modules de GRASS. Ils doivent être
développés en R du CRAN ou en Python.
Interface R du CRAN
La bibliothèque rgrass7 assure l’interface avec R du CRAN. Le programme suivant
évalue l’influence de l’occupation du sol et de la pente sur les écarts entre le MNT de
synthèse et le GDEM ASTER.

spear <- readRAST(c("diffMNT","MNTsynthesis","OCCSOL","MNTslope"))


dataC <- cbind(spear$diffMNT,spear$MNTsynthesis,spear$OCCSOL,spear$MN
Tslope)
colnames(dataC) <- c("GDEM_MNT","MNT","OCCSOL","SLOPE")
print(summary(dataC))

La sortie de ce programme est la suivante :

"Nombre de pixels analysés : " "19630"


GDEM_MNT MNT OCCSOL SLOPE
Min. :-25.984 Min. :405.0 Min. :1.000 Min. : 0.00
1st Qu.: 4.119 1st Qu.:520.7 1st Qu.:3.000 1st Qu.: 39.09
© Dunod – Toute reproduction non autorisée est un délit.

Median : 12.297 Median :557.1 Median :3.000 Median : 51.95


Mean : 13.089 Mean :557.6 Mean :3.123 Mean : 52.60
3rd Qu.: 20.511 3rd Qu.:598.4 3rd Qu.:5.000 3rd Qu.: 65.55
Max. : 99.383 Max. :715.7 Max. :5.000 Max. :140.53
NA's :12989 NA's :12989 NA's :13014 NA's :13501

Le GDEM ASTER est en moyenne plus haut d’une dizaine de mètres (13.089).
L’instruction boxplot assure le tracé de boîtes à moustache.

boxplot(GDEM _ M NT ~ OCCSOL, data = dataC, col = "lightgray",


names=c("Forest","Teak","Culture","Settlement","NewTeak"))

149
Partie 2 • Partie pratique

100
80
60
40
20
0
-20

forêt teck culture village nouveau teck


Figure E9.1 – Influence du type d’occupation du sol sur les écarts entre le GDEM
ASTER et le MNT de synthèse.

Comme le montre la figure E9.1, le GDEM étant un MNE, ses valeurs sont donc
logiquement plus élevées que le MNT, en particulier dans les zones urbaines.
La pente peut également jouer un rôle dans la qualité du MNT. Pour la traiter, la pente
du MNT (variable extraite de la couche « MNTSlope ») est discrétisée avec un pas de
10 %. Seules les cellules non vides sont prises en compte.

dataC <- na.omit(dataC)


catSlope <- cut(dataC[,"SLOPE"],breaks=seq(0,150,10),include.lowest=
TRUE,right=FALSE)

L’influence de la pente répartie en classes, sur les écarts entre MNE et MNT est
représentée par une boîte à moustache.

dataC2 <- cbind(dataC, catSlope)


boxplot(GDEM_MNT ~ catSlope, data = dataC2, names=levels(catSlope))

80

60

40

20

-20

[0,10] [20,30] [40,50] [60,70] [80,90] [110,120] [140,150]

Figure E9.2 – Influence de la pente sur les écarts entre le GDEM ASTER et le
MNT de synthèse.

150
Exercice 9 • Les interfaces R du CRAN et Python

La figure E9.2 indique que les erreurs sont plus importantes pour les très grandes valeurs
de pente comprises entre 130 % et 150 %. Dans ces zones de forte pente, une erreur
planimétrique du GDEM et/ou du MNT conduit à comparer des points d’altitude très
différentes. Pour les valeurs inférieures à 30 %, les écarts s’expliquent par la présence du
village. Les maisons sont prises en compte par le GDEM et pas par le MNT.
Interface Python
La programmation des accès aux couches de GRASS repose sur la bibliothèque pygrass
présentées dans l’exercice 4, « Organisation des données et de leur traitement ». Les
bibliothèques numpy et pandas assurent la gestion des données. La bibliothèque
matplotlib est utilisée pour réaliser les dessins.
Réaliser les traitements précédents sous Python suit la même logique que sous R.
L’annexe 4 présente la version écrite en Python du programme réalisant les figures E9.1
et E9.2.

4 Commentaires
Le GDEM ASTER surestime les altitudes. La littérature indique que le GDEM ASTER
étant un modèle numérique d’élévation construit à partir de données proche infrarouge,
les zones de couvert dense et arboré conduisent à une mesure en relation avec la hauteur
canopée plus élevée que celle du sol. Cette information est confirmée pour les zones de
forêt. Les plantations de tecks ne semblent pas sujettes à ce biais. Est-ce que la perte de
leurs feuilles pendant la saison sèche, période préférentielle d’acquisition d’images peu
nuageuses, peut expliquer un comportement différent de celui des autres forêts ? Les
jachères/cultures présentent une forte variabilité qui s’explique par les alternances de
types de couvert végétal dues aux rotations de culture.

5 Pour aller plus loin


© Dunod – Toute reproduction non autorisée est un délit.

L’instruction writeRAST de la bibliothèque rgrass7 permet également de créer des


couches. Écrivez un petit programme pour créer une couche des pentes réparties en
plage de 10 %. Examinez la localisation des pentes très élevées et leur relation avec les
écarts extrêmes.
Effectuez la même opération en utilisant la fonction Python numpy2raster présentée
dans l’exercice 4.
Vérifiez que les écarts entre le GDEM et le MNT pour les faibles pentes correspondent
au village.

151
Partie 2 • Partie pratique

Réalisez une collection de boîtes à moustaches pour représenter l’influence de la pente


en fonction de l’occupation du sol.
Déterminez le nombre d’images utilisées pour construire le GDEM ASTER au niveau
du point de coordonnées géographiques (19,12°N ; 102,08°E).

6 Annexes
Annexe 1

#!/bin/bash
source ./envir.sh
g.region n=2198831.8 s=2197321.8 e=204523.68125 w=203223.68125 res=10
v.in.ogr input=$dirSrc/masqueMNT/masque.shp layer=masque output=masque
--overwrite
r.mask vector=masque --overwrite
r.import --overwrite input=$dirSrc/ASTGTM2_N19E102/ASTGTM2_N19E102_dem.
tif output=ASTDEM resample=bilinear extent=region
v.in.ascii --overwrite input=$dirSrc/terrestrialRecords/XYZsynthesis.csv
output=synthesis skip=1 columns=’x double precision, y double precision,
z double precision’ x=1 y=2
v.to.rast --overwrite input=synthesis output=MNTsynthesis use=attr
column=z
v.in.ogr --overwrite input=$dirSrc/landuse/LUT2007.shp layer=LUT2007
output=LUT2007
v.in.ogr --overwrite input=$dirSrc/landuse/LUT2012.shp layer=LUT2012
output=LUT2012
v.to.rast --overwrite input=LUT2007 output=LUT2007 use=attr attribute_
column=ID3 label_column=LU3
v.to.rast --overwrite input=LUT2012 output=LUT2012 use=attr attribute_
column=ID3 labelcolumn=LU3
mkdir -p $dirGis/colr
cp -f $dirSrc/divers/LUT20xx.colr $dirGis/colr/LUT2007
cp -f $dirSrc/divers/LUT20xx.colr $dirGis/colr/LUT2012

Annexe 2

#!/bin/bash
source ./envir.sh
r.reclass --overwrite input=LUT2007 output=LUT2007REC rules=$dirSrc/
divers/recod.txt
r.reclass --overwrite input=LUT2012 output=LUT2012REC rules=$dirSrc/
divers/recod.txt

152
Exercice 9 • Les interfaces R du CRAN et Python

cp -f $dirSrc/divers/LUT20xxREC.colr $dirGis/colr/LUT2007REC
cp -f $dirSrc/divers/LUT20xxREC.colr $dirGis/colr/LUT2012REC
cp -f $dirSrc/divers/LUT20xxREC.cats $dirGis/cats/LUT2007REC
cp -f $dirSrc/divers/LUT20xxREC.cats $dirGis/cats/LUT2012REC
r.mapcalc --overwrite expression=’dif07_12 = LUT2012REC - LUT2007REC’
r.mapcalc --overwrite expression=’OCCSOL = if(dif07_12 == -1,5,LUT2007REC)’
cp -f $dirSrc/divers/OCCSOL.colr $dirGis/colr/OCCSOL
cp -f $dirSrc/divers/OCCSOL.cats $/cats/OCCSOL
r.slope.aspect --overwrite elevation=MNTsynthesis slope=MNTslope
format=percent
r.mapcalc --overwrite expression=’diffMNT = ASTDEM - MNTsynthesis’

Annexe 3

source("envir.R")
library(rgrass7)
library(sp)
use sp()
spear <- readRAST(c("diffMNT","MNTsynthesis","OCCSOL","MNTslope"))
dataC <- cbind(spear$diffMNT,spear$MNTsynthesis,spear$OCCSOL,spear$MNT-
slope)
colnames(dataC) <- c("GDEM_MNT","MNT","OCCSOL","SLOPE")
print(c("Nombre de pixels analysés : ", nrow(dataC)))
print(summary(dataC))
b o x p l o t(G D E M _ M N T ~ O CCSOL, d ata = d a t a C, col =
"lightgray",names=c("Forest","Teak","Crop","Settlement","NewTeak"))
dataC <- na.omit(dataC)
c atSlo p e <- c u t(d ataC[,"SL OPE"],br e a k s=se q(0,150,10),i nclu d e.
lowest=TRUE,right=FALSE)
dataC2 <- cbind(dataC, catSlope)
png(dirFig %+% "/GDEMNTSLOPE.png")
© Dunod – Toute reproduction non autorisée est un délit.

boxplot(GDEM_MNT ~ catSlope, data = dataC2, names=levels(catSlope))


dev.off()
c atSlo p e2 <- c ut(s p ea r$M NTslo p e,brea ks=se q(0,150,10),i nclud e.
lowest=TRUE,right=FALSE)
spear$MNTslope <- as.integer(catSlope2)
writeRAST(spear,"MNTslopeP",zcol="MNTslope", overwrite=TRUE)

153
Partie 2 • Partie pratique

Annexe 4

#!/usr/bin/env python3
# coding: utf-8
from grass.pygrass.raster import RasterRow
from grass.pygrass.raster.buffer import Buffer
from grass.pygrass.gis.region import Region
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

def raster2numpy(rastname, mapset=''):


"""Return a numpy array from a raster map"""
with RasterRow(rastname, mapset=mapset, mode='r') as rast:
return np.array(rast)

def numpy2raster(array, mtype, rastname, overwrite=False):


"""Save a numpy array to a raster map"""
reg = Region()
if (reg.rows, reg.cols) != array.shape:
msg = "Region and array are different: %r != %r"
raise TypeError(msg % ((reg.rows, reg.cols), array.shape))
with RasterRow(rastname, mode='w', mtype=mtype, overwrite=overwrite)
as new:
newrow = Buffer((array.shape[1],), mtype=mtype)
for row in array:
newrow[:] = row[:]
new.put_row(newrow)

if __name__ == '__main__':
exec(open("./envir.py").read())
reg = Region()
print("Taille de la région analysée : " + str(reg.rows) + " " +
str(reg.cols))
diffMNT = raster2numpy('diffMNT', mapset='')
MNTsynthesis = raster2numpy('MNTsynthesis', mapset='')
OCCSOL = raster2numpy('OCCSOL', mapset='')
MNTslope = raster2numpy('MNTslope', mapset='')
      nd1 = np.concatenate((diffMNT.reshape(-1),MNTsynthesis.reshape(-1),
OCCSOL.reshape(-1),MNTslope.reshape(-1)))
nd2 = np.transpose(nd1.reshape(4,-1))
      
df2 = pd.DataFrame(nd2, columns = ['GDEM_MNT','MNT','OCCSOL','MNTs
lope'])
df3 = df2.dropna()

154
Exercice 9 • Les interfaces R du CRAN et Python

indexNames = df3[df3['OCCSOL'] < 0 ].index


df4 = df3.drop(indexNames , inplace=False)

boxplot = df4.boxplot(column='GDEM_MNT', by='OCCSOL')


plt.xticks([1, 2, 3, 4, 5], ['Forest','Teak','Culture','Settlement',
'NewTeak'])
plt.suptitle('')
plt.show()

breaks = np.array(range(0,160,10))
catSlope = pd.cut(df4['MNTslope'], breaks)
boxplot = df4.boxplot(column='GDEM_MNT', by=catSlope)
legabs = np.array(range(0,len(breaks)))
plt.xticks(legabs, breaks)
plt.xlabel('pente en %')
plt.title('')
plt.suptitle('')
plt.savefig(dirFig + '/bxploPente.png')

nd5 = breaks.searchsorted(df2['MNTslope'], side='right')


nd5 = nd5.astype(float)
nd5[nd5 == len(breaks)] = np.nan
reg = Region()
nd6 = nd5.reshape(reg.rows,reg.cols)
numpy2raster(nd6, 'DCELL', 'MNTslopeP', overwrite=True)
© Dunod – Toute reproduction non autorisée est un délit.

155
Exercice 10
Modèle hydrologique

1 Présentation de l’étude de cas


La mélioïdose, affection peu rencontrée en France, est due à une bactérie tellurique et
hydrique : Burkholderia pseudomallei. Au Laos, cette bactérie est présente en quantité
variable dans les rivières et dans les champs sans que les causes de son abondance soient
clairement identifiées. Pour tester une hypothèse qui lie son abondance dans les rivières
à l’occupation du sol des bassins versants environnants, la présence de la bactérie dans
la rivière Xé Dôn (Saravane province, Laos) est mesurée dans des stations localisées
sur son cours principal et ses affluents durant une mission de terrain effectuée du 24 au
26 juin 2013.

2 Analyse du problème
L’influence de l’occupation du sol est examinée en la croisant spatialement avec les aires
de drainage de chacune des stations. Ces aires qui correspondent à la zone dont le ruis-
sellement aboutit à la station sont déterminées à partir du modèle numérique de terrain
SRTM. Le MNT SRTM de résolution spatiale 30 m est adapté à notre zone d’étude qui
couvre 800 000 ha (100 km × 80 km).
Les données comprennent :
• localisation des stations de prélèvement d’eau : station.csv ;
• carte des cours d’eau : shape coursDeau ;
• MNT SRTM : dossier SRTM.

3 Étapes de l’étude
Créez la location/mapset UTM48N/Hydro. Vérifiez que le driver base de données sql
est activé.

156
Exercice 10 • Modèle hydrologique

Opérations GRASS Description de la procédure

Créer location Création de la location (secteur) UTM48N


EPSG : 32648

Créer mapset Création d’une mapset (jeu de cartes) hydro


Ne jamais travailler dans la mapset permanent

Vérifier la projection Paramètres/Projections de carte/Affiche la projection de la


carte [g.proj -p]

Vérifier l’activation Bases de données/Gérer les bases de données/Se connecter


du driver SQL [db.connect driver=sqlite database=$GISDBASE/$LOCATION_
NAME/$MAPSET/sqlite.db ]

Importez la localisation des stations de prélèvement.

Opérations GRASS Description de la procédure

Importer vecteur Fichier/Importer des données vectorielles/Points ASCII ou


format ASCII GRASS [v.in.ascii --overwrite input=.../station.csv
output=station separator=, skip=1 columns=’station varchar(20),
village varchar(20), river varchar(30), Side varchar(20), distBank
int, x double precision, y double precision, z double precision,
IDSTA int, BACTERIE int’ x=6 y=7 z=8]

Ne pas encapsuler la description de columns entre ′ si la saisie est réalisée dans


l’interface graphique.
Définissez l’étendue de la région et la résolution géométrique.

Opérations GRASS Description de la procédure

Définir la région Paramètres/Région calculée/Définir la région g.region res=30


n=1766000 s=1659000 w=550000 e=690000

Le MNT SRTM disponible sur le site de la NASA, https://earthexplorer.usgs.gov/


(consulté le 10/01/2022), est téléchargé sous la forme de deux tuiles : N15105.SRTMGL1.
© Dunod – Toute reproduction non autorisée est un délit.

hgt.zip et N15106.SRTMGL1.hgt.zip qui assemblées couvrent la zone d’étude. Le SCR


de ce MNT est latitude, longitude, WGS84. Sa résolution est de 1 seconde d’arc (30 m
à l’équateur). Il est reprojeté à la volée lors de son importation, à la résolution de 30 m,
avec une méthode de rééchantillonnage bilinéaire recommandée pour les MNT.

Importer raster Fichier/Importer une carte raster/Import raster simplifié avec


reprojection
[r.import --overwrite input=.../SRC/SRTM/N15E105.hgt
output=N15E105 resample=bilinear]

idem pour N15E106.hgt

Mosaïquer les images Raster/Superposer des rasters/Combiner des cartes rasters


[r.patch --overwrite input=N15E105,N15E106 output=srtm]

157
Partie 2 • Partie pratique

Une carte des cours d’eau obtenue par digitalisation à partir d’une image Landsat est
fournie. Elle est utilisée pour forcer les flux lors de la construction du modèle hydro-
logique par la création de chenaux de profondeur 50 m et de largeur 30 m (1 pixel) à
l’emplacement des cours d’eau. Le modèle numérique de terrain est ensuite surcreusé à
l’emplacement de ces chenaux.

Opérations GRASS Description de la procédure

Importer vecteur Fichier/Importer des données vectorielles/Importer des


vecteurs de formats communs [v.in.ogr input=.../coursDeau/
coursDeau.shp layer=coursDeau output=coursDeau --overwrite]

Transformation Vecteur Fichier/Conversion de type de cartes/Vecteur vers Raster [v.to.


en Raster rast --overwrite input=coursDeau type=line output=coursDeau
use=val]

Changer les nuls en 0 Raster/Travailler sur une carte raster/Gérer les valeurs NULL
[r.null map=coursDeau null=0]

Soustraire deux rasters Raster/Calculateur raster [r.mapcalc --overwrite


expression=‘DEMhydro = srtm - coursDeau * 50’]

Un modèle hydrologique fondé sur la création de bassins versants est construit à


partir de ce MNT modifié. Les produits de sortie utilisés sont les cartes correspondant
aux bassins versants, aux cours d’eau virtuels et aux directions des flux. Une valeur
seuil exprimée en pixels définit la dimension minimale des bassins extérieurs créés, qui
correspond au nombre de cellules qui se déversent à l’intérieur du bassin.

Opérations GRASS Description de la procédure

Construction Raster/Modélisation hydrologique/Analyse de bassin versant


du modèle [r.watershed --overwrite elevation=DEMhydro stream=stream
hydrologique drainage=fidra basin=basin threshold=100]

La couche raster des cours d’eau virtuels est affinée avant d’être vectorisée.

Opérations GRASS Description de la procédure

Affiner le raster Raster/Transformer les entités/Affiner [r.thin --overwrite input=stream


output=streamThin]

Transformation Fichier/Conversion de type de cartes/Raster vers Vecteur [r.to.vect


Raster en Vecteur --overwrite input=streamThin output=stream type=line]

Pour déterminer les aires de drainage associées aux stations de prélèvement, il est
nécessaire de calculer pour chaque station les coordonnées du point le plus proche
situé sur le cours d’eau virtuel. Ces coordonnées sont stockées dans le fichier tempS-
tationCross.csv. À partir de ce fichier est construite une nouvelle couche stCross. La
dernière étape crée et peuple la colonne station de la couche stCross.

158
Exercice 10 • Modèle hydrologique

Opérations GRASS Description de la procédure

Entités les plus Vecteur/Entités les plus proches [v.distance -p from=station from_
proches type=point to=stream to_type=line upload=to_x,to_y > .../TRAV/
stCross.csv]

Importer vecteur Fichier/Importer des données vectorielles/points ASCII ou format


ASCII GRASS[v.in.ascii --overwrite input=.../TRAV/stCross.csv
output=stCross skip=1 columns=’ID int, X double precision, Y double
precision’ x=2 y=3]

Ajouter colonne Base de données/Requête/Expression SQL [db.execute sql= « ALTER


TABLE stCross ADD COLUMN station varchar »]

Entités les plus Vecteur/Entités les plus proches [v.distance from=stCross from_
proches type=point to=station to_type=point upload=to_attr column=station
to_column=station]

Les aires de drainage sont construites à partir des points situés sur les cours d’eau
virtuels et de la carte de direction des flux. L’exemple ci-dessous décrit la construction
de l’aire de drainage de la station 1, dont les coordonnées du point exutoire sont égales
à 579791,1682934.

Opérations GRASS Description de la procédure

Créer bassin Raster/Modélisation hydrologique/Création de bassin


drainage versant [r.water.outlet --overwrite input=fidra output=drain2
coordinates=579791,1682934]

La création des aires de drainage est réalisée pour chaque station à l’aide de l’an-
nexe 2. L’ensemble de ces aires est enregistré dans une seule carte (Fig. E10.1). Les
aires des stations 4 et 7 se recouvrant, un traitement particulier isole le chevauchement
entre ces deux aires et l’affecte pour des raisons de lisibilité à la station ST_7 possédant
une plus grande aire de drainage.
© Dunod – Toute reproduction non autorisée est un délit.

Figure E10.1 – Aires de drainage des stations de prélèvement d’eau.

159
Partie 2 • Partie pratique

4 Commentaires
La qualité des aires de drainage est dépendante de la qualité du MNT. De plus, le
forçage des directions par le surcreusement de chenaux à l’emplacement de cours d’eau
demande une attention très particulière. Ce travail est d’autant plus délicat que la zone
d’étude possède un relief peu accentué et par conséquent une forte sensibilité à la qualité
du MNT.

5 Pour aller plus loin


Calculez des paramètres décrivant le modèle hydrologique (pente moyenne d’une aide
de drainage, longueur de son contour...). Ces données sont susceptibles d’expliquer, pour
partie, la contamination bactérienne en influant sur les transferts de sédiments.
L’étude se poursuit par l’extraction des proportions d’occupation du sol et de nature de
sol de chaque aire de drainage. Cette opération est simple mais elle demande d’utiliser
le programme cookieCutter dont le fonctionnement sera décrit dans l’exercice 11 qui
porte sur le traitement des données.

6 Annexes
Annexe 1

#!/bin/bash
source ./envir.sh
v.in.ascii --overwrite input=$dirSrc/station.csv output=station sepa-
rator=, skip=1 columns='station varchar(20), village varchar(20), river
varchar(30), Side varchar(20), distBank int, x double precision, y double
precision, z double precision, IDSTA int, BACTERIE int' x=6 y=7 z=8
g.region res=30 n=1766000 s=1659000 w=550000 e=690000
r.import --overwrite input=$dirSrc/SRTM/N15E105.hgt output=N15E105
resample=bilinear
r.import --overwrite input=$dirSrc/SRTM/N15E106.hgt output=N15E106
resample=bilinear
r.patch --overwrite input=N15E105,N15E106 output=srtm
v.in.ogr --overwrite input=$dirSrc/coursDeau/coursDeau.shp layer=cours-
Deau output=coursDeau
v.to.rast --overwrite input=coursDeau type=line output=coursDeau use=val
r.null map=coursDeau null=0

160
Exercice 10 • Modèle hydrologique

r.mapcalc --overwrite expression='DEMhydro = srtm - coursDeau * 50'


r.watershed --overwrite elevation=DEMhydro stream=stream drainage=fidra
basin=basin threshold=100
r.thin --overwrite input=stream output=streamThin
r.to.vect --overwrite input=streamThin output=stream type=line
v.distance -p from=station from _type=point to=stream to_type=line
upload=to_x,to_y > $dirTrav/stCross.csv
v.in.ascii --overwrite input=$dirTrav/stCross.csv output=stCross skip=1
columns='ID int, X double precision, Y double precision' x=2 y=3
db.execute sql="ALTER TABLE stCross ADD COLUMN station varchar"
v.distance from=stCross from _type=point to=station to_type=point
upload=to_attr column=station to_column=station

Annexe 2

#!/bin/bash
source ./envir.sh
for STRCi in `db.select -c sql="select ID,X,Y from stCross"`
do
ID=`echo $STRCi | awk -F'|' {'print $1'}`
X=`echo $STRCi | awk -F'|' {'print $2'}`
Y=`echo $STRCi | awk -F'|' {'print $3'}`
r.water.outlet --overwrite input=fidra output=tempWO coordinates=$X","$Y
r.mapcalc expression='w $ID = tempWO * $"ID' --overwrite
done
r.patch --overwrite input=`g.list type=rast pattern=w_* separator=,`
output=outletPatch
r.mapcalc --overwrite expression='outlet = if( isnull(w_6), outletPatch,
6")'
r.colors map=outlet color=random
for STRCi in `db.select -c sql="select ID,station from stCross"`
© Dunod – Toute reproduction non autorisée est un délit.

do
ID=`echo $STRCi | awk -F'|' {'print $1'}`
station=`echo $STRCi | awk -F'|' {'print $2'}`
echo $ID:$station >> $dirGis/cats/outlet
done

161
Exercice 11
Traitement
des données

1 Présentation de l’étude de cas


La connaissance de l’occupation du sol est essentielle pour mieux comprendre la présence
d’une bactérie Burkholderia pseudomallei dans la rivière Xé Dôn (province de Saravane,
Laos). En effet, cette bactérie tellurique et hydrique peut se développer différemment selon
les usages du sol. Les rizières sont en particulier soupçonnées de favoriser sa prolifération.
L’exercice vise à construire l’occupation du sol par une classification d’une image
satellite Landsat 8 acquise le 1er mars 2014, date relativement proche de la mission de
terrain qui s’est déroulée du 24 au 26 juin 2013.

2 Analyse du problème
La classification d’images satellite ne nécessite pas obligatoirement le recours à un SIG mais
celui-ci, par ses fonctions (gestion des projections, de la résolution spatiale, de l’étendue
géographique...), simplifie grandement l’analyse d’images obtenues à partir de capteurs de
caractéristiques différentes. De plus, le calcul des néocanaux (indice de végétation, indice
de feu, texture...) est facilité par les fonctions d’algèbre de cartes implémentées dans les SIG.
Les données de cet exercice comprennent :
• les relevés de terrain : shape releveOS. Les polygones identifient des zones homo-
gènes d’occupation du sol, décrivant les principales formations présentes sur le
terrain : 1. annualCrops, 2. fallow, 3. mature forest, 4. rice paddy, 5. savannah, 6.
tree plantation, 7. water. Le SRC est UTM48N ;
• une image satellite landsat LDCM8 du 1er mars 2014 (doy 60) : dossier
LC81260492014. Sept canaux sont utilisés : B3 green, B4 red, B5 NIR, B6 SWIR1,
B7 SWIR2. La résolution spatiale est de 30 m. Le SCR est latitude/longitude,
WGS84.
Les algorithmes de classification sont nombreux. L’exemple portera sur l’algorithme
le plus utilisé, le maximum de vraisemblance.
Les étapes d’une classification supervisée comprennent :
• calcul des signatures spectrales des classes à partir des zones d’entraînement ;
• attribution d’une classe à chacun des pixels pour construire l’image classée ;
• évaluation numérique de la classification. La qualité de la classification est estimée
à partir de zones test.
162
Exercice 11 • Traitement des données

3 Étapes de l’étude
Définissez une location de SRC UTM48N et une mapset burkholderia.

Opérations GRASS Description de la procédure

Créer location Création de la location (secteur) UTM48N


EPSG : 32648

Créer mapset Création d’une mapset (jeu de cartes) burkholderia


Ne jamais travailler dans la mapset permanent

Vérifier la projection Paramètres/Projections de carte/Affiche la projection de la


carte [g.proj -p]

Importez les relevés terrain et définissez une zone de calcul englobant ces relevés.
La résolution est de 30 m.

Opérations GRASS Description de la procédure

Importer vecteur Fichier/Importer des données vectorielles/Import de vecteur de


formats communs
[v.in.ogr input=.../releveOS/releve.shp layer=releve
output=releve]

Définir l'étendue de la Paramètre/Région calculée/Définir la région [g.region


région et sa résolution vector=releve res=30]

Les codes des classes stockés dans la colonne IDCL de la couche « releve » sont
modifiés selon le tableau 11.1 pour obtenir une numérotation continue.

Tableau E11.1 – Nouvelle codification des classes d’occupation


du sol de la province de Saravane, Laos

Occupation du sol Ancien code Nouveau code


© Dunod – Toute reproduction non autorisée est un délit.

Annual Crops 1 1

Fallow 2 2

Mature forest 4 3

Rice paddy 7 4

Savannah 8 5

Tree plantation 11 6

Water 13 7

163
Partie 2 • Partie pratique

Une requête sur les libellés est préférable à une requête sur les anciens codes qui
impose de traiter les codes par ordre croissant.

Opérations GRASS Description de la procédure

Recoder classes Base de données/Requête/Expression SQL [db.execute


sql=“UPDATE releve SET IDCL = 5 WHERE LIBCL=’savannah’;’”]

La couche « releve » comprend une colonne statut qui indique si le polygone est
utilisé comme zone d’entraînement (valeur 1) ou de test (valeur 2). Elle est utilisée pour
partitionner la couche « releve » en deux couches « entrain » et « test ».

Opérations GRASS Description de la procédure

Transformer Vecteur en Vecteur/Conversion de type de cartes/Vecteur vers Raster [v.to.


Raster rast --overwrite input=releve output=releveClass use=attr
attribute_column=IDCL labelcolumn=LIBCL]

Transformer Vecteur en Vecteur/Conversion de type de cartes/Vecteur vers Raster [v.to.


Raster rast --overwrite input=releve output=releveStatut use=attr
attribute_column=STATUT]

Créer les zones r.mapcalc expression= ‘entrain =


entraînement if(releveStatut==1,releveClass,null())’

Créer les zones test r.mapcalc --overwrite expression=‘test =


if(releveStatut==2,releveClass,null())’

Les images Landsat dont le SCR est latitude/longitude WGS84 sont reprojetées lors
de l’import. La méthode de réchantillonnage bicubique convient aux images satellite.
Cette opération est réalisée pour les canaux 3 à 7.

Opérations GRASS Description de la procédure

Importer raster Fichier/Import raster simplifié avec reprojection [r.import


--overwrite input=.../SRC/LC81260492014060LGN00/
LC81260492014060LGN00_B3.TIF output=B32014
resample=bicubic]

L’ensemble des opérations précédentes sont consignées en annexe 1.


Avant de réaliser la classification, il est utile de visualiser les signatures spectrales de
chaque classe d’occupation du sol pour chacune des bandes analysées. Un programme R
du CRAN développé par nos soins cookieCutter.R (annexes 5 et 6) extrait à partir d’un
empilement de couches stockées sous GRASS un tableau décrivant les classes du sol et
les valeurs numériques des bandes Landsat. Les lignes de ce tableau correspondent aux
pixels non nuls d’une couche indicatrice. La première colonne correspond aux valeurs
des pixels de la couche indicatrice, les colonnes suivantes aux valeurs prises par ces
pixels dans chacune des autres couches. Ce programme possède d’autres fonctionnalités

164
Exercice 11 • Traitement des données

inexploitées dans cet exercice, en particulier dans le traitement de données multitempo-


relles ce qui explique la nécessité de renseigner la date de l’image.
Sous R du CRAN, la ligne de commande ci-dessous mentionne la couche indicatrice
releveClass et les couches dont le nom est la concaténation des éléments de l’argument
listVar et de dateList. Dans l’exemple, ces couches sont B32014, B42014 … B72014. Le
fichier résultat fileOut comprend les colonnes Lcover, DATE, B3, B4, B5, B6, B7.

cookieCutter(layerIndic="releveClass", varIndic="LCover", listVar="B3 B4


B5 B6 B7", dateList="2014", fileOut="../RES/LC8.csv")

Le programme R consigné en annexe 3 réalise à partir des données du fichier « LC8.


csv » la représentation graphique des signatures spectrales (Fig. E11.1).
© Dunod – Toute reproduction non autorisée est un délit.

Figure E11.1 – Signatures spectrales des classes d’occupation du sol pour


chacune des bandes de l’image Landsat 8.

165
Partie 2 • Partie pratique

La procédure de classification implémentée sous GRASS consiste à définir le groupe


qui contiendra les couches « données », dans cet exemple les bandes de l’image satellite.
Puis, à construire à partir de ce groupe et d’une couche contenant les ROI d’entraîne-
ment, les signatures spectrales de chaque classe (moyenne, variance et covariance). La
classification de l’image est ensuite réalisée en comparant chaque pixel aux signatures
spectrales de chaque classe par la méthode du maximum de vraisemblance. La matrice
de confusion fournit les éléments utiles à l’estimation de la qualité de la classification.
Cette procédure est consignée en annexe 4.

Opérations GRASS Description de la procédure

Créer groupe Imagerie/Travailler sur des images et groupes/


Créer éditer un groupe d’images [i.group
group=groupeLC8 subgroup=sousGroupe
input=LC8..._B3,LC8..._B4,LC8..._B5,LC8..._B6,LC8..._B7]

Créer classes et Imagerie/Classification d’image/Entrée pour classification


signatures supervisée supervisée MLC [i.gensig –overwrite
trainingmap=entrain group=groupeLC8 subgroup=sousGroupe
signaturefile=signat]

Classification Imagerie/Classification d’image/Classification par le maximum


de vraisemblance (MLC) [i.maxlik --overwrite group=groupeLC8
subgroup=sousGroupe signaturefile=signat output=classif
reject=rejet]

Couleur et nom de classe cp -f .../classif_cats ...burkholderia/cats/classif


cp -f .../classif_colr ...burkholderia/colr/classif

Matrice de confusion Raster/Comptes-rendus et statistiques/Occurrences mutuelles


de catégories [r.coin -w first=classif second=test units=c]

4 Commentaires
Que remarquez-vous ? Comment expliquer certaines confusions ?
Expliquez comment définir une palette pour représenter l’image classée qui reprenne
les couleurs de la figure E11.1 des signatures spectrales.

5 Pour aller plus loin


Identifiez la cause de la bimodalité du spectre de la réflectance de l’eau.
Réalisez une composition colorée pour visualiser l’image satellite à partir des trois
canaux B5, B4, B3 c’est-à-dire PIR, rouge et vert.

166
Exercice 11 • Traitement des données

Intégrez des néocanaux à l’analyse, par exemple le NDVI. La formule du NDVI est :
(PIR – R)/(PIR + R) ; dans le cas de Landsat 8 : (B5 – B4)/(B5 + B4). Visualiser le
NDVI avec sa palette. Recommencez la classification. Pour éviter une erreur lors du
calcul des signatures spectrales, multiplier le NDVI par 10 000. Calculez la matrice de
confusion. Interprétez.
Calculez le NDWIGAO. La formule du NDWIGAO est : (NIR – SWIR)/(NIR + SWIR) ;
dans le cas de Landsat 8 : (B5 – B6)/(B5 + B6). Visualisez-le avec la palette NDVI.
Interprétez.
Modifiez le statut des relevés terrain, entraînement ou test.
Calculez les statistiques d’estimation de la qualité de la classification (pourcentage de
pixels correctement classés, kappa).

6 Annexes
Annexe 1

#!/bin/bash
source ./envir.sh
v.in.ogr input=$dirSrc/releveOS/releve.shp layer=releve output=releve
--overwrite
g.region vector=releve res=30
db.execute sql="UPDATE releve SET IDCL = 1 WHERE LIBCL='annualCrops';"
db.execute sql="UPDATE releve SET IDCL = 2 WHERE LIBCL='fallow';"
db.execute sql="UPDATE releve SET IDCL = 3 WHERE LIBCL='mature forest';"
db.execute sql="UPDATE releve SET IDCL = 4 WHERE LIBCL='rice paddy';"
db.execute sql="UPDATE releve SET IDCL = 5 WHERE LIBCL='savannah';"
db.execute sql="UPDATE releve SET IDCL = 6 WHERE LIBCL='tree plantation';"
db.execute sql="UPDATE releve SET IDCL = 7 WHERE LIBCL='water';"
v.to.rast --overwrite input=releve output=releveClass use=attr attri-
bute_column=IDCL labelcolumn=LIBCL
© Dunod – Toute reproduction non autorisée est un délit.

v.to.rast --overwrite input=releve output=releveStatut use=attr


attribute_column=STATUT
r.mapcalc --overwrite expression='entrain = if(releveStatut==1,releve-
Class, null())'
r.mapcalc --overwrite expression='test = if(releveStatut==2,releve-
Class,null())'
for bande in B3 B4 B5 B6 B7
do
r.in.gdal input=$dirSrc/LC81260492014/$bande.tif output=$bande'2014'
--overwrite
Done

167
Partie 2 • Partie pratique

Annexe 2

source ("envir.R")
source(dirLib %+% "/cookieCutter.R")
cookieCutter(layerMono="releveClass releveStatut", varMono="LCover
Statut", listVar="B3 B4 B5 B6 B7", dateList="2014", fileOut=dirRes %+% "/
LC8.csv")

Annexe 3

source ("envir.R")
libelLU <- c("annualCrops","fallow","mature forest","rice paddy","savan-
nah","tree plantation","water")
couleur <- c("green","cyan","darkgreen","gold","brown","red","blue")
don1 <- read.csv(dirRes %+% "/LC8.csv")
don1[,"LCover"] <- as.factor(don1[,"LCover"])
levels(don1[,"LCover"]) <- libelLU
print(summary(don1[,"LCover"]))
par(mfrow=c(3,2))
for (var1 in paste("B",3:7,sep="")) {
# recherche max
ordomax <- 0
for (iLC in libelLU) {
don2 <- subset(don1, LCover == iLC)
d <- density(don2[,var1])
ordomax1 <- max(d$y)
if (ordomax1 > ordomax) ordomax <- ordomax1
}
# dessin
d <- density(don1[,var1])
plot(d, type='n', ylim=c(0,ordomax), main='variable ' %+% var1, xlab=",
ylab=")
i <- 0
for (iLC in libelLU) {
i <- i + 1
don2 <- subset(don1, LCover == iLC)
d <- density(don2[,var1])
lines(d$x,d$y,col=couleur[i])
}
}

168
Exercice 11 • Traitement des données

# legende
plot(c(-1,-1), xlim=c(0,100), ylim=c(0,100),type='n', ann=FALSE, bty='n',
xaxt='n', yaxt='n')
for (i in 1:length(libelLU)) {
y <- 10 + i * 10
lines(c(10,30), c(y,y), col=couleur[i])
text(40, y, libelLU[i], pos=4)
}

Annexe 4

#!/bin/bash
source ./envir.sh
rm -rf $dirGis/group/groupeLC8
i.group group=groupeLC8 subgroup=sousGroupe input=B32014,B42014,B52014,
B62014,B72014
i.g e n sig -- o v e r w rite tr a i n i n g m a p = e ntr a i n g r o u p = g r o u p e L C8
subgroup=sousGroupe signaturefile=signat
i.m a x li k -- o v e r w rite g r o u p = g r o u p e L C8 s u b g r o u p =s o u s Gr o u p e
signaturefile=signat output=classif reject=rejet
cp -f $dirSrc/divers/classif_cats $dirGis"/cats/classif"
cp -f $dirSrc/divers/classif_colr $dirGis"/colr/classif"
r.coin -w first=classif second=test units=c

Annexe 5
Description
cookieCutter.R fonctionne comme un « emporte-pièce ». Une table (fichier texte) est
construite à partir d’une couche décrivant des régions d’intérêt (ROI) et d’autres couches
mono et multi-temporelles.
© Dunod – Toute reproduction non autorisée est un délit.

Usage
cookieCutter <- function(layerIndic, varIndic, theme="", listVar, date-
List, dateVar="DATE", missValues=TRUE, syntaxLayer="THEME VARIABLE DATE",
fileOut="resultat")
cookieCutter <- cookieCutter <- function(paramFile)

169
Partie 2 • Partie pratique

Arguments
Les arguments de ce programme sont lus dans un fichier ou passés en arguments.
• paramFile : nom du fichier contenant les arguments de la commande. Si paramFile
n’existe pas, les arguments suivants sont passés en ligne de commandes ;
• layerMono : nom des couches mono-temporelles. La première couche est la
couche indicatrice. Seuls les pixels non vides de cette première couche sont pris
en compte ;
• varMono : nom de la variable indicatrice indiquée dans le fichier résultat suivi
du nom des variables monotemporelles. Par défaut les valeurs de layerMono sont
utilisées ;
• Theme : première partie du nom des couches multi-temporelles. Cet argument
est optionnel ;
• listVar : deuxième partie du nom des couches multi-temporelles. listVar est égale-
ment utilisé pour définir le nom des colonnes des variables multi-temporelles du
fichier résultat ;
• dateList : troisième partie du nom des couches multi-temporelles ;
• syntaxLayer : ordre de concaténation des arguments theme, listVar, dateList. Par
défaut, syntaxLayer prend la valeur “THEME VARIABLES DATES”, les argu-
ments “theme, listVar, dateList” sont concaténés dans cet ordre ;
• dateVar : nom de la variable “date” du fichier résultat, par défaut “DATE” ;
• missValues : si TRUE les lignes présentant des données manquantes (NA) ne sont
pas écrites dans le fichier résultat ;
• fileOut : nom du fichier résultat.

Exemple
Syntaxe 1 : arguments passés en ligne de commande

cookieCutter(layerMono="releveClass releveStatut", varMono="LCover


Statut", listVar="B3 B4 B5 B6 B7", dateList="2014 2015",
fileOut="../RES/LC8.csv")

Syntaxe 2 : arguments lus dans un fichier

ficPara <- "inputCookieCutter.txt"


source("../LIB/cookieCutter.R")
cookieCutter(paramFile=ficPara)
#Exemple extraction des ROI d'une image Landsat

170
Exercice 11 • Traitement des données

Le code des ROI stockés dans la couche releveClass sont enregistrés sous la variable
LCover du fichier. À une couche montemporelle releveStatut correspond dans le fichier la
variable Statut. Les noms des couches multitemporelles sont B32014, B42014 ... B72014.

# fichier inputCookieCutter.txt
layerMono:releveClass releveStatut
varMono:LCover Statut
listVar:B3 B4 B5 B6 B7
dateList:2014 2015
fileOut:../RES/LC8.csv

Exemple de fichier résultat :

"LCover","Statut","DATE","B3","B4","B5","B6","B7"
5,1,2014,9421,8996,13918,12533,9332
5,2,2014,9692,9675,13609,13266,10646
...

Annexe 6

# cookieCutter.R
library("rgrass7")
library("sp")
use_sp()
scanPar <- function(fichier, param, sep1="=", pos=1) {
table1 <- read.table(file=fichier,sep=sep1, fill=TRUE, stringsAsFac-
tors=FALSE, header=FALSE)
table1[,1] <- supSpace(table1[,1])
pattern <- "^" %+% param
ligne <- subset(table1,grepl(pattern, table1[,1]))
if (nrow(ligne) > 0) {
© Dunod – Toute reproduction non autorisée est un délit.

ligne2 <- supSpaceFirst(ligne[pos + 1])


ligne2 <- supSpaceEnd(ligne2)
par1 <- unlist(strsplit(as.character(ligne2)," "))
} else {
par1=""
}
return (par1)
}
readRAST9 <- function (fname) {
x <- readRAST(fname,plugin=FALSE)

171
Partie 2 • Partie pratique

names(x) <- “CELL”


return (x)
}
supSpace <- function(txt)
gsub("[[:space:]]+", "", txt)
supSpaceFirst <- function(txt)
gsub('^[[:space:]]+', '', txt)
supSpaceEnd <- function(txt)
gsub('[[:space:]]+$', '', txt)
indicatrice <- function (coucheVar) {
datas <- readRAST9(coucheVar)
indic <- datas$CELL
indic <<- indic
}
initdf <- function (coucheVar, libcol) {
datas <- readRAST9(coucheVar)
doncol <- subset(datas$CELL, !is.na(indic))
dfdon <- data.frame(col = doncol)
colnames(dfdon) <- libcol
donnee <<- dfdon
}
lireImage <- function (coucheVar, libcol) {
datas <- readRAST9(coucheVar)
doncol <- subset(datas$CELL, !is.na(indic))
doninv <- cbind(donnee, doncol)
nomCol <- c(colnames(donnee), libcol)
colnames(doninv) <- nomCol
donnee <<- doninv
}
ecrire <- function(datas, col.names=FALSE) {
if (xmissValues) datas <- na.omit(datas)
if (col.names)
write.csv(datas, file=xfileOut, row.names=FALSE)
else
write.table(datas, file=xfileOut, append=TRUE, row.names=FALSE,
col.names=FALSE, sep=",")
}
liredate <- function (date2, col.names=FALSE) {
print("************************************************")
DATES <- date2
doninv <- cbind(donnee[,1:nbcolId],rep(DATES,nrow(donnee)))
colnames(doninv) <- c(colnames(donnee)[1:nbcolId],xdateVar)
donnee <<- doninv

172
Exercice 11 • Traitement des données

for (VARIABLES in xlistVar) {


layerName <- paste(THEME, VARIABLES, DATES, sep=””)
if (xsyntaxLayer[1] != “”) {
layerName <- “”
for (partLNi in xsyntaxLayer)
layerName <- paste(layerName, get(partLNi), sep="")
}
print(layerName)
lireImage(layerName, VARIABLES)
}
ecrire(donnee, col.names)
}
######################################################################
# Debut du programme #
######################################################################
cookieCutter <- function(paramFile, layerMono, varMono, theme="", listVar,
dateList, dateVar="DATE", missValues=TRUE, syntaxLayer="", fileOut="re-
sultat") {
if (!missing(paramFile) && (!missing(layerMono) || !missing(varMono) ||
!missing(theme) || !missing(listVar) || !missing(dateList) || !missing(dat-
eVar) || !missing(missValues) || !missing(syntaxLayer) || !missing(fileOut)))
{
stop("Erreur l'argument paramFile ne peut être utilisé avec d'autres
arguments")
}
if (!missing(paramFile)) {
xdateList <- scanPar(paramFile, param="dateList", sep1=":")
if (xdateList[1] == "") stop("Erreur variable dateFile requise dans
le fichier paramètre")
xdateVar <<- scanPar(paramFile, param="dateVar", sep1=":")
if (xdateVar == "") xdateVar <<- "DATE"
xlayerMono <- scanPar(paramFile, param="layerMono", sep1=":")
if (xlayerMono[1] == "") stop("Erreur variable xlayerMono requise
dans le fichier paramètre")
© Dunod – Toute reproduction non autorisée est un délit.

xvarMono <- scanPar(paramFile, param="varMono", sep1=":")


if (xvarMono[1] == "") xvarMono <- xlayerMono
xfileOut <<- scanPar(paramFile, param="fileOut", sep1=":")
if (xfileOut == "") xfileOut <<- "resultat"
THEME <<- scanPar(paramFile, param="theme",sep1=":")
xlistVar <<- scanPar(paramFile, param="listVar",sep1=":")
if (xlistVar[1] == "") stop("Erreur variable listVar requise dans le
fichier paramètre")
xmissValues <<- scanPar(paramFile, param="missValues",sep1=":")
if (xmissValues == "") xmissValues <<- TRUE
xsyntaxLayer <<- scanPar(paramFile, param="syntaxLayer",sep1=":")

173
Partie 2 • Partie pratique

} else {
if (missing(dateList)) stop(“argument dateList requis”)
xdateList <- dateList
xdateVar <<- dateVar
if (missing(layerMono)) stop("argument layerMono requis")
xlayerMono <- unlist(strsplit(layerMono, split=" "))
if (missing(varMono)) xvarMono <- xlayerMono else xvarMono <-
unlist(strsplit(varMono, split=" "))
xfileOut <<- fileOut
if (missing(listVar)) stop("argument listVar requis")
xlistVar <<- unlist(strsplit(listVar, " "))
THEME <<- theme
xsyntaxLayer <<- unlist(strsplit(syntaxLayer, split=" "))
if (missing(syntaxLayer)) xsyntaxLayer <<- ""
xmissValues <<- missValues
}
listDate <- unlist(strsplit(xdateList, " "))
if (length(xvarMono) != length(xlayerMono)) stop("erreur nb couches vari-
ables != nb variables indicatrices", call. = FALSE)
# nbcolId nombre de colonnes critères
nbcolId <<- length(xlayerMono)
indicatrice(xlayerMono[1])
initdf(xlayerMono[1],xvarMono[1])
if (nbcolId > 1) {
for (i in 2:nbcolId)
lireImage(xlayerMono[i],xvarMono[i])
}
liredate(listDate[1], col.names=TRUE)
lannee <- length(listDate)
if (lannee > 1) for(i in 2:lannee) {
liredate(listDate[i])
}
}

174
Exercice 12
Modèle de paysage

1 Présentation de l’étude de cas


Burkholderia pseudomallei est une bactérie environnementale dont la prolifération et
la diffusion sont très mal connues. Dans une démarche exploratoire, différents détermi-
nismes de son développement en milieu naturel sont recherchés dans la topographie, la
géologie, la pédologie, l’hydrologie, l’occupation du sol et la structuration du paysage.
L’exercice 10, Modèle hydrologique, a permis de délimiter les aires de drainage dont
l’exutoire est le point de prélèvement d’échantillons d’eau dans lesquels la présence de
la bactérie est recherchée.
Les données comprennent :
• la carte occupation du sol de 2008 fournie par le Dalam : shape
landuseXedone2008modifie ;
• le MNT SRTM : dossier srtm ;
• la localisation et les caractéristiques des prélèvements d’eau : station.csv ;
• la carte des aires de drainage de chacun des points de prélèvements d’eau :
outlet.tif.
À partir de ces données sont calculés pour chaque aire de drainage sa surface, son
périmètre, l’altitude moyenne, la pente moyenne et la proportion des classes d’occupation
du sol.
La bactérie étant hydromorphe, les rizières jouent un rôle particulier dans sa proliféra-
tion et la contamination de l’homme lors des travaux des champs. L’organisation spatiale
des taches de cette classe d’occupation du sol est étudiée par des méthodes fondées sur
des indices du paysage.
© Dunod – Toute reproduction non autorisée est un délit.

2 Étapes de l’étude
Créez la location/mapset « UTM48N/burkholderia ».

Opérations GRASS Description de la procédure

Créer location Création de la location (secteur) UTM48N


EPSG : 32648

Créer mapset Création d’une mapset (jeu de cartes) burkholderia


Ne jamais travailler dans la mapset permanent

175
Partie 2 • Partie pratique

La première opération consiste à importer la couche raster outlet puis à définir la


région, étendue et résolution, à partir de cette couche.

Opérations GRASS Description de la procédure

Importer raster Fichier/Importer une carte raster/Import de raster de formats


communs
[r.in.gdal input=…/outlet/outlet.tif output=outlet --overwrite]

Définir la région Paramètres/Région calculée/Définir la région [g.region


raster=outlet]

La couche raster « srtm » est importée puis la pente est calculée à partir de cette
couche.

Opérations GRASS Description de la procédure

Importer raster Fichier/Importer une carte raster/Import raster simplifié avec


reprojection
[r.import --overwrite input=.../srtm/SRTM.tif output=srtm
resample=bilinear]

Calcul de la pente Raster/Analyse de terrain/Pente et exposition [r.slope.aspect


--overwrite elevation=srtm slope=pente format=percent]

Le calcul de différents paramètres caractéristiques des aires de drainage (aire, péri-


mètre) et l’estimation de résumés statistiques des variables quantitatives (altitude) ou
qualitatives (landuse) nécessite de transformer la couche raster décrivant les aires de
drainage en vecteur.

Opérations GRASS Description de la procédure

Transformer en vecteur Fichier/Conversion de typede carte/Raster vers Vecteur [r.to.


vect -v --overwrite input=outlet output=outlet type=area]

Les champs « aire », « perimetre », « compact » sont créés puis remplis par calcul.

Opérations GRASS Description de la procédure

Remplir champ “aire” Vecteur/Mettre à jour les attributs/Mettre à jour des attributs
de base de données depuis une carte vecteur: [v.to.db
map=outlet option=area columns=aire]

Remplir champ Vecteur/Mettre à jour les attributs/Mettre à jour des attributs


“perimetre” de base de données depuis une carte vecteur: [v.to.db
map=outlet option=perimeter columns=perimetre]

Remplir champ “compact” Vecteur/Mettre à jour les attributs/Mettre à jour des attributs
de base de données depuis une carte vecteur: [v.to.db
map=outlet option=compact columns=compact]

176
Exercice 12 • Modèle de paysage

Des fonctions GRASS permettent de calculer pour chaque polygone d’une couche
vecteur (outlet : aires de drainage) des résumés statistiques relatifs à une variable quan-
titative stockée dans une couche (srtm : altitude).

Opérations GRASS Description de la procédure

Statistique Vecteur/Mettre à jour les attributs/Mise à jour des


attributs surfaciques à partir d’une carte raster [v.rast.
stats map=outlet raster=srtm column_prefix=alt
method=minimum,maximum,average, median]

Visualisez la table attributaire de la couche vecteur outlet qui contient les résultats
statistiques relatifs à chaque aire de drainage : surface, périmètre, compacité, mais
également les calculs effectués par croisement avec le MNT, altitude minimale, altitude
maximale, altitude moyenne et altitude médiane.
Les données d’occupation du sol sont importées puis transformées en raster. Pour
connaître le nom de l’attribut et du libellé associé à l’occupation du sol, affichez dans le
gestionnaire de couche l’ensemble des attributs.

Opérations GRASS Description de la procédure

Importer vecteur Fichier/Importer des données vectorielles/Import de vecteur de


formats communs [v.in.ogr input=.../landuseXedone2008modifie/
LU2008Dnew.shp layer=LU2008Dnew output=landuse
--overwrite]

Transformer en raster Fichier/Conversion de type de cartes/Vecteur vers Raster


[v.to.rast --overwrite input=landuse output=landuse use=attr
attribute_column=IDNewLU label_column=NewLU]

Le logiciel R du CRAN offre beaucoup de souplesse et de puissance. GRASS ne


possède pas de commandes adaptées aux variables qualitatives mais il est possible de
développer sous R des fonctions qui calculent, par exemple, la distribution d’une variable
qualitative des pixels d’une couche raster à l’intérieur de polygones d’une autre couche.
Par exemple, la fonction décrite dans la suite de ce paragraphe calculera la distribution
© Dunod – Toute reproduction non autorisée est un délit.

de la variable décrivant les types d’occupation du sol (landuse) dans chacune des aires
de drainage (outlet).
La lecture des couches vecteurs GRASS sous R repose sur la bibliothèque rgrass7.

library("rgrass7")
outlet <- readRAST("outlet")
landuse <- readRAST("landuse")
table(outlet$outlet,landuse$landuse)

177
Partie 2 • Partie pratique

Le script en annexe 2 illustre l’utilisation de ces fonctions, en particulier la fonction


readVect qui lit des couches vecteur.
La dernière partie de cet exercice traite du calcul d’indice du paysage.
La première étape demande de créer un fichier de configuration. Cette procédure est
obligatoirement interactive. Elle n'est pas scriptable.
Pour créer le fichier de configuration, suivez le dialogue du module. Raster/Analyse
des parcelles de paysage/mise en place de l’échantillonnage et de l’analyse [r.li.setup].
** écran 1. Initialisation des modules r.li
− Créer
** écran 2. Sélectionner des cartes et définir le nom.
− Nom du nouveau fichier de configuration à créer : config.
− Carte raster à utiliser pour sélectionner les zones : outlet.
− Carte vecteur à utiliser pour sélectionner les zones : ne pas remplir.
− Couche de la carte vecteur à utiliser pour sélectionner les zones : ne pas remplir.
− Définir la région d’échantillonnage (région à analyser), carte entière : coché.
** écran 3. Ajouter des zones d’échantillons
Carte entière : coché.
** écran 4. Résumé
− Finir.
** écran 5. Créer un nouveau fichier de configuration pour r.li
− Oui.
Le fichier config est créé dans le répertoire /home/user/.grass7/r.li.
Calculez pour la classe d’occupation du sol « rizière » (Fig. E12.1) le nombre de patchs,
leur surface moyenne, l’indice de forme, leur densité.
Opérations GRASS Description de la procédure
Créer raster [r.mapcalc --overwrite expression=’paddy = if(landuse == 7, 1, null())’]]
Calculer un indice de Raster/Analyse des parcelles du paysage/Module nombre
paysage [r.li.patchnum --overwrite input=paddy
config=/home/user/.grass7/r.li/config
output=resNombre]
Calculer un indice de Raster/Analyse des parcelles du paysage/Surface moyenne des
paysage patchs [r.li.mps --overwrite input=paddy
config=/home/user/.grass7/r.li/config output=resSurf]
Calculer un indice de Raster/Analyse des parcelles du paysage/Indice de forme
paysage [r.li.shape --overwrite input=paddy
config=/home/user/.grass7/r.li/config output=resForm]
Calculer un indice de Raster/Analyse des parcelles du paysage/Module de densité
paysage
[r.li.patchdensity –overwrite input=paddy config=/home/user/.grass7/r.li/config output=resDens]

Les résultats sont stockés dans le répertoire /home/user/.grass7/r.li/output


Le nombre de patchs est 373. Transformez le raster paddy en vecteur pour vérifier le
décompte du nombre de patchs.

178
Exercice 12 • Modèle de paysage

Opérations GRASS Description de la procédure

Transformer en Fichier/Conversion de type de carte/Raster vers vecteur


vecteur [r.to.vect input=paddy output=paddy type=area]

Le nombre de centroïdes, 373, confirme le calcul de l’indice.

Figure E12.1 – Localisation des rizières au sein des aires de drainage.

Calculez les statistiques de paysage relatives aux patchs de riz pour chaque aire de
drainage des stations.
Le script en annexe 3 calcule les métriques de patch (patchum : nombre de taches,
mps : taille moyenne d’une tache, shape : indice de forme LSI) du raster paddy en fonc-
tion des différentes aires de drainage des stations. Le résultat est consigné dans le fichier
…/RES/landscapeIndices.txt.
La station ST_1 n’est composée que de deux grandes taches de taille moyenne égale à
2 303 ha. Au contraire la station ST_13 comprend 19 taches de plus petite taille moyenne
25 ha. La forme des taches de la station ST_13 est logiquement moins compacte que celle
de la station ST_1. L’analyse peut se poursuivre en qualifiant les aires de drainage en
© Dunod – Toute reproduction non autorisée est un délit.

fonction de l’organisation des rizières. Pour être plus pertinent, ces résultats pourraient
être corrigés par la surface des aires de drainage. Ce calcul est très simple à mettre en
œuvre dans la mesure où ces surfaces ont été calculées précédemment.

3 Commentaires
Dans le monde des SIG, deux logiques existent pour réaliser les traitements, le mode
Vecteur et le mode Raster. Dans cet exercice, une logique mixte est employée pour

179
Partie 2 • Partie pratique

calculer des statistiques de valeurs de pixels (Raster) à l’intérieur de polygones


(Vecteur) lors de l’utilisation de la commande GRASS v.rast.stats. La logique totale-
ment Vecteur est possible mais plus difficile à mettre en œuvre. La logique totalement
Raster est en revanche très simple comme le montre le petit programme R utilisant
la fonction table.

4 Pour aller plus loin


D’autres indices de structure du paysage sont disponibles. Une lecture attentive de la
documentation de fragstat (McGarigal 2012) est indispensable pour comprendre leur
mode de calcul. Vous pouvez vous entraîner à calculer d’autres indices appliqués aux
taches, à calculer ces indices sur d’autres classes d’occupation du sol. La forêt constitue
une classe intéressante car elle peut jouer un rôle de filtre freinant la diffusion de la
bactérie.
La diversité des classes d’occupation du sol peut aussi influer sur la présence de la
bactérie et les indices de diversité appliqués à la couche landuse fournissent une mesure
de cette donnée.
La méthodologie décrite dans cette fiche conduit à la construction de tableau possédant
un nombre de variables bien supérieur au nombre de lignes. Les techniques habituelles,
telle l’analyse en composantes principales ne conviennent pas. La PLSD (Partial Least
Square Analysis) se montre plus adaptée à la condition de prendre garde aux problèmes
de surparamétrisation. Ribolzi et al. (2016) exposent le traitement complet de l’exemple.

5 Annexes
Annexe 1

#!/bin/bash
source ./envir.sh
r.in.gdal input=$dirSrc/outlet/outlet.tif output=outlet –overwrite
r.colors map=outlet color=random
g.region raster=outlet
r.i m p or t --over w rite input=$d irSrc/sr t m/SRTM.tif output=sr t m
resample=bilinear
r.slope.aspect --overwrite elevation=srtm slope=pente format=percent
r.to.vect -v --overwrite input=outlet output=outlet type=area
v.to.db map=outlet option=area columns=aire

180
Exercice 12 • Modèle de paysage

v.to.db map=outlet option=perimeter columns=perimetre


v.to.db map=outlet option=compact columns=compact
v.r a s t.s t a t s m ap = outlet raster=sr t m c olu m n _ pr efi x = a lt
method=minimum,maximum,average,median
v.i n.o g r i nput=$d irSrc/la nd useXe d one2008m o d ifie/LU2008Dnew.shp
layer=LU2008Dnew output=landuse --overwrite
v.to.rast --overwrite input=landuse output=landuse use=attr attribute_
column=IDNewLU label_column=NewLU

Annexe 2

source("envir.R")
library("rgrass7")
library("sp")
use_sp()
outlet <- readRAST("outlet") # lit un raster
Doutlet <- outlet$outlet
landuse <- readRAST("landuse")
Dlu <- landuse$landuse
stat <- table(Doutlet,Dlu)
colna mes(stat) <- cmd("r.category map=landuse separator=com ma",
intern=TRUE)
rownames(stat) <- cmd("r.category map=outlet separator=comma", intern=TRUE)
print(stat)
outletV <- readVECT("outlet", plugin=FALSE)
print(summary(outletV))
donnee <- cbind(as.character(outletV$label),outletV$aire,outletV$perimetre)
colnames(donnee) <- c("station","aire","perimetre")
print(head(donnee))
© Dunod – Toute reproduction non autorisée est un délit.

Annexe 3

#!/bin/bash
source ./envir.sh
CONFIG=$HOME/.grass7/r.li/config
if [ ! -e $CONFIG ]
then
echo "Attention, vous devez créer le fichier "$CONFIG" avec le module
r.li.setup"
exit

181
Partie 2 • Partie pratique

fi
r.mapcalc --overwrite expression='paddy = if(landuse == 7, 1, null())'
r.li.patchnum --overwrite input=paddy config=$CONFIG output=resNombre
r.li.mps --overwrite input=paddy config=$CONFIG output=resSurf
r.li.shape --overwrite input=paddy config=$CONFIG output=resForm
r.li.patchdensity --overwrite input=paddy config=$CONFIG output=resDens
for categ in `r.category map=outlet separator=comma`
do
ID=`echo $categ | awk -F',' {'print $1'}`
station=`echo $categ | awk -F',' {'print $2'}`
echo "Construction couche "$station
r.mapcalc --overwrite "$station = if(outlet == $ID * paddy, 1, null())"
done
echo "station,patchnum,mps,shape" > $dirRes/landscapeIndices.txt
for categ in `r.category map=outlet separator=comma`
do
station=`echo $categ | awk -F',' {'print $2'}`
echo "Indices du paysage "$station
r.li.patchnum --overwrite input=$station config=$CONFIG output=$station.
patchnum
r.li.mps --overwrite input=$station config=$CONFIG output=$station.mps

r.li.shape --overwrite input=$station config=$CONFIG output=$station.
shape
RESU=$HOME/.grass7/r.li/output
echo -n $station >> $dirRes/landscapeIndices.txt

paste -d'|' $RESU/$station.patchnum $RESU/$station.mps $RESU/$station.
shape | awk -F'|' {'print "," $2 "," $4 "," $6'} >> $dirRes/landsca-
peIndices.txt
done

182
Exercice 13
Composition de carte

1 Présentation de l’étude de cas


À partir de données d’occupation du sol recueillies en 2014 sur le bassin de Houay Pano
est conçue une carte destinée à publication. Les règles de la sémiologie graphique et de
la cartographie sont respectées pour cette composition de carte.
Les données utilisées pour créer la composition de la figure E13.1 comprennent :
• la carte occupation du sol de 2014 : shape LU2014 ;
• le contour des zones inondées le long du cours d’eau : shape swamp ;
• masque englobant la zone d’étude : shape masque ;
• MNT tandem-X : tandemX.tif.
Ce MNT est fourni par Deutsches Zentrum für Luft-und Raumfahrt (DLR) dans le
cadre du projet DEM_HYDR1512.
© Dunod – Toute reproduction non autorisée est un délit.

Figure E13.1 – Composition de carte réalisée sous QGIS.

183
Partie 2 • Partie pratique

2 Enchaînement des opérations


Le composeur d’impression de QGIS est le principal outil utilisé pour la création de
cette carte. L’extension GRASS7 facilite grandement l’accès aux données stockées sous
GRASS, en permettant de lire les données au format interne GRASS sous QGIS.
• La première étape consiste à préparer sous GRASS une couche raster destinée
à publication, à choisir la résolution, les couleurs, le libellé des classes adapté à
une publication.
• La deuxième étape construit sous QGIS une couche de courbes de niveau à partir
du MNT tandem-X qui sera superposée à la carte.
• La troisième étape utilise le composeur d’impression pour renseigner les propriétés
de chacun des objets (couche et graticule, légende, rosace...). Pour faciliter la
compréhension de ces propriétés très nombreuses, nous avons choisi d’indiquer
les valeurs lors de la présentation du composeur afin d’assurer la reproduction de
la figure E13.1.

3 Mise en forme des données sous GRASS


La résolution de 1 m est choisie pour obtenir un rendu visuel agréable à l’oeil. Puis, les
couches vecteurs « LU2014 » et « swamp » sont transformées en rasters. La couche
« swamp » est ensuite superposée à la couche « LU2014 ».

Opérations GRASS Description de la procédure

Créer location Création de la location (secteur) UTM48N


EPSG : 32648

Créer mapset Création d’une mapset (jeu de cartes) compo


Ne jamais travailler dans la mapset permanent

Opérations GRASS Description de la procédure

Importer vecteur Fichier/Importer des données vectorielles/Import de vecteur de


formats communs
[v.in.ogr input=.../LU2014/LU2014.shp layer=LU2014 output=LU2014
--overwrite]

Importer vecteur Fichier/Importer des données vectorielles/


Import de vecteur de format communs
[v.in.ogr input=.../swamp.shp layer=swamp output=swamp --overwrite]

Définir la région Paramètres/Région calculée/Définir la région (onglet Résolution/


Résolution de la grille 2D) [g.region vect=LU2014 res=1”]

184
Exercice 13 • Composition de carte

Opérations GRASS Description de la procédure

Transformer en Raster Fichier/Conversions de type de carte/Vecteur vers Raster


[v.to.rast input=LU2014 output=LU2014 use=attr attribute_
column=ID2 label_column=LU2]

Transformer en Raster Fichier/Conversions de type de carte/Vecteur vers Raster


[v.to.rast input=swap output=swamp use=val]

Algèbre de cartes r.mapcalc --overwrite expression=’occSol = if(isnull(swamp),


LU2014,50)’

4 Mise en forme des données sous QGIS


L’extension GRASS7 de QGIS est installée comme décrit dans l’exercice 1, Prise en
main de GRASS et QGIS. Les lettres majuscules portées dans le tableau ci-dessous
correspondent aux annotations de la figure E1.3.

Opérations QGIS Description de la procédure

Créer le projet D : Projet/Propriétés gisgis


SCR : WGS84 EPSG 4326

Enregistrer le projet D : Projet/Enregistrer sous : …/RES/compoCarte


N’oubliez pas d’enregistrer régulièrement votre travail

Ouvrir mapset GRASS D : Extension/GRASS/ouvrir le jeu de données


Base de données GIS : home/gis/BDGIS
Localisation : UTM48N
Jeu de données : compo

Importer le shape occSol F : Explorateur : .../UTM48N/compo/occSol

Charger la palette de couleur G : Couches, clic droit “occSol” propriétés


Symbologie
Type de rendu : palette/Valeurs uniques
Bouton charger une palette de couleur depuis un fichier :
…/SRC/divers/paletteoccSol.txt
© Dunod – Toute reproduction non autorisée est un délit.

Importer le raster tandemX.tif F : Couche/Ajouter une couche/Ajouter une couche raster :


…/SRC/tandemX.tif

Créer les courbes de niveau D : Raster/Extraction/Courbe de niveau


Couche source : tandemX
Numéro de bande : Bande 1
Intervalle entre les courbes de niveau : 20,000
Nom de l’attribut : ELEV
Paramètres avancés/Courbes de niveaux : .../RES/contour.shp

Importer le shape masque F : Couche/Ajouter une couche/Ajouter une couche


vecteur :.../SRC/masque/masque.shp

185
Partie 2 • Partie pratique

Opérations QGIS Description de la procédure

Appliquer le masque à la D : Vecteur/Outils de géotraitement/Intersection


couche contour Couche source : contour
Couche de superposition : masque

Sauvegarder vecteur G : Couches, clic droit « Intersection »


Exporter/Sauvegarder les entités sous :.../RES/courbNiveau

Afficher les étiquettes G : Couches, clic droit « courbNiveau »


‘altitude de courbe’ Propriétés | Étiquettes
Étiquettes simples
Valeur : ELEV

Afficher les couches à G : Couches, décocher toutes couches excepté occSol et


composer Intersection

5 Composeur d’impression de QGIS


L’IHM du composeur de QGIS comprend les éléments suivants (Fig. E13.2) :
I est une barre horizontale de menus déroulants d’accès aux commandes.
J, en haut, est le menu horizontal de boutons.
K, à gauche, est le menu vertical de boutons.
L est une surface de travail entourée.
M, à droite, est un panneau composé des onglets : « Composition », « Propriétés de
l’objet », etc.
Maintenir la flèche gauche de la souris sur chaque bouton pour connaître sa fonction.
Le menu gauche « sélectionner/déplacer un objet » permet de sélectionner un objet
et de modifier ses propriétés affichées dans l’onglet propriétés du panneau de droite.
L’onglet « Propriétés de l’objet » du panneau de droite assure pour chacun des objets
le choix des paramètres adéquats.

I
J
M

K L

Figure E13.2 – IHM du composeur d’impression de QGIS.

186
Exercice 13 • Composition de carte

6 Mise en page et enrichissement de la carte

6.1 Création de la composition d’impression


Opérations QGIS Description de la procédure

Créer la composition D : Projet/Nouveau composeur d’impression

Le composeur d’impression s’ouvre.

Opérations QGIS composeur Description de la procédure

Mise en page I : Mise en page/Paramètres de la page A4 Portrait

Insertion des couches K : Ajouter une nouvelle carte


Les cartes affichées sur QGIS apparaissent dans le
composeur
Définir leur position à l’aide de la souris

Centrer les cartes K : Déplacer un objet

Sauvegarder la composition I : Mise en page/Enregistrer le projet

6.2 Mise en page de la carte


La modification des propriétés d’un objet (carte, légende, échelle, texte) demande de le
sélectionner préalablement.

Opérations QGIS Description de la procédure


composeur
Présenter la carte M : Propriétés de l’objet
Propriétés principales : Échelle : 7000
Emprise : min X = 102.166 | min Y = 19.849 | max X = 102.179 | max
Y = 19.864
Graticules : bouton + de Grilles pour ajouter un graticule
Grille 1
© Dunod – Toute reproduction non autorisée est un délit.

Afficher le graticule « grille 1 » : coché


Apparence
Type de grille : Cadre et coordonnées uniquement
SCR : EPSG:32648-WGS84
Unité des intervalles : Unité de carte
Intervalle : X : 500 | Y : 500 | Décalage X : 0 | Y : 0
Cadre
Style du cadre : Zébré
Taille du cadre : 1,00 | Épaisseur ligne du cadre : 0,50
Gauche : coché | Droite : décoché | Haut : décoché | Bas : coché
Afficher les coordonnées : coché
Format : décimal
À gauche : Tout afficher | Cadre extérieur | Ascendant vertical
À droite : Désactivé | En haut : Désactivé
En bas : Tout afficher | Cadre extérieur | Horizontal
Police : Arial Regular 10

187
Partie 2 • Partie pratique

Opérations QGIS Description de la procédure


composeur
Espacement du cadre : 1,00 | Précision des coordonnées : 0
Graticules : bouton + pour ajouter un graticule
Grille 2
Afficher le graticule « grille 2 » : coché
Apparence
Type de grille : Cadre et coordonnées uniquement
SCR : EPSG:4326
Unité des intervalles : Unité de carte
Intervalle : X : 0,005 | Y : 0,005 | Décalage X : 0,0 | Y : 0,0
Cadre
Style du cadre : Zébré
Taille du cadre : 1,00 | Épaisseur ligne du cadre : 0,50
Gauche : décoché | Droite : coché | Haut : coché | Bas : décoché
Afficher les coordonnées : coché
Format : décimal
À gauche : Désactivé
À droite : Tout afficher | Cadre extérieur | Descendant vertical
En haut : Tout afficher | Cadre extérieur | Horizontal
En bas : Désactivé
Police : Arial Regular 10
Espacement du cadre : 1,00 | Précision des coordonnées : 3
Position et taille
Page 1 | X : 10 | Y : 10 | Largeur : 160 | Hauteur : 190

6.3 Ajout d’une légende


Opérations QGIS composeur Description de la procédure

Ajouter une légende J : Ajouter une nouvelle légende

Modifier les propriétés M : Propriétés de l’objet


Titre : vide
Objets de la légende
Mise à jour auto : décoché
ne conserver que occSol (bouton - supprimer les autres)
double clique sur occSol | Cachée
Symbole
Largeur du symbole : 7,0 | Hauteur du symbole 4,0
Dessiner la bordure pour les symboles du raster : coché
Épaisseur : 0,05

6.4 Ajout d’une échelle


Opérations QGIS composeur Description de la procédure

Ajouter une échelle J : Ajouter une nouvelle échelle graphique

Modifier les propriétés M : propriétés de l’objet


Segments
Gauche : 0 | Droite : 2
Largeur ajustée au segment cochée
0 | 50 | Hauteur : 2

188
Exercice 13 • Composition de carte

6.5 Ajout d’un texte


Opérations QGIS composeur Description de la procédure
Ajouter un texte J : Ajouter une nouvelle étiquette
Modifier les propriétés M : Propriétés de l’objet
Propriétés principales : degrés WGS 84
Position et taille
Largeur : 30 | Hauteur : 6
Rotation
Rotation : 90°

Recommencez cette opération pour les trois autres côtés du cadre, WGS 84, UTM 48N,
UTM 48N.

6.6 Ajout d’une rose des vents


Opérations QGIS composeur Description de la procédure
Ajouter une rosace K : Ajouter une image
Modifier les propriétés M : Propriétés de l’objet
Source de l’image
…/SRC/divers/rosace.svg
Position et taille
Largeur : 30 | Hauteur : 30

6.7 Export au format SVG


Opérations QGIS composeur Description de la procédure

Exporter en SVG I : Exporter au format PDF


…/RES/figure.pdf

7 Commentaires
Le module composition de QGIS doit sa performance aux outils et extensions de QGIS.
© Dunod – Toute reproduction non autorisée est un délit.

Pour nos besoins, l’extension “GRASS 7” permet de visualiser des couches GRASS dans
leur format interne, sans de fastidieuses opérations d’export et d’import. La possibilité
d’importer et de créer des images au format vectoriel SVG garantit la qualité des sorties
sans imposer une résolution initiale d’impression.

8 Pour aller plus loin


Le logiciel Inkscape est utilisable pour améliorer une composition créée par QGIS.
Mettre en page un poster assemblant plusieurs compositions et des textes associés est
facilement réalisable.

189
Conclusion
Ce manuel expose la théorie des SIG avec le souci d’une grande simplification. De
nombreux aspects liés aux classifications, à la télédétection, au géoréférencement des
photographies aériennes, au traitement des images radar, à l’analyse des collections
d’images acquises par drone… qui sont implémentés de manière plus ou moins complète
selon la spécificité de chaque SIG n’ont volontairement pas été abordés. Chacun de ces
thèmes nécessiterait un livre entier et une abondante littérature leur est déjà consacrée.
L’objectif est de fournir une vue d’ensemble nécessaire à la mise en pratique des exemples
consignés dans la deuxième partie du manuel.
Les exemples traités sont construits pour donner à l’étudiant une méthode de travail,
un modèle d’organisation de projet indispensable au traitement de la donnée à laquelle la
structure spatiale et souvent temporelle confère une grande complexité. Cette organisation
est propice à la complémentarité de multiples outils GRASS, QGIS, R du CRAN, Python,
SpatiaLite, etc. Chacun possédant ses propres fonctionnalités. QGIS est adapté à la visualisa-
tion des données. GRASS est plus dédié à la préparation des données qui seront interrogées
par SpatiaLite en mode Vecteur ou analysées par R du CRAN ou Python en mode Raster.
Ces usages résultent de l’expérience de l’auteur et d’autres procédures d’organisation des
traitements sont possibles mais les exemples traités dans ce livre valident nos pratiques.
Les SIG n’ont cessé de se perfectionner au fur et à mesure des progrès réalisés en
sciences informatiques. L’histoire des SIG est marquée par un ensemble de facteurs :
l’avènement de la micro-informatique qui a démocratisé l’usage de l’ordinateur, les bases
de données relationnelles qui ont fourni un outil de gestion des données, l’augmentation
des puissances de calcul qui n’a cessé de progresser, la définition de normes et standards
qui a été favorisée par le développement du logiciel libre.
Le développement du logiciel libre et de sa communauté d’utilisateurs dont les
membres appartiennent à des structures publiques (universités, organisme de recherche)
ou privées (bureaux d’étude, société d’ingénierie…) fait évoluer les pratiques de création
et d’usage du logiciel. Une fois créé, le logiciel est librement diffusé donc gratuit pour
tous. Son développement n’est payé qu’une fois. Seuls les services, le conseil, les forma-
tions sont payants. Cette gratuité s’accompagne de l’accès aux sources du logiciel et à la
possibilité de le corriger, de l’améliorer par de nouvelles fonctions. L’accès à la donnée
a suivi une progression très similaire. Des bases de données cartographiques alimentées
par tout un chacun (OpenStreetMap), ou financées par des organismes internationaux
(USGS, le programme européen Copernicus) sont libres d’accès. Les modèles écono-
miques sont totalement transformés. L’ouverture du code, la standardisation des formats
de données sont indispensables au fonctionnement de ce nouveau modèle. Le logiciel, la
donnée ne sont payés qu’une fois et seules les nouvelles applications, les services sont
rétribués. Cette évolution impacte techniquement l’accès et l’analyse de la donnée : le
Web sémantique apportera certainement dans les prochaines années de nouvelles façons
de concevoir la gestion de l’information géographique.
190
Bibliographie
Abdi H. 2003. « PLS-regression ». In Lewis-Beck MS., Bryman A. & Futing Liao
T. (Eds), Encyclopedia for Research Methods for the Social Sciences. (pp. 792-795).
Thousand Oaks, CA : Sage.
Allali G. 2015. Apprendre QGIS par l’exemple : Quand le Système d’Information
Géographique devient libre. États-Unis : CreateSpace Independent Publishing Platform.
Auda Y. 1983. « Rôle des méthodes graphiques en analyse des données : application
au dépouillement des enquêtes écologiques ». Thèse de doctorat, Université Lyon I,
Lyon.
Auda Y. 1987. « À l’intersection des domaines de l’analyse des données et des sciences
humaines : un tour d’horizon ». Lettres d’information du centre de recherches archéo-
logiques, 33, 3-15.
Auda Y. 2008. « Représentation des faits en archéologie ». En ligne sur le site des
instituts de recherche sur l’enseignement des mathématiques d’Aix-Marseille http://
www.irem.univ-mrs.fr/Yves-Auda-Representation-des-faits.html, consulté le 27/11/2015.
Béguin M., Pumain D. 2014. La représentation des données géographiques. Statis-
tique et cartographie (3e éd.). Paris : Armand Colin.
Bertin J. 1967. Sémiologie graphique : Les diagrammes, les réseaux, les cartes. Paris :
Mouton/Gauthier-Villars.
Blomac (de) F., Gal R., Manuel H., Richard D., Tourret C. 1994. ARC/INFO : concepts
et applications en géomatique, Hermes : Paris.
Bocher E, Ertz O. 2018. « A redesign of OGC Symbology Encoding standard for
sharing cartography. » PeerJ Comput Sci. 2018 Jan 8;4:e143. doi: 10.7717/peerj-cs.143.
Bocher E., Ertz O. 2020. « OGC Symbology Conceptual Model: Core part. 2019. »
En ligne https://docs.ogc.org/is/18-067r3/18-067r3.html, consulté le 30/09/2021.
Bouillot L. 2014. « Étude et amélioration des Modèles Numériques de Surface générés
à partir d’acquisitions tri-stéréoscopiques du satellite Pléiades-HR ». Thèse de doctorat,
Université de Strasbourg, Strasbourg.
© Dunod – Toute reproduction non autorisée est un délit.

Bouron P. 2005. « Cartographie. Lecture de carte ». En ligne sur le site de l’École


nationale des sciences géographiques http://cours-fad-public.ensg.eu/pluginfile.php/1319/
mod_resource/content/1/LDC_Mini.pdf, consulté le 3/10/2016.
Bouteloup P. 2006. « Topométrie. Mesures des angles ». En ligne sur le site de l’École
nationale des sciences géographiques http://cours-fad-public.ensg.eu/pluginfile.php/1353/
mod_resource/content/1/Topo2.pdf, consulté le 24/11/2017.
Burel F., Baudry J. 2001. Écologie du paysage. Concepts, méthodes et applications.
Paris : Tec & Doc Lavoisier.
Burrough P.A., Mc Donell R.A. 1998. Principles of Geographical Information
Systems. New York, NY : Oxford University Press.

191
Bibliographie

Burry L., Gawne-Cain A., Herring J. 2001. « Implementation Specification: Grid


Coverage (retired) ». En ligne sur le site de l’OGC http://www.opengeospatial.org/docs/
is, consulté le 18/08/2016.
Callede J., Medeiros Moreira D., Calmant S. 2013. « Détermination de l’altitude du
Zéro des stations hydrométriques en Amazonie brésilienne. Application aux lignes d’eau
des Rios Negro, Solimões et Amazone ». Revue des Sciences de l’Eau, 26(2), 153-171.
Caloz R., Collet C. 2001. Précis de télédétection (Vol. 3). Traitements numériques
d’images de télédétection. Sainte-Foy, Quebec : Presses de l’Université du Quebec,
Agence universitaire de la Francophonie.
Caloz R., Collet C. 2011. Analyse spatiale de l’information géographique. Lausanne,
Suisse : Presses polytechniques et universitaires romandes.
Daisey P. 2015. « OGC GeoPackage Encoding Standard ». En ligne sur le site de
l’OGC http://www.geopackage.org/spec, consulté le 24/11/2017.
ENSG (s.d.). « Geoligne ». Bibliothèque de ressources pédagogiques de l’École natio-
nale des sciences géographiques. En ligne sur le site de l’École nationale des sciences
géographiques http://cours-fad-public.ensg.eu/, consulté le 29/09/2017.
Feyaerts AS. 2010. « Raisonnement sur les ontologies spatiales ». Master Ingénieur,
Université libre de Bruxelles, Bruxelles.
Forman R.T.T., Godron M. 1986. Landscape ecology. Hoboken, NJ : John
Wiley & Sons.
Gandon F., Faron-Zucker C., Corby O. 2012. Le web sémantique – Comment lier les
données et les schémas sur le web ? Malakoff, France : Dunod.
Herring J.R. 2010. « OpenGIS Implementation Standard for Geographic information
– Simple feature access – Part 2 : SQL option ». En ligne sur le site de l’OGC http://
www.opengeospatial.org/docs/is, consulté le 18/08/2016.
Herring J.R. 2011. « OpenGIS Implementation Standard for Geographic information –
Simple feature access - Part 1 : Common architecture ». En ligne sur le site de l’OGC
http://www.opengeospatial.org/docs/is, consulté le 18/08/2016.
IGN 2014. « BDALTI version 2 ». Descriptif de contenu. En ligne sur le site de l’Ins-
titut national de l’information géographique et forestière https://geoservices.ign.fr/sites/
default/files/2021-07/SE_BDALTI.pdf, consulté le 19/01/2022.
IHO 2008. « User’s handbook on datum transformations involving WGS 84 » (3e éd.).
Monaco : International Hydrographic Bureau. En ligne sur le site de l’International
Hydrographic Organization https://iho.int/uploads/user/pubs/standards/s-60/S60_
Ed3Eng.pdf, consulté le 19/01/2022.
INSPIRE Drafting Team. 2014. INSPIRE Generic Conceptual Model. En ligne sur
le site de la Commission européenne https://inspire.ec.europa.eu/documents/Data_Speci-
fications/D2.5_v3.4.pdf, consulté le 10/01/2022.
IOGP 2008. « Surveying & positioning guidance note I ». En ligne sur le site de l’Inter-
national Association of Oil & Gas Producers https://www.iogp.org/bookstore/product/
advisory-note-on-derivation-of-geodetic-datum-transformation/ consulté le 19/01/2022.

192
Bibliographie

Iosifescu-Enescu I, Hurni L. 2007. « Towards cartographic ontologies or how


computers learn cartography ». In: Proceedings of the 23th International Cartographic
Conference.
Iosifescu-Enescu I, Hugentobler M, Hurni L. 2010. « Web cartography with open
standards -a solution to cartographic challenges of environmental management ». Envi-
ronmental Modelling & Software 25(9):988 -999 DOI 10.1016/j.envsoft.2009.10.017.
Jomaa I., Auda Y., Khater C. 2007. « Contribution to the characterizing of forest
fragmentation on the eastern flank of Mount-Lebanon over 33 years ». Lebanese Science
Journal, 8(2), 59-73.
Kennedy M., Kopp S. 1994-2000. « Understanding Map Projections. GIS by ESRI ».
Redlands, CA : ESRI. En ligne sur le site de l’Environmental Systems Research Institute
http://downloads2.esri.com/support/documentation/ao_/710Understanding_Map_Projec-
tions.pdf, consulté le 19/01/2022.
Laffite Olano A., Auda Y., Trichon V., Majerowicz J., Simon L., Tamru B. 2005. « Une
classification dirigée fondée sur les spectres de texture : application à l’étude des paysages
de la montagne de Lure (Alpes, France) ». Télédétection, 4(4), 373-380.
Laloux M. 2011. « Les « geodatabases » de GRASS GIS, structure générale (LOCATION,
MAPSET) et conséquences pratiques (changement de système de projection, etc.) ». En
ligne sur le site portailSIG https://portailsig.org/content/grass-gis-geometries-topologies-et-
consequences-pratiques-vecteurs-rasters-volumes.html, consulté le 19/01/2022.
Laporterie F. 2002. « Représentations hiérarchiques d’images avec des pyramides
morphologiques. Application à l’analyse et à la fusion spatio-temporelle de données en
observation de la Terre ». Thèse de doctorat, Université Paul Sabatier, Toulouse.
Lazraq A., Cléroux R. 1988. « Un algorithme pas à pas de sélection de variables en
régression linéaire multivariée ». Statistique et analyse de données, 13(1), 39-58.
Levallois J.-J. 1988. Mesurer la terre. 300 ans de géodésie française, Paris : Presses
de l’École nationale des Ponts et Chaussées.
Lupp M. 2007. « Styled Layer Descriptor Profile of the Web Map Service Implemen-
tation Specification ». Open Geospatial Consortium, Inc. En ligne sur le site de l’OGC
https://www.ogc.org/standards/sld, consulté le 30/09/2021.
© Dunod – Toute reproduction non autorisée est un délit.

Mac Arthur RH., Wilson E. O. 1967. The theory of island biogeography. Princeton,
NJ : Princeton University Press.
Malczewski J. 2004. « GIS-based land-use suitability analysis: a critical overview ».
Progress in Planning, 62(1), 3-65.
Maune D. F. 2007. Digital Elevation Model Technologies and Applications:
The ­Dem Users (2e éd.). Bethesda, MD : American Society for Photogrammetry and
Remote Sensing.
McGarigal K., Marks B.J. 1995. « FRAGSTATS: spatial pattern analysis program
for quantifying landscape structure ». Gen. Tech. Rep. PNW-GTR-351. Portland, OR :
Department of Agriculture, Forest Service. doi:10.2737/PNW-GTR-351

193
Bibliographie

McGarigal K. 2001. « Landscape metrics for categorical map patterns ». Course


Landscape Ecology in theory and practice : Application to national forest management.
En ligne sur le site de l’université du Massachusetts http://www.umass.edu/landeco/
teaching/landscape_ecology/schedule/chapter9_metrics.pdf, consulté le 06/02/2017.
McGarigal K., Cushman S.A., Ene E. 2012. « FRAGSTATS v4: Spatial Pattern
Analysis Program for Categorical and Continuous Maps ». Computer software program
produced by the authors at the University of Massachusetts, Amherst. En ligne sur le
site de l’université du Massachusetts http://www.umass.edu/landeco/research/fragstats/
fragstats.html consulté le 25/11/2017.
McHarg I.L. 1969. Design with Nature. Garden City, NY : Natural History Press.
Müller M. 2006. « Symbology Encoding Implementation Specification ». Open Geos-
patial Consortium, Inc. En ligne sur le site de l’OGC https://www.ogc.org/standards/
symbol, consulté le 30/09/2021.
Naizot T., Allard P., Auda Y., Dervieux A. 2002. « Évolution du delta du Rhône depuis
le xixe siècle. Étude comparée d’une carte du xixe siècle et d’une carte du xxe siècle ».
In J. Malézieux (Ed.), Le Milieu Littoral (pp. 41-66). Paris : CTHS.
Neteler M., Mitasova H. 2008. « Open Source GIS: A GRASS GIS Approach » (3e éd.).
The International Series in Engineering and Computer Science (Vol. 773). New York,
NY : Springer.
Obe R.O., Hsu LS., Ramsey P. 2011. PostGIS in Action. Stamford, CT : Manning.
Perry M., Herring J. 2012. « OGC GeoSPARQL - A Geographic Query Language
for RDF Data ». En ligne sur le site de l’OGC http://www.opengeospatial.org/docs/is,
consulté le 19/08/2016.
Peucker T. K., Chrisman N. 1975. « Cartographic data structure ». American carto-
grapher, 2(1), 55-69.
Pinchemel P. 1979. « Géographie et Cartographie, réflexions historiques et épistémo-
logiques ». Bulletin de l’Association de géographes français, 56(462), 239-247.
Ramos F. 2003. « Modélisation et validation d’un système d’information géographique
3D opérationnel ». Thèse de doctorat, université de Marne-la-Vallée, Marne-la-Vallée.
Rego F., Dias S., Mesquita S., Fernandez-Gonzalez F. 2004. « Diversidade biológica
e diversidade de paisagens em montados », http://www.isa.utl.pt/ceabn/uploads/docs/
projectos/bioassess/PA.12Diversidade_biologica.pdf, consulté le 08/02/2014.
Ribolzi O., Rochelle-Newall E., Dittrich S., Auda Y., Newton PN., Sayaphet Ratta-
navong S., Knappik M., Soulileuth B., Sengtaheuanghoung O., Dance D. A. B., Pierret
A. 2016. « Land use and soil type determine the presence of the pathogen Burkholderia
pseudomallei in tropical rivers. Land use and soil type determine the presence of the
pathogen Burkholderia pseudomallei in tropical rivers ». Environ Sci Pollut Res 23(8),
7828-7839. doi:10.1007/s11356-015-5943-z
Rimbert S. 1990. Carto-graphies. Paris : Hermès.

194
Bibliographie

Runnion E., Beddoe D., Bacharach S., Arctur D., Reilly J., & Batty P. 1999. « OpenGIS®
Simple Features Specification For OLE/COM, Revision 1.1 ». En ligne sur le site de
l’OGC http://www.opengeospatial.org/standards/sfo, consulté le 25/11/2017.
SEIG 2017. Serveur éducatif de l’IGN et de l’Éducation nationale sur l’information
géographique. En ligne http://seig.ensg.ign.fr, consulté le 29/09/2017.
Sillard P. 2000. « Les projections référentielles cartographiques ». École nationale des
sciences géographiques. En ligne sur le site de l’École nationale des sciences géogra-
phiques http://cours-fad-public.ensg.eu/pluginfile.php/1327/mod_resource/content/2/
projections.pdf, consulté le 25/11/2017.
Souris M. 2014. « Les principes des systèmes d’information géographique. Principes,
algorithmes et architecture du système Savane ». En ligne http://www.savgis.org/SavGIS/
Etudes_realisees/SOURIS_these_2002.pdf, consulté le 19/01/2022.
Tardieu H., Rochfeld A., Coletti R. 1983. La méthode Merise. Tome 1 : Principes et
outils. Paris : Éditions d’organisation.
Uuemaa E., Antrop M., Roosaare J., Marja R., Mander U. 2009. « Landscape Metrics
and Indices: An Overview of Their Use in Landscape Research ». Living Rev. Landscape
Res., 3(1), 1-28 doi:10.12942/lrlr-2009-1
van Kreveld M. 1996. « Digital Elevation Models: overview and selected TIN algo-
rithms ». Course Notes for the CISM Advanced School on Algorithmic foundations of
Geographical Information Systems. En ligne https://fr.scribd.com/document/199112883/
TINalg, consulté le 25/11/2017.
Watt A. 2004. « Biodiversity assessment. Final report of the bioassess project ». En
ligne http://www.isa.utl.pt/ceabn/uploads/docs/projectos/bioassess/Final_Reportbioassess.
pdf, consulté le 08/02/2017.
Weger G. 1999. « Cartographie (Vol. 1). Sémiologie graphique et conception carto-
graphique ». En ligne sur le site de l’École nationale des sciences géographiques http://
cours-fad-public.ensg.eu/pluginfile.php/1313/mod_resource/content/1/carto_vol1.pdf,
consulté le 25/11/2017.
Westervelt W. 2004. GRASS Roots. « Proceedings of the FOSS/GRASS Users
­Conference », Bangkok, 12-14 September 2004. En ligne https://oldgeni.isnew.info/
© Dunod – Toute reproduction non autorisée est un délit.

grass/Jim-Westervelt.pdf, consulté le 19/01/2022.


W3C (s.d.). Further development of GeoSPARQL. En ligne sur le site du W3C, https://
www.w3.org/2015/spatial/wiki/Further_development_of_GeoSPARQL, consulté le
01/12/2017.
Zambelli P., Sören Gebbert S., Ciolli M. 2013. « Pygrass: An Object Oriented Python
Application Programming Interface (API) for Geographic Resources Analysis Support
System (GRASS) Geographic Information System (GIS) ». ISPRS Int. J. Geo-Inf. 2013,
2, 201-219; doi:10.3390/ijgi2010201

195
Sigles et acronymes
ACID : atomicité, cohérence, isolation, durabilité
CHARSET : jeu de caractères
CMJ : cyan, magenta, jaune
CMY : cyan, magenta, yellow
CNIG : Conseil national de l’information géographique
DEM : digital elevation model
DE-9IM : Dimensionally Extended 9-Intersection model
DGPS : Differential Global Positioning System
DTM : digital terrain model
EPSG : European Petroleum Survey Group
ESRI : Environmental Systems Research Institute
GDAL : Geospatial Data Abstraction Library
GIMP : GNU Image Manipulation Program
GML : Geography Markup Langage
GPS : Global Positioning System
GRASS : Geographic Resources Analysis Support System
GRID : raster stockant un MNT
HSB : hue, saturation, brightness
HSL : hue, saturation, lightness
HSV : hue, saturation, value
IGN : Institut géographique national
IHM : Interface homme machine
INSPIRE : Infrastructure for spatial information in Europe
LAI : Leaf Area Index
MNA : modèle numérique d’altitude
MNE : modèle numérique d’élévation
MNT : modèle numérique de terrain
MSEC : Multi-Scale Environmental Changes
NASA : National Aeronautics and Space Administration
NDVI : Normalized Difference Vegetation Index
NDWI : Normalized Difference Water Index
NIR : Near-infrared
NTF : Nouvelle Triangulation de la France
OGC : Open Geospatial Consortium
OGC SFA : Open Geospatial Consortium-Simple Feature Access

196
Sigles et acronymes

OGC SFS : Open Geospatial Consortium-Simple Feature Specification


OSGeo : Foundation Open Source Geospatial
OSM : OpenStreetMap
PIR : proche infrarouge
QGIS : appelé initialement Quantum/GIS
RCC : Region connection calculus
RGB : red, green, blue
RGF93 : Réseau géodésique Français 1993
RMSE : root mean square error
ROI : region of interest
RVB : rouge, vert, bleu
SCR : système de coordonnées de référence
SDI : Spatial Date Infrastructure
SE : Symbology Encoding
SGBD : système de gestion de base de données
SIG : système d’information géographique
SLD : Syled Layer Description
SNO : Service national d’observation
SQL : Structured Query Language
SRID : Spatial Reference Identifier
SRTM : Shuttle Radar Topography Mission
SWAT : Soil Water Assessment Tool
SWIR : Short-Wave infrared
TIN : triangulated irregular network
TSL : teinte, satutation, luminosité
TSV : teinte, saturation, valeur
USGS : United States Geological Survey
UTM : Universal Transverse Mercator
© Dunod – Toute reproduction non autorisée est un délit.

WCS : Web Coverage Service


WEB : World Wide Web
WFS : Web Feature Service
WGS84 : World Geodetic System 1984
WKB : Well-Known Binary
WKT : Well-Known Text
WMS : Web Map Service

197
Remerciements
Je remercie Hervé Carfantan et Yannick Deville, enseignants/chercheurs de l’Institut de
recherche en astrophysique et planétologie de l’observatoire Midi-Pyrénées, responsables
du Master 2 EEA, spécialité « Signal, Imagerie et Applications » de l’université Paul
Sabatier de Toulouse sans qui ce livre n’aurait pas existé.
Merci à Étienne Gondet, ingénieur CNRS de l’OMP (Observatoire Midi-Pyrénées),
qui a grandement favorisé la création de cet ouvrage en organisant plusieurs formations
dédiées aux SIG dans le cadre de l’atelier permanent de l’OMP : « Méthodes numériques,
données, traitement du signal ».
L’aide de Nathalie Abadie, chercheur dans l’équipe COGIT de l’Institut géographique
national, qui a traduit les requêtes SpatiaLite en GeoSPARQL a été précieuse.
Les données utilisées dans les exemples proviennent de travaux réalisés dans le
cadre du Service national d’observation M-TROPICS et du projet TecItEasy (ANR-
13-AGRO-0007) auxquels contribuent des chercheurs de l’IRD (Institut de recherche
pour le développement), le CNRS (Centre national de la recherche scientifique) et le
DALaM (Department of Agricultural Land Management, Ministry of Agriculture and
Forestry of Laos).

G
E
T

198
Index
A P
aire de drainage 67, 156, 175 parallèle 26, 33, 37, 38
paysage 69, 175
B pente 62, 150
base de données 9, 106, 115 pixel 6, 79
bassin versant 67 polygone 14, 135
projection 43, 45, 80, 87, 93, 101
C
couches 87 Q
Quadtree 21
D
datum 27, 93 R
relief 42, 57
E reprojection 80, 87
échelle 44 résolution 60, 76, 79, 86, 100
ellipsoïde 27, 36, 38, 42, 45, 93 Run Length Code 21

G S
géobase 8, 88 système de coordonnées de référence 8,
géoïde 28 93
GRID 58, 62 système de projection 8
système géodésique 8, 27
L
latitude 26, 31, 33, 36, 37, 46
T
longitude 27, 31, 37, 46 TIN 14, 58, 62
topologie 10
M
méridien 27, 36, 37, 38
V
modèle numérique d’élévation 58, 146 vertex 12
modèle numérique de terrain 58, 67, 141, 146

N
nœud 12
© Dunod – Toute reproduction non autorisée est un délit.

nord 46

199
Figure 4.4 – Différentes représentations du modèle TSV : roue de couleurs,
cône et correspondance RVB – TSV dans l’interface
de GIMP (GNU Image Manipulation Program).

9782100769018_CI.indd 1 1/10/18 6:20 PM


100 % Blanc
L
u
m
i
n
o
s
i
t
é

120° 60°
50 % 180° Gris
0° Teinte
240° 300°

Saturation
0% 100 %

0% Noir

Figure 4.5 – Modèle colorimétrique TSL.

9782100769018_CI.indd 2 1/10/18 6:20 PM


forme orientation grain valeur taille couleur

Figure 4.8 – Six variables visuelles de Bertin.

Figure 4.12 – Variation de valeur.

Camaïeu de bleu (en haut). Jeux de structure (en bas).

9782100769018_CI.indd 3 1/10/18 6:20 PM


ponctuelle linéaire zonale

forme forme +
qualitatif forme couleur orientation couleur

nominal couleur

forme + forme + grain


orientation valeur orientation
valeur

qualitatif taille
ordinal taille couleur valeur couleur
couleur

forme + forme +
orientation valeur orientation grain
valeur
quantitatif
relatif couleur valeur couleur
couleur

points
comptables
taille
quantitatif taille
absolu
anamorphose
*
Figure 4.14 – Variables visuelles utilisées en fonction de l’implantation pour
représenter les variables statistiques.

9782100769018_CI.indd 4 1/10/18 6:20 PM

Vous aimerez peut-être aussi