Dies ist eine ziemlich allgemeine Frage. Ich frage mich nur, welche Tipps und Tricks GIS-Programmierer verwendet haben, um arcpy-Skripte zu beschleunigen, die Sie in die Toolbox importieren und ausführen.
Ich arbeite täglich am Schreiben kleiner Skripte, um Nicht-GIS-Benutzern bei der Verarbeitung von GIS-Daten in meinem Büro zu helfen. Ich habe festgestellt, dass die ArcGIS 10.0-Verarbeitung im Allgemeinen langsamer als 9.3.1 ist und manchmal sogar langsamer wird, wenn ein Python-Skript ausgeführt wird.
Ich werde ein bestimmtes Beispiel eines Skripts auflisten, dessen Ausführung mehr als 24 Stunden dauert. Es ist eine Schleife, die den Bereich eines Rasters in einem Puffer für jede Form im Puffer tabellarisch darstellt. Der Puffer hat ungefähr 7000 Formen. Ich glaube nicht, dass es so lange dauern sollte. EIN
while x <= layerRecords:
arcpy.SetProgressorLabel("Tabulating Row: " + str(x) + " of " + str(ELClayerRecords))
arcpy.SelectLayerByAttribute_management(Buff,"NEW_SELECTION", "Recno = " + str(x)) # Selecting the record
TabulateArea(Buff, "Recno", MatGRID, "VALUE", ScratchWS + "/tab" + str(z) +".dbf", nMatGRIDc) # Tabulate the area of the single row
arcpy.AddMessage (" - Row: " + str(x) + " completed")
x = x + 1
z = z + 1
Bevor es jemand sagt, habe ich einen tabellarischen Bereich für den gesamten Puffer ausgeführt, aber er erzeugt Fehler, wenn er mit mehr als einem Datensatz ausgeführt wird. Es ist ein fehlerhaftes Werkzeug, aber ich muss es benutzen.
Wie auch immer, wenn jemand Ideen zur Optimierung oder Beschleunigung dieses Skripts hat, wäre er sehr dankbar. Andernfalls haben Sie irgendwelche Tricks zur Beschleunigung von Python, wenn Sie in ArcGIS verwendet werden?