Membuat tabel ringkasan simbologi semua kumpulan data dalam banyak MXD?

9

Ini terkait dengan mempertahankan simbologi ESRI berikut di Mapinfo TAB . Sebagai langkah awal (dalam arcpy) saya ingin mengakses simbologi semua dataset dan membuat dokumen yang memiliki rincian simbologi seperti pada grafik di bawah ini. masukkan deskripsi gambar di sini

Apakah ini mungkin (haruskah saya menginvestasikan waktu untuk menyelesaikannya) atau jika itu tidak mungkin, saya hanya perlu melakukannya secara manual pada ratusan MXD (: -

Untuk memecah langkah-langkahnya - saya harap saya bisa mengotomatisasi setidaknya sebagian dari proses.

  1. menggulir mxd dan mendapatkan dataset yang aktif tidak masalah

    lyrFile = arcpy.mapping.Layer jika lyrFile.visible == Benar:

  2. ketika menemukan dataset, ia harus membuat file .lyr (karena kebanyakan hanya file shp / gdb) dan kemudian AttribXXX = lyrFile.xxx

di mana XXX dan xxx berada

BRIGHTNESS = lyrFile.brightness

(format di atas sebagai berikut)

CONTRAST contrast
DATASETNAME datasetName
DATASOURCE dataSource
DESCRIPTION description
LABELCLASSES labelClasses
LONGNAME longName
NAME name
SHOWLABELS showLabels
TRANSPARENCY transparency
WORKSPACEPATH A layer's workspace or connection file path

Masalahnya adalah saya tidak dapat menemukan apa pun yang mendapatkan RGB, tipe garis / titik / poligon, bobot garis, font, dll. Jika ini dapat ditemukan maka langkah selanjutnya

  1. tulis masing-masing nilai di atas ke CSV (mudah) ... misalnya (ini harus diperluas)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
    
  2. Jika memungkinkan, jpg simbologi harus dibuat seperti pada contoh dan tautannya ditambahkan ke csv.

Apakah banyak yang meminta arcpy?

GeorgeC
sumber
Ini dimungkinkan dengan ArcObjects tetapi jelas tidak arcpy.
blah238
Terima kasih. Adakah yang bisa membantu dengan pemrosesan arcobjects itu?
GeorgeC
Hanya dapat menunjukkan tempat Anda memulai: ArcObjects .NET SDK Help ; Bekerja dengan simbol dan warna dan Bekerja dengan lapisan dan penyaji . Jika tidak ada yang lain mungkin setelah membaca yang Anda akan dapat mendefinisikan persyaratan Anda lebih tepat dan membatasi ruang lingkup pekerjaan, karena itu akan banyak pekerjaan, saya pikir.
blah238
Ini contoh VB6 lama untuk mengekspor simbol gaya: Style Dump . Periksa StyleDump.bas untuk dagingnya.
blah238

Jawaban:

3

Saya memecahkan masalah yang sama dengan mengkonversi dokumen MXD ke MSD (yang hanya file zip) jadi jika Anda mengubah ekstensi ke ".zip" dan membukanya Anda akan menemukan beberapa dokumen .xml yang berisi banyak informasi tentang bagaimana masing-masing lapisan dalam mxd ditampilkan. arcpy.ConvertToMSD Mungkin ada beberapa pekerjaan yang terlibat dalam mendapatkan informasi yang Anda inginkan tetapi harus ada di sana di suatu tempat. Semoga itu bisa membantu!

dango
sumber
Terima kasih atas ide mani ini. Ini sangat membantu. Kode yang dihasilkan dalam xml cukup kompleks, apakah Anda memprogram secara otomatis menangkap xml yang relevan dan jika demikian dapat Anda bagikan, jika tidak saya akan mulai bekerja pada aspek ini.
GeorgeC
Saya hanya tertarik pada dua nilai dalam xml sehingga apa pun yang saya miliki akan sangat sulit untuk dibangun. Tapi ada banyak tutorial xml python yang sangat bagus di luar sana jadi jika Anda siap meluangkan waktu membaca, saya yakin Anda akan menyelesaikan masalah. Selamat coding :)
dango