ArcGIS - bestimmte Spalte in Attributtabelle darstellen

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
chulia
User
Beiträge: 29
Registriert: Mittwoch 17. August 2011, 10:26

Hallo ihr Lieben,
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)

Hat jemand eine Idee?

Vielen Dank =)
Antworten