¿Escribir un archivo mundial al exportar TIFF usando ArcPy Mapping?


8

Según la documentación, las opciones son: Sintaxis

ExportToTIFF (map_document, out_tiff, {data_frame}, {df_export_width}, {df_export_height}, {resolution}, {world_file}, {color_mode}, {tiff_compression}, {geoTIFF_tags})

Sin embargo, esto funciona:

import arcpy.mapping
mxd = arcpy.mapping.MapDocument("CURRENT")
arcpy.mapping.ListDataFrames(mxd)
arcpy.mapping.ExportToTIFF(mxd,r"D:\out2.tif","PAGE_LAYOUT",640,480,96)

pero esto:

arcpy.mapping.ExportToTIFF(mxd,r"D:\out2.tif","PAGE_LAYOUT",640,480,96,True)

rendimientos: Runtime error <type 'exceptions.TypeError'>: PageLayoutObject: Error in executing ExportToTIFF

¿Estoy haciendo algo mal con ese booleano para world_file?

Respuestas:


11

Creo que la opción de archivo Mundial solo está disponible si exporta desde un marco de datos, no desde el diseño de página.

Desde exportar su mapa

Opciones específicas de TIFF

El formato de archivo TIFF tiene la capacidad adicional de almacenar información de georreferenciación internamente. Este es un GeoTIFF. Para crear un GeoTIFF, haga clic en la flecha desplegable Guardar como tipo y haga clic en TIFF, haga clic en la flecha Opciones para expandir las opciones, luego haga clic en la pestaña Formato y marque Escribir etiquetas GeoTIFF. Esta opción solo está disponible cuando exporta mientras está en la vista de datos .

Si bien esta información se relaciona con la exportación desde la interfaz de usuario, la misma lógica probablemente se aplica a ArcPy.

Acabo de probar esto, y la opción de archivo mundial funciona con un marco de datos, mientras que "PAGE_LAYOUT" produce un error. Esto tiene sentido porque el diseño de la página está en coordenadas de página, es decir (0,0) a (ancho_página, altura_página) no coordenadas del mundo real.

Advertencia , esta herramienta no funciona como es de esperar. (Estoy usando ArcGIS Desktop 10.0 SP1). Si el tamaño de imagen especificado no tiene la misma relación de aspecto que el marco de datos, se exporta una parte invisible del marco de datos para llenar la imagen. Sin embargo, la escala de píxeles x e y en el archivo mundial se basa en la extensión del marco de datos que se muestra, no tan expandida para la imagen.

Si usa la herramienta UI (Archivo-> Exportar mapa ...), notará que el tamaño de la imagen está preestablecido a la relación de aspecto del marco de datos y no puede cambiar el tamaño de la imagen excepto cambiando la resolución de la imagen.

Una solución es obtener las extensiones del marco de datos y luego calcular la relación de aspecto de la imagen para que coincida. Al igual que:

import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
ar = df.extent.height / df.extent.width
arcpy.mapping.ExportToTIFF(mxd,r"C:\out.tif",df,1024,1024*ar,96,True)

corregir sólo de una trama de datos (coordenadas del mundo real)
Mapperz

0

Creo que lo que está buscando es: mxd.pageSize.height * (conversion_factor * DPI)

Puede combinar conversion_factor * DPI en una constante, o mantenerlos separados y convertir entre las unidades que se especifiquen en la sección Tamaño de página del mapa de la ventana Configuración de página e impresión.


0

Deje que ExportToTIFF cree un geotiff. Luego, use ExportRasterWorldFile_management (data_management \ raster \ raster properties) para generar el archivo mundial. Esta herramienta es válida en todos los niveles de licencia.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.