レイヤーをジオメトリまたは属性を使用して結合する方法
要約
GISでは、結合は共通の属性または空間的な関係に基づいて異なるレイヤーからの情報を組み合わせるための強力なメカニズムです。結合を使用すると、共通フィールドまたは空間的な場所を使用して、1つのレイヤー(ソースレイヤー)から別のレイヤー(ターゲットレイヤー)に属性データをマージできます。最初のものはテーブル内の属性によるデータ結合です。共通のフィールド(一意のキーなど)を使用することで、一方のテーブルのレコードをもう一方のテーブルのレコードに関連付けることができます。2番目のアプローチは場所によるデータ結合(空間的)です。両方のアプローチをサポートしており、ニーズに応じてそれらを使用する機会を提供します。
異なる地区の人口変動率を記述したデータを受け取り、この情報に基づいていくつかの人口増加マップを作成したいと仮定しましょう。人口データがデータベース内のテーブルに保存され、レイヤーと共通フィールドを共有している場合、このデータを地理オブジェクトに参加させ、ラベル付け、カテゴリ化、クエリ実行、またはレイヤーオブジェクトの分析のための追加フィールドを利用できます。
通常、両方のテーブルに存在するフィールド値に基づいてデータ結合を実行します。フィールド名は必ずしも一致する必要はありませんが、データ型は同じである必要があります。数値と数値、文字列と文字列などです。「Add Join」ジオプロセシングツールを使用してデータ結合を実行できます。属性を結合すると、結合されたフィールドが既存のテーブルに動的に追加されます。エイリアス、可視性、および数値形式などのフィールドプロパティは、結合を追加または削除するときに保持されます。
キーフィールドによる結合機能
- このアプローチを使用すると、共通のキーフィールドに基づいて異なるテーブルからレコードをリンクできます。比較に使用するキーフィールドを指定して、レコード間の関係を確立します。これは、識別子やその他のユニークな属性に基づいてデータをマージする必要がある場合に特に役立ちます。
キーフィールドに基づくデータの比較方法の指定:
- データのマージ時に、キーフィールドに対して異なる比較方法を定義できます。たとえば、完全一致を選択したり、パターンに基づいて比較したり、値の範囲内で比較したりできます。これにより、レコード間の関係をより正確に決定し、データマージプロセスを制御できます。
マージする属性名のリストの指定:
- データをマージする場合、マージする特定の属性を指定できます。これにより、必要な属性のみを選択してマージし、結果のテーブルの構造を管理できます。
ジオメトリを使用した結合機能
- このアプローチにより、空間的な場所に基づいてデータをリンクできるようになります。検索半径を定義すると、最も近いジオメトリオブジェクトがマージのために検索されます。これは、地理的位置に基づいてデータを結合する必要がある場合に役立ちます。
最も近いジオメトリオブジェクトを見つけるための検索半径の制御:
- 位置に基づいてデータをマージするときに、検索半径を制御できます。半径値を指定することで、マージに使用する最も近いオブジェクトが検索される距離を決定します。これにより、空間的な関係に基づいてデータマージプロセスに参加するオブジェクトを制御できます。
デモプロジェクト
ライブラリの機能をより深く理解するために、その使用例を検討しましょう。このコードは、属性またはジオメトリによってレイヤーを結合する方法を示しています。
提供されたコードには、LayerConstructorクラスを使用してデータ結合操作を実行する2つのメソッド、JoinByIndex()とJoinByCoords()が含まれています。
JoinByIndex()メソッドでは:
-
関連する属性を持つジオメトリのリストが作成されます。
-
LayerConstructorオブジェクトが初期化されます。
-
メソッドは、提供されたジオメトリを使用してベクトルレイヤーとジオメトリレイヤーを作成します。
-
ジオメトリレイヤーは、JoinLayersById()メソッドを使用してユニークな識別子(「Id」)に基づいて結合されます。
-
結果として得られた結合されたベクトルレイヤーが返されます。
JoinByCoords()メソッドでは:
-
関連する属性を持つジオメトリのリストが作成されます。
-
LayerConstructorオブジェクトが初期化されます。
-
提供されたジオメトリを使用してジオメトリレイヤーが作成されます。
-
ジオメトリレイヤーは、一致する座標に基づいてJoinLayersByCoords()メソッドを使用して結合されます。
-
結果として得られた結合されたベクトルレイヤーが返されます。
要約すると、これらのメソッドは2つの異なるデータ結合アプローチを示しています。1つはユニークな識別子に基づき、もう1つは一致する座標に基づいています。LayerConstructorクラスは、これらのデータ結合操作を促進します。
インデックスの結合オプション
JoinOptionsクラスは、レイヤーの結合を設定するためのオプションセットを提供します。各オプションについて詳しく見ていきましょう。
-
JoinAttributeName: このオプションを使用すると、結合されたレイヤーから比較条件に使用する属性名を指定できます。これにより、2つのレイヤー間の接続が確立されます。
-
TargetAttributeName: このオプションを使用すると、メインレイヤーから結合されたレイヤーの属性と比較される属性名を指定できます。これは、レイヤー間のマッチングフィーチャを決定するのに役立ちます。
-
JoinAttributeNames: このオプションを使用すると、結合したい属性名のリストを指定できます。このリストが空またはnullに設定されている場合、結合されたレイヤーのすべての属性が結合操作に含まれます。ただし、特定の属性名を選択することで、マージされる属性を制御し、メモリ使用量と処理時間を最適化できます。
-
ConditionComparer: このオプションを使用すると、2つのレイヤーのフィーチャ間の属性値を比較するためのカスタムロジックを定義できます。デフォルトでは、EqualityComparer.Defaultコンパレータが使用され、等価性がチェックされます。ただし、より特殊な比較要件のために独自のカスタムコンパレーラを実装できます。
-
JoinedAttributesPrefix: このオプションを使用すると、結合されたレイヤーの属性名のプレフィックス文字列を指定できます。デフォルト値は「joined_」であり、これは結合された属性が結果として得られた結合されたレイヤーで「joined_」と接頭辞付けされることを意味します。このプレフィックスは、結合された属性をメインレイヤーの元の属性から区別するのに役立ちます。
JoinOptionsクラスは、レイヤーの結合プロセスのさまざまな側面に対する柔軟性と制御を提供します。結合する属性を指定したり、比較ロジックをカスタマイズしたり、結果として得られた結合された属性にプレフィックスを定義したりできます。これらのオプションを使用すると、特定のニーズに合わせて結合操作を調整し、マージされたレイヤーから意味のある洞察を得ることができます。
ジオメトリの結合オプション
JoinByGeometryOptionsクラスは、ジオメトリに基づいてレイヤーを結合するためのオプションを表します。各オプションの機能を調べてみましょう。
-
Radius: このオプションは、結合されたジオメトリが検索される半径を指定します。これは、メインレイヤーのフィーチャが空間的な関係に基づいて結合されたレイヤーのフィーチャと一致する近接性を決定します。
-
ConditionComparer: このオプションを使用すると、2つのレイヤーのフィーチャからの属性値を比較するためのカスタムロジックを定義できます。デフォルトでは、EqualityComparer.Defaultが使用され、等価性がチェックされます。ただし、より具体的な比較要件のために独自のカスタムコンパレーラを実装できます。
-
JoinedAttributesPrefix: このオプションを使用すると、結合されたレイヤーの属性名のプレフィックス文字列を指定できます。デフォルト値は「joined_」であり、これは結合された属性が結果として得られた結合されたレイヤーで「joined_」と接頭辞付けされることを意味します。このプレフィックスは、結合された属性をメインレイヤーの元の属性から区別するのに役立ちます。
JoinByGeometryOptionsクラスは、空間的な関係に基づいてレイヤーを結合するプロセスをカスタマイズするための手段を提供します。検索半径を指定することで、ジオメトリが一致する範囲を制御できます。これにより、フィーチャ間の空間的な関係に基づいて結合操作を微調整できます。カスタムコンパレーラを提供するオプションにより比較の柔軟性が向上し、結合された属性にプレフィックスを付けるオプションは、結果として得られた結合されたレイヤーでそれらを区別するのに役立ちます。
これらのオプションを使用すると、空間的に認識されたデータマージを実行し、空間的な近接性と属性値に基づいて結合されたレイヤーから洞察を得ることができます。
要約
GISのデータ結合メカニズムにより、異なるレイヤーからのそれぞれの属性を持つジオメトリオブジェクトを組み合わせることが可能になります。これにより、データの空間的および属性的な関係に基づいて分析および情報を抽出できます。利用可能なオプションを使用すると、特定の要件とGISデータの分析ニーズに合わせて結合プロセスをカスタマイズできます。
データ結合は、次のタスクを促進します。
-
特定の空間基準を満たすオブジェクトを見つける(たとえば、特定の位置から500メートル以内のすべての建物)。
-
より包括的で有益な状況を作成するために地理データを組み合わせる。
-
特定の空間条件に基づいてオブジェクトの属性値を分析して傾向とパターンを識別する。
データ結合オプションを使用すると、オブジェクトのマッチングプロセスを正確に構成できます。これらのオプションには、結合する属性を選択すること、属性値を比較するためのカスタムロジックを定義すること、および結合されたデータの属性名にプレフィックスを追加することが含まれます。これらのオプションは、柔軟性と適応性を提供し、GISのデータ分析における目標に合わせて結合プロセスを調整します。
データ結合メカニズムは、地理データを統合および分析する上で重要な役割を果たし、調査対象オブジェクトの空間的および属性的な性質に関するより包括的な理解をもたらします。