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 フィールドには、日付値を指定できます。時間値は指定できません。
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 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)