Antecedentes Esta es mi segunda pregunta relacionada a la georreferenciación de desnudos de los mapas raster con el fin de volver a visualizarlas en diferentes sistemas de coordenadas y en conjunción con otras capas de datos. La pregunta anterior es en Convertir una arbitraria de meta-datos-mapa de imágenes en el proyecto de QGIS
Problema Mi objetivo es la georreferencia de este mapa:
Esta no parece ser la Placa-Carrée. Así, en QGIS, he creado varios razonable de puntos de control, que para la integridad adjunto en la parte inferior [ref:1]. I proporcionar QGIS Georeferencer el mismo objetivo SRS como mi archivo de proyecto, EPSG:4326. Puedo obtener excepcionalmente buenos resultados con Helmert y el polinomio se transforma, pero conseguir una imagen razonable con thin plate spline (lo que hace que la resultante geoestimate ir a través de mis puntos de control). Sin embargo, incluso este resultado es pobre, por ejemplo, en latitudes más altas (véase la costa rusa del norte de Japón). Esta es una captura de pantalla de mi QGIS pantalla con un Natural de la Tierra de fondo.
Ruta alternativa he intentado un ejercicio similar con el mucho más fácil-a-uso de la herramienta en MapWarper: ver el resultado y los puntos de control en http://mapwarper.net/maps/758#Preview_Map_tab donde puedo obtener peores resultados (probablemente debido al hecho de que he añadido menos puntos de control).
Preguntas en pocas palabras
- ¿Hay algún truco que me falta para conseguir una buena georreferencia?
- Es esta proyección reconocible al instante?
- En un Sistema de Coordenadas Desconocido en el viejo dibujo,
gdaltransform
es sugerido para transformar varios de coordenadas de puntos en una diana varios SRS, con el objetivo de que en realidad el descubrimiento de la proyección de los parámetros utilizados para generar el mapa original. He intentado algo como esto: después de guardar mi QGIS lista de puntos, hice algunos cadena de procesamiento para obtener una lista separada por espacios largos/lats viacat eurasian-steppe-gcp.points | tail -n+2 | cut -d, -f1-2 | sed 's/,/ /'> tmp.txt
e introducir el archivo resultante a la gdaltransform:gdaltransform -s_srs EPSG:3785 -t_srs EPSG:4326 < tmp.txt
y la conmutación de las_srs
yt_srs
banderas (el proyecto utiliza EPSG:4326). Sé que estoy disparando en la oscuridad, con la esperanza de tener suerte, así que no me sorprendió cuando yo no podía hacer sentido de las salidas. Alguien puede ampliar en cómo me gustaría utilizar este método para encontrar la mejor estimación de la fuente del mapa de proyección y proyección de los parámetros? Mi idea detrás de esto es que en lugar de jugar con la colocación de una miríada de puntos de control para una buena georreferencia, podría ser más fácil conseguir un casi perfecto de georreferencia con menos puntos de control, sólo el bucle a través de todos los sistemas de coordenadas? En qué consiste la validación cruzada de cada punto en contra de todos los demás, para cada uno de los CRS bajo prueba?
Me gustaría obtener una comprensión de este algoritmo o de georeferenciación para que yo pueda automatizar el proceso---me encuentro con este tema todo el tiempo, y hasta que los creadores de contenido a dejar de tratar a sus mapas como uno de creaciones nunca para ser integrado con otros contenidos, no espero a parar.
Referencias
[ref:1] QGIS GCP archivo:
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
No actualizar
El análisis de van der Grinten escribí una herramienta de Python para que se ajuste a Gcp cualquier proyección que Proj4 apoya (a través de Pyproj) y la aplicó a la par de las proyecciones sugieren en las respuestas. El código fuente (un poco descuidado, me disculpo de antemano) así como la actualización de la Gcp están disponibles en https://github.com/fasiha/steppe-map
El van der Grinten tiene 1 parámetro a optimizar, y aquí está la imagen resultante (utilizando la última imagen de la Britannica, muchas gracias a ellos, dando una alta resolución y un mapa actualizado (a pesar de que todavía carece de proyección de datos)).
Van der Grinten tiene un error relativo de 0,035 entre las Gcp y mejor ajuste de los puntos, que es lo peor de la manojo he probado, y la costa de superposición tiene que salir cualitativamente.
(Puede ser de ayuda si usted abre la imagen en su propia ficha, es bastante alta-res. También podrás ver las flechas verdes indican la georreferenciados puntos (que debe coincidir con puntos de referencia significativos en la imagen), así como las flechas rojas indicando donde los puntos están montados (que debe coincidir con los mismos puntos de referencia en la costa de superposición)---la desviación entre los dos puede ayudar al ojo a ver las diferencias entre la imagen y el ajuste.)
Análisis de Albers equal-area Intentando lo mismo con el Albers equal-área de proyección (que es el mismo como "Albers conformal Conic"? lo siento por mi ignorancia). Este ajuste, la participación de un 4-dimensional parámetro de ajuste, es mejor, con un error relativo de 0.025, pero se ve bastante pobre, sin embargo.
Análisis de Robinson y Eckert V proyecciones I ajuste a una serie de pseudocylindrical proyecciones apoyado por Pyproj (todos los que he podido encontrar que había un parámetro libre) y se encontró que el Robinson y el Eckert V proyecciones hizo el "mejor" en términos de error relativo entre el Gcp y el conjunto de los puntos, tanto con errores relativos de 0.015.
Aquí está el Robinson:
Y aquí está el Eckert V.
Nota: las desviaciones de los armarios de la costa de la imagen de la costa. Creo que con esto puedo concluir que el mapa es ninguna de las anteriores?
Winkel tripel: posible solución?
Después secuencialmente tratando de que cada proyección en este Proj manual de 1990 (actualizado a 2003) ftp://ftp.remotesensing.org/proj/OF90-284.pdf finalmente llegué a la Winkel tripel de proyección. Esto produce el menor cuantitativa de los errores (0.011) y la línea de costa es uniformemente bastante buena (o, equivalentemente, de manera uniforme un poco mal). He leído que esta es la proyección de la Sociedad Geográfica Nacional, lo que significa que es famoso, y esto añade peso a la candidatura de esta proyección para Britannica del mapa. El amueblada SRS: +units=m +lon_0=47.0257707403 +proj=wintri
.
(Disculpas por el cambio de la línea de la costa de color gris. Si esto ofende a alguien, me puede producir una versión en azul.)
Voy a intentar modificar mi Gcp para intentar conducir el error más abajo. En la media hora, puedo convencer a otros de que esta es la solución? Por favor enviar sus respuestas y voy a estar agradecido.