Đây là một câu hỏi khá chung chung. Tôi chỉ tự hỏi những mẹo và thủ thuật mà các lập trình viên GIS đã sử dụng để tăng tốc các tập lệnh phức tạp mà bạn nhập vào hộp công cụ và chạy.
Tôi làm việc hầu hết hàng ngày bằng cách viết các tập lệnh nhỏ để giúp những người dùng không phải là GIS tại văn phòng của tôi xử lý dữ liệu GIS. Tôi đã thấy rằng việc xử lý ArcGIS 10.0 nói chung chậm hơn 9.3.1 và đôi khi nó còn chậm hơn khi chạy tập lệnh python.
Tôi sẽ liệt kê một ví dụ cụ thể về một kịch bản mất hơn 24 giờ để chạy. Đó là một vòng lặp lập bảng diện tích của raster trong bộ đệm cho mỗi hình dạng trong bộ đệm. Bộ đệm có khoảng 7000 hình dạng. Tôi không tin rằng nó sẽ chạy lâu như vậy. Một
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
Trước khi bất cứ ai nói điều đó, tôi đã chạy khu vực lập bảng trên toàn bộ bộ đệm, nhưng nó tạo ra lỗi nếu chạy trên nhiều hơn 1 bản ghi. Đó là một công cụ thiếu sót, nhưng tôi phải sử dụng nó.
Dù sao, nếu bất cứ ai có bất kỳ ý tưởng nào về cách tối ưu hóa, hoặc tăng tốc kịch bản này, nó sẽ được đánh giá cao nhất. Nếu không, bạn có bất kỳ thủ thuật tăng tốc nào cho python, khi được sử dụng trong ArcGIS không?