結合とリレートの探索
このチュートリアルの最初の部分では、ワイオミング州内の公園とキャンプ地のデータを探索して、結合とリレートの違いについて学習します。 それぞれの構成の詳細および最良のシナリオについて確認します。
公園データの確認
多対 1 結合を使用して関連する組織の詳細を結合することによって、公園レベルでのデータの不整合に対処します。
- Wyoming.zip ファイルをダウンロードします。
- このファイルのコンテンツを、選択したフォルダーに解凍して展開します。
- [LearnlessonData] フォルダーを展開して [Wyoming.aprx] をダブルクリックし、ArcGIS Pro でプロジェクトを開きます。
- 「ArcGIS の組織アカウント」にサイン インします。
注意:
組織アカウントがない場合は、ソフトウェア アクセスのオプションをご参照ください。
- 必要に応じて、[Explore Join and Relates] マップをアクティブ化します。
このプロジェクトは、ワイオミング州の分析範囲の 3 つのマップで構成され、各マップは、分析範囲内の結合とリレートを探索するために使用する関連するレイヤーを使用して構築されています。
このマップには、ワイオミング州のイエローストーン国立公園およびグランドティトン国立公園からなる分析範囲が含まれています。
最初に、マップのメタデータを確認することでデータを探索します。
ArcGIS を操作するときのポイントの 1 つは、作成および使用するコンテンツやプロジェクト アイテム (マップ、プロジェクト、ジオプロセシング モデル、ジオデータベースのデータセットなど) を文書化することです。 アイテムを説明する情報は、メタデータと呼ばれます。 メタデータは、説明するアイテムとともに、ジオデータベース アイテムの場合はジオデータベースに、プロジェクト アイテムの場合はプロジェクトに、ファイルベース アイテムの場合はファイル システムに保存されます。 一度作成したメタデータは、ArcGIS によって管理され、アイテムとともにコピー、移動、削除されます。
- [コンテンツ] ウィンドウで [Explore Join and Relates] を右クリックし、[プロパティ] を選択します。
[マップ プロパティ] ウィンドウが表示されます。
ヒント:
[コンテンツ] ウィンドウで [Explore Join and Relates] をダブルクリックして [マップ プロパティ] ウィンドウを開くこともできます。
- [マップ プロパティ] ウィンドウで、[メタデータ] タブをクリックしてメタデータを確認します。
- [OK] をクリックします。
- [カタログ] ウィンドウで [データベース] フォルダーを展開します。
注意:
[カタログ] ウィンドウが表示されていない場合は、リボン上の [表示] タブの [ウィンドウ] グループで [カタログ ウィンドウ] をクリックします。
このチュートリアルのデータは、解析用の [Wyoming Natural Assets.geodatabase] および管理されたデータを Web マップとして共有するための [Wyoming Natural Assets_Publish.geodatabase] という 2 つのジオデータベース内で整理されます。
モバイル ジオデータベースの末尾には拡張子 .geodatabase が付いており、パブリック ドメインのオープン ソースである SQLite データベースの実装です。 モバイル ジオデータベースは、移植可能で効率的なデータ交換形式です。相互運用が可能であり、モバイル アプリ開発で一般的に使用されています。
この形式のその他の利点は、クロスプラットフォームがサポートされ、ディスク上の 1 つのファイルに格納される、クエリやレポート ワークフローを備えた機能が豊富なリレーショナル データベース (RDBMS) であり、ビューやインデックスをサポートすることです。
注意:
この形式の詳細については、「モバイル ジオデータベース」をご参照ください。
- [カタログ] ウィンドウで、[Wyoming Natural Assets.geodatabase] を展開します。
SQLite ジオデータベースは機能が豊富な RDBMS であるため、フィーチャクラス名は、インスタンス内で一意にするために、プライマリ データベース名を含む必要があります。
SQLite インスタンス内のプライマリ データベースで main が識別される場合、[main] という単語がすべてのフィーチャクラス名およびテーブル名に追加されます。
- [コンテンツ] ウィンドウで、[National Parks] レイヤーをクリックして選択します。
- リボンの [データ] タブをクリックし、[テーブル] グループで [属性テーブル] ボタンをクリックします。
[Unit Code] フィールドは、この後の手順で、イエローストーン国立公園およびグランドティトン国立公園を探索するときに使用する重要なフィールドです。
- [コンテンツ] ウィンドウで、必要に応じて、[スタンドアロン テーブル] を展開し、[OrganizationsTable] を右クリックして [開く] を選択します。
[OrganizationsTable] テーブルが表示されます。
- [OrganizationsTable] フィールドを確認してデータについて理解を深め、結合やリレートなどのテーブルの関連付けを構築するために使用されるフィールドを識別します。
- リボンの [スタンドアロン テーブル] タブをクリックし、[データ設計] グループ内の [フィールド] ボタンをクリックします。
[フィールド] ビューが表示されます。
- [フィールド] ビューで、テーブルの構造を確認します。
スタンドアロン テーブルには、[Organization type]、[URL address]、[Jurisdiction] などの特定の属性を含む、さまざまな組織の属性が含まれています。 これらの属性は、公園の管理者にとって重要であるため、公園レベルで追加する必要があります。 別の重要なフィールドは [OrgParentID] です。このフィールドを使用して、テーブルの結合を実行します。
各自然資産 (公園) は、特定の組織によって管理されています。 データの一貫性を維持するために、[National Parks] レイヤーのレコードを特定の組織に関連付け、公園の資産およびそれらの所有者のより完全な像を作成します。 これを実現するために、[National Parks] と [Organizations Table] の間で結合を実行します。
結合は、共通フィールドに基づいて、あるレイヤーまたはテーブル内のレコードを別のレイヤーまたはテーブル内のレコードに追加する、データベースの機能です。 結果として得られる結合された情報は、レイヤーのプロパティに格納され、マップ内に一時的に保持されます。 結合はキー フィールドに基づき、キー フィールドは、関連する両方のテーブルに存在する必要があります。 フィールドの名前は異なることができますが、データ タイプは、たとえば数値と数値または文字列と文字列のように、一貫している必要があります。
テーブルの結合
次に、テーブルを結合します。
- リボンの [スタンドアロン テーブル] タブの [リレーションシップ] グループで、[結合] ドロップダウン矢印をクリックして、[テーブルの結合] を選択します。
[テーブルの結合] ウィンドウが開きます。
[入力テーブル] パラメーターで、結合を実行するレイヤーを選択します。 [入力結合フィールド] で、結合の基になる入力テーブル フィールドを指定します。 [結合テーブル] に、入力レイヤーに結合されるテーブルを入力します。 [結合テーブル フィールド] で、結合の基になる値が含まれている結合テーブル内のフィールドを指定します。
- [テーブルの結合] ツールのウィンドウで、次のパラメーターに値を入力します。
- [入力テーブル] で、[National Parks] を選択します。
- [入力結合フィールド] で、[ParentOrgID] を選択します。
- [結合テーブル] で、[OrganizationsTable] を選択します。
- [結合テーブル フィールド] で [OrgParentID] を選択します。
- [結合の検証] をクリックします。
- メッセージを確認し、エラーが返されていないことを確かめてから、[閉じる] をクリックします。
- [OK] をクリックします。
結合では、関連するテーブルのフィールドおよびレコードを物理的に結合して、表示、検索、および分析に使用できる 1 つの固定テーブルにします。
- [National Park] 属性テーブルで、最初のレコードの行番号を右クリックしてから [固定されたポップアップ] をクリックします。
レコードのポップアップが表示されます。
- 固定されたポップアップ ウィンドウで、[National Parks] テーブルに追加されている [OrganizationsTable] フィールドを確認します。
ヒント:
個々のフィーチャのポップアップは画面に固定できるため、別のフィーチャを選択しても消えません。 ポップアップを閉じるまで固定された状態のままにすることができます。 これは、ポップアップを並べて比較したい場合に便利です。
- 終了したら、ポップアップ ウィンドウを閉じます。
- [National Parks] テーブル、[OrganizationsTable] テーブル、および [フィールド] ビューを閉じます。
- [クイック アクセス ツールバー] で、[保存] をクリックして、プロジェクトを保存します。
リレートの作成
公園のスタッフと訪問者は、公園の境界内のキャンプ地の名前や正確な位置など、静的な詳細を知ることに関心があります。 加えて、多くの場合、チェックイン時間とチェックアウト時間、サイトのアクセスと条件、ペットに関する規則などの、より動的な詳細を知る必要があり、これらの詳細は別々のスタンドアロン テーブルで管理されます。 このような動的なサイト固有のデータは、データが季節的変化および発展するキャンプ地の状況を反映する必要があるため、より複雑なデータ管理方法を必要とします。
これに対処する 1 つの方法は、1 対多のリレートなどの動的なデータの関連付けを実施することです。 この方法により、キャンプ地フィーチャを検索することが可能になり、関連するすべての静的属性および動的属性がマップ内で使用可能になることを保証できます。 関連するデータは、関連するキャンプ地に (静的に) 結合されるのではなく、要求されたときにソース テーブルから検索されることになります。
- 必要に応じて、[Explore Join and Relates] マップをアクティブ化します。
- [リボン] の [マップ] タブの [ナビゲーション] グループで、[ブックマーク] ドロップダウン矢印をクリックして [Slough Creek Campground] を選択します。
マップが、Slough Creek Campground にあるキャンプ地を表示するように更新されます。
- 必要に応じて、[コンテンツ] ウィンドウで、[Facilities] レイヤーおよび [Campsites] レイヤーを展開します。
[Facilities] では、茶色のピンポイント シンボルが、[Facilities] レイヤーのサブタイプであるキャンプ場を表し、一方、白色および緑色の円が、そのキャンプ場内にある関連するキャンプ地を表します。
マップでフィーチャ レイヤーを表示すると、ポップアップを開いて、特定のフィーチャに関する属性情報を識別することができます。 [マップ操作] ツールを使用してフィーチャをクリックし、フィールド属性のリストが含まれているポップアップを表示します。
- リボン上の [マップ] タブの [ナビゲーション] グループで、[マップ操作] ツールが選択されていることを確認します。
- マップ上のキャンプ地をクリックします。
ポップアップ ウィンドウに、キャンプ場の属性に関する詳細が表示されます。
- [ポップアップ] ウィンドウでキャンプ地の説明を右クリックし、[ポップアップ ウィンドウに移動] を選択します。
- ポップアップを確認します。
- [コンテンツ] ウィンドウの [スタンドアロン テーブル] グループで、[CampsiteAttributes] を右クリックして [開く] を選択します。
[CampsiteAttributes] テーブルが表示されます。
- [CampsiteAttributes] テーブルを確認します。 [EntityID] フィールドによってテーブルを並べ替えてください。
一意の [Entity ID] はそれぞれ、その 1 つのキャンプ地の複数の属性 (詳細) を代表しています。 たとえば、ここで [EntityID] の値は [1] であり、これは[キャンプ地 1] のみに固有の関連する属性を表します。 キャンプ地 2 と他のすべてのキャンプ地の詳細は異なり、各キャンプ地は、複数のさまざまな属性が関連付けられているように見えます。
キャンプ地の属性をキャンプ地フィーチャ (ポイント) に結合する場合、属性の最初の行のみが各キャンプ地フィーチャに結合され、属性のその他の行が失われます。 1 つの解決策は、リレートを使用して、キャンプ地フィーチャに関連付けられた複数の属性へのアクセスを有効化することです。
リレートは、属しているテーブル間を実際に結合せずに、キー フィールドを介して 1 つ以上のテーブルを相互に関連付けるワークフローに対応した一般的な RDBMS のメカニズムです。 テーブルは分離したままであり、物理的に結合されているように見えませんが、1 つのテーブル内のフィーチャまたはレコードを選択すると、関連テーブル内のキー フィールドを介して関連付けられたレコードが選択され、それらのレコードにアクセスして更新することができます。 レイヤーまたはテーブル内の選択されたフィーチャまたはレコードを介してレコードにアクセスすることができます。
リレートは、さまざまな種類の基数をサポートし、関連するレコードがレコード間の 1 対 1、1 対多、多対 1、および多対多の関連性を持つことがある状況で、それらの基数を使用できるようにします。
このセクションでは、キャンプ地フィーチャとキャンプ地の属性の間の 1 対多のリレーションシップを使用します。それによって、1 つのキャンプ地を選択し、そのキャンプ地の詳細を表す関連する複数の属性にアクセスできるようにします。
- [CampsiteAttributes] テーブルを閉じます。
- [コンテンツ] ウィンドウで [Campsites] レイヤーをクリックします。
- リボンの [データ] タブで、[リレーションシップ] グループ内の [リレート] ドロップダウン矢印をクリックし、[リレートの追加] を選択します。
[リレートの追加] ウィンドウが表示されます。
- [リレートの追加] ウィンドウで、次のパラメーターを設定します。
- [レイヤー名、またはテーブル ビュー] で、[Campsites] を選択します。
- [入力リレート フィールド] で、[Campsite Id] を選択します。
- [リレート先のテーブル] で、[CampsiteAttributes] を選択します。
- [出力リレート フィールド] で、[EntityID] を選択します。
- [リレート名] に、「Campsite Attributes Relate」と入力します。
- [基数] で、[1 対多] を確認します。
- [OK] をクリックします。
次に、リレーションシップおよび関連するレコードを調査します。
- リボンの [マップ] タブの [選択] グループで、[選択] ボタンをクリックします。
- マップ上で、[Slough Creek Campground] にあるいずれかのキャンプ地を選択します。
選択したキャンプ地がデフォルトの選択色であるシアンでハイライト表示され、そのフィーチャが選択されていることが示されます。
- リボンの [データ] タブをクリックし、[テーブル] グループで [属性テーブル] をクリックします。
[Campsites] 属性テーブルが表示されます。
- [Campsites] 属性テーブルで [選択レコードを表示] ボタンをクリックします。
テーブルが、選択したキャンプ地フィーチャの属性のみを表示するようにフィルタリングされます。
- テーブルの上部にあるメニュー ボタンをクリックし、[関連データ] をポイントし、[CampsitesAttributes] を選択します。
[CampsitesAttributes] テーブルに、現在選択しているキャンプ地フィーチャに関連付けられたすべての関連レコードがハイライト表示されます。
選択したキャンプ地に関連する属性の数が属性テーブルの下部に表示されます。
選択したキャンプ地 [Slough Creek site #3] には、このサイトの詳細を表す 21 個の関連レコードがあります。 異なるキャンプ地が選択されている場合があるかもしれないため、関連レコードの数は前後する場合があります。
ポップアップは、関連レコードを表示するための追加の方法を提供します。 ポップアップ ウィンドウには、選択したフィーチャの属性およびすべての関連レコードが、便利な方法で表示されます。
- [Campsites] テーブルをクリックし、ハイライト表示されているレコードの行番号を右クリックし、[ポップアップ] を選択します。
- [ポップアップ] ウィンドウで、選択したキャンプ地 (この例では [Slough Creek site #3]) を展開して属性を確認します。
この例では、[Slough Creek site #3] には 21 個の関連属性があります。
- 各自で、[ポップアップ] ウィンドウ内のさまざまな関連レコードをクリックして調査します。 [マップ操作] ツールを使用してその他のキャンプ地を調査します。 終了したら、[ポップアップ] ウィンドウおよび開いている属性テーブルを閉じます。
リレートは、関連するレイヤーを参照しているマップが開かれている限り、アプリケーション内に存在し、持続します。 マップを閉じると、リレートが削除されます。 ただし、永続的なリレートを作成し、ジオデータベース内で保持することができ、ジオデータベースのユーザー間で再利用および共有することができます。 次に、リレーションシップ クラスを調査します。
- [Explore Join and Relates] マップを閉じてプロジェクトを保存します。
この最初のモジュールでは、公園を各管理組織と照合するために 1 対 1 の結合を実行することによって、公園レベルで不完全なデータを識別して対処しました。 1 対多のリレーションシップも構築し、キャンプ地フィーチャを、各キャンプ地に関する詳細を表す追加の属性に関連付けました。
次に、リレーションシップを使用して、サブタイプおよびキャンプ場を使用して分類された施設と、それらの施設が配置されているキャンプ地の間の不整合を確認します。
リレーションシップ クラスの作成
このセクションでは、イエローストーン国立公園およびグランドティトン国立公園内のキャンプ場とキャンプ地の間の関係に焦点を当てます。 空のキャンプ場や、キャンプ場参照ポイントがないキャンプ地などの、主要な問題を識別します。 次に、リレーションシップ クラスを作成して、キャンプ場にあるキャンプ地間のリレーションシップをより良く定義し、リレーションシップ ルールを使用して検証を適用し、更新中および編集中のデータ整合性を保証します。
既存のリレーションシップ クラスの確認
アタッチメントを使用して、ジェニー湖の近くのグランドティトン国立公園での共通の問題を調査します。
- 必要な場合、[Explore Relationship Classes] マップをアクティブ化します。
- リボン上の [マップ] タブの [ナビゲーション] グループで、[ブックマーク] をクリックしてから [Jenny Lake Campground] ブックマークを選択します。
マップには、Jenny Lake Campground エリア内にあるキャンプ地が表示されます。
Jenny Lake Campground エリアにはキャンプ地施設がありません。 このキャンプ場には参照ポイントがなく、どの機関がキャンプ地を管理しているかを確認することができません。
- [コンテンツ] ウィンドウで [Facilities] レイヤーを調査してマップを調べます。
キャンプ地の属性からさらに情報を収集することを試みることができます。
- リボン上の [マップ] タブの [選択] グループで [属性条件で選択] をクリックします。
[属性条件で選択] ウィンドウが開きます。
- [属性条件で選択] ウィンドウで、以下を入力します。
- [入力テーブル] で、[Campsites] を選択します。
- [選択タイプ] で、[新規選択] が選択されていることを確認します。
- [式] で、[Where 句 Campsite Name が 1HB と等しい] という式を作成します。
- [SQL 式の確認] ボタンをクリックし、[OK] をクリックします。
[1HB] キャンプ地がマップ上で選択されています。
- [マップ操作] ツールを使用して、選択されたフィーチャをクリックし、ポップアップを表示します。
このポップアップには、どのキャンプ場内にそのキャンプ地があるかを示す情報は含まれていません。
- [ポップアップ] で、下にスクロールし、属性のアタッチメントとして追加されたキャンプ場の写真を確認します。
[ポップアップ] ウィンドウに表示された写真は、ジオデータベースの内部の、ターゲット データセットへのリレーションシップ クラスを保持する独立したアタッチメント テーブルに格納されたアタッチメントです。
- 1 番目の添付された写真の横の右矢印をクリックし、2 番目の関連付けられた写真を表示します。
画像の 1 つで標識に Jenny Lake Campground と書かれています。 これは、マップ内のキャンプ地がこのキャンプ場の一部であることを示しています。
注意:
アタッチメントは、写真ファイル、HTML ドキュメント、レポートなどの非地理データを、ユーザーが用意した地理情報に関連付けるための手段です。 詳細については、「アタッチメント ツールセットの概要」をご参照ください。
ジェニー湖のキャンプ地にはキャンプ場施設ポイントが関連付けられていないため、このことは、注目して解決する価値のある 3 番目のデータ検証問題になります。
- ポップアップを閉じます。
- [マップ] タブの [選択] グループで、[選択解除] をクリックします。
データの不整合への対処
データの妥当性を維持するために、キャンプ地とキャンプ場施設の間のリレーションシップ クラスを構築し、編集中に適用されるリレーションシップ ルールを適用し、キャンプ地が常に施設に関連付けられるようにします。
注意:
リレーションシップ クラスは、リレートに類似していますが、リレーションシップ クラスがジオデータベース内で維持され、保持されるという点が異なります。 リレーションシップは、使用されるたびに、属しているテーブルからの最新の情報を動的に反映します。 さらに、リレーションシップ クラスは、リレーションシップを改善し、一貫性のある有効なデータを維持するのに役立つリレーションシップ ルールの確立をサポートします。
リレーションシップ クラスは、関連元テーブルと関連先テーブル、および関連元テーブル内のオブジェクトと関連先テーブル内のオブジェクトの関係の概念を中心にして構築されます。
リレーションシップ クラスの主要な用語を以下に示します。
関連元クラスと関連先クラス - 関連元テーブル内のオブジェクトに対するアクションが、関連先テーブル内の関連するオブジェクトに影響を与えます。
- 主キーと外部キー - 関連元テーブルのオブジェクトを関連先テーブルのオブジェクトと照合するために使用されるフィールド。
- リレーションシップの基数 - 関連元のいくつのオブジェクトが関連先のいくつのオブジェクトに関連するかを示します。 1 対 1、1 対多、多対 1、および多対多の基数をサポートします。
- シンプル リレーションシップとコンポジット リレーションシップ - シンプル リレーションシップでは、関連オブジェクトをそれぞれ独立させることができます。 コンポジット リレーションシップでは、関連先オブジェクトの存在は関連元オブジェクトに依存します。 関連元が削除されると、関連するすべての関連先レコードも削除されます。
次に、[リレーションシップ クラスの作成] ジオプロセシング ツールを使用して、リレーションシップ クラスを作成します。
- ArcGIS Pro の上部にある [コマンド検索] に、「create relationship class」と入力します。 検索結果で、[リレーションシップ クラスの作成 (データ管理)] をクリックします。
[リレーションシップ クラスの作成] ツール ウィンドウが表示されます。
- [リレーションシップ クラスの作成] ツール ウィンドウで、次のパラメーターを入力します。
- [関連元テーブル] で、[Facilities] を選択します。
- [関連先テーブル] で、[Campsites] を選択します。
- [出力リレーションシップ クラス] で、[参照] ボタンをクリックします。
- [出力リレーションシップ クラス] ウィンドウで、[データベース] をクリックしてから [Wyoming Natural Assets.geodatabase] をクリックします。 [名前] に「main.CampgroundsHaveCampsites」と入力し、[保存] をクリックします。
- [リレーションシップ クラスの作成] ツール ウィンドウで、続けて次のパラメーターを入力します。
- [リレーションシップ タイプ] で、[コンポジット] を選択します。
- [正方向 (関連元から関連先へ)] に、「Campsites」と入力します。
- [逆方向 (関連先から関連元へ)] に、「Facilities」と入力します。
- [情報伝達方向] で、[双方向] を選択します。
- [基数] で [1 対多 (1:M)] を選択します。
- [関連元テーブルの主キー] で、[FacilityID] を選択します。
- [関連元の外部キー] で、[ParentFacilityID] を選択します。
注意:
詳細については、「リレーションシップ クラスのプロパティ」をご参照ください。
- [実行] をクリックします。
次に、リレーションシップ クラスを調査します。
- [カタログ] ウィンドウで、[Wyoming Natural Assets.geodatabase] を展開し、[main.CampgroundsHaveCampsite] リレーションシップ クラスを見つけます。
- [Wyoming Natural Assets.geodatabase] で [main.CampgroundsHaveCampsite] を右クリックし、[プロパティ] を選択します。
[リレーションシップ クラスのプロパティ] ウィンドウが表示されます。
- [リレーションシップ クラスのプロパティ] ウィンドウの [一般] タブで、リレーションシップのプロパティを確認します。
次に、リレーションシップ ルールを更新および追加することによって、リレーションシップを改善します。
リレーションシップ ルールを使用して、編集中およびデータの入力中にデータ整合性を維持するのに役立つ制限動作を適用することができます。
- [ルール] タブをクリックします。 ウィンドウを展開し、リレーションシップ クラスに設定できるルールを調べます。
一部のキャンプ地が特定のキャンプ上に関連付けられていないことを識別したので、[Campground] サブタイプに注目します。
- [サブタイプ] が [Campground] の行で、[有効] 列をオンにします。
これによって、リレーションシップ ルールの作成を指定します。
次に、関連元フィーチャおよび関連先フィーチャのルールの [最小] 基数と [最大] 基数を設定します。
- [Campground] ルールに、以下を入力します。
- 関連元の [最小] に、「1」と入力します。
- 関連元の最初の [最大] に、「1」と入力します。
- 関連先の [最小] に、「1」と入力します。
- 関連先の [最大] に、「100」と入力します。
この基数の設定は、(1 つの、そして唯一の) 関連元を表す 1 つのキャンプ場に 1 つから最大 100 個までのキャンプ地 (関連先) を関連付けることができるということを指定します。
- [OK] をクリックします。
[リレーションシップ クラスのプロパティ] ウィンドウが閉じてルールがリレーションシップ クラスに追加されます。
このルールは、各キャンプ地が 1 つのキャンプ場に関連付けられる必要があるということ、および各キャンプ場に 1 つ以上、100 個以下のキャンプ地が関連付けられる必要があるということを適用します。 編集中にこのルールに違反した場合、警告メッセージによって編集が無効として警告され、編集の保存が許可されません。
- プロジェクトを保存します。
このセクションでは、リレーションシップ クラスおよびリレーションシップ ルールを使用して、施設フィーチャクラス内のキャンプ地サブタイプとキャンプ場サブタイプの間に生じる可能性のあるデータの不整合に対処しました。 ルールを定義することによって、これらの 2 つのフィーチャクラス間の整合性を維持し、データ品質を強制することができます。
次に、データの更新中およびワークフローの編集中のルールの使用について調べます。
アクションでのリレーションシップ クラス ルールの適用
これで、データに伴うキャンプ場とキャンプ地の間の問題を特定し、この問題を識別して発生を防ぐためのリレーションシップ クラス ルールを構築したので、このルールをテストし、不足しているキャンプ場フィーチャを追加します。
キャンプ場がないキャンプ地を特定する
ジェニー湖の近くのキャンプ場のポイント フィーチャを追加し、それによって、すべてのキャンプ地がキャンプ場に正しく関連付けられていることを確認します。
- [1HB] キャンプ地が選択されていることを確認します。
フィーチャが選択されていない場合は、[属性検索] ツールで次の式を使用します: [Where 句 Campsite Name が 1HB と等しい]。
- リボン上の [マップ] タブの [選択] グループで [属性] ボタンをクリックします。
[属性] ウィンドウが表示されます。 [選択] タブで、通知メッセージが、このキャンプ地がキャンプ場に関連付けられていないことを警告します。
ヒント:
通知メッセージは、データセットに詳しくないユーザーがデータの整合チェックを認識するのに役立ちます。
次に、Jenny Lake Campground のキャンプ場のポイントを追加し、キャンプ地を新しいキャンプ場に関連付けます。 作成したリレーションシップ クラスの要件を満たすには、追加したキャンプ場の関連元の主キー (Facility Id) が、関連付けられたキャンプ地の関連先の外部キー (Parent Facility Id) と同一であることを確認する必要があります。
- [Parent Facility Id] の値は [247664] です。
新しい Jenny Lake Campground フィーチャを作成するときに、この値を使用します。
- リボン上の [編集] タブの [フィーチャ] グループで [作成] ボタンをクリックします。
[フィーチャ作成] ウィンドウが表示されます。
- [フィーチャ作成] ウィンドウの [Facilities] で、[Campground] をクリックし、[ポイント] ツールがアクティブ化していることを確認します。
[ポイント] ツールを使用して、キャンプ場フィーチャをマップ上に作成できます。
- [ポイント] ツールをアクティブにした状態で、ジェニー湖のキャンプ地内の位置をクリックして新しいキャンプ場を追加します。
- [フィーチャの作成] ウィンドウで、[属性] タブをクリックして [属性] ウィンドウを表示します。
ウィンドウが更新されて、新しいキャンプ場フィーチャの属性が表示されます。
有効であるにはキャンプ場に少なくとも 1 つのキャンプ地が関連付けられる必要があるということを示す警告メッセージが表示されます。 次に、キャンプ場の属性を更新し、[Parent Facility Id] の値 247664 を追加して、[1HB] キャンプ地をキャンプ場に関連付けます。
- [属性] ウィンドウで、次の属性値を設定します。
- [Facility Name] に、「Jenny lake Campground」と入力します。
- [Facility Description] に、「New campground created」と入力します。
- [Facility Id] に、「247664」と入力します。
- [Facility subtype] が [Campground] に設定されていることを確認します。
- [属性] ウィンドウの下部で、[自動的に適用] が有効になっていることを確認します。
- リボン上の [編集] タブにある [編集の管理] グループで、[保存] をクリックします。 表示された [編集の保存] ウィンドウで [はい] をクリックします。
[Parent Facility Id] を設定したので、Jenny Lake Campground エリア内の各キャンプ地に [Parent Facility Id] の値が関連付けられていることを確認します。
- [選択] ツールを使用して、Jenny Lake Campground エリア内のいずれかのキャンプ地をクリックします。
[Facility id] を介してこのキャンプ場を Jenny Lake Campground に関連付けている [Parent Facility Id] の値を確認できます。
- リボン上の [選択] グループで、[選択解除] をクリックし、プロジェクトを保存します。
キャンプ場の場所の調整
最近のアップグレードおよび計画変更のため、Bridge Bay Campground が恒久的に閉鎖され、新たに更新されたキャンプ地が別の場所に設立されます。 一部のブリッジ湾のキャンプ地は、活動しておらず、一覧表から恒久的に削除する必要があります。そのため、この状況に対処します。
- [マップ] タブの [ナビゲーション] グループで、[ブックマーク] をクリックして [Bridge Bay Campground] ブックマークを選択します。
マップが Bridge Bay Campground にズーム インし、このエリアにはキャンプ地が 1 つあります。
- [選択] ツールを使用してそのキャンプ地をクリックします。
[属性] ウィンドウで、[Type of use] 属性が [Permanently out of use] に設定されています。つまり、このキャンプ地は、キャンプ地テーブル内で不要になっています。
- [選択] ツールを使用して [Bridge Bay Campground] を選択します。
- リボンの [編集] タブをクリックし、[フィーチャ] グループで [削除] ボタンをクリックします。
- 表示される [削除] ウィンドウで、[はい] をクリックします。
[Bridge Bay Campground] キャンプ地と [Bridge Bay #1] キャンプ地の両方が、マップから削除されます。
コンポジット リレーションシップによってカスケード削除がトリガーされるため、[Bridge Bay Campground] を削除することによって [Bridge Bay #1] キャンプ地が削除されました。 このメカニズムは、データの有効性を保ちながら、不要なレコードをデータ テーブルから確実に削除するので便利です。
- リボン上の [編集] タブにある [編集の管理] グループで、[保存] をクリックします。 表示された [編集の保存] ウィンドウで [はい] をクリックします。
編集中に追加および更新したフィーチャの妥当性を確認するためのリレーションシップ クラスを使用するテストをしました。 リレーションシップを使用して、データの整合性を維持し、データ テーブルから不要なレコードを除去することができました。 次に、公園のスタッフが使用する Web マップおよび一般ユーザーが使用できる Web アプリで、使用が有効なデータを共有します。 データがモバイル ジオデータベースに格納され、共有されて、これらのユーザーに簡単に再配布することができます。
Web マップでの関連データの共有
有効な管理されたデータを関係者と共有するには、Web マップを公開します。この Web マップは、品質保証と品質管理のプロセス中に検証に使用することができ、後で、一般ユーザーと共有できる情報製品の作成に使用することができます。
メタデータの追加
データベースのさまざまな部分を維持する複数の組織および関係者を含むワークフローは、標準が満たされることを保証し、ユーザーが命名規則および所有権を確実に認識するためのメタデータの重要性を際立たせます。 メタデータは、データ レイヤーのレコードのシステムを表し、データの系統、規則、コード、および物理的特性が保持されます。データ セットがコピーまたは更新されるときに、メタデータがデータ一式に従います。
- [Share Final Map] をアクティブ化します。
次に、アイテムのメタデータを作成します。
注意:
[Share Final Map] は、[Wyoming Natural Assets_ Publish.geodatabase] で維持されているデータを参照します。 これらのデータセットは、公開をサポートするように更新され、調整されています。 ArcGIS Pro によってレイヤーで維持されている結合およびリレートされたデータは、一時的であり、公開時に保持されません。 このため、[National Parks] と [Organizations Table] の間で結合されたデータ、および [Campsites] と [CampsiteAttributes] テーブルの間でリレートされたデータは、新しいフィーチャクラスとして [Wyoming Natural Assets_ Publish.geodatabase] にエクスポートされています。
- [カタログ] ウィンドウで、[Wyoming Natural Assets_ Publish.geodatabase] を展開し、[main.CampsiteswithAtributes] を右クリックして [メタデータの編集] を選択します。
[main.CampsiteswithAttributes] メタデータ ウィンドウが表示されます。
- [main.CampsiteswithAtributes] メタデータ ウィンドウで、以下を更新します (入力するか、コピーして貼り付けることができます)。
- [タイトル] に、「Campsites with Attributes」と入力します。
- [タグ] に、「National Park Service, Relationship Class, Additional Attributes」と入力します。
[サマリー] に、「This feature class has been created from a one-to-many relate to maintain campsite information in Yellowstone and Grand Teton National Parks」と入力します。
- [説明] に、「Use this feature class to access information about campsite features and associated attributes in Yellowstone and Grand Teton National Parks」と入力します。
- [著作権] に、「自分の名前」を入力します。
- リボンの [メタデータ] タブの [メタデータの管理] グループで、[保存] をクリックします。
- [main.CampsiteswithAtributes] メタデータ ウィンドウを閉じます。
- プロジェクトを保存します。
Web マップとして共有
最後に、管理されたデータを、関係者および一般ユーザーと共有できる Web マップとして、関連レコードと共に公開します。 [Share Final Map] オプションはマップに関連付けられたメタデータを更新しました。公開時に、このメタデータを使用します。
- 必要に応じて、[Share Final Map] タブをアクティブにします。
- [コンテンツ] ウィンドウで、[Share Final Map] を右クリックし、[プロパティ] を選択します。
- [プロパティ] ウィンドウで、[メタデータ] タブをクリックします。 マップのメタデータを確認し、[タグ]、[サマリー]、および [説明] に注意してください。
- メタデータの確認が終了したら、[OK] をクリックします。
- リボン上の [共有] タブの [共有] グループで [Web マップ] をクリックします。
[Web マップの共有] ウィンドウが表示されます。
- [Web マップとして共有] ウィンドウで、次のパラメーターを設定します。
- [名前] に「Wyoming Campsites Data Quality Web Map」と入力し、続けて自分のイニシャルを入力します。
- [概要] に、「Wyoming campsites cleaned data with relationship class」と入力します。
- [タグ] で、ソース マップのタグをそのまま使用します。
- [構成の選択] で [すべてのデータをコピー: 検索] が選択されていることを確認します。
- [場所] および [フォルダー] に「Wyoming Campsites」と入力して、[Wyoming Campsites] という名前のフォルダーを作成します。
- [共有範囲] の下で [すべての人に公開] をオンにします。
ArcGIS 組織に同じ名前で 2 つのレイヤーを作成することはできません。 レイヤー名にユーザーのイニシャルを追加すると、組織の他のユーザーもこのチュートリアルを完了することができます。 レイヤーが作成されたら、マップ内で名前を変更してイニシャルを削除できます。基になるデータ レイヤーの名前には影響しません。
- [分析] をクリックします。
Web 共有のための一意の数値 ID に関連するエラーが 1 つ [メッセージ] タブに表示されます。
- エラーをダブルクリックします。
[一般] タブに [マップ プロパティ] ウィンドウが表示されます。
- [Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] をオンにして [OK] をクリックします。
エラーが解決したことが [メッセージ] タブの緑色のチェック マークによって示されます。
- [共有] をクリックします。
共有が完了したら、関係者がキャンプ場およびキャンプ地の詳細を ArcGIS Online で確認するために、Web マップを使用することができます。 さらに、Web マップおよび関連する Web レイヤーを、Web マッピング アプリに含めることができ、国立公園およびキャンプ場の訪問者によって利用可能にすることができます。
- [Web マップとして共有] ウィンドウを閉じて、プロジェクトを保存します。
このチュートリアルでは、アメリカ国立公園に勤めている地域の GIS 専門家の役割を担い、ワイオミング州で人気のある 2 つの公園に関してユーザーから報告のあったデータ不整合を調査しました。 データに伴う 3 つの主な問題を識別し、結合、リレート、およびリレーションシップ クラスをリレーションシップ ルールと共に使用して、データの妥当性を確認し、そのような不整合が再発するのを防ぐワークフローを実施しました。
注意:
このチュートリアルからさらに発展して多対多のリレーションシップ クラスを使用する方法について学習する場合は、ブログ記事「多対多のリレーションシップ クラスについて」をお読みください。
1 対 1 の結合を実行して、国立公園ごとに組織の情報を組み込みました。 1 対多のリレートを調査して、キャンプ地に関する追加の属性への素早いアクセスを促進し、非集中化されたデータに対処しました。 さらに、キャンプ場とキャンプ地の間で、データの喪失を防ぎ、これら 2 つのフィーチャ間のリレーションシップの整合性を適用するために、リレーションシップ クラスを作成しました。 また、リレーションシップ クラスに基づいて、ジェニー湖とブリッジ湾のキャンプ場に関するデータのクリーニングおよび編集プロセスに役立つルールを使用しました。 最後に、編集内容を Web マップとして共有し、編集内容を表示するためのアクセスを他のユーザーに提供しました。
他のチュートリアルについては、チュートリアル ギャラリーをご覧ください。