Escrevendo arquivo mundial ao exportar TIFF usando o ArcPy Mapping?

8

De acordo com a documentação, as opções são: Sintaxe

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

No entanto, isso 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)

mas isso:

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

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

Estou fazendo algo errado com esse arquivo booleano para world_file?

DanDye
fonte

Respostas:

11

Acredito que a opção de arquivo World esteja disponível apenas se você exportar de um quadro de dados, não do layout da página.

De Exportando seu Mapa

Opções específicas de TIFF

O formato de arquivo TIFF tem a capacidade adicional de armazenar informações de georreferenciamento internamente. Este é um GeoTIFF. Para criar um GeoTIFF, clique na seta suspensa Salvar como tipo e clique em TIFF, clique na seta Opções para expandir as opções, clique na guia Formato e marque Escrever tags GeoTIFF. Esta opção está disponível apenas quando você exporta enquanto estiver na exibição de dados .

Embora essas informações estejam relacionadas à exportação da interface do usuário, a mesma lógica provavelmente se aplica ao ArcPy.

Acabei de testar isso e a opção de arquivo mundial funciona com um quadro de dados, enquanto o "PAGE_LAYOUT" gera um erro. Isso faz sentido porque o layout da página está nas coordenadas da página, ou seja, (0,0) a (largura da página, altura da página) e não às coordenadas do mundo real.

Atenção , esta ferramenta não funciona como o esperado. (Estou usando o ArcGIS Desktop 10.0 SP1). Se o tamanho da imagem especificado não tiver a mesma proporção que o quadro de dados, parte invisível do quadro de dados será exportada para preencher a imagem. No entanto, a escala de pixels xey no arquivo mundial é baseada nas extensões do quadro de dados mostrado, não como expandido para a imagem.

Se você usar a ferramenta da interface do usuário (Arquivo-> Exportar mapa ...), notará que o tamanho da imagem está predefinido para a proporção da moldura de dados e não poderá alterar o tamanho da imagem, exceto alterando a resolução da imagem.

Uma solução é obter as extensões do quadro de dados e calcular a proporção da imagem para corresponder. Igual a:

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)
Regan Sarwas
fonte
correto somente a partir de um quadro de dados (coordenadas do mundo real)
Mapperz
0

Acredito que o que você está procurando é: mxd.pageSize.height * (conversion_factor * DPI)

Você pode combinar conversion_factor * DPI em uma constante ou mantê-los separados e converter entre as unidades especificadas na seção Tamanho da página de mapa da janela Configuração da página e impressão.

Joseph Armbruster
fonte
0

Deixe ExportToTIFF criar um geotiff. Em seguida, use ExportRasterWorldFile_management (dados_management \ raster \ raster properties) para gerar o arquivo mundial. Esta ferramenta é válida em todos os níveis de licença.

klewis
fonte