5 votos

Cambio de proyección de imagen usando Python

La imagen de la esquina coordenadas son conocidas:

  • Arriba a la izquierda: (70.20315, 20.92749)
  • Arriba a la derecha: (70.20315, 31.45240)
  • Abajo a la izquierda: (59.70571, 20.92749)
  • Abajo a la derecha: (59.70571, 31.45240)

(Básicamente mapa de Finlandia y un poco de Suecia/Noruega/Rusia)

No estoy seguro de lo que es la actual proyección nombre; +1 en la latitud y la longitud es la distancia constante en la imagen (que no es el caso con la proyección de Mercator).

No podía encontrar una manera de cambiar la proyección de una imagen de Google maps superposición de imagen, preferiblemente usando Python. Python no es obligatoria, pero la interfaz de línea de comandos.

Es posible hacer eso con pyproj y PIL, pero no he sido capaz de averiguar cómo hacerlo. También encontré GDAL, y más específicamente gdalwarp, pero no podía encontrar opciones para cambiar la proyección de una forma correcta.

Example image

3voto

Pablo Puntos 6414

Una solución es usar gdalwarp, -s_srs y -t_srs opciones que se pueden utilizar las definiciones o los códigos EPSG se encuentran en este sitio.

Dado que usted no sabe el origen de srs puede probar algunas opciones y comprobar los resultados con otro datos fiables. Pero es más recomendable que rastrear el origen de esta imagen y tratar de encontrar el srs definición.

Si la imagen es un geotiff, ya puede contener el srs definición. Se puede comprobar con gdalinfo. GDAL.

2voto

Symmetric Puntos 158

Debido a su esquina coordenadas de la forma de un cuadrado y su imagen es también la plaza, yo diría que estaba en una "Placa de Carree"/equidistante cilíndrica proyección, que corresponde a EPSG:32663. Así que un gdalwarp llame diga algo como:

gdalwarp -s_srs EPSG:32663 -t_srs EPSG:4326 -r cubic srcimage.tif destimage.tif

Elige tu propia -t_srs parámetro si WGS84 no es lo que usted desea, en cuyo caso es probable que tengas un -dstnodata opción, y usted puede necesitar para jugar aorund con diferentes -r parámetros.

0voto

Nick Hodges Puntos 148

Gracias por las respuestas. Sin embargo, el extenso ensayo-y-error mostraron que funcionaba sin especificar fuente de proyección. Pasos para reproducir:

Añadir puntos de control a TIF (por supuesto, lo primero convert mapimage.png mapimage.tif):

gdal_translate mapimage.tif mapimage_georeffed.tif -gcp 2300 2300 31.45240 59.70571 -gcp 0 0 20.92749 70.20315 -gcp 2300 0 31.45240 70.20315 -gcp 0 2300 20.92749 59.70571 -a_srs +proj=longlat

Entonces, GDAL enlaces python incluyen gdal2tiles.py, lo que genera las baldosas sobre el derecho de proyección de mapas, y también de ejemplo de mapa de páginas.

Para el registro, no estoy totalmente seguro de que la proyección es exactamente correcto, pero a través de esa zona, parece ser, al menos, lo suficientemente bueno.

0voto

Su descripción de la proyección sugiere Equirectangular como merseyviking dijo

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X