Erstellen einer Übersichtstabelle der Symbologie aller Datensätze in mehreren MXDs?


9

Dies hängt mit der folgenden ESRI-Symbologie in Mapinfo TAB zusammen . Als ersten Schritt (in arcpy) möchte ich auf die Symbologie aller Datensätze zugreifen und ein Dokument erstellen, das die Details der Symbologie gemäß der folgenden Grafik enthält. Geben Sie hier die Bildbeschreibung ein

Ist dies möglich (sollte ich die Zeit investieren, um es auszuarbeiten) oder wenn es nicht möglich ist, muss ich mich nur daran machen, es manuell auf Hunderten von MXDs zu machen (: -

Um die Schritte aufzuschlüsseln, kann ich hoffentlich zumindest einen Teil des Prozesses automatisieren.

  1. Das Scrollen durch MXDs und das Abrufen der Datensätze, die aktiviert sind, ist kein Problem

    lyrFile = arcpy.mapping.Layer wenn lyrFile.visible == True:

  2. Wenn es ein Dataset findet, sollte es eine .lyr-Datei erstellen (da die meisten nur shp / gdb-Dateien sind) und dann AttribXXX = lyrFile.xxx

wo XXX und xxx sind

BRIGHTNESS = lyrFile.brightness

(über Format zu folgenden)

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

Das Problem ist, dass ich nichts finden kann, das den RGB-, Linien- / Punkt- / Polygontyp, die Strichstärken, die Schriftart usw. abruft. Wenn diese gefunden werden können, dann der nächste Schritt

  1. Schreiben Sie jeden der oben genannten Werte in eine CSV (einfach) ... zum Beispiel (dies muss erweitert werden)

                    f = open(origPath+'\\LayerAtrributes_LOG.txt', 'a')
                    f.write(str(DATASETNAME)+","+str(DATASOURCE)+","+str(DESCRIPTION)+","+str(MXDName)+"\n")
                    f.close()
  2. Wenn möglich, sollte ein JPG der Symbologie wie im Beispiel erstellt und der Link dazu zur CSV hinzugefügt werden.

Bin zu viel von arcpy gefragt?


Dies ist möglicherweise mit ArcObjects möglich, aber definitiv nicht arcpy.
blah238

Vielen Dank. Kann dann jemand bei der Bearbeitung von Arcobjects helfen?
GeorgeC

Sie können nur angeben, wo Sie beginnen sollen: ArcObjects .NET SDK-Hilfe ; Arbeiten mit Symbolen und Farben und Arbeiten mit Ebenen und Renderern . Wenn Sie diese möglicherweise nicht durchgelesen haben, können Sie Ihre Anforderungen genauer definieren und den Arbeitsumfang einschränken, da dies meiner Meinung nach viel Arbeit bedeuten wird .
blah238

Hier ist ein altes VB6-Beispiel zum Exportieren von Stilsymbolen: Style Dump . Überprüfen Sie StyleDump.bas auf das Fleisch davon.
blah238

Antworten:


3

Ich habe ein ähnliches Problem gelöst, indem ich ein MXD-Dokument in eine MSD (die nur eine Zip-Datei ist) konvertiert habe. Wenn Sie also die Erweiterung in ".zip" ändern und öffnen, finden Sie einige .xml-Dokumente, die viele Informationen darüber enthalten, wie die einzelnen Dokumente aussehen Ebene innerhalb des mxd wird angezeigt. arcpy.ConvertToMSD Möglicherweise sind einige Arbeiten erforderlich, um die gewünschten Informationen zu erhalten, diese sollten sich jedoch irgendwo befinden. Ich hoffe, das hilft!


Vielen Dank für diese wegweisende Idee. Es ist wirklich hilfreich. Der in der XML generierte Code ist ziemlich komplex. Haben Sie programmiert, die relevante XML automatisch zu erfassen, und wenn ja, können Sie sie freigeben? Wenn nicht, werde ich mit der Arbeit an diesem Aspekt beginnen.
GeorgeC

Ich war nur an zwei Werten in der XML interessiert, daher wird es sehr schwierig sein, auf alles aufzubauen, was ich hatte. Aber es gibt jede Menge wirklich guter Python-XML-Tutorials. Wenn Sie also bereit sind, etwas Zeit mit Lesen zu verbringen, werden Sie das Problem sicher lösen. Happy Coding :)
Dango

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.