4
ArcView 3.x Avenueビットマップ(タブ?)とArcView 10 Pythonカーソルの比較
注:この質問には答えがありますが、カーソル処理を最適化するためのヒントがあれば、大歓迎です。更新を監視します。 現在、上司(Avenueで働く)と私(Pythonで働く)はどちらも同じ問題を解決しようとしています。むしろ、私たちは両方ともそれを解決しましたが、私たちのソリューションが動作する速度は...控えめに言っても、バラバラです。彼のスクリプトが2時間で処理するものは、最大6です。ロジックの構文と実装の実際の違いは、3.xのビットマップと10.xのカーソルだけです。私たちは両方: 1)表1の値を保管します 。2)これらの値を使用して、表2の行を照会します 。3)表2の値を保管して、新しい行として表3に挿入します。 どちらのスクリプトでも、これらのプロセスは2つのネストされたループで完了します。コード最適化の素晴らしい世界を掘り下げる前に、AvenueスクリプトのパフォーマンスをPythonと比較すると、これは予期された出来事ですか?彼のスクリプトが操作時間の点で私のものを大幅に上回ったのはこれが初めてではないので、私は恐ろしいスクリプトを作成する前に気をつけるべきことがあるかどうかを知りたいのです。 これが無関係なビットを除いた私のスクリプトです: import arcpy import time import sys import os def recordfindcopy(inFile,query,outFile): findRecord = arcpy.SearchCursor(inFile,query) for record in findRecord: copyRecord = arcpy.InsertCursor(outData) # <--- D'oh! (See answer) field = record.FIELD copy = copyRecord.newRow() copy.FIELD = field copyRecord.insertRow(copy) StreetsFileList = [r"Path", r"Path"] for sfile in StreetsFileList: …