Это довольно общий вопрос. Мне просто интересно, какие советы и хитрости использовали ГИС-программисты для ускорения скриптов arcpy, которые вы импортируете в набор инструментов и запускаете.
Я каждый день работаю над написанием небольших сценариев, чтобы помочь не-ГИС-пользователям в моем офисе обрабатывать ГИС-данные. Я обнаружил, что обработка ArcGIS 10.0 в целом медленнее, чем 9.3.1, и иногда она становится еще медленнее при запуске скрипта Python.
Я собираюсь перечислить конкретный пример сценария, выполнение которого занимает более 24 часов. Это цикл, который табулирует область растра в буфере для каждой фигуры в буфере. Буфер имеет около 7000 фигур. Я не верю, что это должно длиться так долго.
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
Прежде чем кто-либо скажет это, я запустил табулирование области для всего буфера, но он выдает ошибки, если выполняется более 1 записи. Это некорректный инструмент, но я должен его использовать.
В любом случае, если у кого-то есть идеи, как оптимизировать или ускорить этот скрипт, это было бы очень ценно. В противном случае, есть ли у вас какие-либо приемы ускорения работы с Python при использовании в ArcGIS?