サブタイプのジオプロセシング ワークフロー

ジオデータベース テーブルとフィーチャクラスは、同じタイプのオブジェクト (つまり同じ動作と属性を持つオブジェクト) を格納します。 たとえば、WaterMains というフィーチャクラスは加圧給水管を格納します。 すべての給水管は同じ動作を持ち、属性 ReferenceID、Depth、Material、GroundSurfaceType、Size、PressureRating を持ちます。

フィーチャクラスまたはテーブル内のすべてのオブジェクトは同じ動作と属性を持ちますが、すべてのオブジェクトが同じ属性ドメインを共有するとは限りません。 たとえば、送水管に 40 ~ 100psi の水圧を設定し、配水管に 50 ~ 75psi の水圧を設定できる水道施設が当てはまります。 属性ドメインを使用して、この規制を適用できます。 この種類の検証ルールを実装するには、送水管と配水管のフィーチャクラスを個別に作成する必要はありませんが、このような水道管を区別して、ドメインとデフォルト値の別々のセットを設定します。 これには、サブタイプを使用できます。

サブタイプを使用する状況

重要なジオデータベース設計上の課題は、サブタイプを使用する適切な場所と、追加のフィーチャクラスが必要となる場所を決定する際に発生します。 デフォルト値、属性ドメイン、接続性ルール、リレーションシップ ルールでオブジェクトを区別するときは、単一のフィーチャクラスまたはテーブルのサブタイプを個別に作成することをおすすめします。

さまざまな動作、属性、アクセス権限に基づいて、またはオブジェクトがマルチバージョン対応かどうかによってオブジェクトを区別する場合は、複数のフィーチャクラスを作成する必要があります。

サブタイプのワークフロー

フィーチャクラスまたはテーブルのサブタイプを作成するには、次のステップを使用します。

  1. [サブタイプ フィールドの設定 (Set Subtype Field)] - サブタイプ コードを格納する入力テーブルまたはフィーチャクラスに、フィールドを定義します。
  2. [サブタイプの追加 (Add Subtype)] - フィーチャクラスまたはテーブル内のサブタイプのセットに新しいサブタイプを追加します。
  3. [デフォルト サブタイプの設定 (Set Default Subtype)] - サブタイプのデフォルトの個別値 (コードとも呼ばれる) を設定します。

次の例では、水道管継手フィーチャクラス内の継手タイプを表すサブタイプを作成します。

最初のステップでは、サブタイプ情報の格納に使用するフィールドを定義します。

import arcpy
arcpy.env.workspace = "C:/data/Montgomery.gdb"
arcpy.management.SetSubtypeField("Water/Fittings", "TYPECODE")

サブタイプ フィールドを定義したら、サブタイプ リストにサブタイプ コードを追加します。

arcpy.management.AddSubtype("Water/Fittings", "0", "unknown")
arcpy.management.AddSubtype("Water/Fittings", "1", "bend")
arcpy.management.AddSubtype("Water/Fittings", "2", "cap")
arcpy.management.AddSubtype("Water/Fittings", "3", "cross")
arcpy.management.AddSubtype("Water/Fittings", "4", "coupling")
arcpy.management.AddSubtype("Water/Fittings", "5", "expansion joint")
arcpy.management.AddSubtype("Water/Fittings", "6", "offset")
arcpy.management.AddSubtype("Water/Fittings", "7", "plug")
arcpy.management.AddSubtype("Water/Fittings", "8", "reducer")
arcpy.management.AddSubtype("Water/Fittings", "9", "saddle")
arcpy.management.AddSubtype("Water/Fittings", "10", "sleeve")
arcpy.management.AddSubtype("Water/Fittings", "11", "tap")
arcpy.management.AddSubtype("Water/Fittings", "12", "tee")
arcpy.management.AddSubtype("Water/Fittings", "13", "weld")
arcpy.management.AddSubtype("Water/Fittings", "14", "riser")

最後に、デフォルトのサブタイプ コードを設定します。

arcpy.management.SetDefaultSubtype("Water/Fittings", "2")

関連トピック