Menulis file dunia saat mengekspor TIFF menggunakan Pemetaan ArcPy?

8

Menurut dokumentasi, opsinya adalah: Sintaks

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

Namun, ini berfungsi:

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)

tapi ini:

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

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

Apakah saya melakukan sesuatu yang salah dengan Boolean untuk world_file?

DanDye
sumber

Jawaban:

11

Saya percaya opsi file Dunia hanya tersedia jika Anda mengekspor dari bingkai data, bukan tata letak halaman.

Dari Mengekspor Peta Anda

Opsi spesifik TIFF

Format file TIFF memiliki kemampuan tambahan untuk menyimpan informasi georeferensi secara internal. Ini adalah GeoTIFF. Untuk membuat GeoTIFF, klik panah drop-down Simpan sebagai jenis dan klik TIFF, klik panah Opsi untuk memperluas opsi, lalu klik tab Format dan periksa Tulis Tag GeoTIFF. Opsi ini hanya tersedia saat Anda mengekspor saat dalam tampilan data .

Meskipun informasi ini berkaitan dengan ekspor dari UI, logika yang sama mungkin berlaku untuk ArcPy.

Saya baru saja menguji ini, dan opsi file dunia bekerja dengan bingkai data, sedangkan "PAGE_LAYOUT" menghasilkan kesalahan. Ini masuk akal karena tata letak halaman dalam koordinat halaman yaitu (0,0) hingga (page_width, page_height) bukan koordinat dunia nyata.

Peringatan , alat ini tidak berfungsi seperti yang Anda harapkan. (Saya menggunakan ArcGIS Desktop 10.0 SP1). Jika ukuran gambar yang ditentukan tidak memiliki rasio aspek yang sama dengan bingkai data, bagian tak terlihat dari bingkai data diekspor untuk mengisi gambar. Namun, penskalaan x dan y piksel dalam file dunia didasarkan pada luasan bingkai data yang ditunjukkan, bukan diperluas untuk gambar.

Jika Anda menggunakan alat UI (File-> Export Map ...), Anda akan melihat bahwa ukuran gambar sudah disetel ke rasio aspek bingkai data dan Anda tidak dapat mengubah ukuran gambar kecuali dengan mengubah resolusi gambar.

Cara mengatasinya adalah untuk mendapatkan luasan bingkai data, dan kemudian menghitung rasio aspek gambar yang cocok. Seperti itu:

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
sumber
hanya mengoreksi dari Frame Data (koordinat dunia nyata)
Mapperz
0

Saya yakin yang Anda cari adalah: mxd.pageSize.height * (conversion_factor * DPI)

Anda dapat menggabungkan conversion_factor * DPI menjadi satu konstanta, atau memisahkannya dan mengonversi antara unit apa pun yang ditentukan di bagian Ukuran Halaman Peta pada Halaman dan jendela Pengaturan Cetak.

Joseph Armbruster
sumber
0

Biarkan ExportToTIFF membuat geotiff. Kemudian gunakan ExportRasterWorldFile_management (data_management \ raster \ raster properties) untuk menghasilkan file dunia. Alat ini valid di semua level lisensi.

Klewis
sumber