To dość ogólne pytanie. Zastanawiam się tylko, jakich wskazówek i trików użyli programiści GIS, aby przyspieszyć skrypty Arcpy, które importujesz do zestawu narzędzi i uruchamiasz.
Codziennie pracuję, pisząc małe skrypty, aby pomóc użytkownikom spoza GIS w moim biurze przetwarzać dane GIS. Przekonałem się, że przetwarzanie ArcGIS 10.0 jest ogólnie wolniejsze niż 9.3.1, a czasem staje się jeszcze wolniejsze po uruchomieniu skryptu python.
Wymienię konkretny przykład skryptu, którego uruchomienie zajmuje ponad 24 godziny. Jest to pętla, która tabelaryzuje obszar rastra w buforze dla każdego kształtu w buforze. Bufor ma około 7000 kształtów. Nie wierzę, że powinno to trwać tak długo. ZA
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
Zanim ktokolwiek to powie, uruchomiłem obszar tabelaryczny na całym buforze, ale powoduje błędy, jeśli działa na więcej niż jednym rekordzie. To wadliwe narzędzie, ale muszę go użyć.
W każdym razie, jeśli ktoś ma jakieś pomysły na optymalizację lub przyspieszenie tego skryptu, byłoby to bardzo mile widziane. W przeciwnym razie, czy masz jakieś sztuczki przyspieszające dla Pythona, gdy jest używane w ArcGIS?