Birden çok MXD'de tüm veri kümelerinin sembolojisinin özet tablosunu oluşturuyor musunuz?


9

Bu, Mapinfo TAB'da aşağıdaki ESRI sembolünü tut ile ilgilidir . İlk adım olarak (arcpy cinsinden) tüm veri kümelerinin sembolojisine erişmek ve aşağıdaki grafiğe göre sembolojinin ayrıntılarını içeren bir belge oluşturmak istiyorum. resim açıklamasını buraya girin

Bu mümkün mü (çalışmak için zaman harcamak gerekir) ya da mümkün değilse ben sadece yüzlerce MXD 's elle yapmak çatlamak zorunda kalacak (: -

Adımları yıkmak için - umarım sürecin en azından bir kısmını otomatikleştirebilirim.

  1. mxd'ler arasında kaydırma yapmak ve açık olan veri kümelerini almak sorun değil

    lyrFile = arcpy.mapping.Layer, lyrFile.visible == Doğru:

  2. bir veri kümesi bulduğunda bir .lyr dosyası (çoğu sadece shp / gdb dosyaları olduğu için) ve sonra AttribXXX = lyrFile.xxx oluşturmalıdır.

burada XXX ve xxx vardır

BRIGHTNESS = lyrFile.brightness

(yukarıdaki biçime kadar)

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

Sorun şu ki, RGB, çizgi / nokta / çokgen türü, çizgi ağırlıkları, yazı tipi vb.

  1. yukarıdaki değerlerin her birini bir CSV'ye yazın (kolay) ... örneğin (bu genişletilmelidir)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
    
  2. Mümkünse, örnekte olduğu gibi sembolojinin bir jpg'si üretilmeli ve bunun bağlantısı csv'ye eklenmelidir.

Ben çok kavisli istiyor musunuz?


Bu ArcObjects ile mümkün olabilir, ancak kesinlikle arcpy değildir.
blah238

Teşekkürler. Herkes o zaman arcobjects işleme yardımcı olabilir mi?
GeorgeC

Yalnızca nereden başlayacağınızı gösterebilir: ArcObjects .NET SDK Yardımı ; Semboller ve renklerle çalışmak ve katmanları ve render ile Çalışma . Başka bir şey belki o okuduktan sonra bunu, çünkü daha kesin ihtiyaçlarınızı tanımlayabilir ve işin kapsamını sınırlamak mümkün olacak olursa olacak bir sürü iş olacak diye düşünüyorum.
blah238

Stil sembollerini dışa aktarmak için eski bir VB6 örneği: Style Dump . StyleDump.bas'ı et için kontrol edin.
blah238

Yanıtlar:


3

Ben bir MXD belgesi (sadece bir zip dosyası olan) bir MSD belgesi dönüştürerek benzer bir sorunu çözdüm, bu yüzden uzantıyı ".zip" olarak değiştirir ve açarsanız, her biri mxd içindeki katman görüntülenir. arcpy.ConvertToMSD İstediğiniz bilgileri almakla ilgili bazı çalışmalar olabilir, ancak orada bir yerde olması gerekir. Umarım yardımcı olur!


Bu seminal fikir için teşekkürler. Gerçekten yardımcı olur. Xml içinde oluşturulan kod oldukça karmaşık, otomatik olarak ilgili xml yakalama programladınız ve eğer öyleyse paylaşabilirsiniz, eğer değilse ben bu yönü üzerinde çalışmaya başlayacak.
GeorgeC

Ben sadece xml iki değeri ile ilgilendi, bu yüzden vardı bir şey üzerine inşa etmek çok zor olacak. Ama orada gerçekten iyi python xml öğretici yığınları vardır, bu yüzden okumaya biraz zaman ayırmaya hazırsanız, sorunu çözeceğinizden eminim. Mutlu kodlama :)
dango

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.