Python mit ArcMap (arcpy): mapping, Layer-Objekte erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
CptHero
User
Beiträge: 1
Registriert: Montag 23. Januar 2017, 20:28

Hallo Leute, vielleicht kann mir hier jemand weiterhelfen.

Ich arbeite mit ArcMap 10.3 und Python 2.7.8 und habe folgendes Problem:

Die Funktion arcpy.mapping.ListLayers()[x] erstellt eine Liste mit Layer-Objekten, über die ich iterieren möchte (hoffe das stimmt soweit).

Ich habe mehrere Raster-Daten, u.A. 12 einzelne Monate (Jan-Dez). Für jeden Monat soll das Skript ein einzelnes Layer-Objekt erstellen.
Nur zum verdeutlichen habe ich das mal einzeln aufgeschrieben:

Januar = arcpy.mapping.ListLayers(mxd, "Januar",df)
Februar = arcpy.mapping.ListLayers(mxd, "Februar",df)
Maerz = arcpy.mapping.ListLayers(mxd, "Maerz",df)
April = arcpy.mapping.ListLayers(mxd, "April",df)
Mai = arcpy.mapping.ListLayers(mxd, "Mai",df)
(mxd ist das aktuelle Map-Dokument, df der Datenrahmen in dem alle Layer liegen).

ABER
Vorher muss diese Liste gefiltert erstellt werden, heißt es sollen nur die 12 Monate reingenommen werden. Neben den Monaten sind noch zwei andere Raster-Datensätze, die ich nicht in der Liste möchte, vorhanden.

Ich hoffe jemand versteht was ich meine, mein Kopf explodiert gleich, daher auch diese Anfrage... :)

Grüße
Julian
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hier ist die passende Stelle in der Doku. Ich vermute, benötigst das name-Attribut. Demnach (ungetestet):

Code: Alles auswählen

month_names = {'Januar', 'Februar', ...}
month_layers = [layer for layer in layers if layer.name in month_names]
Antworten