Mehr

Wie erstelle ich dynamische point_coord-Variablen für die Nachbarschaftsauswahl?

Wie erstelle ich dynamische point_coord-Variablen für die Nachbarschaftsauswahl?


Ich möchte arcpy.GANeighborhoodSelection_ga in einer Schleife verwenden, in der die Punktkoordinaten aus einer anderen Quelle stammen. Was ich schon probiert habe: Wenn ich die Koordinaten definiere, funktioniert es:

pointcoord = "689383.6885 3973775.2178" arcpy.GANeighborhoodSelection_ga(inFile2, "neighbor", pointcoord, "1", "1","20", "20", "0", "Ein Sektor") Ergebnis 'neighbor'

Wenn ich versuche, eine Variable für die Koordinaten zu verwenden, habe ich einen Fehler erhalten:

pointcoord = x, y print pointcoord (689383.6885, 3973775.2178) arcpy.GANeighborhoodSelection_ga(inFile2, "neighbor", pointcoord , "1", "1","20", "20", "0", "Ein Sektor") Laufzeit Fehler Traceback (letzter Aufruf zuletzt): Datei "", Zeile 1, in  Datei "c:program files (x86)arcgisdesktop10.2arcpyarcpyga.py", Zeile 1075, in GANeighborhoodSelection raise e RuntimeError: Objekt: Fehler beim Ausführen des Werkzeugs pointcoord = """ + x + "+ y + """ Laufzeitfehler Traceback (letzter Aufruf zuletzt): Datei "", Zeile 1, in  TypeError: 'str'- und 'float'-Objekte können nicht verkettet werden pointcoord = """ + str(x) +"+ str(y) + """ print pointcoord "689383.6885 3973775.2178" arcpy.GANeighborhoodSelection_ga(inFile2, "neighbor" , Punktkoord, "1", "1","20", "20", "0", "Ein Sektor") Laufzeitfehler Traceback (letzter Aufruf zuletzt): Datei "", Zeile 1, in  Datei "c:program files (x86)arcgisdesktop10.2arcpyarcpyga.py", Zeile 1075, in GANeighborhoodSelection raise e ExecuteError: ERROR 000622: Fehler beim Ausführen (Neighborhood Selection). Parameter sind nicht gültig. FEHLER 000628: Eingabe in Parameter point_coord kann nicht gesetzt werden.

In Python,Punktkoordinate = x, yerstellt ein Tupel, während das Nachbarschaftswerkzeug eine Zeichenfolge aus zwei Zahlen fordert, die durch ein Leerzeichen getrennt sind. "689383.6885 3973775.2178", das funktionierte, entspricht nicht dem Tupel (689383.6885, 3973775.2178), was inakzeptabel ist.

Was Sie brauchen, um die Koordinaten zu verketten und ein Leerzeichen dazwischen einzufügen, und damit das funktioniert, müssen Sie sie zuerst als Strings umwandeln. Im dritten hättest du es fast gehabt, dieses wird jedoch funktionieren:

Punktkoordinate = Str(x) + " " + Str(y)