Académique Documents
Professionnel Documents
Culture Documents
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
Elle donne :
1 Définition
Selon les auteurs, la notion de système d’information géographique (SIG) comprend le
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
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
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).
l’intensité, la direction, voire le chemin emprunté par les flux hydriques. Elle impacte
théorique.
76
Figure 6.4 – Échantillonnage utilisé dans le programme BioAsssess (Watt 2004).
3 En fin d’ouvrage
Index
• 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.
191
9782100834013_Index.indd 199 1/22/22 11:06 AM
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
Partie 1
Partie théorique 1
1. Définition 2
2. Brève histoire 2
3. Besoins et utilité 4
4. Objet géographique 4
6. Structure en couches 7
8. Briques du SIG 8
2 Modèles de données 10
1. Modèle Vecteur 10
4. Opérations topologiques 14
6. Modèle Raster 21
© Dunod – Toute reproduction non autorisée est un délit.
7. Internet et SIG 23
2. Système géodésique 27
4. Coordonnées géographiques 31
5. Coordonnées cartographiques 33
III
Table des matières
6. Exemples de projection 34
4 Composition de carte 44
2. Couleur 47
3. Niveaux de gris 49
1. Le relief 57
3. Formes de MNT 58
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
4. Protocoles d’échantillonnage 74
5. Implémentations 76
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
Conclusion 190
Bibliographie 191
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
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.
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
vecteur raster
© Dunod – Toute reproduction non autorisée est un délit.
• 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
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
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
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 ?
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.
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
... ...
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.
nettoyage
création de la des vecteurs
topologie connectés
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
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.
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
+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
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
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
I F E
I 1 0 1
frontière F 0 ∅ 0
E 2 1 2
extérieur
pontons
adaptés
I F E
pontons
I 1 ∅ ∅
inadaptés
F 0 0 ∅
E 2 1 2
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.
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
gpkg_metadata gpkg_metadata_reference
Figure 2.11 – Tables SQL de stockage vecteur du standard OGC (Daisey 2015).
18
Chapitre 2 • Modèles de données
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
20
Chapitre 2 • Modèles de données
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.
22
Chapitre 2 • Modèles de données
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
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
Area
Volume
Extent Path
Position
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].
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
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
mé
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
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
Systèmes Méridien
géodésiques Ellipsoïde a b 1/f e origine Unité
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.
mer
Organization (IHO) publie une liste de systèmes géodésiques locaux utilisés à travers
le monde (IHO 2008).
ellipsoïde
géoïde
datum local datum global
Figure 3.6 – Principe d’un système géodésique local.
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
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
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.
31
Partie 1 • Partie théorique
mé
e
rigin
rid
ie
o
nd
méridien
u lieu
λ longitude
ellipsoïde
vecteur normal
Ø φ' φ
uatorial
plan éq Ø
e
s oïd
ellip
de
s oï
ellip
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°
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.
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
parallèles standards
parallèle standard
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.
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
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
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.
39
Partie 1 • Partie théorique
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.
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
42
Chapitre 3 • Localisation sur Terre
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
44
Chapitre 4 • Composition de carte
0 500 1 000
kilomètres
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
des
Y- -36
0°21'28"
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
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
45
Partie 1 • Partie théorique
nord magnétique
nord géographique
0°8'
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.
47
Partie 1 • Partie théorique
48
Chapitre 4 • Composition de carte
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 %
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.
à 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
implantation ponctuelle
implantation linéaire
implantation zonale
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.
50
Chapitre 4 • Composition de carte
Hôpital
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.
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
forme forme +
qualitatif forme couleur orientation couleur
nominal couleur
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.
54
Chapitre 4 • Composition de carte
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
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
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.
57
Partie 1 • Partie théorique
MNT
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
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.
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.
61
Partie 1 • Partie théorique
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
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.
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.
δ = 16,25°
63
Partie 1 • Partie théorique
L’orientation égale :
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
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).
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
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.
69
Partie 1 • Partie théorique
he
tac
re
lisiè
noyau
corridor
matrice
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
Surface/densité/bordure
Forme
pi pi : périmètre de la tache i
LSI Rapport périmètre/surface
ai ai : surface de la tache i
Isolement/proximité
Contraste
m
pik : longueur de la bordure de
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.
Forme
71
Partie 1 • Partie théorique
Contraste
Agrégation/subdivision
Connectivité
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)
72
Chapitre 6 • Modèles de paysage
aire
densité
bordure
forme
noyau
voisinage
diversité
contagion
73
Partie 1 • Partie théorique
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
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
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
1 1 2 3
1 2 3 4
5 6 7 8 4 5 6
2
9 10 11 12 7 8
3 9
1
1
2
2
échantillon
3
3 4 4
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.
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
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
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.
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.
80
Chapitre 7 • Traitement des données
rivière
maison
chêne
pin
À 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.
82
Chapitre 7 • Traitement des données
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).
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.
86
Exercice 1 • Prise en main de GRASS et QGIS
géobase de GRASS
mapset4 hydrologie
données
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
88
Exercice 1 • Prise en main de GRASS et QGIS
Visualiser le résultat
de la grille 2D)
[g.region res=250]
Visualiser le résultat
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
90
Exercice 1 • Prise en main de GRASS et QGIS
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.
92
Exercice 2
Repères
cartographiques
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
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 :
2 Étapes de l’étude
94
Exercice 2 • Repères cartographiques
-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.
95
Partie 2 • Partie pratique
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é)
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 ».
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)
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.
97
Partie 2 • Partie pratique
X (m) Y (m)
Écarts 14 - 14
98
Exercice 3
Géoréférencement
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
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é.
101
102
Exercice 3 • Géoréférencement d’une carte scannée
identification
point sur la carte
(Vientiane 1982)
1786000, 2214000
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é.
103
Partie 2 • Partie pratique
104
Exercice 4
Organisation des
données et de leur
traitement
105
Partie 2 • Partie pratique
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
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
107
Partie 2 • Partie pratique
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
#!/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
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 :
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.
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")
109
Partie 2 • Partie pratique
Son appel est réalisé dans le script envi.R. Rajoutez la ligne suivante en début du
script envi.R.
source("init.R")
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")
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
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
111
Partie 2 • Partie pratique
dirSrc=dirRac + "/SRC"
dirRes=dirRac + "/RES"
dirProg=dirRac + "/PROG"
dirTrav=dirRac + "/TRAV"
dirFig=dirRac + "/FIG"
dirGis=dirRacGis + "/" + location
+ "/" + mapset
#!/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.
112
Exercice 4 • Organisation des données et de leur traitement
exec(open("./init.py").read())
# 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")
#!/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.
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')
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
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
Importez les couches. Vérifiez l’existence du fichier sqlite.db dans le dossier location/
mapset/sqlite.
LU2007
- cat
- LANDUSE
Figure E5.1 – Forme initiale des relevés d’occupation du sol du bassin de Houay
Pano, Laos.
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
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.
117
Partie 2 • Partie pratique
LUCODE LU2007
- ID2 - cat
- LU2 # ID2
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
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.
118
Exercice 5 • Base de données et SQL
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
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
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
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
route
village
forêt mature
forêt secondaire
teck
rotation de culture
riz
verger
jardin
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
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
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.
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.
De simples requêtes SQL assurent les jointures entre la table LUT2007 et les tables
décrivant le landuse TYCODET et LUCODET (annexe 2).
Une vue est créée pour manipuler plus simplement cette jointure.
Utilisez QGIS pour visualiser les vues enregistrées dans le fichier LU.sqlite précé-
demment créé.
126
Exercice 6 • SQL spatial, requêtes géométriques
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.
127
Partie 2 • Partie pratique
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.
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
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
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
132
Exercice 7
SQL spatial, requêtes
topologiques
maison
ponton
étang
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.
133
Partie 2 • Partie pratique
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.
SELECT pontoons.*
FROM pontoons, ponds
WHERE ST_Relate(pontoons.Geometry, ponds.Geometry, '1FF00F212');
134
Exercice 7 • SQL spatial, requêtes topologiques
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
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.
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.
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
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
140
Exercice 8
Modèle numérique
de terrain
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.
141
Partie 2 • Partie pratique
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 ».
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
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.
Remplissez par des nulls les pixels ne contenant aucun point de mesure GPS.
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.
143
Partie 2 • Partie pratique
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
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
146
Exercice 9 • Les interfaces R du CRAN et Python
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]
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 »
Culture 1 Crop 3
Fallow 2 Crop 3
Forest 4 Forest 1
Teak 6 Teak 2
Settlment 7 Settlment 4
148
Exercice 9 • Les interfaces R du CRAN et Python
La carte des écarts entre le GDEM ASTER et le MNT de synthèse est construite.
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.
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.
149
Partie 2 • Partie pratique
100
80
60
40
20
0
-20
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.
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.
80
60
40
20
-20
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.
151
Partie 2 • Partie pratique
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.
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
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
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')
155
Exercice 10
Modèle hydrologique
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
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.
Changer les nuls en 0 Raster/Travailler sur une carte raster/Gérer les valeurs NULL
[r.null map=coursDeau null=0]
La couche raster des cours d’eau virtuels est affinée avant d’être vectorisée.
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
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]
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.
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.
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.
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
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
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.
Importez les relevés terrain et définissez une zone de calcul englobant ces relevés.
La résolution est de 30 m.
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.
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.
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 ».
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.
164
Exercice 11 • Traitement des données
165
Partie 2 • Partie pratique
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.
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.
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
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
"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.
171
Partie 2 • Partie pratique
172
Exercice 11 • Traitement des données
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
2 Étapes de l’étude
Créez la location/mapset « UTM48N/burkholderia ».
175
Partie 2 • Partie pratique
La couche raster « srtm » est importée puis la pente est calculée à partir de cette
couche.
Les champs « aire », « perimetre », « compact » sont créés puis remplis par calcul.
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 “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).
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.
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
178
Exercice 12 • Modèle de paysage
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
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
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
183
Partie 2 • Partie pratique
184
Exercice 13 • Composition de carte
185
Partie 2 • Partie pratique
I
J
M
K L
186
Exercice 13 • Composition de carte
187
Partie 2 • Partie pratique
188
Exercice 13 • Composition de carte
Recommencez cette opération pour les trois autres côtés du cadre, WGS 84, UTM 48N,
UTM 48N.
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.
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.
191
Bibliographie
192
Bibliographie
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
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.
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
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).
120° 60°
50 % 180° Gris
0° Teinte
240° 300°
Saturation
0% 100 %
0% Noir
forme forme +
qualitatif forme couleur orientation couleur
nominal couleur
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.