http://bota-phytoso-flo.blogspot.fr/2013/11/botanique.html

jeudi 13 août 2015

Réaliser un fond de carte en relief


Dans cette note de blog, j'explique les étapes à suivre pour créer un fond de carte représentant le relief du terrain.

Tout ce dont nous avons besoin c'est le logiciel QGIS et l'imagerie satellitaire ASTER-GDEM, disponibles gratuitement.

Remarque : j'utilise QGIS v2.6 Brighton et l'imagerie Aster-GDEM v2.

Note : Un DEM (Digital Elevation Model), en français MNT (Modèle Numérique de Terrain) est une image raster dans laquelle chaque pixel prend une valeur d'altitude (= d'élévation). La résolution d'un MNT peut varier énormément, et la résolution la plus intéressante dépend de l'usage.
L'IGN propose des MNT à résolution de 25m (chaque pixel représente une surface de terrain de 25 m de côté), 75m, 250m, 500m et 1000m.
La première est d'accès payant, les autres peuvent être téléchargées gratuitement. J'utilise ici le MNT Aster-GDEM car il a une résolution de 30m et qu'il est gratuit et que mon objectif est un fond de carte type carte au 1:25 000 (comme le SCAN25 de l'IGN). Si l'objectif est de représenter une carte des climats en France, alors il vaut mieux utiliser le MNT à 1000m de l'IGN.

Contexte de l'exemple

Pour cet exemple, j'ai choisi une zone de 2 degrés de longitude (est - ouest) et de 2 degré de latitude (nord - sud), située au niveau de la frontière franco-espagnole. Cette zone présente l'avantage de s'étendre depuis le littoral atlantique jusqu'à de hauts sommets pyrénéens (altitude maximale : 3236 m.). Elle offre donc une grande variabilité d'altitudes.




Affichage du MNT brut pour rendre l'altitude :

Les images ASTER-GDEM correspondant sont les suivantes :
- ASTGTM2_N42W001_dem.tif,
- ASTGTM2_N42W002_dem.tif,
- ASTGTM2_N43W001_dem.tif et
- ASTGTM2_N43W002_dem.tif
Elles s'étalent du 1er au 3e méridien ouest et du 42e au 44e parallèle nord.

Les voici chargées  dans l'interface :




On remarque des différences de style entre chacune des quatre images. En effet, QGIS charge chaque image en appliquant un style dégradé s'étirant de la plus petite à la plus grande valeur de pixel de l'image : le style appliqué dépend donc de l'image. Pour éviter ce problème, il faut paramétrer l'affichage.

a. Double-cliquer sur la couche pour en ouvrir les propriétés (ou : clic-droit > propriétés)

b. Dans l'onglet style, le paramètre par défaut est "Bande grise unique", sur la droite de la fenêtre, il y a une interface pour charger les valeurs minimales et maximales de l'image. Il faut choisir "Min/Max" (au lieu de "borne d'exclusion des valeurs extrêmes") puis cliquer sur le bouton "Charger" : les valeurs mini et maxi s'affichent alors dans la partie gauche de la fenêtre.



c. Notez ces valeurs et répétez l'opération pour (toutes) les images que vous souhaitez utiliser afin de connaître l'amplitude totale des altitudes. En réalité il n'y a pas besoin de répéter l'opération sur toutes les images, mais seulement sur celles qui contiennent les altitudes extrêmes : bord de mer ou fond de vallée et plus hauts sommets.

d. Une fois que vous connaissez vos valeurs extrêmes (dans mon exemple : 0 et 3236 m), vous pouvez modifier les paramètres d'affichage de la façon suivante :
- dans "Rendu par bande" choisissez "Type de rendu" : "Pseudo-couleurs à bande unique" et "Interpolation des couleurs" : "linéaire",
- avec le bouton "+" (vert) ajoutez deux lignes de valeurs.
- dans la colonne "valeur", double-cliquez sur le champ vide pour indiquer vos valeurs extrêmes (dans mon exemple : 0 pour la première ligne et 3236 pour la seconde).
- dans la colonne couleur, double-cliquez sur la case rose (c'est la couleur par défaut) et choisissez deux couleurs, par exemple rouge (ou noir, ou autre : comme vous voulez) pour la valeur mini et bleu (ou blanc par exemple) pour la valeur maxi.
- validez l'application du style en cliquant sur le bouton "OK" tout en bas à droite.




Appliquer une palette de couleur

La prochaine étape consiste à choisir une échelle de couleurs (en anglais : color ramp) adaptée à la zone cartographiée.
Une palette simpliste correspond à choisir les couleurs selon un pas régulier (ici le pas est de 500 m) :

Valeur d'altitudeCouleur (code HTML)
0bleu (#00a6ff)
1vert foncé (#1caa1c)
500vert clair (#45d33a)
1000jaune (#dcd700)
1500brun clair (#c89121)
2000marron foncé (#a6741e)
2500gris (#969f9e)
3000bleu pâle (#c9e7df)
3500blanc (#ffffff)



En réalité il est intéressant de préférer une échelle à pas irréguliers qui permet de mettre en valeurs certaines zones dont la lisibilité a besoin d'être améliorée. C'est souvent le cas, notamment par ce que l'altitude n'est pas répartie de manière égale en surface : typiquement en France il y a plus de surface de plaine que de surface de haute montagne. Une échelle régulière à tendance à rendre peu lisible les grandes surfaces où l'altitude varie peu et à "écraser" (resserrer) les zones où l'altitude varie rapidement.

On peut alors rechercher à appliquer d'autres échelles, comme la suivante :

Valeur d'altitudeCouleur (code HTML)
0bleu (#00a6ff)
1vert foncé (#1caa1c)
50vert clair (#45d33a)
300jaune (#dcd700)
750brun clair (#c89121)
1200marron foncé (#a6741e)
1800gris (#969f9e)
2400bleu pâle (#c9e7df)
3500blanc (#ffffff)



Dans cet exemple, l'échelle propose plus de couleurs pour les basses altitudes que pour les hautes altitudes. Ce qui dans notre cas, nous permet mieux distinguer la vallée de l'Adour (au nord des Pyrénées) et de mieux apprécier l'étendue montagnarde de la chaîne.

On verra dans un autre poste comment fignoler les échelles de couleurs. L'intérêt ici est simplement d'expliquer sommairement leur fonctionnement et leur mise en place.
Voir aussi : http://gis.stackexchange.com/questions/25099/what-is-the-best-colour-ramp-to-use-for-elevation/

À présent on va chercher à tirer parti des possibilités des logiciels de SIG afin d'extraire du MNT de nouvelles informations.

Relief

L'une des informations dérivées des MNT les plus populaires est l'ombre portée (hillshade en anglais) qui donne la sensation de relief.

Sous QGIS, on peut facilement créer une nouvelle couche présentant cette information de relief.

Il suffit de se rendre dans le menu : "Raster", puis "Analyses" et enfin de choisir "MNT/DEM (Modèles de terrain)..."




Le rendu est très "rugueux", car il existe une différence d'unité entre les valeurs horizontales (surface) et verticales (élévation). Il faut donc paramétrer l'échelle afin de rendre le résultat plus doux. On le fait en changeant la valeur du paramètre : "Échelle (ratio unités vert./horiz.)" par 111120 (au lieu de 1).
Source : https://niketnarang.wordpress.com/2012/06/11/creating-a-hill-shade-from-dem-using-qgis/
Remarque : la valeur de 111120 est applicable pour les MNT en mètres. Pour les MNT en pieds (feet) il faut appliquer la valeur de 370400.



NB : les échelles d'application pour l'utilisation de l'ombrage sur les raster de l'ASTER-GDEM semblent comprises entre (+/-) 1:750'000e et 1:20'000e. Au-delà, le rendu n'est pas très intéressant : relief peu voire indiscernable à partir de 1 millionnième et trop pixelisé à partir de 1 dix-millième.

Pour afficher des rendus agréables à (très) grande échelle, il est préférable d'utiliser des MNT de basse résolution (donc plus grossiers) pour générer l'ombrage du relief (hillshade). En effet les MNT avec une bonne résolution (et donc un "grain fin") auront un rendu en ombrage plein de "bruit" à (très) grande échelle.
Pour les rendus à grande échelle, les MNT mis gratuitement à disposition du public par l'IGN (résolution de 75 m et 250 m) sont intéressants.
Mais si vous avez besoin de travailler à l'international, l'IGN ne vous sera pas d'une grande aide. On connaît désormais les DEM (MNT) fournis par la NASA et le METI (cf. ci-dessus), mais leur haute résolution les rends peu intéressant à grande échelle.
Qu'à cela ne tienne, il est assez facile d'altérer leur résolution pour la réduire.
Pour cela deux étapes (documentées par Bernd sur gis.stackexchange) :

1 : Regardez la taille de votre DEM originale. Pour ce faire, clic-droit sur votre couche DEM > propriétés. Puis dans la fenêtre qui s'affiche cliquez sur l'onglet "Métadonnées". Il y a là plusieurs cadres, rendez-vous à celui intitulé "Propriétés", et parcourez-le jusqu'à trouver "Dimensions" et notez les valeurs de X et Y.


2. Utiliser le menu "Raster" > Projections > Projection... (en anglais : "Warp")
Dans la fenêtre qui s'ouvre choisissez votre DEM originale en fichier source, indiquez le chemin et le nom de votre nouvelle DEM (dans mon cas j'ai ajouté _div10 en extension du nom de fichier pour me rappeler qu'il s'agit d'une DEM dont la qualité a été divisée par 10). Cochez "Méthode d'échantillonnage" et choisissez "Bilinéaire". Cochez "Changer la taille" et indiquez les valeurs de largeur (X) et de hauteur (Y) en utilisant les valeurs récupérés dans les métadonnées de la DEM originale, altérées selon vos besoins. Pour moi qui travaille à l'échelle de grandes entitées supra-régionales, j'ai divisé mes valeurs de X et de Y par 10 (valeur prise au hasard pour tester et qui a bien marché pour moi) (donc pour un X de 16136 j'indique une largeur de 1613 - on travaille en nombre de pixel, donc en nombre entier !). NB : si vous divisez la qualité, le temps de calcul pour générer la couche est assez rapide, par contre si vous augmentez la taille du fichier (en multipliant vos valeurs), alors évidemment, le temps de calcul peut être assez long en fonction de votre fichier et de votre multiplication...

3. Une fois votre nouvelle DEM générée, il ne reste plus qu'à généré le nouvel ombrage (hillshade) en suivant les indications déjà présentées plus haut dans cette note. Voici un aperçu du processus :



Courbes de niveau

On peut également extraire des courbes de niveau (au format vecteur, type shapefile). Pour ce faire, il suffit de se rendre dans le menu : "Raster" > "Extraction" et de choisir "Création de contours ..."



On peut ensuite choisir un style qui convienne afin d'adoucir certaines courbes de niveau et de souligner certaines autres. Typiquement sur les cartes SCAN25 on adoucit toutes les courbes sauf celles marquant les 50-aines.


On peut également afficher la couche d'ombre porté en transparence (ici 80%) sous la couche des courbes de niveau afin de renforcer légèrement l'effet de relief.


Enfin on peut rajouter diverses couches d'information sur notre fond de carte, par exemple celles en provenance d'OSM et le bâti en provenance du cadastre.


Aucun commentaire: