ドメインの作成 (Create Domain) (データ管理)

サマリー

指定のワークスペースで属性ドメインを作成します。

使用法

  • ドメイン管理は次の手順で行います。

    1. このツールを使ってドメインを作成します。
    2. [ドメインにコード値を追加 (Add Coded Value To Domain)] ツールまたは [範囲ドメインの値を設定 (Set Value For Range Domain)] ツールを使用して、値をドメインに追加するか、ドメインの値の範囲を設定します。
    3. [フィールドへのドメインの割り当て (Assign Domain To Field)] ツールを使って、ドメインをフィーチャクラスに関連付けます。
  • コード値ドメインでは、デフォルト値および複製のスプリット ポリシーとデフォルト値のマージ ポリシーのみがサポートされます。

  • 範囲ドメインでは、すべてのスプリット ポリシーとマージ ポリシーがサポートされます。 スプリットまたはマージ操作後、入力フィーチャの数値と指定されたスプリットまたはマージ ポリシーに基づいて出力フィーチャの属性値が計算されます。

パラメーター

ラベル説明データ タイプ
入力ワークスペース

新しいドメインが格納されるジオデータベース。

Workspace
ドメイン名

作成されるドメインの名前。

String
ドメインの説明
(オプション)

作成されるドメインの説明。

String
フィールド タイプ
(オプション)

作成される属性ドメインのタイプを指定します。 属性ドメインとは、フィールド タイプの受け入れられる値を規定するルールです。 属性ドメインの割当先となるフィールドのデータ タイプに一致するフィールド タイプを指定します。

  • Short (16 ビット整数)フィールド タイプは Short です。 Short フィールドは、-32,768 〜 32,767 の範囲の整数をサポートします。
  • Long (32 ビット整数)フィールド タイプは Long です。 Long フィールドは、-2,147,483,648 ~ 2,147,483,647 の範囲の整数をサポートします。
  • Big Integer (64 ビット整数)フィールド タイプは Big Integer です。 Big Integer フィールドは、-(253) ~ 253 の範囲の整数をサポートします。
  • Float (32 ビット浮動小数点)フィールド タイプは Float です。 Float フィールドは、-3.4E38 ~ 1.2E38 の範囲の有理数をサポートします。
  • Double (64 ビット浮動小数点)フィールド タイプは Double です。 Double フィールドは、-2.2E308 ~ 1.8E308 の範囲の有理数をサポートします。
  • Textフィールド タイプは Text です。 Text フィールドは文字列をサポートします。
  • Dateフィールド タイプは Date です。 Date フィールドは、日付値と時間値をサポートします。
  • Date onlyフィールド タイプは date only です。 Date Only フィールドには、日付値を指定できます。時間値は指定できません。
  • Time onlyフィールド タイプは time only です。 時間のみフィールドには、時間値を指定できます。日付値は指定できません。
String
ドメイン タイプ
(オプション)

作成されるドメイン タイプを指定します。

  • コード値ドメイン属性の一連の有効な値を格納するコード タイプ ドメインが作成されます。 これがデフォルトです。 たとえば、コード値ドメインによって、CL (鋳鉄パイプ)、DL (ダクタイル鋳鉄パイプ)、ACP (石綿コンクリート パイプ) など、有効なパイプ材の値を指定できます。
  • 範囲ドメイン数値属性の有効な値の範囲を格納する範囲タイプ ドメインが作成されます。 たとえば、配水管の水圧が 50 ~ 75 psi である場合は、範囲ドメインによってこれらの最小値と最大値を指定できます。
String
スプリット ポリシー
(オプション)

作成されたドメインに使用されるスプリット ポリシーを指定します。 フィーチャを分割するときの属性値の振舞いは、属性のスプリット ポリシーによって制御されます。

  • 属性のデフォルト値分割後の 2 つのフィーチャの属性は、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値を使用します。
  • 属性値を複製分割後の 2 つのフィーチャの属性は、元の属性値のコピーを使用します。
  • ジオメトリの比率分割後のフィーチャの属性には、元のフィーチャの値の比率が適用されます。 この比率は、元のジオメトリの分割時に使用した比率に基づいています。 ジオメトリを均等に分割した場合、それぞれの新規フィーチャの属性には、元のオブジェクトの属性の 2 分の 1 の値が割り当てられます。 ジオメトリ比率ポリシーは範囲ドメインにのみ適用されます。
String
マージ ポリシー
(オプション)

作成されたドメインに使用されるマージ ポリシーを指定します。 2 つのフィーチャを 1 つのフィーチャにマージする際には、マージ ポリシーが新規フィーチャの属性値を制御します。

  • 属性のデフォルト値分割後のフィーチャの属性は、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値を使用します。 非数値フィールドおよびコード値ドメインには、このマージ ポリシー以外は適用できません。
  • 合計値マージ後のフィーチャの属性は、元のフィーチャの属性の合計値を使用します。 合計値ポリシーは範囲ドメインにのみ適用されます。
  • 加重平均マージ後のフィーチャの属性には、元のフィーチャの属性値の加重平均値が適用されます。 この平均値は、元のフィーチャのジオメトリに基づいています。 加重平均値ポリシーは範囲ドメインにのみ適用されます。
String

派生した出力

ラベル説明データ タイプ
更新された入力ワークスペース

更新された入力ワークスペース。

Workspace

arcpy.management.CreateDomain(in_workspace, domain_name, {domain_description}, {field_type}, {domain_type}, {split_policy}, {merge_policy})
名前説明データ タイプ
in_workspace

新しいドメインが格納されるジオデータベース。

Workspace
domain_name

作成されるドメインの名前。

String
domain_description
(オプション)

作成されるドメインの説明。

String
field_type
(オプション)

作成される属性ドメインのタイプを指定します。 属性ドメインとは、フィールド タイプの受け入れられる値を規定するルールです。 属性ドメインの割当先となるフィールドのデータ タイプに一致するフィールド タイプを指定します。

  • SHORTフィールド タイプは Short です。 Short フィールドは、-32,768 〜 32,767 の範囲の整数をサポートします。
  • LONGフィールド タイプは Long です。 Long フィールドは、-2,147,483,648 ~ 2,147,483,647 の範囲の整数をサポートします。
  • BIGINTEGERフィールド タイプは Big Integer です。 Big Integer フィールドは、-(253) ~ 253 の範囲の整数をサポートします。
  • FLOATフィールド タイプは Float です。 Float フィールドは、-3.4E38 ~ 1.2E38 の範囲の有理数をサポートします。
  • DOUBLEフィールド タイプは Double です。 Double フィールドは、-2.2E308 ~ 1.8E308 の範囲の有理数をサポートします。
  • TEXTフィールド タイプは Text です。 Text フィールドは文字列をサポートします。
  • DATEフィールド タイプは Date です。 Date フィールドは、日付値と時間値をサポートします。
  • DATEONLYフィールド タイプは date only です。 Date Only フィールドには、日付値を指定できます。時間値は指定できません。
  • TIMEONLYフィールド タイプは time only です。 時間のみフィールドには、時間値を指定できます。日付値は指定できません。
String
domain_type
(オプション)

作成されるドメイン タイプを指定します。

  • CODED属性の一連の有効な値を格納するコード タイプ ドメインが作成されます。 これがデフォルトです。 たとえば、コード値ドメインによって、CL (鋳鉄パイプ)、DL (ダクタイル鋳鉄パイプ)、ACP (石綿コンクリート パイプ) など、有効なパイプ材の値を指定できます。
  • RANGE数値属性の有効な値の範囲を格納する範囲タイプ ドメインが作成されます。 たとえば、配水管の水圧が 50 ~ 75 psi である場合は、範囲ドメインによってこれらの最小値と最大値を指定できます。
String
split_policy
(オプション)

作成されたドメインに使用されるスプリット ポリシーを指定します。 フィーチャを分割するときの属性値の振舞いは、属性のスプリット ポリシーによって制御されます。

  • DEFAULT分割後の 2 つのフィーチャの属性は、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値を使用します。
  • DUPLICATE分割後の 2 つのフィーチャの属性は、元の属性値のコピーを使用します。
  • GEOMETRY_RATIO分割後のフィーチャの属性には、元のフィーチャの値の比率が適用されます。 この比率は、元のジオメトリの分割時に使用した比率に基づいています。 ジオメトリを均等に分割した場合、それぞれの新規フィーチャの属性には、元のオブジェクトの属性の 2 分の 1 の値が割り当てられます。 ジオメトリ比率ポリシーは範囲ドメインにのみ適用されます。
String
merge_policy
(オプション)

作成されたドメインに使用されるマージ ポリシーを指定します。 2 つのフィーチャを 1 つのフィーチャにマージする際には、マージ ポリシーが新規フィーチャの属性値を制御します。

  • DEFAULT分割後のフィーチャの属性は、該当するフィーチャクラスまたはサブタイプの属性のデフォルト値を使用します。 非数値フィールドおよびコード値ドメインには、このマージ ポリシー以外は適用できません。
  • SUM_VALUESマージ後のフィーチャの属性は、元のフィーチャの属性の合計値を使用します。 合計値ポリシーは範囲ドメインにのみ適用されます。
  • AREA_WEIGHTEDマージ後のフィーチャの属性には、元のフィーチャの属性値の加重平均値が適用されます。 この平均値は、元のフィーチャのジオメトリに基づいています。 加重平均値ポリシーは範囲ドメインにのみ適用されます。
String

派生した出力

名前説明データ タイプ
out_workspace

更新された入力ワークスペース。

Workspace

コードのサンプル

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

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.management.CreateDomain("montgomery.gdb", "Materials", 
                              "Valid pipe materials", "TEXT", "CODED")
CreateDomain の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトでは、ワークフローの一部として CreateDomain 関数を使って属性ドメインを作成し、値をそのドメインに割り当て、ドメインをフィーチャクラスのフィールドに割り当てます。

# Name: MakeDomain.py
# Description: Create an attribute domain to constrain pipe material values
 
# Import system modules
import arcpy
 
# Set the workspace (to avoid having to type in the full path to the data 
# every time)
arcpy.env.workspace = "C:/data"
 
# Set local parameters
domName = "Material4"
gdb = "montgomery.gdb"
inFeatures = "Montgomery.gdb/Water/Distribmains"
inField = "Material"

# Process: Create the coded value domain
arcpy.management.CreateDomain("montgomery.gdb", domName, "Valid pipe materials", 
                              "TEXT", "CODED")

# Store all the domain values in a dictionary with the domain code as the "key" 
# and the domain description as the "value" (domDict[code])
domDict = {"CI":"Cast iron", "DI": "Ductile iron", "PVC": "PVC", 
           "ACP": "Asbestos concrete", "COP": "Copper"}
    
# Process: Add valid material types to the domain
# use a for loop to cycle through all the domain codes in the dictionary
for code in domDict:        
    arcpy.management.AddCodedValueToDomain(gdb, domName, code, domDict[code])
    
# Process: Constrain the material value of distribution mains
arcpy.management.AssignDomainToField(inFeatures, inField, domName)

関連トピック