Attributtabelle sortieren

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.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

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?
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Michi_J
User
Beiträge: 110
Registriert: Samstag 7. August 2010, 08:35

@ 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
pudeldestodes
User
Beiträge: 65
Registriert: Samstag 9. Juni 2007, 23:45

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.
Michi_J
User
Beiträge: 110
Registriert: Samstag 7. August 2010, 08:35

@ pudeldestodes

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