¿Cómo generar archivos mundiales para la trama X?

8

Dada una lista de rásteres georreferenciados, alrededor de cien, ¿cuál es el método más simple para generar archivos mundiales para cada uno?

En este caso, los rásteres de origen son geotiff con georreferenciación incrustada o .BIL con .PRJ adjunto, pero la solución ideal no debería importarle cuál sea el formato. Espero evitar duplicar datos.

Tengo a mi disposición Arcgis 10 (Arcinfo & Spatial Analyst), GDAL Utilities (gdal v1.8.0) y Quantum GIS 1.8.

wilkie mate
fuente
generar archivos mundiales no siempre asegurará que un software pueda leer el archivo mundial para georreferenciar. Geotiff es con lo que he tenido más suerte en diferentes programas.
Brad Nesom el
¿Estás tratando de leer el formato EHdr? gdal.org/frmt_various.html
falcacibar
1
el software para el que estoy preparando estos no comprende la georreferenciación integrada o los archivos externos .prj (proj4 o wkt). Solo mira .wld (o .blw, .jpw, ... etc.).
matt wilkie

Respuestas:

12

Si está utilizando una compilación reciente de QGIS, es posible que ya tenga acceso a la herramienta de proyección de extracto mencionada aquí .

Del artículo: "Lo que esto le permite hacer es averiguar en qué proyección están sus rásteres. Luego lo exporta a un archivo .WLD. También le permite crear archivos .PRJ. Si tiene instaladas las herramientas GDAL (y activadas) ), encontrará esta nueva herramienta en Ráster> Proyecciones> Proyección de extracción " .

También incluye una opción de procesamiento por lotes, que es ideal para sus propósitos.

R Thiede
fuente
¡así que si hubiera esperado un día podría haberme ahorrado un par de horas de trabajo! pero no habría aprendido nada, así que lo llamaré incluso. ;-) Al leer el registro de confirmación, además de todas las bondades de la interfaz de usuario, lo que esta herramienta qgis hace mejor que la mía es manejar nombres de archivo unicode y escribir un archivo .prj externo de estilo esri. Lo que no hace es seguir la convención de nombrar la extensión después de la entrada, por ejemplo, para un jpeg escribe .wld en lugar de .jgw, que puede o no importar a otros. Aceptar esto como la respuesta correcta a pesar de que no lo usé, ya que es la solución más completa.
Matt Wilkie
7

Impulsado por el puntero Mike Toews a GetGeoTransform , logré crear un pequeño script gdal python que crea archivos mundiales para cualquier ráster georreferenciado compatible (creo). El código completo está aquí: gdal-makeworld.py. Los bits esenciales son:

geotransform = dataset.GetGeoTransform()

if geotransform is not None:
    x, x_size, x_rot, y, y_rot, y_size = geotransform
    # correct for centre vs corner of pixel
    x = x_size/2+x
    y = y_size/2+y
    world_file.write('%s\n' % x_size)
    world_file.write('%s\n' % x_rot)
    world_file.write('%s\n' % y_rot)
    world_file.write('%s\n' % y_size)
    world_file.write('%s\n' % x)
    world_file.write('%s\n' % y)
    world_file.close()

''' geotransform tuple key:
    [0] /* top left x */
    [1] /* w-e pixel resolution */
    [2] /* rotation, 0 if image is "north up" */
    [3] /* top left y */
    [4] /* rotation, 0 if image is "north up" */
    [5] /* n-s pixel resolution */
'''

Un agradecimiento adicional a Schuyler Erle por escribir gdalcopyproj.pyque utilicé como punto de partida.

Hat tip @AlisterH para "correcto para el centro frente a la esquina del píxel" , 30/05/2019

wilkie mate
fuente