フィーチャクラスの基礎
フィーチャクラスは共通フィーチャの同種のコレクションであり、それぞれポイント、ライン、ポリゴンなどの同じ空間的な表現と共通の属性列を持ちます(道路のセンターラインを表すライン フィーチャクラスなど)。ジオデータベースで最もよく使用される 4 つのフィーチャクラスは、ポイント、ライン、ポリゴン、アノテーション(マップ テキストのジオデータベース名)です。
次の図では、これらは同じエリアの 4 つのデータセットを表すために使用されています。(1)マンホールの位置を表すポイント、(2)下水管を表すライン、(3)土地区画を表すポリゴン、(4)道路の名前を示すアノテーション
この図を見て、高度なフィーチャ プロパティをモデリングする必要があることに気付いたかもしれません。たとえば、下水管とマンホールの位置は排水管ネットワークを構成しますが、これは流出と流入でモデリングできるシステムです。また、隣接する土地区画が境界線を共有していることに注意してください。土地区画を使用するほとんどのユーザは、データセットでの共有フィーチャ境界の整合性を、トポロジに基づいて管理します。
先に述べたように、ジオグラフィック データセットでは、空間的な関連性や振舞いなどのモデルが必要になることがよくあります。このような場合は、トポロジ、ネットワーク データセットなどの高度なジオデータベース エレメントを追加して、基本的なフィーチャクラスを拡張します。
ジオデータベースに高度な振舞いを追加する方法については、「フィーチャクラスの拡張」をご参照ください。
ジオデータベースのフィーチャクラスのタイプ
ベクタ フィーチャ(ベクタ ジオメトリを持つ地理オブジェクト)は、地理データ タイプによく使用され、井戸、道路、河川、州、土地区画などの明確な境界を持つフィーチャを表すのに適しています。フィーチャとは、単にその地理表現を行のプロパティ(フィールド)の 1 つとして格納するオブジェクトです。地理表現は、通常はポイント、ライン、またはポリゴンです。ArcGIS のフィーチャクラスは、空間表現が同じであり、データベース テーブルに同じ属性セットが格納されている、同じ種類のフィーチャの集まりです。たとえば、ライン フィーチャクラスは、道路のセンターラインを表します。
ジオデータベースでフィーチャクラスを作成する際には、フィーチャクラスのタイプ(ポイント、ライン、ポリゴンなど)を定義するために、フィーチャのタイプを設定する必要があります。
一般に、フィーチャクラスはポイント、ライン、またはポリゴンの主題別のコレクションですが、7 つのフィーチャクラス タイプが存在します。
- ポイント - ラインまたはポリゴンとして表すには小さすぎるフィーチャおよびポイント ロケーション(GPS 観測など)
- ライン - 道路のセンターライン、河川など、エリアとして表すには狭すぎる地理オブジェクトの形状と場所を表します。ラインは、等高線や境界線のように、長さはあるものの面積がないフィーチャを表すのにも使用されます。
- ポリゴン - 州、郡、土地区画、土壌タイプ、土地利用区画などの同種のフィーチャ タイプの形状と場所を表す、多辺的フィーチャ
- アノテーション - テキストをレンダリングするためのプロパティを含んだマップ テキスト。たとえば、各アノテーションのテキスト文字列に加えて、テキストを配置するシェープ ポイント、フォントサイズとポイントサイズ、その他の表示プロパティが含まれます。アノテーションは、フィーチャリンク アノテーションとして作成することもでき、サブクラスを含むこともできます。
- ディメンション - 建物の幅、土地区画の一辺の長さ、2 つのフィーチャ間の距離など、特定の長さや距離を示す特殊なアノテーションディメンションは、GIS アプリケーションの設計および開発によく使用されます。
- マルチポイント - 複数のポイントで構成されるフィーチャマルチポイントは、ポイント数が数十億に上ることもある LiDAR ポイント クラスタなど、膨大な数のポイント コレクションの配列を管理するためによく使用されます。そうしたポイント ジオメトリに 1 つの行で対処するのは不可能です。これらのマルチポイント行でクラスタリングすれば、ジオデータベースを膨大な数のポイント セットに対応させることができます。
- マルチパッチ - 3 次元空間で不連続なエリアまたはボリュームを占めるフィーチャの外面サーフェス(シェル)を表すために使用される 3D ジオメトリマルチパッチは、3 次元のシェルをモデリングするときに組み合わせて使用される平面の 3D リングとトライアングルで構成されます。マルチパッチは、球体や立方体などのシンプルなオブジェクトから、等値面や建造物などの複雑なオブジェクトまで、あらゆるオブジェクトを表現するために使用されます。
フィーチャ ジオメトリとフィーチャ座標
フィーチャクラスには、各フィーチャのジオメトリック シェープとそれらを説明する属性の両方が含まれます。各フィーチャ ジオメトリは、主にそのフィーチャ タイプ(ポイント、ライン、ポリゴン)によって定義されます。しかし、追加のジオメトリック プロパティを定義することもできます。たとえば、フィーチャがシングルパートかマルチパートか、3D 頂点を持つか、メジャー値(M 値)を持つか、パラメトリック カーブを持つかどうかを定義することができます。このセクションでは、これらの機能の概要について説明します。
シングルパートとマルチパートのラインとポリゴン
ジオデータベースのライン フィーチャクラスとポリゴン フィーチャクラスは、シングルパートまたはマルチパートで構成することができます。たとえば、州はマルチパートで構成される場合がありますが(ハワイ諸島など)、単一の州フィーチャと見なされます。
頂点、線分、標高、メジャー値
フィーチャ ジオメトリは、主に座標頂点で構成されています。ライン フィーチャとポリゴン フィーチャの線分は、これらの頂点同士を結びます。線分は、直線のエッジか、パラメータで定義されたカーブです。フィーチャの頂点には、標高値を表す Z 値と、ライン フィーチャ沿いのメジャー値を表す M 値を追加することもできます。
ライン フィーチャとポリゴン フィーチャの線分タイプ
ラインおよびポリゴンは、2 つの重要なエレメントによって定義されます。(1) 1 つは、ラインまたはポリゴンの形状を定義する頂点が順番に並んだリストであり、(2) もう 1 つは、各頂点の組に使用される線分の種類です。各ラインおよびポリゴンについては、頂点を順番に並べたもので、これらを結ぶとジオメトリック シェープを形成できる、と考えることができます。あるいは、接続された線分を順番に並べたもので、線分は直線、円弧、楕円弧、またはベジェ曲線のいずれかのタイプを持つ、と考えることもできます。
デフォルトの線分タイプは、2 つの頂点を結ぶ直線です。ただし、曲線やパラメータで定義されたシェープを定義する必要がある場合は、さらに円弧、楕円弧、ベジェ曲線の 3 つのタイプを定義することができます。これらのシェープは、土地区画の境界線や道路などの人工環境を表すためによく使用されます。
Z 値を使用した垂直メジャー値
フィーチャ座標には、X、Y 頂点および X、Y、Z 頂点を含めることができます。Z 値は、標高を表すために最もよく使用されますが、年間降水量や大気質観測などの測定値を表すこともできます。
フィーチャには X、Y 座標を定義することができ、必要に応じて Z 標高値を追加することができます。
M 値を使用した距離メジャー値
リニア フィーチャの頂点には、M 値を追加することもできます。一部の GIS アプリケーションでは、道路、河川、パイプライン沿いなどの、線形のフィーチャ沿いの距離を補完するために線形の測定値を使用します。フィーチャの各頂点に M 値を割り当てて線形の測定値を使用します。よく使用されるのは、交通局が高速道路の舗装状態、制限速度、事故現場、およびその他のイベントを記録するために使用する、高速道路マイルポスト測定システムです。よく使用される計測単位は、郡の境界線などの固定の位置からマイルポストまでの距離や、参照マーカーからの距離です。
計測値の頂点は、(X、Y、M)または(X、Y、Z、M)のどちらかとなります。
これらのデータ タイプのサポートは、リニア リファレンスと呼ばれ、これらの計測システム沿いで発生するイベントの位置を特定するプロセスは、ダイナミック セグメンテーションと呼ばれます。
計測システムはこれらの計測された座標値をもとに構築されます。ArcGIS のリニア リファレンス実装では、ルートという言葉は、市街道路、高速道路、河川、パイプなどのリニア フィーチャを表します。これらは、一意な識別子とリニア フィーチャ沿いの共通の計測システムを持ちます。共通の計測システムを持つルートのコレクションは、ライン フィーチャクラスに次のように構築することができます。
詳細については、「リニア リファレンスの概要」をご参照ください。
フィーチャ許容値
GIS データの管理には、高精度データ管理フレームワークに対する座標位置の信頼性とサポートが不可欠です。鍵となる要件は、十分な精度の座標情報を格納できる機能です。座標の精度は、位置の記録に使用する桁数の多さで決まります。桁数の多さが、空間データを収集および管理する解像度を定義するからです。
ジオデータベースは高精度の座標を記録できるので、ユーザはデータ記録ツールやセンサーの向上に応じて(たとえば、測量や都市開発によるデータ入力、地籍および COGO データ記録、画像解像度の改善、LIDAR、CAD による建築設計図など)、精度と解像度の高いデータセットを構築できます。
ジオデータベースは、整数値を使って座標を記録し、きわめて高い精度で位置を扱うことができます。さまざまな ArcGIS 操作では、ジオデータベースのフィーチャ座標の処理および管理に重要なジオメトリック プロパティが使用されます。これらのプロパティは、各フィーチャクラスまたはフィーチャ データセットの作成時に定義されます。
次のジオメトリック プロパティは、さまざまな空間処理とジオメトリック操作で使用される座標の解像度と処理の許容値を定義するのに役立ちます。
- XY 解像度:フィーチャクラス内の座標を記録するときの精度
- XY 許容値フィーチャと同一ジオメトリをクラスタリングするときに使うクラスタ許容値で、トポロジ、フィーチャ オーバーレイ、および関連する操作で使用します。
- Z 許容値と Z 解像度3 次元データセットの場合(標高の測定など)に使う垂直座標の許容値および解像度プロパティ
- M 許容値および M 解像度リニア リファレンス データセットでライン フィーチャと合わせて使われる測定(メートル単位で測定する道路上の距離など)の許容値および解像度プロパティ。
XY 解像度
フィーチャクラスまたはフィーチャ データセットの XY 解像度は、XY 座標値を格納するための数値の精度です。精度は、フィーチャの正確な表現、分析、マッピングに重要となります。
XY 解像度は、フィーチャ座標(X および Y)を格納するために使用される小数点以下の桁数または有効桁数を定義します。解像度については、すべての座標がスナップされる非常に細かいグリッド メッシュの定義として考えることができます。ArcGIS の座標値は、実際には整数として格納され、処理されます。したがって、このグリッド メッシュを整数グリッドまたは座標グリッドと呼ぶことがあります。
解像度は、すべての座標がスナップする座標グリッドのメッシュ間の距離を定義します。XY 解像度は、State Plane フィート、UTM メートル、Albers メートルなど、(その座標系に基づく)データの単位で表現されます。
ArcGIS 9.2 以降のバージョンで作成されるフィーチャクラスのデフォルトの XY 解像度は、0.0001 メートル、またはデータセットの座標系の単位でそれに相当する値です。たとえば、フィーチャクラスが State Plane Feet で格納される場合、デフォルトの解像度は 0.0003281 フィート(0.003937 インチ)です。座標が緯度経度で記録される場合、デフォルトの XY 解像度は 0.000000001 度となります。
次の図は、すべての座標値がグリッド メッシュにスナップされる座標グリッドの概念図です。グリッドは、各データセットの範囲をカバーします。このメッシュの細かさ(グリッド内のライン間の距離)は、非常に小さい XY 解像度によって定義されます。
必要であれば、XY 解像度のデフォルト値を上書きして、各フィーチャクラスまたはフィーチャ データセットに別の解像度を設定することもできます。XY 解像度により小さい値を設定すると、大きい値を使用した場合と比べて、データセットのデータ格納のサイズや処理時間が増える可能性があります。
XY 許容値
フィーチャクラスを新規作成する際には、XY 許容値を設定する必要があります。XY 許容値は、トポロジの整合チェック、バッファの生成、ポリゴン オーバーレイなどのクラスタリングや一部の編集処理において、座標間の最短距離を設定するために使用されます。
フィーチャの処理には XY 許容値が反映され、XY 許容値に基づいてすべてのフィーチャ座標(ノードおよび頂点)の最短距離が決定されます。当然ながら、クラスタ処理の際に、X または Y 方向(または両方向)に座標を移動できる距離も定義されます。
XY 許容値は、非常に小さい距離です(デフォルトは地表単位で 0.001 メートル)。XY 許容値は、クラスタ処理の際に、不正確な交差位置にある座標を解決するために使用されます。ジオメトリ操作を使用してフィーチャクラスを処理する際、互いの X 方向の距離と Y 方向の距離が XY 許容値の範囲内にある座標は、同一(つまり、同じ X、Y 位置を共有している)と見なされます。このため、クラスタリングされた座標は共通の位置へ移動します。
通常は、一方の座標がより正確な座標の位置へ移動するか、新しい位置がクラスタ内の座標間で加重平均距離として計算されます。このような場合、加重平均距離は、クラスタリングされる座標の精度ランクに基づきます。
各フィーチャクラスに対する正確なランクの設定方法については、「ArcGIS の トポロジ」をご参照ください。
クラスタリングのプロセスは、互いに XY 許容値の範囲内にある座標のクラスタを識別して、マップ全体にわたって移動するという仕組みになっています。ArcGIS は、フィーチャ間の共有ジオメトリの検出、クリーンナップ、管理に、このアルゴリズムを使用します。つまり、座標は同一であると見なされます(そして、同じ共有される位置の座標へスナップされます)。これは GIS の多くの処理および概念の基礎です。たとえば、「ArcGIS でのトポロジの概要」をご参照ください。
そうした処理の過程で座標を新しい場所へ移動するための最大距離は、「<XY 許容値 x 2> の平方根」で求められます。クラスタリング アルゴリズムは反復的なので、場合によっては、座標位置がこの距離よりも移動する可能性があります。
デフォルトの XY 許容値は、0.001 メートル、またはデータセットの実際の座標系単位でこれに相当する値(つまり、地表上の 0.001 メートル)に設定されます。たとえば、座標系が State Plane Feet で記録される場合、デフォルトの XY 許容値は 0.0003281 フィート(0.003937 インチ)になります。
XY 許容値のデフォルト値は、デフォルトの XY 解像度の 10 倍であり、ほとんどの場合はこれが推奨されます。座標の精度が低いデータや、きわめて精度の高いデータセットの小さな値では、より大きな許容値を設定することもできます。
XY 許容値は、ジオメトリ シェープをジェネラライズするためのものではないことに注意してください。XY 許容値は、トポロジ処理の過程で線画や境界線を統合するためのものであり、互いに非常に近い距離にある座標同士を統合します。座標は XY 許容値の範囲内で X、Y 方向に移動できるため、XY 許容値を使用するコマンドでデータセットを処理すれば、多くの問題を未然に防ぐことができます。これには、微小なオーバーシュートやアンダーシュートの処理、重複する線分の不要部分の自動的な削除、境界線に沿った座標の削減が含まれます。
次に、便利なヒントをいくつか紹介します。
- 通常は、XY 解像度の 10 倍の XY 許容値を使用すると、よい結果が得られます。
- 座標移動を小さく抑え、XY 許容値を小さく保ちます。ただし、XY 許容値が小さすぎると(XY 解像度の 3 倍未満など)、同一と見なされる境界および座標のラインが正しく結合されない場合があります。
- 逆に、XY 許容値が大きすぎると、フィーチャの座標が互いに消失するおそれがあります。これにより、フィーチャの境界線が正確に表現されなくなる可能性があります。
- XY 許容値はデータをキャプチャした解像度に近い値に設定しないでください。たとえば、マップ スケールが 1:12,000 の場合、1 インチは 1,000 フィート、1/50 インチは 20 フィートに相当します。XY 許容値に基づく座標の移動は、これらの値以下に抑える必要があります。この場合、デフォルトの XY 許容値は 0.0003281 フィートであり、きわめて妥当なデフォルト値です。実際には、特異なケースを除いて、常にデフォルトの XY 許容値を使用するのが最も効果的です。
- トポロジでは、各フィーチャクラスの座標ランクを設定することができます。最も精度の高いフィーチャ(測量されたフィーチャなど)の座標ランクを 1 に設定し、次に精度の高いものから順に 2、3、...のように設定していきます。これにより、ランク数の高い(したがって、座標の精度が低い)フィーチャの座標が、ランク数の低いフィーチャに合わせて調整されるようになります。
ジオデータベースのフィーチャクラスの格納
ジオデータベースでは、フィーチャクラスはそれぞれ単一のテーブルで管理されます。各行の Shape 列は、各フィーチャのジオメトリまたはシェープの保持に使用されます。
フィーチャクラス テーブルにおいて、以下の事項が当てはまります。
- 各フィーチャクラスは 1 つのテーブルです。
- 個々のフィーチャは行として保持されます。
- フィーチャ属性は列に記録されます。
- Shape 列は各フィーチャのジオメトリ(ポイント、ライン、ポリゴンなど)を保持します。
- ObjectID 列は各フィーチャの一意な識別子を保持します。
ArcSDE ジオデータベースでは、DBMS のリレーショナル データベースで、各フィーチャクラスをテーブルとして保持します。4 つの DBMS(Oracle、DB2、Informix、PostgreSQL)で、ジオデータベースのフィーチャ ジオメトリに SQL を通じてアクセスできます。
フィーチャクラスの拡張
ジオデータベースの各フィーチャクラスは、同じジオメトリ タイプ(ポイント、ライン、ポリゴン)、同じ属性、同じ空間参照を持つジオグラフィック フィーチャのコレクションです。フィーチャクラスは、さまざまな目的を達成するために、必要に応じて拡張することができます。次に、ジオデータベースを使用してフィーチャクラスを拡張する方法とその理由をまとめます。
用途 |
目的 |
---|---|
空間的に関連するフィーチャクラスのコレクションを保持する、またはトポロジ、ネットワーク、地籍データセット、テレインを構築します。 |
|
一連のフィーチャ サブクラスを単一のフィーチャクラスで管理します。同じフィーチャ タイプのサブセットで異なる振舞いを管理するために、フィーチャクラス テーブルでよく使用されます。 |
|
属性行の有効な値のリスト、または有効な値の範囲を指定します。属性値の整合性を保証するためにドメインを使用します。ドメインは、データ分類(道路クラス、ゾーン コード、土地利用分類など)を適用するためによく使用されます。 |
|
共通キーを使用して、フィーチャクラスと他テーブル間でリレーションシップを構築します。たとえば、フィーチャクラスで選択した行に基づいて、関連先テーブルで関連する行を検索します。 |
|
フィーチャがジオメトリを共有する方法をモデリングします。たとえば、隣接する郡は境界線を共有します。また、郡ポリゴンは州にネストし、州を完全にカバーします。 |
|
交通網の接続と流れをモデリングします。ArcGIS Desktop に Network Analyst エクステンションがインストールされている必要があります。 |
|
公共ネットワークとトレーシングをモデリングします。 |
|
TIN(Triangulated Irregular Network)をモデリングし、大きな LiDAR/SoNAR ポイントのコレクションを管理します。ArcGIS Desktop に 3D Analyst Extension がインストールされている必要があります。 |
|
住所をジオコーディングします。 |
|
地域および土地区画の計画に関するサーベイ情報を、継続的なパーセル ファブリック データ モデルとしてジオデータベースに統合および維持します。また、地域の計画や土地区画の記述として土地区画を入力するときの精度を段階的に向上します。 |
|
メジャー値を使用してリニア フィーチャ沿いのイベントを特定します。 |
|
複数のカートグラフィック リプレゼンテーションと高度なカートグラフィ描画ルールを管理します。 |
|
データ管理のための重要な GIS ワークフローを管理します。たとえば、更新のロング トランザクション、履歴アーカイブ、マルチユーザ編集など。ArcSDE ジオデータベースの使用を必要とします。 |