これは非常に一般的な質問です。ツールボックスにインポートして実行するarcpyスクリプトを高速化するために、GISプログラマーがどのようなヒントとコツを使用したのかと思っています。
私はほとんど毎日、小さなスクリプトを書いて、オフィスの非GISユーザーがGISデータを処理できるようにしています。一般的に、ArcGIS 10.0の処理は9.3.1よりも遅く、Pythonスクリプトを実行するとさらに遅くなることがあります。
実行に24時間以上かかるスクリプトの特定の例をリストします。これは、バッファ内の各形状について、バッファ内のラスタの領域を集計するループです。バッファーには約7000の形状があります。私はそれがこれほど長く続くとは思わない。A
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
誰かがそれを言う前に、私はバッファ全体で表領域を実行しましたが、複数のレコードで実行するとエラーが発生します。これは欠陥のあるツールですが、使用する必要があります。
とにかく、このスクリプトを最適化または高速化する方法についてアイデアをお持ちの方がいらっしゃれば幸いです。それ以外の場合、ArcGISで使用する場合、Pythonのスピードアップのトリックはありますか?