次のようにして、グリッドと交差する「プロジェクト」レイヤーを選択(強調表示)し、選択した「グリッド」からレコードをプルします。レイヤーを保存する必要はありません。
注:PythonコンソールウィンドウのArcMap内からスクリプトを実行します。
import arcpy
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("project","project_lyr")
# Then add a selection to the layer based on location to features in another feature class
arcpy.SelectLayerByLocation_management("project_lyr","INTERSECT","Grid")
このコードは実行され、エラーは発生しませんが、機能は選択(強調表示)されません。何かアイデアはありますか?また、実行が非常に遅くなります。
基本的に私はこれをやろうとしている:
これはほぼ瞬時に非常に高速に実行されますが、Pythonを使用して同じように実行したいと考えています。選択したフィーチャのテーブルからの値が必要なだけで、レイヤーのコピーは必要ありません。
解決策の一部は、インメモリワークスペースを使用することです。
多くの場合、インメモリワークスペースへのデータの書き込みは、他の形式への書き込みよりもはるかに高速です...
インメモリワークスペースの実装方法がわからない
PythonコンソールウィンドウのArcMap内からスクリプトを実行しています。
—
Tristan Forward
ArcMap内から実行している場合は、既にレイヤーなので、
—
dmahr 2012
arcpy.MakeFeatureLayer()
ラインは必要ありませんproject
。するだけarcpy.SelectLayerByLocation_management("project","INTERSECT","Grid")
。
素晴らしい質問形式!
—
Brad Nesom
@dmahrに感謝しますが、組み込みの属性による選択よりも動作は遅くなりますが、機能します。
—
Tristan Forward
import arcpy
コマンドの実行には時間がかかるため、ArcMapの外部からスクリプトを実行しているようです。