フィーチャ レイヤーの作成 (Make Feature Layer) (データ管理)

サマリー

入力フィーチャクラスまたはレイヤー ファイルから、フィーチャ レイヤーを作成します。このツールで作成されるレイヤーは一時的なレイヤーであるため、そのレイヤーをディスクに保存するか、マップ ドキュメントを保存しない限り、セッションの終了後に削除されます。

使用法

  • テンポラリ フィーチャ レイヤーは、[レイヤー ファイルの保存 (Save To Layer File)] ツールを使用してレイヤー ファイルとして保存することも、あるいは [フィーチャのコピー (Copy Features)] ツールを使用して新しいフィーチャクラスとして保存することもできます。

  • アノテーションやディメンションなどの複雑なフィーチャクラスは、このツールではサポートされていません。

  • SQL 式が使用され、その戻りがない場合、出力は空になります。

  • 入力ワークスペースを指定すると、フィールド名が検証されます。したがって、入力がジオデータベース フィーチャクラスで、出力ワークスペースがフォルダーの場合は、シェープファイルの属性名が 10 文字以下に制限されるため、フィールド名が切り捨てられる場合があります。

  • スプリット ポリシーを設定するには、[フィールド情報] コントロールの [比率] オプションを使用します。フィーチャ レイヤーをツールへの入力として使用していて、その入力フィーチャ レイヤーのジオメトリが処理中に分割されるたびに、スプリット ポリシーが有効になります。スプリット ジオメトリを出力に送出すると、出力属性値に対する入力属性値の比率が計算されます。[比率] が有効な場合、オーバーレイ操作でフィーチャが分割されると、入力フィーチャの属性値の比率が出力フィーチャの属性に適用されます。入力フィーチャ ジオメトリが分割された比率に基づいて、出力値が決定されます。たとえば、入力ジオメトリが等分割された場合は、入力フィーチャの属性値の 1/2 が、新しい各フィーチャの属性値として割り当てられます。[比率] ポリシーは、数値フィールドにのみ適用されます。

    デフォルトは、なし (オフ) です。つまり、分割後の 2 つのフィーチャの属性には、元の属性値のコピーが適用されます。

    注意:

    ジオプロセシング ツールは、ジオデータベース フィーチャクラスまたはテーブル フィールドのスプリット ポリシーに従いません。

  • ModelBuilder を使用してツールを作成する場合、このツールへの入力データ変数を中間データとしてマークしないようにする必要があります。中間データとしてマークされた入力は、ダイアログからモデルを実行し終えたときに削除されます。この場合、その出力レイヤーはマップに追加されません。

  • モデルでは、[フィーチャ レイヤーの作成 (Make Feature Layer)] ツールの出力変数を、作成されるレイヤーにシンボルを適用する元のレイヤー ファイルに割り当てることができます。作成されるレイヤーが、モデルまたはスクリプト ツールの出力パラメーターとしてマップに返される場合、レイヤー ファイルからのシンボルは維持されますが、ラベル プロパティは維持されません。ただし、(モデル内の) [フィーチャ レイヤーの作成 (Make Feature Layer)] によって作成されたレイヤーが永続データとして保存され、その永続データが出力パラメーターとしてマップに返される場合、レイヤー ファイルからのラベル プロパティは正しく適用されます。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

新しいレイヤーの作成に使用する入力フィーチャクラスまたはレイヤー。アノテーションやディメンションなどのコンプレックス フィーチャクラスは、このツールへの入力としては有効でありません。

Feature Layer
出力レイヤー

作成されるフィーチャ レイヤーの名前。新しく作成されたレイヤーは、フィーチャ レイヤーを入力として使用するジオプロセシング ツールへの入力として使用できます。

Feature Layer
条件式
(オプション)

フィーチャのサブセットを選択するために使用する SQL 式。

SQL Expression
ワークスペースまたはフィーチャ データセット
(オプション)

フィールド名の整合チェックに使用される入力ワークスペース。入力がジオデータベース テーブルで、出力ワークスペースが dBASE テーブルの場合は、dBASE フィールドの名前が 10 文字以下に制限されるため、フィールド名が切り捨てられる場合があります。

Workspace; Feature Dataset
フィールド情報
(オプション)

出力レイヤー内のフィールドのサブセットを確認および非表示にする場合に使用できます。スプリット ポリシーを指定できます。詳細については、使用方法をご参照ください。

Field Info

arcpy.management.MakeFeatureLayer(in_features, out_layer, {where_clause}, {workspace}, {field_info})
名前説明データ タイプ
in_features

新しいレイヤーの作成に使用する入力フィーチャクラスまたはレイヤー。アノテーションやディメンションなどのコンプレックス フィーチャクラスは、このツールへの入力としては有効でありません。

Feature Layer
out_layer

作成されるフィーチャ レイヤーの名前。新しく作成されたレイヤーは、フィーチャ レイヤーを入力として使用するジオプロセシング ツールへの入力として使用できます。

Feature Layer
where_clause
(オプション)

フィーチャのサブセットを選択するために使用する SQL 式。SQL 構文の詳細については、「ArcGIS で使用される条件式の SQL リファレンス」をご参照ください。

SQL Expression
workspace
(オプション)

フィールド名の整合チェックに使用される入力ワークスペース。入力がジオデータベース テーブルで、出力ワークスペースが dBASE テーブルの場合は、dBASE フィールドの名前が 10 文字以下に制限されるため、フィールド名が切り捨てられる場合があります。

Workspace; Feature Dataset
field_info
(オプション)

出力レイヤー内のフィールドのサブセットを確認および非表示にする場合に使用できます。スプリット ポリシーを指定できます。詳細については、使用方法をご参照ください。

Field Info

コードのサンプル

MakeFeatureLayer (フィーチャ レイヤーの作成) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで MakeFeatureLayer 関数を使用する方法を示しています。

import arcpy

arcpy.env.workspace = "C:/data/input"
arcpy.MakeFeatureLayer_management("parcels.shp", "parcels_lyr")
MakeFeatureLayer (フィーチャ レイヤーの作成) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、MakeFeatureLayer を使用してレイヤーを作成する方法を示しています。作成されたレイヤーは、SelectLayerByLocation ツールと SelectLayerByAttribute ツールで使用できます。

# Name: ExtractFeaturesByLocationAndAttribute.py
# Description:  Extracts features to a new feature class based on a location and an attribute query.

# Import system modules
import arcpy

# Set overwrite option
arcpy.env.overwriteOutput = True

# Put in error trapping in case an error occurs when running tool
try:

   # Make a layer from the feature class
   arcpy.MakeFeatureLayer_management("C:/data/mexico.gdb/cities","cities_lyr")

   # Select all cities that overlap the chihuahua polygon
   arcpy.SelectLayerByLocation_management("cities_lyr", "INTERSECT", "c:/data/mexico.gdb/chihuahua", "", "NEW_SELECTION")

   # Within the selection (done above) further select only those cities that have a population >10,000
   arcpy.SelectLayerByAttribute_management("cities_lyr", "SUBSET_SELECTION", "POPULATION > 10000")

   # Write the selected features to a new featureclass
   arcpy.CopyFeatures_management("cities_lyr", "c:/data/mexico.gdb/chihuahua_10000plus")

except:
   print(arcpy.GetMessages())

環境

特殊なケース

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック