以前のブログ「ジオデータベース活用術:サブタイプ」でジオデータベースの振る舞いの一つとしてサブタイプについて紹介しました。今回は属性ドメインについてご紹介します。前回ご紹介したサブタイプと同様に属性ドメインも ArcGIS for Desktop のすべてのライセンス レベルで使用できます。
■属性ドメイン
属性ドメインではデータの整合性を維持するために有効な属性値のルールを定義します。種類は、範囲ドメインとコード値ドメインに分けられます。
・範囲ドメイン
範囲ドメインでは、入力する属性値の範囲を最大値と最小値で定義します。例えば、ある町では街路樹がサクラの場合の樹高が 5m から 15m に規定されているとします。調査員が街路樹の樹高を調べ、結果を 5m から 15m で入力するように範囲ドメインを使用することができます。
・コード値ドメイン
コード値ドメインは入力可能な属性値をコードで定義する場合に使用します。例えば、調査員が樹高とともに街路樹の健康状態も診断し、結果を健全、やや不健全、不健全の3つにカテゴリ分けしているとします。コード値ドメインを使用して調査員が調査した結果を健全、やや不健全、不健全のいずれかを入力するように設定できます。
■属性ドメインの特長
・値の整合性
範囲ドメインの場合は、値を入力後に エディタ ツールバーの [エディタ] → [フィーチャの整合チェック] で設定した範囲外の値を特定し修正することが可能です。
フィールド タイプが Date のフィールドでは値をカレンダーから入力できますが、範囲ドメインを使用している場合はドメインの最小値と最大値で指定した範囲外の日付をカレンダーから入力することはできません。
※手動で日付を入力した場合は、[フィーチャの整合チェック] で範囲外の日付を入力したフィーチャを特定できます。
コード値ドメインの場合は、値を手で入力せずにサブタイプと同様にドロップダウン リストから有効な値を選択しますので、無効な値が属性値に含まれることはありません。
・ジオデータベースに格納されている複数のフィーチャクラスで使用可能
前回ご紹介したサブタイプは、フィーチャクラスごとに設定を行っていましたが、属性ドメインはジオデータベースごとに設定します。設定された属性ドメインは、ジオデータベースに格納されている複数のフィーチャクラスのフィールドに対し定義できます。
・サブタイプに応じて設定可能
サブタイプ毎に異なる属性ドメインを設定できます。例えば、あるまちでは木の種類によって許容される樹高が異なるとします。サブタイプ毎に異なる属性ドメインを設定できますので、街路樹フィーチャクラスで個々の木の種類をサブタイプで分類し、木の種類に応じて樹高の範囲を属性ドメインで別々に設定することができます。
■属性ドメインを設定するには
【準備】
ジオデータベースをまだ使用されたことがない場合は、こちらの手順を参考にジオデータベースを作成してください。また、属性ドメインを使用するフィーチャクラスをジオデータベースに格納してください。属性ドメインのフィールド タイプと属性ドメインを設定するフィーチャクラスのフィールドのデータ タイプは一致する必要がありますので、既存のフィーチャクラスのフィールドに属性ドメインを設定する場合はそのフィールドのデータ タイプを確認してください。
【属性ドメインの作成】
属性ドメインの作成方法は、範囲ドメインの場合とコード値ドメインの場合とで異なります。範囲ドメインの場合は、こちらの手順でドメインを作成します。また、コード値ドメインの場合は、こちらの手順でドメインを作成します。属性ドメインの設定項目に [スプリット ポリシー] と [マージ ポリシー] がありますが、ここにはフィーチャを複数のフィーチャに分割した場合や複数のフィーチャをマージした場合に設定する値を定義します。例えば、A 地域と B 地域をマージしたときに人口が A 地域と B 地域を合計した値になるようにマージ ポリシーに [値の合計] を設定できます。スプリット ポリシーとマージ ポリシーの詳細はこちらをご参照ください。
【フィーチャクラス/テーブルとの関連付け】
フィーチャクラス/テーブルとの関連付けはフィールド毎またはサブタイプ毎に設定することができます。いずれの場合も、フィーチャクラスを右クリックし、コンテキスト メニューから [プロパティ] をクリックしてフィーチャクラス プロパティを開いて設定します。
フィールド毎に設定する場合
1.フィーチャクラス プロパティの [フィールド] タブで属性ドメインを設定するフィールドを選択してフィールド プロパティを表示します。
2. [ドメイン] から使用する属性ドメインを選択してください。
3. [OK] をクリックしてフィーチャクラス プロパティを閉じます。
サブタイプ毎に設定する場合
1. フィーチャクラス プロパティの [サブタイプ] タブを表示し、属性ドメインを適用するサブタイプのコードを選択します。
2. [デフォルト値とドメイン] でフィールドの [ドメイン] で使用する属性ドメインをドロップダウン リストから選択します。
3. [OK] をクリックしてフィーチャクラス プロパティを閉じます。
いかがでしたか?次回はアノテーションをご紹介します。
■関連リンク
ESRIジャパン
・ジオデータベースとは
ArcGIS 10.1 ヘルプ
・属性ドメインの概要