Utilisateur:Bourrichon/1
Ce didacticiel vise à créer un relief coloré dans les conventions wikipédiennes.
Téléchargement des données brutes du relief
modifierRecommandé : noter les coordonnées futures de la carte en degrés sexagésimaux et en fractions décimales de degrés (pour une conversion facile, voir Système sexagésimal). (Pour un relief vectoriel, veillez à télécharger les données selon une emprise un peu plus grande que l'emprise souhaitée, afin d'éviter des problèmes de bord de carte).
Télécharger les données (voir les liens dans l'article détaillé). Résumé des sources souvent utilisées :
- carte à très grande échelle (une commune) : fichiers ASTER (topographie uniquement) ;
- carte à grande échelle (département ou région) : fichiers SRTM3 (topographie uniquement) ;
- carte à moyenne échelle (pays comme la France) : fichiers GEBCO (topographie et bathymétrie) ;
- carte à petite échelle (continent) : ETOPO1, ETOPO2 ou encore ETOPO5 (topographie et bathymétrie).
Vous pouvez combiner dans QGIS différentes données, par exemple des SRTM3 (pour la topographie) avec des GEBCO (pour la bathymétrie).
Combler les données topographiques manquantes
modifierCette étape facultative est recommandée pour les fichiers SRTM3 : il est parfois nécessaire de combler les « trous » dans les données du raster (trous dus au radar qui n'a pas pu balayer correctement la zone – souvent une zone élevée).
Ouvrir 3DEM. Sélectionner le format du fichier à ouvrir (par exemple, .hgt pour les srtm3). Naviguer et sélectionner le raster. Le raster apparaît. Faire alors 3DEM > Operation > Patch missing data ou F7. Dessiner un cadre avec la souris englobant la carte (ou une partie, si l'opération se révèle trop lourde). Quand tous les trous ont disparu, faire entrée puis File > Save USGS ASCII DEM / ou Save GeoTiff DEM.
À noter srtmfill, petit logiciel dont la version gratuite peut faire la même chose, mais tuile par tuile (pas de fusion des fichiers).
Charger les couches dans QGIS
modifierLes données topographiques se présentent sous la forme de fichiers rasters (en général .hgt, .dem, .tif, .flt, .bin, .nc, etc.) : utiliser les boutons ou faire QGIS 1.8 > Couche > Ajouter une couche raster > naviguer jusqu'à un fichier raster utilisable par QGIS.
Pour obtenir un relief matriciel
modifierColorer les niveaux des couches raster
modifierÉtape obligatoire si vous souhaitez un relief bitmap (carte de géolocalisation).
Le raster importé apparaît comme un rectangle gris. Pour appliquer une wikipalette QGIS au raster :
- Copier le code d'une des wikipalettes des boîtes déroulantes qui suivent, puis le coller dans un fichier texte brut (de type Notepad). Sauvegarder ce fichier texte dans un dossier facile d'accès. Enfin, changez l'extension .txt en .qml (Merci à Yug (d · c · b) pour la première wikipalette).
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'> <qgis version="1.6.0-Copiapo" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0"> <transparencyLevelInt>255</transparencyLevelInt> <rasterproperties> <mDrawingStyle>SingleBandPseudoColor</mDrawingStyle> <mColorShadingAlgorithm>ColorRampShader</mColorShadingAlgorithm> <mInvertColor boolean="false"/> <mRedBandName>Not Set</mRedBandName> <mGreenBandName>Not Set</mGreenBandName> <mBlueBandName>Not Set</mBlueBandName> <mGrayBandName>Bande 1</mGrayBandName> <mStandardDeviations>0</mStandardDeviations> <mUserDefinedRGBMinimumMaximum boolean="false"/> <mRGBMinimumMaximumEstimated boolean="true"/> <mUserDefinedGrayMinimumMaximum boolean="false"/> <mGrayMinimumMaximumEstimated boolean="true"/> <mContrastEnhancementAlgorithm>StretchToMinimumMaximum</mContrastEnhancementAlgorithm> <contrastEnhancementMinMaxValues> <minMaxEntry> <min>-10458</min> <max>6741</max> </minMaxEntry> </contrastEnhancementMinMaxValues> <mNoDataValue mValidNoDataValue="false">-9999.000000</mNoDataValue> <customColorRamp> <colorRampType>DISCRETE</colorRampType> <colorRampEntry red="245" value="8000.000000" green="244" blue="242" label="altitude 19 neiges eternelles"/> <colorRampEntry red="224" value="7000.000000" green="222" blue="216" label="altitude 18 neiges eternelles"/> <colorRampEntry red="202" value="6000.000000" green="195" blue="184" label="altitude 17 neiges eternelles"/> <colorRampEntry red="186" value="5000.000000" green="174" blue="154" label="altitude 16 neiges eternelles"/> <colorRampEntry red="172" value="4000.000000" green="154" blue="124" label="altitude 15 neiges eternelles"/> <colorRampEntry red="170" value="3000.000000" green="135" blue="83" label="altitude 14"/> <colorRampEntry red="185" value="2000.000000" green="152" blue="90" label="altitude 13"/> <colorRampEntry red="195" value="1500.000000" green="167" blue="107" label="altitude 12"/> <colorRampEntry red="202" value="1000.000000" green="185" blue="130" label="altitude 11"/> <colorRampEntry red="211" value="800.000000" green="202" blue="157" label="altitude 10"/> <colorRampEntry red="222" value="600.000000" green="214" blue="163" label="altitude 9"/> <colorRampEntry red="232" value="400.000000" green="225" blue="182" label="altitude 8"/> <colorRampEntry red="239" value="300.000000" green="235" blue="192" label="altitude 7"/> <colorRampEntry red="225" value="200.000000" green="228" blue="181" label="altitude 6"/> <colorRampEntry red="209" value="150.000000" green="215" blue="171" label="altitude 5"/> <colorRampEntry red="189" value="100.000000" green="204" blue="150" label="altitude 4"/> <colorRampEntry red="168" value="50.000000" green="198" blue="143" label="altitude 3"/> <colorRampEntry red="148" value="20.000000" green="191" blue="139" label="altitude 2"/> <colorRampEntry red="172" value="1.000000" green="208" blue="165" label="altitude 1"/> <!-- <colorRampEntry red="167" value="0.000000" green="223" blue="210" label="depression"/> --> <colorRampEntry red="216" value="0.000000" green="242" blue="254" label="altitude -1"/> <colorRampEntry red="198" value="-20.000000" green="236" blue="255" label="altitude -2"/> <colorRampEntry red="185" value="-50.000000" green="227" blue="255" label="altitude -3"/> <colorRampEntry red="172" value="-100.000000" green="219" blue="251" label="altitude -4"/> <colorRampEntry red="161" value="-250.000000" green="210" blue="247" label="altitude -5"/> <colorRampEntry red="150" value="-500.000000" green="201" blue="240" label="altitude -6"/> <colorRampEntry red="141" value="-750.000000" green="193" blue="234" label="altitude -7"/> <colorRampEntry red="132" value="-1000.000000" green="185" blue="227" label="altitude -8"/> <colorRampEntry red="121" value="-2000.000000" green="178" blue="222" label="altitude -9"/> <colorRampEntry red="113" value="-4000.000000" green="171" blue="216" label="altitude -10"/> </customColorRamp> </rasterproperties> </qgis>
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'> <qgis version="1.6.0-Copiapo" minimumScale="1" maximumScale="1e+08" hasScaleBasedVisibilityFlag="0"> <transparencyLevelInt>255</transparencyLevelInt> <rasterproperties> <mDrawingStyle>SingleBandPseudoColor</mDrawingStyle> <mColorShadingAlgorithm>ColorRampShader</mColorShadingAlgorithm> <mInvertColor boolean="false"/> <mRedBandName>Not Set</mRedBandName> <mGreenBandName>Not Set</mGreenBandName> <mBlueBandName>Not Set</mBlueBandName> <mGrayBandName>Bande 1</mGrayBandName> <mStandardDeviations>0</mStandardDeviations> <mUserDefinedRGBMinimumMaximum boolean="false"/> <mRGBMinimumMaximumEstimated boolean="true"/> <mUserDefinedGrayMinimumMaximum boolean="false"/> <mGrayMinimumMaximumEstimated boolean="true"/> <mContrastEnhancementAlgorithm>StretchToMinimumMaximum</mContrastEnhancementAlgorithm> <contrastEnhancementMinMaxValues> <minMaxEntry> <min>-10458</min> <max>6741</max> </minMaxEntry> </contrastEnhancementMinMaxValues> <mNoDataValue mValidNoDataValue="false">-9999.000000</mNoDataValue> <customColorRamp> <colorRampType>DISCRETE</colorRampType> <colorRampEntry red="245" value="4000.000000" green="244" blue="242" label="altitude 12"/> <colorRampEntry red="224" value="3500.000000" green="222" blue="216" label="altitude 11"/> <colorRampEntry red="202" value="3000.000000" green="195" blue="184" label="altitude 10"/> <colorRampEntry red="186" value="2500.000000" green="174" blue="154" label="altitude 9"/> <colorRampEntry red="172" value="2000.000000" green="154" blue="124" label="altitude 8"/> <colorRampEntry red="202" value="1500.000000" green="185" blue="130" label="altitude 7"/> <colorRampEntry red="222" value="1000.000000" green="214" blue="163" label="altitude 6"/> <colorRampEntry red="239" value="750.000000" green="235" blue="192" label="altitude 5"/> <colorRampEntry red="225" value="500.000000" green="228" blue="181" label="altitude 4"/> <colorRampEntry red="189" value="250.000000" green="204" blue="150" label="altitude 3"/> <colorRampEntry red="148" value="100.000000" green="191" blue="139" label="altitude 2"/> <colorRampEntry red="172" value="1.000000" green="208" blue="165" label="altitude 1"/> <!-- <colorRampEntry red="167" value="0.000000" green="223" blue="210" label="depression"/> --> <colorRampEntry red="216" value="0.000000" green="242" blue="254" label="altitude -1"/> <colorRampEntry red="200" value="-50.000000" green="235" blue="255" label="altitude -2"/> <colorRampEntry red="185" value="-100.000000" green="227" blue="255" label="altitude -3"/> <colorRampEntry red="172" value="-250.000000" green="219" blue="251" label="altitude -4"/> <colorRampEntry red="161" value="-500.000000" green="210" blue="247" label="altitude -5"/> <colorRampEntry red="150" value="-750.000000" green="201" blue="240" label="altitude -6"/> <colorRampEntry red="141" value="-1000.000000" green="193" blue="234" label="altitude -7"/> <colorRampEntry red="132" value="-2000.000000" green="185" blue="227" label="altitude -8"/> <colorRampEntry red="121" value="-3000.000000" green="178" blue="222" label="altitude -9"/> <colorRampEntry red="113" value="-4000.000000" green="171" blue="216" label="altitude -10"/> </customColorRamp> </rasterproperties> </qgis>
- Ensuite, dans la liste de couches du projet, clic droit sur la couche raster > Propriétés (une fenêtre s'ouvre) > onglet Style > Charger le style > naviguer jusqu'à votre wikipalette.
Choisissez l'interpolation des couleurs dans l'onglet Palette de couleurs : « discret » (les couleurs sont nettement séparées) ou « linéaire » (les couleurs sont dégradées).
Après avoir fait OK, les couleurs devraient immédiatement s'appliquer à la couche.
Rendre transparent une partie des données dans une couche raster
modifierÉtape facultative mais utile si vous cumulez plusieurs couches (par exemple, relief SRTM3 pour la terre et relief ETOPO1 pour la mer) :
- QGIS 1.8 > clic droit sur la couche > Propriétés de la couche > Transparence > bouton « Ajouter les valeurs depuis l'affichage » > cliquer sur une zone de l'aperçu.
- Vous pouvez aussi entrer des valeurs vous-même dans la colonne « gris ».
- Exemple de transparence pour supprimer les parties maritimes (plates) des SRTM3 : (dans la colonne « gris ») 1ère ligne→-32768 ; 2ème ligne→0 ; 3ème ligne→-17.
- Exemple de transparence pour supprimer au contraire toutes les parties terrestres : 1ère ligne→10000 ; 2ème ligne→0. (exemples demandant un approfondissement).
Pour obtenir un relief vectoriel
modifierMéthode 1.0 (« manuelle ») : vectorisation avec Inkscape
modifierCette première méthode consiste à exporter en image bitmap chaque niveau en blanchissant tous les niveaux sauf celui-ci, puis à vectoriser ce niveau dans Inkscape (Chemin > Vectoriser le bitmap). Répéter l'opération pour chaque niveau.
Méthode 2 : création du relief vectoriel avec QGIS
modifier- Avant toute chose, créer des courbes de niveaux vectorielles à partir du raster : QGIS 1.8 > Raster > Extraction > Création de contours > (une fenêtre s'ouvre) > sélectionner la couche raster, sélectionner le dossier dans lequel verser les fichiers créés, choisir un intervalle entre les niveaux, cocher Nom d'attribut et choisir Elevation > cliquer sur OK.
Facultatif : dans QGIS, ouvrez le fichier vectoriel .shp que vous venez ainsi de créer ; ouvrez la table d'attribut de la couche, et voyez que chaque polygone de la couche contient un attribut « Elevation » correspondant à l'altitude.
Les courbes de niveaux, bien que distinguables par leur attribut « Elevation » et d'autre part pouvant être exportés en svg, sont encore pêle-mêle dans une même couche.
- Méthode 2.0 : exporter les courbes pêle-mêle en un fichier svg puis colorer chaque niveau dans Inkscape dans la couleur correspondant aux wikiconventions cartographiques.
- Méthode 2.1 : séparer le fichier de courbes vectorielles en différents fichiers correspondant aux différents niveaux puis les importer un à un dans Inkscape et les colorer : QGIS 1.8 > Vecteur > Outils de gestion des données > Séparer une couche vectorielle > (une fenêtre s'ouvre) > choisir la bonne couche vectorielle puis le champ d'identifiant unique Elevation. Choisissez ou créez un dossier de sortie puis cliquez sur OK. Chaque fichier créé contient le tracé d'une courbe de niveau.
Chargez ensuite dans QGIS chaque fichier créé et exportez-le en svg. Charger chaque fichier dans Inkscape dans un calque différent.
Note : Vous pouvez, pour aller plus vite, exporter ensemble toutes les couches ainsi séparées par QGIS dans un fichier svg unique : dans ce cas, chaque couche de QGIS correspondra à un groupe dans Inkscape (mais tous les groupes seront dans un seul calque racine).
- Méthode 2.2 (recommandée) : appliquer un style aux courbes de niveau vectorielles dans QGIS : le but est d'exporter avec QGIS un fichier svg qui soit d'emblée aux bonnes couleurs grâce à une feuille de style.
- Éventuellement, d'abord traiter les dépressions positives (les creux du relief) afin qu'elles apparaissent dans la carte (étape importante uniquement si le relief comporte des creux isolés conséquents) : QGIS 1.8 > Vecteurs > Outils de géométrie > Morceau unique vers morceaux multiples : choisir la couche des courbes et choisir « Élévation » comme identifiant unique. Charger dans le projet le fichier ainsi créé et polygoniser les courbes (étape décrite ci-après). Charger ensuite le fichier ainsi créé : les polygones devraient comporter des « trous » correspondant aux creux du relief. Cette opération équivaut dans Inkscape à Chemin > combiner, qui permet de « percer » un polygone par un polygone plus petit placé au-dessus de lui ; mais dans Inkscape il faudrait répéter l'opération pour chaque niveau.
- Polygoniser les courbes : QGIS 1.8 > Vecteurs > Outils de géométrie > Lignes vers polygones.
- Enfin, appliquer une feuille de style au fichier de polygones ainsi créé : clic droit sur la couche > Propriétés > Charger le style > naviguer jusqu'à votre wikipalette. (feuilles à venir ici). Pour modifier les intervalles de la feuille de style (qui ne correspondront pas forcément à vos courbes de niveau), clic droit sur la couche > Propriétés > Style > modifier les chiffres indiqués dans la colonne « règles ». Il faudra cependant corriger avec Inkscape certaines aberrations de polygones non fermés (notamment dans les coins de la carte), aberrations que l'on pourra limiter en ayant téléchargé les données sur une zone plus large que l'emprise souhaitée.
- Méthode 2.3 (non testée car bug) : appliquer un style au bitmap relief puis le vectoriser avec QGIS : d'abord, appliquer une feuille de style au bitmap relief, afin de faire apparaître les couleurs du relief (voir plus haut), puis faire QGIS 1.8 > Raster > Conversion > Polygoniser. Cette opération équivaut à la vectorisation d'un bitmap avec Inkscape, sauf que la vectorisation se fait par valeur réelle d'altitudes, et non par valeur apparente des pixels d'une image bitmap. Il s'en suivrait une vectorisation sans artefacts, présentant des niveaux exacts (et bien sûr tous les niveaux en une seule vectorisation).
Autres méthodes
modifier- Utiliser les fichiers vectoriels de courbes de niveaux du site Natural Earth (faible résolution).