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
Python mit ArcMap (arcpy): mapping, Layer-Objekte erstellen
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]