english français

Fichier de calibrage ref.txt

La méthode de calibrage par écriture d'un fichier de calibrage ref.txt est puissante et versatile. L'idée est de préciser quelques points de calibrage sur la carte (typiquement 4, mais 2 peuvent suffire). Un point de calibrage est un point auquel on associe des coordonnées géographiques données (coordonnées de longitude et de latitude, ou coordonnées correspondant à une certaine projection cartographique). Lors du calibrage, on peut également préciser la projection cartographique employée par la carte. Cette information est en général nécessaire pour obtenir une bonne précision dans le calibrage de grandes cartes (couvrant des zones de plus de 100 km).

Noter que le fichier de calibrage ref.txt pour des cartes provenant de certains sites web cartographiques (en particulier les cartes Google maps, les cartes des géoportails français, suisse, anglais, etc.) peuvent être générés automatiquement! Voir explications à la page Visualiseurs de cartes.

Un fichier de calibrage ref.txt est un simple document de texte, que l'on peut écrire par exemple avec TextEdit (sur MacOS) ou NotePad (sur Windows). Noter que Multiplans adopte la convention que les coordonnées GPS sont toujours données dans l'ordre longitude, latitude (et non l'ordre inverse longitude, latitude comme dans Google Maps).

Deux cas peuvent se présenter:

(a) Cas d'une carte de projection cartographique inconnue

Si la projection cartographique utilisée est inconnue, on peut calibrer approximativement la carte en spécifiant 4 (ou éventuellement que 2) points de calibrage sur la carte. Les meilleures résultats seront obtenus avec 4 points de calibrage situés non loins des quatre coins de la carte.

Exemple: fichier ref.txt avec 4 points de calibrage
Bilinear interpolation
0, 0 = 6.708785, 51.233717
0, 8000 = 6.851875, 51.236431
8000, 8000 = 6.856050, 51.146598
8000, 0 = 6.713237, 51.143892

La 1re ligne du fichier ref.txt contient le mot-clé "Bilinear interpolation", qui indique à Multiplans qu'il doit interpoler, voire extrapoler, les coordonnées à partir des 4 (ou 2) points de calibrage indiqués dans les lignes suivantes du fichier.
Les points de calibrage sont donnés à l'aide de lignes de la forme
x, y = longitude, latitude
où x et y sont les coordonnées (en pixels) d'un point sur la carte, et "longitude, latitude" sont les coordonnées géographiques correspondantes de ce point (dans le datum WGS84, c'est-à-dire les coordonnées GPS du point). Le point de coordonnées x=0,y=0 correspond au coin en haut à gauche de l'image, tandis que le point x=0,y=8000 est situé 8000 pixels plus bas sur le bord gauche de l'image. Dans cet exemple, les 4 points de calibrage sont situés aux quatre coins d'une carte de dimensions 8000x8000 pixels, mais il n'est pas obligatoire de positionner les points exactement aux coins de l'image. Les 4 points doivent être placés aux sommets d'un rectangle, ou d'un quadrilatère correspondant à un rectangle "pas trop déformé" (techniquement parlant: le quadrilatère doit être convexe). Si 3 points de calibrage sont alignés selon une droite, les résultats ne seront pas bons!

Pour trouver les coordonnées (en pixels) d'un point sur une image, on peut utiliser par exemple GraphicConverter (sur MacOS), menu "Fenêtres-->Coordonnées". Alternativement, on peut utiliser Multiplans pour trouver ces coordonnées: importer la carte sans fichier de calibrage, puis créer un point d'intérêt sur la carte. L'écran d'information sur le point d'intérêt affiche les coordonnées pixels du point. (Dans une version future de Multiplans, il sera possible d'indiquer graphiquement les points de calibrage sur la carte, sans passer par l'écriture d'un fichier de calibrage ref.txt)

La méthode d'interpolation bilinéaire à 4 points donne en général de bons résultats pour des cartes d'une étendue géographique pas trop grande (moins de 100 km). Dans le cas où les lignes de longitude constante (et de latitude constante) sont alignées selon la verticale (respectivement selon l'horizontale), il est suffisant de ne spécifier que 2 points de calibrage. Choisir alors ces deux points de calibrage approximativement vers 2 coins diagonalement opposés de la carte.

(b) Cas d'une carte de projection cartographique connue

Il s'agit du cas idéal, où l'on connaît la projection cartographique employée par la carte. On peut alors indiquer cette projection sur la première ligne du fichier ref.txt et ne spécifier dans les lignes suivantes que 2 points de calibrage. 2 points sont en effet suffisants pour obtenir un calibrage exact lorsque la projection cartographique est connue. (Attention: ne mettre que 2 points de calibrage, et non pas 4!)

La projection cartographique peut être indiquée soit par le mot-clé "EPSG:" suivi du numéro EPSG de la projection, soit par le mot-clé "PROJ:", suivi d'une suite de mot-clés décrivant cette projection dans le langage de la librairie PROJ.

Exemple: La carte suisse ci-dessus emploie, comme toute carte de swisstopo, une projection de Mercator oblique portant le numéro EPSG:21781. À la page map.geo.admin.ch (carte d'Avenches), on peut lire aisément les coordonnées géographiques d'un point donné de la carte. On a déterminé ainsi les coordonnées géographiques de deux points de calibrage, indiqués en rouge dans l'image ci-dessus. Avec ces informations à disposition, cette carte peut être calibrée en écrivant, à choix, l'un des contenus suivants dans le fichier ref.txt:
Fichier ref.txt avec no de projection cartographique EPSG, suivi par la donnée de deux points de calibrage (les coordonnées géographiques sont exprimées en coordonnées suisses)
EPSG:21781
135,56 = 569000,193000
1136,656 = 574000,190000
Idem, mais avec les coordonnées des points de calibrage indiquées dans le système WGS84 (coordonnées GPS)
EPSG:21781
135,56 = 7.03193, 46.88734 (WGS84)
1136,656 = 7.09766, 46.8606 (WGS84)

Noter que si l'on indique les coordonnées géographiques des points de calibrage dans le système WGS84, autrement dit par leur coordonnées GPS, il faut ajouter le mot-clé "(WGS84)" après les coordonnées (attention: ne pas écrire "WGS 84" avec un espace, mais bien "WGS84"). La syntaxe pour un point de calibrage est alors
x, y = longitude, latitude (WGS84)
En l'absence de ce mot-clé "WGS84", les cordonnées sont interprétées comme étant données dans le système de projection cartographique défini dans la première ligne du fichier ref.txt.

Pour trouver le numéro EPSG d'une projection, se référer au tableau à la page suivante.

Au lieu d'indiquer la projection par son numéro EPSG, on peut la décrire au moyen des mot-clés de la librairie PROJ4. Cela est particulièrement utile dans le cas où la projection n'a pas encore de numéro EPSG attribué. Un autre avantage d'utiliser la description par la librairie PROJ est que les différents paramètres entrant dans la définition de la projection sont explicitement mentionnés. La première ligne du fichier ref.txt commence alors par le mot-clé "PROJ:" (au lieu de "EPSG:"), comme dans l'exemple suivant:
Fichier ref.txt avec projection décrite par la librairie proj4
PROJ:+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.999601 +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs
135,56 = 569000,193000
1136,656 = 574000,190000
Pour trouver comment décrire une projection cartographique en utilisant la librairie PROJ, se référer à la page suivante.

Dans tous les cas, on peut vérifier si un fichier de calibrage ref.txt est correct en créant un point d'intérêt sur la carte, et en vérifiant si les coordonnées de longitude et latitude de ce point calculées par Multiplans sont correctes.

Variante: calibration à 1 point et résolution
Au lieu de donner deux points de calibrage, il est possible de ne donner qu'un seul point, et d'indiquer, dans le ligne suivante du fichier ref.txt, la résolution de la carte. Pour la carte suisse ci-dessus, on aurait pu par exemple également écrire les fichiers de calibrage suivants:
Fichier ref.txt avec un seul point de calibrage, suivi de l'indication de la résolution de la carte
EPSG:21781
135,56 = 569000,193000
resolution: 5
Idem, le point de calibrage étant situé au centre de la carte
EPSG:21781
center = 7.0636, 46.87376 (WGS84)
resolution: 5
Attention: le mot-clé à utiliser est bien "resolution" (sans accent car en anglais), et non "résolution". La résolution de la carte doit être indiquée en "unité de coordonnées cartographiques"/pixel. Par exemple, si les coordonnées X et Y sont mesurées en mètre, la résolution doit être donnée en mètres par pixel.
Si les coordonnées géographiques du point de calibration sont données dans le système WGS84, l'utilisation concomittante du mot-clé "resolution" ne fonctionne correctement qu'à partir de la version 1.41 de Multiplans.

Remarque: La syntaxe du fichier ref.txt a evolué depuis la première version de Multiplans. La syntaxe utilisée par les premières versions de Multiplans (voir ici) est toujours acceptée, mais il n'est pas recommandé de l'utiliser.

Remarque: Dans la version actuelle, Multiplans suppose que la carte n'a pas subi de rotation par rapport à la projection cartographique définie dans la première ligne du fichier ref.txt. Cela signifie que les lignes de coordonnées X=constante (ou Y=constante) (où X et Y sont les coordonnées cartographiques définies par la projection cartographique, par exemple les coordonnées suisses) doivent être horizontales (resp. verticales), comme dans l'exemple de la carte suisse ci-dessus. Si la carte montre une grille de coordonnées X,Y qui a subi une rotation, il faut utiliser un programme de dessin pour compenser cette rotation avant de calibrer la carte. Cette compensation de la rotation doit être effectuée dans le cas de scans de certaines cartes IGN papier: introduire une rotation de sorte que les petites croix noires de la grille Lambert soient alignées horizontalement et verticalement (ce problème de rotation ne concerne que les scans de cartes IGN papier, et non les cartes IGN du géoportail). Voir ce document de Raymondo.

Exemples de calibrage de cartes

Rappel: la page Visualiseurs de cartes permet de générer automatiquement le fichier de calibrage de cartes de certains sites web.