フィーチャクラスの属性テーブルを単一のテーブルにマージしますか?


8

多数(約1,100)のポリゴンフィーチャクラスがあります。

私がやりたいのは、これらの各フィーチャクラスの属性テーブルを、可能な限り最も簡単で最速の方法で1つのテーブルにマージすることです。

これは、スクリプトまたはモデルの最初のステップであり、すべてのレイヤーのすべてのポリゴン値を含むテーブルを使用して、いくつかの表形式の結合と選択を実行します。このスクリプトを実行するたびに、基になるポリゴンフィーチャクラスが変更される可能性があるため、テーブルのマージをやり直したいと思います。マージされたテーブルをメモリに書き込むことができれば、速度を上げるには、それが最善です。

ArcGIS 10.1を使用しています。VBA / VB.netでこれを簡単に実行できると思いますが、同僚と共有しやすいように、ModelBuilderモデルとして設定するのが最も簡単かもしれません。


Pythonは、ジオプロセシングにVB.NETよりもはるかに優れた言語です。ArcPyは、他の環境では得られない多くの便利な機能を提供します。
カーティス価格

回答:


8

個人的には、モデルでマージツールを実行して、in_memoryワークスペースに格納されているマージされたフィーチャクラスを生成し、そのマージされたフィーチャクラスを入力としてテーブルビュー作成ツールを使用して、属性テーブルのメモリ内バージョンを作成すると思います。 。

Make Table Viewツールは、SQLクエリを適用してテーブルをフィルタリングする柔軟性も提供します。


私はこの道を下り始めました。ArcMapは、ModelBuilderモデルを構築するときに私を爆撃します。実行は言うまでもありません。。データセットは、32ビットのメモリ制限が内蹴るほど大きいと多数である
user13706

順序を逆にする(2つのテーブルビューを作成してからマージする)と、ワークステーションで簡単になるのではないでしょうか。
nmpeterson

1

必要な唯一のフィールドセットがある場合、Append_managementは名前が一致するフィールドのみをコピーします。Mergeよりもメモリ効率が良い場合があります。それでもメモリに問題がある場合は、ModelBuilder 10.xイテレータを使用して、一度に1つずつ追加できます。in_memoryに書き込んでいて、テーブルが大きくなりすぎない場合は、問題なく動作するはずです。

もう1つ、テーブルが必要な場合(フィーチャクラスの出力ではない)、入力からテーブルビューを作成して追加することで、必要なメモリを大幅に削減できるため、(おそらく大きな)形状フィールドをスキップできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.