クエリ レイヤーの作成 (Make Query Layer) (データ管理)

サマリー

入力 SQL の SELECT ステートメントに基づいて、DBMS からクエリ レイヤーを作成します。

使用法

  • クエリ レイヤーは、エンタープライズ データベースのみで動作します。 ファイル ジオデータベースは、このツールに有効な入力ワークスペースではありません。

  • ツールで作成されたレイヤーは一時的なものであり、プロジェクトを保存するか、[行のコピー (Copy Rows)] または [フィーチャのコピー (Copy Features)] でコピーを作成してデータを保持しておかない限り、セッション終了後に削除されます。

  • 入力した SQL クエリの結果として空間列が返された場合、出力はフィーチャ レイヤーとなります。 SQL クエリが空間列を返さない場合、出力はスタンドアロン テーブルになります。

  • このツールで必要な接続ファイルは、[データベース コネクションの作成 (Create Database Connection)] ツールを使用して作成できます。

  • SQL クエリの結果で行が返されない場合、出力クエリ レイヤーは空になり、クエリで返された列のスキーマのみが含まれます。 この場合、返された列に空間列が含まれていると、ツールは次のデフォルト設定を使用してクエリ レイヤーを作成します。

    • ジオメトリ タイプ - POINT
    • SRID - 1
    • 空間参照 - NAD1983

    次に、ツールを実行する前に、これらの値のいずれかを変更すべきかどうかを決定する必要があります。

  • 地理データの場合、SQL ステートメントから返された結果の各レコードには、空間参照 ID (SRID) が関連付けられています。 SRID 値は、データの空間参照を決定するためにデータベースによって使用されます。 SRID に関する特定の機能は、DBMS プラットフォーム間で異なります。 同じテーブル内で複数の SRID 値をサポートする DBMS プラットフォームもあります。 ArcGIS は 1 つの値しかサポートしません。 このツールでは SRID 値を選択することができ、デフォルトでは結果セットの最初のレコードの SRID が使用されます。

パラメーター

ラベル説明データ タイプ
入力データベース コネクション

クエリ対象のデータを含むデータベース コネクション ファイル。

Workspace
出力レイヤー名

作成されるフィーチャ レイヤーまたはテーブル ビューの出力名。

String
クエリ

データベースで実行する SELECT クエリを定義する SQL ステートメント。

注意:

残りのコントロールが有効化される前に、この文字列は検証をパスする必要があります。 検証は、入力ボックス以外の場所をクリックしたときに実行されます。 検証プロセスでは、データベースに対してクエリを実行し、SQL クエリの結果が ArcGIS のデータ モデリング標準に従っているかどうかが確認されます。 検証に失敗した場合は、ツールが警告を返します。 唯一の例外は ModelBuilder の場合で、入力が出力データであるときは、検証が実行されません。

検証ルールとして、次を満たしていることが確認されます。

  • SQL クエリの結果に含まれる空間フィールドは 1 つのみである。
  • SQL クエリの結果に含まれる空間参照は 1 つのみである。
  • SQL クエリの結果に含まれるエンティティ タイプ (ポイント、マルチポイント、ライン、ポリゴンなど) は 1 つのみである。
  • SQL クエリの結果に、ArcGIS でサポートされていないフィールド タイプを含めることはできません。 ArcGIS でサポートされているフィールド タイプについては、「ArcGIS フィールド データ タイプ」をご参照ください。

検証は、対象のデータが ArcGIS と同じ標準を使用しない空間データベース内のデータである場合に特に重要になります。

String
一意の識別子フィールド
(オプション)

動的で一意な行 ID を生成する、SELECT ステートメントの SELECT リストの 1 つ以上のフィールド。

String
シェープ タイプ
(オプション)

クエリ レイヤーのシェープ タイプを指定します。 クエリの結果セットに含まれるレコードのうち、指定したシェープ タイプに一致するレコードだけが出力クエリ レイヤーで使用されます。 ツールの検証により、結果セットの最初のレコードに基づいてこのプロパティが設定されます。 正しい出力シェープ タイプに設定されていない場合は、ツールを実行する前に変更できます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

  • ポイント出力クエリ レイヤーはポイント ジオメトリを使用します。
  • マルチポイント出力クエリ レイヤーはマルチポイント ジオメトリを使用します。
  • ポリゴン出力クエリ レイヤーはポリゴン ジオメトリを使用します。
  • ポリライン出力クエリ レイヤーはポリライン ジオメトリを使用します。
String
SRID
(オプション)

ジオメトリを返すクエリの空間参照 ID (SRID)。 クエリの結果セットに含まれるレコードのうち、指定した SRID 値に一致するレコードだけが出力クエリ レイヤーで使用されます。 ツールの検証により、結果セットの最初のレコードに基づいてこのプロパティが設定されます。 正しい出力 SRID 値に設定されていない場合は、ツールを実行する前に変更できます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

String
座標系
(オプション)

出力クエリ レイヤーで使用する座標系。 ツールの検証により、結果セットの最初のレコードに基づいてこのプロパティが設定されます。 正しい出力座標系に設定されていない場合は、ツールを実行する前に変更できます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

Spatial Reference
レイヤーの空間プロパティの定義
(オプション)

レイヤーの空間プロパティの定義方法を指定します。

検証処理時に、クエリ レイヤーに対して次元、ジオメトリ タイプ、空間参照、SRID、および一意識別子の各プロパティが設定されます。 これらの値は、クエリで返される先頭行に基づいています。 テーブルに対するツールのクエリからこれらのプロパティを取得するのではなく、プロパティを手動で定義するために、このパラメーターがデフォルトでオンになっています。

  • オン - レイヤーの空間プロパティを手動で定義します。 これがデフォルトです。
  • オフ - クエリで返される先頭行に基づいてレイヤー プロパティが決定されます。
Boolean
座標に M 値を含める
(オプション)

レイヤーに M 値が含まれるかどうかを指定します。

  • オン - レイヤーに M 値が含まれます。
  • オフ - レイヤーに M 値は含まれません。 これがデフォルトです。
Boolean
座標に Z 値を含める
(オプション)

レイヤーに Z 値が含まれるかどうかを指定します。

  • オン - レイヤーに Z 値が含まれます。
  • オフ - レイヤーに Z 値は含まれません。 これがデフォルトです。
Boolean
範囲
(オプション)

レイヤーの範囲。 このパラメーターは、[レイヤーの空間プロパティの定義] (Python の spatial_properties = DEFINE_SPATIAL_PROPERTIES) がオンの場合のみ使用されます。 この範囲にはテーブル内のすべてのフィーチャを含める必要があります。

  • [現在の表示範囲] マップ ビュー - 範囲は、アクティブなマップまたはシーンに基づきます。 このオプションは、アクティブなマップが存在する場合にのみ使用できます。
  • [レイヤーの範囲] Layer - 範囲は、アクティブなマップ レイヤーに基づきます。 ドロップダウン リストを使用して使用可能なレイヤーを選択するか、[すべてのレイヤーのデータの範囲] オプションを使用して、ベースマップを除くすべてのアクティブなマップ レイヤーを組み合わせた範囲を取得します。 このオプションは、レイヤーを含むアクティブなマップが存在する場合にのみ使用できます。
  • [参照] 参照 - 範囲は、既存のデータに基づきます。
  • [範囲をリセット] リセット - 範囲はデフォルト値にリセットされます。
  • 手動入力した座標値 - 座標値は数値であり、アクティブなマップの座標系で表示する必要があります。

    マップで異なる表示単位が使用されていることがあります

Extent

派生した出力

ラベル説明データ タイプ
出力レイヤー

出力クエリ レイヤー。

Table View

arcpy.management.MakeQueryLayer(input_database, out_layer_name, query, {oid_fields}, {shape_type}, {srid}, {spatial_reference}, {spatial_properties}, {m_values}, {z_values}, {extent})
名前説明データ タイプ
input_database

クエリ対象のデータを含むデータベース コネクション ファイル。

Workspace
out_layer_name

作成されるフィーチャ レイヤーまたはテーブル ビューの出力名。

String
query

データベースに発行される SELECT クエリを定義する SQL ステートメント。

String
oid_fields
[oid_fields,...]
(オプション)

動的で一意な行 ID を生成する、SELECT ステートメントの SELECT リストの 1 つ以上のフィールド。

String
shape_type
(オプション)

クエリ レイヤーのシェープ タイプを指定します。 クエリの結果セットに含まれるレコードのうち、指定したシェープ タイプに一致するレコードだけが出力クエリ レイヤーで使用されます。 ツールの検証により、結果セットの最初のレコードに基づいてこのプロパティが設定されます。 正しい出力シェープ タイプに設定されていない場合は、ツールを実行する前に変更できます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

  • POINT出力クエリ レイヤーはポイント ジオメトリを使用します。
  • MULTIPOINT出力クエリ レイヤーはマルチポイント ジオメトリを使用します。
  • POLYGON出力クエリ レイヤーはポリゴン ジオメトリを使用します。
  • POLYLINE出力クエリ レイヤーはポリライン ジオメトリを使用します。
String
srid
(オプション)

ジオメトリを返すクエリの空間参照 ID (SRID)。 クエリの結果セットに含まれるレコードのうち、指定した SRID 値に一致するレコードだけが出力クエリ レイヤーで使用されます。 ツールの検証により、結果セットの最初のレコードに基づいてこのプロパティが設定されます。 正しい出力 SRID 値に設定されていない場合は、ツールを実行する前に変更できます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

String
spatial_reference
(オプション)

出力クエリ レイヤーで使用する座標系。 ツールの検証により、結果セットの最初のレコードに基づいてこのプロパティが設定されます。 正しい出力座標系に設定されていない場合は、ツールを実行する前に変更できます。 クエリの結果セットがジオメトリ フィールドを返さない場合、このパラメーターは無視されます。

Spatial Reference
spatial_properties
(オプション)

レイヤーの空間プロパティの定義方法を指定します。

検証処理時に、クエリ レイヤーに対して次元、ジオメトリ タイプ、空間参照、SRID、および一意識別子の各プロパティが設定されます。 これらの値は、クエリで返される先頭行に基づいています。 テーブルに対するツールのクエリからこれらのプロパティを取得するのではなく、プロパティを手動で定義するには、このパラメーターのデフォルト値を使用します。

  • DEFINE_SPATIAL_PROPERTIESレイヤーの空間プロパティを手動で定義します。 これがデフォルトです。
  • DO_NOT_DEFINE_SPATIAL_PROPERTIESクエリで返される先頭行に基づいてレイヤー プロパティが決定されます。
Boolean
m_values
(オプション)

レイヤーに M 値が含まれるかどうかを指定します。

  • INCLUDE_M_VALUESレイヤーに M 値が含まれます。
  • DO_NOT_INCLUDE_M_VALUESレイヤーに M 値は含まれません。 これがデフォルトです。
Boolean
z_values
(オプション)

レイヤーに Z 値が含まれるかどうかを指定します。

  • INCLUDE_Z_VALUESレイヤーに Z 値が含まれます。
  • DO_NOT_INCLUDE_Z_VALUESレイヤーに Z 値は含まれません。 これがデフォルトです。
Boolean
extent
(オプション)

レイヤーの範囲。 このパラメーターは、[レイヤーの空間プロパティの定義] (Python の spatial_properties = DEFINE_SPATIAL_PROPERTIES) がオンの場合のみ使用されます。 この範囲にはテーブル内のすべてのフィーチャを含める必要があります。

  • MAXOF - すべての入力データの最大範囲が使用されます。
  • MINOF - すべての入力データに共通する最小領域が使用されます。
  • DISPLAY - 範囲は、表示範囲と同じになります。
  • レイヤー名 - 指定されたレイヤーの範囲が使用されます。
  • Extent オブジェクト - 指定されたオブジェクトの範囲が使用されます。
  • スぺース区切りの座標文字列 - 指定された文字列の範囲が使用されます。 座標値は、x-min、y-min、x-max、y-max という順序で表記されます。
Extent

派生した出力

名前説明データ タイプ
out_layer

出力クエリ レイヤー。

Table View

コードのサンプル

MakeQueryLayer の例 1 (Python ウィンドウ)

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

import arcpy

sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Slickrock",
                                "select * from moabtrails where name = 'slickrock'",
                                "OBJECTID",
                                "POLYLINE",
                                "32611",
                                sr)
MakeQueryLayer の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、MakeQueryLayer 関数を使用する方法を示します。

# Name: MakeQueryLayer.py
# Description: Creates an output query layer based on a where clause.
#   This example shows how to create a spatial reference object using the
#   name of a coordinate system. It also demonstrates how to use two fields
#   to generate a dynamic unique row identifier for the query layer.


# Import system modules
import arcpy

# Create the spatial reference for the output layer.
sr = arcpy.SpatialReference("WGS 1984 UTM Zone 12N")

# Run the tool
arcpy.MakeQueryLayer_management("Connections/moab.sde",
                                "Single Track",
                                "select * from moabtrails where type = 'single'",
                                "UID;name",
                                "POLYLINE",
                                "32611",
                                sr)