Seite 2 von 2

Re: Attributtabelle sortieren

Verfasst: Montag 9. August 2010, 12:13
von cofi
Das ist schlecht. Ich nehme an, dass das innerhalb dieser GIS Umgebung laeuft bzw du darin programmierst? Dann solltest du den Hersteller mal darauf aufmerksam machen, dass er den kompletten Traceback rausruecken sollte, da hilfreich.

1. Hinter der Funktionsdefinition fehlt ein `:`
2. Du solltest die Definition nicht in die Schleife packen, weil sie sonst bei jedem Durchgang neu ausgewertet wird.
3. Die `sorted_table` Abkuerzung solltest du wieder berichtigen.

Und dein Problem ist dann noch Folgendes: Du baust Listeneintraege die aus einem 6-stelligen Tupel oder einem Leerzeichen-String bestehen (wozu denn?!).
Wenn du die Sortierfunktion mal aufrufen wuerdest, wuerde sie beim Leerzeichen-Eintrag auf die Nase fallen, da gibt es naemlich keinen Index 2

Code: Alles auswählen

import arcgisscripting
import operator
import functools

gp = arcgisscripting.create(9.3)
gp.workspace = "C:/Temp"
cur = gp.SearchCursor("Polyline0Punkte.shp", "", "", "FID, FID_DREIEC, ORIG_FID, POINT_X,POINT_Y,POINT_Z,Tri_Index")

liste = list()

for row in iter(cur.next, none):
   
    current_Eintrag = (row.FID, row.FID_DREIEC, row.ORIG_FID, row.POINT_X, row.POINT_Y, row.POINT_Z)
    liste.append(current_Eintrag)

def sort_with_index(iterable, index):
    return sorted(iterable, key=operator.itemgetter(index))

sort_table = functools.partial(sort_table, index=2)

print sort_table(liste)

Re: Attributtabelle sortieren

Verfasst: Montag 9. August 2010, 12:14
von Rebecca
Ich vermute mal, dass du dein Programm aus einer IDE heraus ausfuehrst. Wenn die wirklich so wenig hilfreich ist, dann fuehre das Programm halt aus dem Terminal aus! Wie starte ich Skripte?

Re: Attributtabelle sortieren

Verfasst: Montag 9. August 2010, 13:30
von Michi_J
@ cofi: Vielen herzlichen Dank. Jetzt hat es funktioniert. Ich sehe schon, ich bin noch etwas planlos ...
@ Rebecca: Jeder fängt mal klein an - und wenn man so ins kalte Wasser geworfen wird, dann kommt halt machnmal ein Blödsinn heraus. Aber aus Fehlern lern man am besten

Re: Attributtabelle sortieren

Verfasst: Montag 9. August 2010, 13:44
von pudeldestodes
Im Übrigen kannst du dem SearchCursor direkt sagen, nach welchen Feldern sortiert werden soll (siehe die nervige Onlinedoku).
Und falls du den Kram noch nicht kennst: das Geoprocessor Programming Model (9.3) ist recht hilfreich. Und ich würde dir raten einfach mal ein paar Sachen live in der Python-Konsole auszuprobieren.

Re: Attributtabelle sortieren

Verfasst: Samstag 21. August 2010, 10:29
von Michi_J
@ pudeldestodes

Danke für den Tipp. Das mit dem Cursor habe ich jetzt auch an einem anderen Problem probiert und klappt. Danke!