ich hab euch schonmal gefragt, wie ich eine Spalte in einer Attributtabelle darstellen kann und wie dann Python zur nächsten Spalte weiterrutschen kann.
Ich hab jetzt ein ähnliches Problem.
Ich hab jetzt eine große Attributtabelle in kleinere dbf files zerlegt, damit ich nur noch die Spalten habe, die ich brauche
Und dann hab ich Python gesagt, dass er die dbf Datei aus meiner mxd Datei (meinem template) rausschmeißen soll und dass der die neuen kleineren dbf Datei damit ersetzten soll. Danach erstellt Python mir einen neuen Layer und fügt diesen in meine mxd Datei ein.
Er soll dann den Inhalt des neuen Layers mit der neuen dbf Datei darstellen und das Layout aber von einem anderen Layer übernehmen.
Das macht Python auch alles soweit. Nur muss ich nachdem das Skript durchgelaufen ist, meine Spalte in der Attributtabelle manuell ändern. Der Layer wird mir immer flächendeckend mit einer Farbe dargestellt. Wenn ich dann in die eigenschaften des Layers gehe und die Symbologie ändern will (also meine Spalte einstelle, die ich haben möchte), dann hat er auch die Legende und das Layout eines anderen Layers so übernommen, wie er es sollte.
Meine Frage: wie kann ich Python sagen, dass er aus der Attributtabelle die 4. Spalte darstellen soll?.
Hier mein Skript: Ich weiß, dass es nicht PEP8 konform ist und dass es das dann ziemlich undurchsichtig macht. Aber ich bin noch Neuling und versuch Python ganz langsam zu lernen.
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding: iso-8859-1 -*-
import arcpy, sys, numpy, os, csv
sys.path.append('C:\Python26\Lib\site-packages')
import PIL
from PIL import Image
#entfernt die dbf Datei aus dem Ordner mit der shape die dargestellt werden soll
os.remove('F:\pommeren\Pflanzenbis56\Vorlage_Current56_einzeln_Copy\Current56.dbf')
# benennt um, speichert aber nicht Ausgangsdatei
# umbenannte Datei bzw. darzustellende Datei wird in Ordner
# mit der Shapedatei gespeichert
os.renames('F:\\pommeren\\Pflanzenbis56\\dbf_Copy\\Current56_20.dbf','F:\\pommeren\\Pflanzenbis56\\Vorlage_Current56_einzeln_Copy\\Current56.dbf')
arcpy.gp.overwriteOutput = True
# Workspace
workspace = arcpy.env.workspace ='F:\pommeren\Pflanzenbis56\Vorlage_Current56_einzeln_Copy'
# Liste aller features aus den Karten auf, die generiert werden sollen,
#vorher workspace festlegen
featureClasses = arcpy.ListFeatureClasses()
#print featureClasses
# Das template
mxd = arcpy.mapping.MapDocument(r"F:\pommeren\Pflanzenbis56\Vorlage_Current56_einzeln_Copy\Current56.mxd")
data_frame = arcpy.mapping.ListDataFrames(mxd)[0]
layer = arcpy.mapping.ListLayers(mxd)[0]
item=featureClasses[0]
# ab hier wird der neue Layer erstellt
newLyr = 'map_'
arcpy.MakeFeatureLayer_management(item, newLyr)
lyrFile = arcpy.mapping.Layer(newLyr)
arcpy.mapping.AddLayer(data_frame, lyrFile,"BOTTOM")
layers = arcpy.mapping.ListLayers(mxd)
#ab hier wird das Layout angepasst
in_layer = layers[3]
in_symbology_layer = layers[1]
arcpy.ApplySymbologyFromLayer_management (in_layer, in_symbology_layer)
#Zwischenspeicherung und tiff
temp = os.path.abspath(r'F:\pommeren\Pflanzenbis56\end\temp.mxd')
mxd.saveACopy(temp)
arcpy.mapping.ExportToTIFF(mxd, r"F:\pommeren\temp.tif",resolution=200)
Vielen Dank =)