選択フィーチャからレイヤーを作成ツール:フィーチャのリストはどのように保存されますか?


12

ArcGIS Desktopには、[ 選択したフィーチャからレイヤーを作成]というツールがあります。このツールを使用して、選択範囲をArcMapのレイヤーに変換できます。

地図に表示する機能を分離するレイヤーのどこかに埋め込まれた「機能のリスト」があると思います。

私は、「機能のリスト」がのリストwhereとして定義クエリの句に格納されると考えていたでしょうobjectids。例:where objectid in(123,456,789,...)。ただし、そうではありません。

レイヤーにWHERE句または定義クエリがない場合、フィーチャのリストはどのように保存されますか?


2
メニュー項目とジオプロセシングツールには大きな違いがあります。あなたが話しているのは前者です。fidsetに保存されたデータを使用して、レイヤーを作成できます。
FelixIP

2
Selection Layerを作成するときにWHERE句が保存されておらず、作成されると、作成に使用された元の選択を見つけることができないことを確信しています。私が最近非常に古い選択レイヤーを扱っていて、それを作成するために使用された機能の元の選択を見つけることが便利だったので、答えの形で間違っていることが証明されることを願っています。
ダンC

1
Fidsetはレイヤーのプロパティです。それは; 選択FIDを格納するための分離された文字列。
FelixIP

選択したフィーチャからレイヤーを作成しても、ダイナミックレイヤーは作成されません。結果のレイヤーは動的ではありません。FIDsetに基づいています。ソースデータを変更すると、FIDが変更され、選択レイヤーが破損します。これは、where句格納クエリ層、のようなものではありません
jbalk

回答:


14

選択したフィーチャからレイヤーを作成しても、ダイナミックレイヤーは作成されません。結果のレイヤーは動的ではありません。FIDsetに基づいています。

ソースデータを変更すると、FIDが変更され、選択レイヤーが破損します。

選択レイヤーにはwhere句はありません。FIDset(「選択したフィーチャからレイヤーを作成」を使用したときに選択されたFID)に基づいています。

ソースデータにレコードを追加または削除すると、FIDが変更され、選択レイヤーに誤ったレコードが表示されることに注意してください。

選択レイヤーとクエリーレイヤーを混同しています。クエリーレイヤーはwhere句を格納し、動的です。

編集:選択レイヤーのフィーチャのリストはメモリに保存されます。選択レイヤーが壊れると元の選択を回復する方法がないため、一時的な作業以外の選択レイヤーを使用することは悪い習慣です。

選択レイヤーでフィーチャのリストを検索するには、SearchCursorなどのさまざまな方法を使用してIDのリストを作成できます。

このようなもの:

OIDlist = []
with arcpy.da.SearchCursor(layer, 'OBJECTID') as scur:
    for row in scur:
        OIDlist.append(row[0])

crmackeyのコメントから:

また、describeを使用してFIDSetを取得する組み込みの方法もあります。これは文字列ですが、リストに簡単に変換できます。

OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))

1
また、describeを取得するための組み込みの方法もありFIDSetます。これは文字列ですが、リストに変換するのは簡単です: OIDlist = map(int, arcpy.Describe(layer).FIDSet.split(';'))
crmackey


11

Create Layer from Selected Features私が遭遇したこの参照がどのように私が理解した最良の方法は、機能を選択するための一時的なレイヤー作成する

一時的なレイヤーを作成すると、元のデータソースに影響を与えることなく、選択などの操作を実行できます。このレイヤーはメモリ内に作成され、ディスクに保存されたデータを単に参照するため、ArcCatalogのコンテンツには表示されません。これらのレイヤーは、作業セッション内の他のジオプロセシングツールへの入力として使用できます。アプリケーションを終了すると、メモリ内のレイヤーは削除されます。

[フィーチャレイヤーの作成]ツールは、[データ管理ツール]ツールボックス内の[レイヤーとテーブルビュー]ツールセットにあります。[フィーチャレイヤーの作成]ツールを右クリックして[開く]をクリックするか、ダブルクリックしてツールを開きます。

そのディスク領域に読み込むことができるメカニズムは、「結果のセット」にアクセスする方法です

また、前述のように、Esriでカバーされているように選択した機能の操作

この例では、選択したフィーチャから作成されたレイヤーは、一時的な作業用データセットとしてのみ役立ちます(たとえば、ジオプロセシングモデルへの入力として使用)。新しいレイヤーは、選択したフィーチャのFeatureID(FID)またはObjectID(OID)のリストを作成し、元のデータソースが更新または変更されると無効になります

また、ワークスペースに関連する一般的な読み物である「インメモリワークスペースの使用」として、より多くの議論がありin_memoryます。これは、興味がある場合の追加情報を提供するためのものです。


2

私の推測では、選択セットはロジックを使用せずに作成できるため、からのレイヤーCreate Layer From Selected FeaturesWHERE節または論理条件に基づいていません。

たとえば、メインメニューを使用して、選択セットから任意の機能を手動で追加/削除できます。たとえば、以前の[属性/場所による選択]のいずれかからボックスをドラッグします。

私の推測では、選択セット(IFeatureSelection)は、結果セットを定義するルールではなく、結果の広範なセット(元のレイヤーのIDのコピーを含む)にすぎません。したがって、元のレイヤーのIDが変更されると、IDが無効になる可能性があるというリンクされたドキュメントの警告。

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