Une carte de la Semois

Un article pour présenter une carte de la Semois au 1/42,000 imprimée sur un support 200 x 70 cm: quelques aspects de cartographie et des éléments de la recette pour effectuer une rotation aux données géographiques avant leur mise en forme cartographique.

Une photo de la carte Semoy·ois imprimée

Dernier projet perso: une carte de la Semois grand format, à une échelle 1:42,000, ce qui donne une carte imprimée sur un grand rectangle de 2 mètres de haut sur 70 cm de large. Avec les données d’OpenStreetMap bien sûr, complétées par les bâtiments du PICC en Wallonie et puis une représentation du relief faite en combinant des données de relief de Wallonie, du GD de Luxembourg et européenne.

Bouillon: la carte n’est pas orientée au Nord (photographie de la carte imprimée)

La carte montre la Semois de sa source à son embouchure, selon l’orientation générale de la rivière, donc en orientant la carte selon un angle particulier. Prenant sa source en Lorraine, la rivière attaque curieusement de biais le massif ardennais qu’elle finit par percer pour retrouver la Meuse. Cette belle rivière trace son chemin avec de nombreux méandres mais en maintenant un cap relativement rectiligne. Sur l’emprise de la carte, des portions de 3 pays: Belgique, France, Luxembourg.

On passe de la Belgique (où la rivière prend le nom de Semois) à la France (et devient Semoy), sans passage de frontière dans le style cartographique (photographie de la carte imprimée)

Cartographie

Aperçu de la carte à Cugnon

Le style de la carte est celui d’OpenArdenneMap, mon projet de style pour des cartes topographiques à grande échelle. OpenArdenneMap est un style spécifiquement développé pour des cartes imprimées, avec un faible nombre de couleurs différentes, des contrastes clairs, et qui fait la part belle aux labels (basés sur la fonte Alfphabet), dans la tradition des cartes topographiques de l’IGN belge des années 1960 à 1980. Parmi les dernières nouveautés du style, il y a l’écriture en courbe de certains labels de plans d’eau. Pour cette carte, la Semois est soulignée par un trait bleu plus prononcé que ses affluents ou que les autres rivières apparaissant sur la carte. Enfin, le relief est représenté par un ombrage (hillshade) se superposant à la carte.

… à Jamoigne

Ici, avec une échelle de 1:42,000, on atteint les limites du style cartographique, plutôt défini pour du 1:20,000. En outre, l’absence de généralisation des données géographiques (par exemple, pas de déplacements des lignes trop proches) peut poser problème à certains endroits. La carte est générée automatiquement: elle n’a pas été retravaillée manuellement. Pour un meilleur rendu, il faudrait éventuellement déplacer des labels à la main, supprimer des superpositions d’éléments, …

Impression & collage

Après la mise en page du fichier, le fichier prêt à imprimer était un PDF rasterisé à 500 dpi. L’impression a été faite en qualité optimale sur du papier épais (120g/m² ou 160g/m²).

Puis la carte a été collée sur un support fait d’une planche de panneau MDF de 5 mm peint en noir. Pour le collage, j’ai utilisé une colle vinylique étalée en une fine couche avec un petit rouleau à peindre. Grâce à l’épaisseur du papier, le papier n’a pas trop gondolé (juste un peu), mais j’ai bien passé une heure à coller et à presser.

Le fichier source de cette carte est disponible en téléchargement libre sous licence Common Creative CC-BY-SA ici.

Préparation des données

Pour faire tenir le cours de la Semois dans un rectangle, la carte n’est pas orientée vers le Nord. Mapnik (i.e., le programme qui a généré la carte avec le style OpenArdenneMap) n’est pas capable d’effectuer une rotation de la carte selon une autre orientation que le Nord. Dès lors qu’on veut faire une carte avec une orientation non-conventionnelle, on peut soit effectuer une rotation de chaque label et symboles, ou simplement effectuer une rotation de toutes les données au préalable. C’est cette dernière option que j’ai choisie.

Rotation des données OpenStreetMap

Les données OpenStreetMap sont importées à l’aide du programme osm2pgsql dans une base de données avec PostGIS. On peut facilement effectuer une rotation de toutes les données avec la fonction ST_Rotate en indiquant un angle (en radian) et un centre (ici, en coordonnées EPSG:3857). Il faut donc précalculer cet angle et le centre de la carte. Par exemple, pour la table planet_osm_line:

CREATE TABLE planet_osm_line_semoy AS
SELECT *, ST_ROTATE(way, -1.3249, 587488, 6406205) AS rotated_way FROM planet_osm_line;

Rotation du relief (hillshade)

Pour l’effet d’ombrage du relief, l’approche a été d’effectuer une rotation du modèle numérique de terrain (MNT, aka DEM) avant de calculer l’ombrage.

1) D’abord, fusionner les MNT de Belgique, du GD Lux et de France:

gdal_merge.py -of GTiff -co BIGTIFF=YES -co TILED=YES -o dem_semoy.tif eudem_semoy_31370.tif dem_be_semoy_31370.tif dem_lux_semoy_31370.tif

2) Obtenir le fichier tfw du fichier tif pour faire une rotation “à la main”

gdal_translate -of GTiff -co profile=baseline -co tfw=yes dem_semoy.tif dem_semoy_baseline.tif

3) Modifier le fichier tfw

En transformant les valeurs du fichier tfw d’un raster au format GeoTiff, on peut lui appliquer une rotation (voir ce lien). Soit les valeurs A, B, C, D, E et F du fichier tfw, on applique une rotation d’un angle alpha (radians) en transformant ces valeurs comme suit:

(A')=A*cos(alpha)
(B')=A*sin(alpha)
(C')=-D*sin(alpha)
(D')=D*cos(alpha)
(E')=E
(F')=F 

4) Reprojection
Appliquer une reprojection avec gdalwarp vers une résolution plus basse pour gommer les artefacts de la rotation et le mettre dans un autre système de coordonnées.

gdalwarp -t_srs EPSG:3857 -r cubicspline -tr 25 25 dem_semoy_31370_clipped_baseline_rotated.tif dem_semoy_3857_clipped_rotated_warp_cubicspline_25x25.tif


5) Créer l’ombrage de relief (hillshade)

gdaldem hillshade dem_semoy_3857_clipped_rotated_warp_cubicspline_25x25.tif hillshade_dem_semoy_3857_rotated_warp.tif -co BIGTIFF=YES -co TILED=YES -co COMPRESS=DEFLATE -of GTiff -z 1.0 -s 0.5 -multidirectional


6) Appliquer une palette de couleur au raster hillshade

gdaldem color-relief hillshade_dem_semoy_3857_rotated_warp.tif -alpha shade.ramp hillshade_dem_semoy_3857_rotated_warp_semi_transparent.tif 


shade.ramp est un fichier de reclassification des valeurs des pixels du raster comme suit:

0 0 0 0 0
1 0 0 0 220
64 0 0 0 192
128 0 0 0 140
150 0 0 0 96
168 0 0 0 0
190 255 255 255 0
220 255 255 255 96
255 255 255 255 128

Leave a Reply

Your email address will not be published. Required fields are marked *