Convertir une image de carte arbitraire sans métadonnées en projet QGIS

9

Mon parcours: programmeur expérimenté, historien amateur, débutant complet en SIG (donc j'utilise QGIS). J'ai cependant appris à utiliser l'outil de géoréférencement QGIS.

L'entrée: supposons que j'ai une image comme celle-ci Wikipedia: File: VoyagesOfRabbanBarSauma.jpg . Supposons qu'il s'agit d'un fichier JPG "nu" sans métadonnées géographiques et que l'auteur ne peut pas fournir de telles informations. L'image d'entrée est sous licence GNU FDL, sous laquelle je suis heureux de publier mes travaux dérivés.

Le but: importer le chemin indiqué sur la carte Wikipedia dans QGIS pour pouvoir modifier la projection, superposer l'altitude, ajouter des étiquettes pour la géographie physique, etc.

La mise en garde: une solution de contournement pourrait simplement être d'entrer le lat / long des emplacements sur la carte dans un nouveau projet SIG. Je ne veux pas emprunter cette voie parce que j'aimerais avoir un enregistrement de l'estimation de cet auteur particulier des informations géographiques.

Ce que j'ai essayé: j'ai appliqué le QGIS Georeferencer au fichier JPG raster avec un tas de points sur les bords des continents. L'alignement des points à l'intérieur du continent est moyen.

Ce que j'aimerais savoir: les distorsions de cette carte particulière sont assez visibles autour de la bordure nord de l'Eurasie, et il semble que ce soit une projection assez standard. Il me semble qu'il devrait y avoir un moyen algorithmique d'identifier la projection et les paramètres de projection qui ont généré cette carte, et de récupérer une conversion de non-interpolation précise entre les pixels de l'image et les lat / long?

Je vois deux questions à ce sujet:

  1. Identifier le système de coordonnées du fichier de formes lorsqu'il est inconnu?
  2. Système de coordonnées inconnu sur l'ancien dessin

Ceux-ci semblent parler d'une méthode de force brute impliquant GDAL ou QGIS, et pour un débutant SIG, semblent quelque peu laborieux (essentiellement géoréférencer et les adapter aux projections connues) mais je suis prêt à les essayer et voir si je peux les automatiser.

Les instructions sur ces deux GIS.SE sont un peu plus élevées que mon expérience ne le permet, et tout indice sur la façon de faire exactement cette méthode de force brute serait très apprécié. Par exemple, la question 2 ci-dessus montre comment utiliser gdaltransform pour convertir une liste de coordonnées en lat / long. Les coordonnées d'entrée sont-elles des emplacements de pixels xy?

Ahmed Fasih
la source

Réponses:

7

Comme mentionné, votre exemple de carte est Plate Carree, qui dans QGIS est WGS84 / lat lon, EPSG: 4326. Il géoréférence bien dans QGIS en utilisant la méthode Helmert Linear avec seulement deux points. Dans mon cas, j'ai utilisé un point près du coin supérieur gauche de l'image et un autre point près du coin inférieur droit de l'image. Les coordonnées lat / lon utilisées pour le géoréférencement ont été obtenues auprès de Google Earth. N'oubliez pas que lors du géoréférencement, Latitude est "y" et Longitude est "x".

Juste pour le plaisir, j'ai ensuite chargé le raster géoréférencé dans QGIS et tracé rapidement l'itinéraire, l'enregistrant en tant que fichier de formes de ligne. J'ai ensuite chargé une image raster de Natural Earth et l'ai superposée avec l'itinéraire (voir l'image ci-jointe pour une partie de la carte résultante).

Les images raster de Natural Earth sont géoréférencées (selon EPSG: 4326), belles et gratuites, vous pouvez les obtenir à partir d'ici:

Terre naturelle

Ils sont idéaux pour être utilisés comme cartes de base pour tracer des données historiques.

Ajouté plus tard:

Je ne connais pratiquement rien sur la cartographie à l'échelle mondiale, mais j'ai pris note de vos commentaires sur la distorsion évidente dans la carte WGS84 lat / lon (EPSG: 4326) d'origine. QGIS a un bon ensemble d'outils pour reprojeter des données vectorielles et raster donc (en partie pour ma propre auto-éducation!) J'ai pensé que j'essaierais de trouver un CRS qui présenterait la carte d'une manière plus "naturelle".

L'image ci-jointe montre un raster de Terre naturelle découpé transformé en une projection Albers à surface égale personnalisée. Les données vectorielles sur la carte ont été transformées à partir du WGS84 lat / lon à la volée. Pourquoi Albers? Eh bien, cela semblait être une chose raisonnable à essayer. De toute évidence, dans une carte terminée, on clipserait le réticule vectoriel (également gracieuseté de Natural Earth) à l'image. Malgré cela, je pense que les formes sur la carte sont raisonnablement naturalistes et que la carte met également en évidence le fait que le voyage remarquable de Bar Sauma a été fait sur un globe.

Les paramètres du CRS personnalisé étaient les suivants:

+proj=aea +lat_1=22.0 +lat_2=56.0 +lat_0=20.0 +lon_0=55.0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs

Était-ce une projection raisonnable à utiliser? Honnêtement, je ne sais pas.

Pseudo.

entrez la description de l'image ici

entrez la description de l'image ici

nhopton
la source
Nick, je vous remercie donc beaucoup, c'est exactement ce que je voulais voir le voyage! Si je ne savais pas que la projection était Plate Carree, aurais-je pu demander à QGIS de le comprendre, comme semble le faire ArcGIS? Il y a des tas de cartes comme celle-ci sur Wikipédia ( exemple ) où j'aimerais visualiser les données géographiques sur d'autres projections et avec des arrière-plans différents (élévation, NDVI, climat), et cela ressemble à la première chose à faire est de trouver un projection du raster nu.
Ahmed Fasih
Pour autant que je sache, QGIS n'a pas la possibilité de calculer la projection d'une carte. Dans le cas de la carte Bar Sauma, il était facile de deviner qu'il s'agissait d'EPSG: 4326 simplement en comparant la distorsion en haut avec celle des autres cartes du monde de Plate Carree. En ce qui concerne la carte de l'Empire mongol de Wikipédia, il ne semble pas s'agir de Plate Carree ou de World Mercator. Je pense que certaines des personnes qui font des cartes pour Wikipedia utilisent des projections lat / lon équirectangulaires personnalisées, comme Plate Carree mais pas centrées sur Lat 0-deg, Lon 0-deg. Il est possible que cette carte en soit une. Je vais creuser.
nhopton
Est-ce que la technique de «force brute» que les deux autres questions sur StackExchange que j'ai liées n'est pas compatible avec QGIS? L'un d'eux semble utiliser GDAL avec diverses hypothèses sur la projection sous-jacente, qui devrait être scriptable à partir de QGIS? Merci encore!
Ahmed Fasih
Le problème est que cette méthode suppose que l'image est déjà géoréférencée, mais à un CRS inconnu (projection). Les images avec lesquelles vous allez travailler seront probablement numérisées à partir de livres ou téléchargées à partir d'endroits comme Wikipedia et vous devrez les géoréférencer vous-même. QGIS dispose d'une méthode de géoréférencement, la spline en plaque mince (TPS), qui permet d'utiliser un grand nombre de points de contrôle. La méthode TPS peut être utilisée pour «tirer» des cartes raster en forme et est très puissante, mais elle suppose que vous avez les coordonnées d'un bon nombre de points de contrôle. Pseudo.
nhopton le
5

La carte utilise la latitude et la longitude comme s'il s'agissait de coordonnées cartésiennes. Il s'agit d'une version de la projection équirectangulaire ou "Plate Carree". Ainsi, tout ce que vous avez à faire est de décaler et de redimensionner les coordonnées x et y pour obtenir respectivement la longitude et la latitude.

L'outil de géoréférencement d'ArcGIS 10.0 permet de créer rapidement des liens pour estimer la transformation. Bien qu'il ne signale pas la transformation, il est possible d'exporter la table de liens Ret d'y estimer les coefficients. En plaçant le pixel central dans le coin supérieur gauche de la version haute résolution de l'image à (0,0), le résultat est

latitude = 75.71992178 + 0.0427073 * row index
longitude = -18.86514764 + 0.04275506 * column index

Les contours du pays noir de la couche de référence (fournis par ESRI avec les versions antérieures d'ArcView) montrent à quel point les couches coïncident après l'application d'une telle transformation. Les erreurs quadratiques moyennes sont de 6 à 7 km le long de chaque axe: environ un pixel dans l'image, presque aussi bon que l'on est en droit d'attendre.

Carte géoréférencée

whuber
la source
0

La carte est susceptible d'être schématique et l'emplacement des villes peut ne pas être parfait, ce qui les rend risquées à utiliser lors du géoréférencement.

La meilleure approche pourrait être de capturer la carte à l'œil en utilisant une base appropriée dans QGIS. Il ne correspondra pas parfaitement à l'original, mais les itinéraires sont susceptibles d'être indicatifs, il est donc peu probable que vous perdiez toute précision.

Matthew Snape
la source
Excellents points, merci, je ferai comme vous le conseillez. Existe-t-il un moyen simple de récupérer la projection et les paramètres de l'image?
Ahmed Fasih