私は数か月間Pythonでコーディングしており、主にジオプロセシングタスク用のかなり複雑なスクリプトを開発しました。そうは言っても、SQL / VBA / VBScriptのバックグラウンドから来ているので、私はまだ多くを学んでいます。
コンパイルされたコードは通常、言語インタープリターで処理する必要があるコードよりも高速で実行されることを知っているため、ビッグデータを操作するためにジオプロセシングPythonスクリプトを.EXEファイルにコンパイルする可能性に興味があります。
これも可能ですか?もしそうなら、arcgisscriptingまたはarcpyモジュールをインポートするPython(.py)スクリプトをコンパイルする最良の方法は何ですか?
やりたいことを見つけるために数分を費やし、検索の結果、とりわけこの記事が返されました:http : //www.ehow.com/how_2091641_compile-python-code.html
コンパイラは動作しているように見えましたが、結果の.EXEファイルを実行すると、一部のファイルが利用できないという不可解なエラーが発生しました。
Pythonスクリプトは、コマンドラインからはかなり適切と思われるものを実行しますが、.pyファイルをコンパイルできた場合、若干の改善が見られるかどうか疑問に思っています。繰り返しますが、処理に+20時間かかる大きなデータセットを使用しています(入力水質サンプルサイトからの分水界の輪郭を描く)。改善のために手に入れることができるものは何でも取ります。
このスクリプトは、サイトのテストセットを使用してコマンドラインから迅速外のArcGISの10%を走っ対 ArcCatalogで新しいツールボックスのスクリプトツールとしてスクリプトを設定します。専用のコンピューターでArcGISのインスタンスを開かずに、コマンドラインからスクリプトを実行しました。
では、arcgisscriptingモジュールをインポートし、ArcToolBoxツールを呼び出すPythonスクリプトをコンパイルできますか?
編集
入力をありがとう、これは私にとって有用です。このスクリプトは、主に多くのArcGISツールを調整し、適切な属性で目的の形式/場所で出力する方法です。一部の暫定ラスターファイルのスクラッチパーソナルジオデータベースではなくスクラッチフォルダーに書き込むことで、ESRI GRID形式とIMG形式の両方で保存できるように、すでにいくつかの脂肪を削除しました。ただし、プロファイラーの提案を確認します。
私のオフィスには、主にコンパイルされたVisual BasicプログラムやVB.NETプログラムと比較して、「コンパイルされたコードはインタープリターを介して実行されるコードよりもはるかに速い」と Pythonに質問する人がいますが、それは良い点ですツールはどちらの方法でも時間がかかります。そして、現代のコンピューティングマシンでは、コードの解釈はコンパイルされたコードよりもそれほど遅くないので、その余分な距離を進むことが保証されているようです。
編集 -ラスター形式でのプログラムの最適化に関する更新。
このPythonプログラムの「最適化」をフォローアップしたかったため、パーソナルジオデータベースではなくGRID形式で中間ラスターを書き込むことで、2時間の処理時間を節約できました。それだけでなく、データサイズのディスクスペース消費量が大幅に削減されました。私がすべてのラスターを書き込んだ元の実行(およびそれらはラスターに変換されたポイントフィーチャであり、その後、流域ラスターであった)は、これらのファイルだけで37.1 GBのデータになりました。後者の2つのデータ出力をGRID形式のフォルダーに書き込むことは、667 MBのデータに削減されました。
主にデータのサイズの方法で、ファイルGDBがこれらのデータをどのように処理するかを知りたいと思います。ただし、処理時間を9.5時間から7.5時間に短縮することで、GRID形式のジオデータベース外のラスターを処理することを支持できます。