Améliorer les résultats du géoréférencement? [fermé]

13

Contexte C'est ma deuxième question concernant le géoréférencement des cartes raster nues afin de les visualiser à nouveau sur différents systèmes de coordonnées et en conjonction avec d'autres couches de données. La question précédente est à Convertir une image de carte arbitraire sans métadonnées en projet QGIS

Problème Mon objectif est de géoréférencer cette carte:

Steppe eurasienne, Encyc.  Brit.?

Il ne semble pas s'agir de Plate-Carrée. Donc, dans QGIS, j'ai créé plusieurs points de contrôle raisonnables, que pour l'intégralité j'ai attachés en bas [réf: 1]. Je fournis à QGIS Georeferencer le même SRS cible que mon fichier de projet, EPSG: 4326. J'obtiens des résultats exceptionnellement médiocres avec Helmert et les transformations polynomiales, mais j'obtiens une image raisonnable avec une spline en plaque mince (ce qui fait que la géoestimation résultante passe par mes points de contrôle). Cependant, même ce résultat est médiocre, par exemple aux latitudes plus élevées (voir la côte russe au nord du Japon). Il s'agit d'une capture d'écran de mon écran QGIS utilisant un arrière-plan Natural Earth.

Résultat de géoréférence QGIS, spline en plaque mince

Chemin alternatif J'ai essayé un exercice similaire avec l'outil beaucoup plus facile à utiliser de MapWarper: voir les résultats et les points de contrôle sur http://mapwarper.net/maps/758#Preview_Map_tab où j'obtiens de moins bons résultats (probablement en raison du fait que j'ai ajouté moins de points de contrôle).

Questions en bref

  1. Y a-t-il des astuces qui me manquent pour obtenir une bonne géoréférence?
  2. Cette projection est-elle immédiatement reconnaissable?
  3. Au système de coordonnées inconnu sur l'ancien dessin , il gdaltransformest suggéré de transformer plusieurs points de coordonnées en plusieurs SRS cibles, dans le but de découvrir les paramètres de projection utilisés pour générer la carte d'origine. J'ai essayé quelque chose comme ceci: après avoir enregistré ma liste de points QGIS, j'ai effectué un traitement de chaîne pour obtenir une liste de long / lats séparés par un espace via cat eurasian-steppe-gcp.points | tail -n+2 | cut -d, -f1-2 | sed 's/,/ /'> tmp.txtet entrer le fichier résultant dans gdaltransform: gdaltransform -s_srs EPSG:3785 -t_srs EPSG:4326 < tmp.txtet basculer le s_srsett_srsdrapeaux (le projet utilise EPSG: 4326). Je sais que je tourne dans le noir, dans l'espoir d'avoir de la chance, donc je n'ai pas été surpris quand je n'ai pas pu comprendre les sorties. Quelqu'un peut-il expliquer comment j'utiliserais cette méthode pour trouver la meilleure estimation de la projection de la carte source et des paramètres de projection? Ma pensée derrière cela est que plutôt que de jouer avec une myriade de points de contrôle pour une bonne géoréférence, pourrait-il être plus facile d'obtenir une géoréférence presque parfaite avec moins de points de contrôle, en parcourant simplement tous les systèmes de coordonnées communs? Cela implique-t-il une validation croisée de chaque point par rapport à tous les autres, pour chaque CRS testé?

Je voudrais comprendre cet algorithme ou le géoréférencement afin que je puisse automatiser le processus --- Je rencontre ce problème tout le temps, et jusqu'à ce que les créateurs de contenu cessent de traiter leurs cartes comme des créations uniques à ne jamais intégrer avec d'autres contenus, je ne m'attends pas à m'arrêter.

Les références

[ref: 1] Fichier GCP QGIS:

mapX,mapY,pixelX,pixelY,enable
142.632649100000009,54.453595900000003,505.941176470588232,-95.220588235293974,1
154.934252200000003,59.559921699999997,536.411764705882206,-52.779411764705742,1
80.080158100000006,9.657192300000000,291.558823529411711,-322.661764705882206,1
10.448442600000000,57.819128900000003,21.676470588235190,-103.926470588235134,1
34.007173000000002,27.761438299999998,101.117647058823422,-244.852941176470466,1
50.950890399999999,11.862196600000001,171.852941176470495,-313.955882352941046,1
29.713217199999999,60.024133200000001,90.779411764705799,-92.499999999999829,1
60.000000000000000,0.000000000000000,208.308823529411683,-362.382352941176350,1
69.867506500000005,66.639146199999999,224.088235294117567,-33.191176470588061,1
27.276107100000001,71.049154799999997,89.147058823529306,-21.764705882352814,1
140.000000000000000,0.000000000000000,536.955882352941217,-362.926470588235190,1
20.000000000000000,0.000000000000000,43.441176470588132,-362.926470588235190,1
20.196882700000000,31.243024100000000,47.249999999999901,-231.794117647058698,1
9.171861099999999,42.848309999999998,8.073529411764603,-175.205882352941046,1
131.955786100000012,43.196468600000003,481.999999999999943,-162.691176470588090,1
73.813303700000006,45.169367200000003,256.735294117646959,-161.602941176470438,1
50.602731800000001,44.589102900000000,168.044117647058727,-167.588235294117510,1
121.394975900000006,18.941421099999999,455.882352941176407,-284.029411764705742,1
103.987047000000004,1.417439300000000,389.499999999999943,-357.485294117646959,1
109.325478599999997,55.962283100000001,380.249999999999943,-98.485294117646902,1
31.454010100000001,46.562001500000001,95.132352941176379,-158.882352941176322,1
43.639560299999999,68.844150499999998,137.573529411764611,-40.264705882352814,1

Non mise à jour

Analyse de van der Grinten J'ai écrit un outil Python pour adapter les GCP à toute projection prise en charge par Proj4 (via Pyproj) et l'ai appliqué aux quelques projections suggérées dans les réponses. Le code source (quelque peu bâclé, je m'excuse à l'avance) ainsi que les GCP mis à jour sont disponibles sur https://github.com/fasiha/steppe-map

Le van der Grinten n'a qu'un seul paramètre à régler, et voici l'image résultante (en utilisant la dernière image de Britannica, merci beaucoup pour avoir donné une carte aussi haute résolution et mise à jour (bien qu'il manque encore des données de projection)).

Coupe Van der Grinten

Van der Grinten a une erreur relative de 0,035 entre les GCP et les points les mieux ajustés, ce qui est le pire du groupe que j'ai essayé, et la superposition du littoral le confirme qualitativement.

(Cela peut être utile si vous ouvrez cette image dans son propre onglet, elle est assez haute résolution. Vous verrez également des flèches vertes indiquant les points géoréférencés (ils devraient correspondre à des repères significatifs sur l'image) ainsi que des flèches rouges indiquant où ces points sont ajustés (ils doivent correspondre aux mêmes points de repère sur la superposition du littoral) --- l'écart entre les deux peut aider l'œil à voir les différences entre l'image et l'ajustement.)

Analyse de la zone égale d'Albers Essayer la même chose avec la projection de la zone égale Albers (qui est la même que "Conique conforme Albers"? Désolé pour mon ignorance). Cet ajustement, impliquant un ajustement de paramètre à 4 dimensions, est meilleur, avec une erreur relative de 0,025, mais semble assez médiocre néanmoins.

Coupe Albers à surface égale

Analyse des projections Robinson et Eckert V J'ai ajusté un certain nombre de projections pseudocylindriques prises en charge par Pyproj (tout ce que j'ai pu trouver qui avait un paramètre libre) et j'ai trouvé que les projections Robinson et Eckert V faisaient le "meilleur" en termes d'erreur relative entre les GCP et les points ajustés, tous deux avec des erreurs relatives de 0,015.

Voici le Robinson:

Coupe Robinson

Et voici l'Eckert V.

Eckert V fit

Notez les écarts du littoral ajusté par rapport au littoral de l'image. Je pense qu'avec cela, je peux conclure que la carte n'est rien de ce qui précède?

Tripel Winkel: solution possible?

Après avoir essayé séquentiellement chaque projection dans ce manuel Proj de 1990 (mis à jour en 2003) ftp://ftp.remotesensing.org/proj/OF90-284.pdf je suis finalement arrivé à la projection tripel de Winkel. Cela produit les erreurs quantitatives les plus faibles (0,011) et le littoral est uniformément assez bon (ou de manière équivalente, uniformément légèrement mauvais). J'ai lu qu'il s'agit de la projection de la National Geographic Society, ce qui signifie qu'elle est célèbre, et cela ajoute du poids à la candidature de cette projection pour la carte de Britannica. Le SRS équipé: +units=m +lon_0=47.0257707403 +proj=wintri.

Coupe tripelée Winkel

(Toutes mes excuses pour avoir changé la couleur du littoral en gris. Si cela offense quelqu'un, je peux produire une version bleue.)

J'essaierai de modifier mes GCP pour essayer de réduire l'erreur plus bas.

Ahmed Fasih
la source
Cela devrait être une projection de Mercator (les parallèles ne sont pas équidistants).
bhell
1
Je me trompe: Mercator devrait bien sûr avoir des méridiens parallèles. Peut-être van der Grinten ?
bhell
Avez-vous essayé d'ajouter des points de contrôle dans l'extrême nord? Chaque endroit a l'air bien, mais il semble qu'il manque plus d'informations.
underdark
1
@bhell Van der Grinten est une excellente supposition, mais elle ne correspond pas tout à fait. La projection semble être la même que sur cette carte (qui arbore un réticule), également réalisée récemment par l'Encyclopedia Britannica. C'est une sorte de projection pseudo-polyconique sous un aspect équatorial centré sur le méridien premier, mais je ne le reconnais pas. Demander à l'Encyclopedia Britannica est une bonne idée.
whuber
2
Ah, donc l'image ne peut pas être convertie en projection de Van der Grinten (que je connais parce qu'elle est utilisée dans une carte `` à l'envers '' sur mon mur :) via n'importe quelle transformation affine. Bon à savoir!
Ahmed Fasih

Réponses:

3

D'après une première analyse, nous pouvons voir que seuls l'équateur et le méridien central (passant approximativement par Moscou, environ 37,36 E de longitude) sont des lignes droites, tandis que tous les autres parallèles et méridiens sont des lignes courbes. Parmi les projections mondiales, ces caractéristiques suggèrent d'essayer celle de Van der Grinten (comme l'a fait Bhell dans un commentaire de la question), c'est-à-dire la projection cartographique mondiale standard de la National Geographic Society.

J'ai donc défini le projet SR dans QGIS comme SRS personnalisé World_Van_der_Grinten_I (Moscow):

+proj=vandg +lon_0=37.36 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

dérivé directement de EPSG:54029( World_Van_der_Grinten_I), ne modifiant que la longitude du méridien central. Ensuite, j'ai essayé de géoréférencer l'image en utilisant la transformation projective avec les GCP suivants choisis sur un réticule imaginaire passant par les graduations disponibles:

mapX,mapY,pixelX,pixelY,enable
-1930600.82502013398334384,-91.97837987072125543,43.52016129032256231,-362.54032258064518146,1
11412132.24015056900680065,-91.97837987233651802,537.54173867127497033,-362.73421498975926625,1
11804723.15208163484930992,8693410.00194966979324818,551.40707210100163138,-43.85864138853239069,1
-1651013.74878141912631691,7637895.72632359713315964,54.16126727366525984,-80.84230997717837397,1

C'est le résultat de la coutume World_Van_der_Grinten_I (Moscow)avec les GCP (frontière administrative du pays du monde en rouge):

entrez la description de l'image ici

Cette géoréférence pourrait être encore améliorée en choisissant des GCP plus précis (le grand problème est l'absence de graduations ou de graticule), mais il semble que la carte contienne certains artefacts, en particulier en Europe centrale et du Nord. Par exemple, considérons l'Allemagne qui semble s'effondrer en référence à l'Italie ou à la position relative de l'île Kolguyev (qui correspond assez bien) et de la côte russe (qui ne correspond pas du tout).

Le même résultat reprojeté en WGS84( EPSG:4326):

entrez la description de l'image ici

Antonio Falciano
la source
Merci beaucoup pour vos conseils et votre initiative. Je ne connais pas les transformations projectives, je vais donc en savoir plus à leur sujet. J'ai mis à jour le message principal avec une approche d'ajustement des paramètres qui essaie de trouver la projection de Van der Grinten qui correspond le mieux aux GCP (elle était assez proche de 37,36) et j'étais assez insatisfait de cet ajustement. Jetez un coup d'œil et faites-le moi savoir.
Ahmed Fasih
Oh, je vois que la transformation projective dans QGIS est une rotation + translation, qui devrait être facile à essayer avec mes GCP.
Ahmed Fasih
De manière générale (et aussi dans QGIS), la transformation projective n'est pas une roto-traduction. Le guide de l'utilisateur IMHO QGIS est erroné sur ce point. En outre, envisagez la possibilité qu'il puisse y avoir des artefacts faits à la main (?) Dans la carte basse résolution, comme il semble après ma géoréférence. DÈS QUE POSSIBLE je vais essayer de géoréférencer celui en haute résolution.
Antonio Falciano
Merci pour l'info, je vais mettre à jour mon QGIS et essayer la géoréférence de transformation projective. (J'essaierai également de regarder le code source de QGIS pour voir ce qu'il pourrait faire.) Si vous souhaitez gagner du temps et utiliser mes GCP, ils sont sur github.com/fasiha/steppe-map/blob /master/gcp.txt (enregistré par QGIS).
Ahmed Fasih
Veuillez consulter l'article mis à jour pour une solution possible: tripel Winkel.
Ahmed Fasih
1

il y a une forte distorsion à l'est ("en remontant"): ma conjecture est une conique conforme Albers. Ensuite, le méridien vertical semble être à 40 ° (-> votre méridien central) et le parallèle horizontal probablement autour de 40 ° N. Vous devez ensuite mesurer votre coordonnée XY à partir de l'axe à l'intersection du méridien 40 et du parallèle 40, puis essayez ...

Remarque: Les parallèles ne sont pas parallèles, vous pouvez donc exclure les projections cylindriques (Mercator) et pseudo-cylindriques (sinusoïdales, Eckert)

radouxju
la source
L'absence de marques de tic inclinées sur les côtés E et W de la carte suggère que ce n'est pas conique.
Martin F
C'est une bonne observation, mais il y a quelque chose d'étrange si vous regardez les graduations: elles ne sont pas inclinées, mais lorsque vous les joignez avec une ligne droite, elles ne sont ni parallèles ni horizontales. Par conséquent, ils doivent être incurvés et les tiques doivent être inclinées. De toute façon, s'il est conforme ce n'est probablement pas Lambert car la convergence vers le pôle créerait de très fortes distorsions. Peut-être Albers.
radouxju
Merci beaucoup pour les conseils et désolé d'avoir mis si longtemps à essayer de le mettre en œuvre. J'ai mis à jour le message principal en essayant d'ajuster les données à une projection à surface égale d'Albers à 4 dimensions (est-ce à cela que vous faites référence?) Aux GCP que j'ai extraits. Je ne suis pas satisfait de l'ajustement, et j'ai trouvé quelques autres projections pseudocylindriques (Eckert V et Robinson) qui font (quantitativement) un peu mieux, mais toujours pas assez près pour l'analyse du sujet de la carte. Tes pensées?
Ahmed Fasih