フィーチャクラスの基礎
フィーチャクラスは共通フィーチャの同種のコレクションであり、それぞれポイント、ライン、ポリゴンなどの同じ空間的な表現と共通の属性列を持ちます(道路の中心線を表すライン フィーチャクラスなど)。最もよく使用される 4 つのフィーチャクラスは、ポイント、ライン、ポリゴン、アノテーション(マップ上のテキストを表現するジオデータベースのフィーチャクラス)です。
次の図では、これらは同じエリアの 4 つのデータセットを表すために使用されています。(1)マンホールの位置を表すポイント、(2)下水管を表すライン、(3)土地区画を表すポリゴン、(4)道路の名前を示すアノテーション
この図を見て、高度なフィーチャ プロパティをモデリングする必要があることに気付いたかもしれません。たとえば、下水管とマンホールは下水設備ネットワークを構成しますが、このシステムでは流出と流向をモデリングできます。また、隣接する土地区画が境界線を共有していることに注意してください。土地区画を使用するほとんどのユーザは、データセットでの共有フィーチャ境界の整合性を、トポロジに基づいて管理します。
先に述べたように、地理データセットでは、空間的な関連性や振舞いなどのモデルが必要になることがよくあります。このような場合は、高度なジオデータベース エレメント(トポロジ、ネットワーク データセット、テレイン、住所ロケータ)を追加して、基本的なフィーチャクラスを拡張できます。
ジオデータベースに高度な振舞いを追加する方法については、「フィーチャクラスの拡張」をご参照ください。
フィーチャクラスのタイプ
ベクタ フィーチャ(ベクタ ジオメトリを持つ地理オブジェクト)は、地理データ タイプによく使用され、道路、都道府県、土地区画などの明確な境界を持つフィーチャを表すのに適しています。フィーチャとは、その地理表現を行のプロパティ(フィールド)の 1 つとして格納するオブジェクトです。地理表現は、通常はポイント、ライン、またはポリゴンです。ArcGIS のフィーチャクラスは、共通の空間表現を持ち、データベース テーブルに同じ属性情報が格納されている、同じ種類のフィーチャの集まりです。たとえば、ライン フィーチャクラスは、道路の中心線を表します。
フィーチャクラスを作成する際には、フィーチャクラスのタイプ(ポイント、ライン、ポリゴンなど)を定義するために、フィーチャのタイプを設定する必要があります。
一般に、フィーチャクラスはポイント、ライン、ポリゴンの主題別の集合ですが、次の 7 つのフィーチャクラス タイプが存在します。最初の 3 つのタイプは、データベースおよびジオデータベースでサポートされます。残りの 4 つのタイプは、ジオデータベースのみでサポートされます。
- ポイント: ラインまたはポリゴンとして表すには小さすぎるフィーチャおよびポイント ロケーション(GPS 観測点など)。
- ライン: 道路のセンターライン、河川など、エリアとして表すには狭すぎる地理オブジェクトの形状と場所を表します。ラインは、等高線や境界線のように、長さはあるものの面積がないフィーチャを表す場合にも使用されます。
- ポリゴン: 県、市区町村、土地区画、土壌タイプ、土地利用区画などの同種のフィーチャ タイプの形状と場所を表す、複数の辺で構成される面フィーチャ。
- アノテーション: テキストをレンダリングするためのプロパティを含んだマップ テキスト。たとえば、各アノテーションのテキスト文字列に加えて、テキストを配置するシェープ ポイント、フォントサイズとポイントサイズ、その他の表示プロパティが含まれます。アノテーションは、フィーチャリンク アノテーションとして作成することもでき、サブクラスを含むこともできます。
- ディメンション: 建物の幅、土地区画の一辺の長さ、2 つのフィーチャ間の距離など、特定の長さや距離を示す特殊なアノテーション。ディメンションは、GIS アプリケーションの設計および開発によく使用されます。
- マルチポイント: 複数のポイントで構成されるフィーチャ。マルチポイントは、ポイント数が数十億に上ることもある LiDAR ポイント クラスタなど、膨大な数のポイント コレクションの配列を管理するためによく使用されます。そうしたポイント ジオメトリに 1 つの行で対処するのは不可能です。これらのマルチポイント行でクラスタリングすれば、ジオデータベースを膨大な数のポイント セットに対応させることができます。
- マルチパッチ: 3 次元空間で不連続なエリアまたはボリュームを占めるフィーチャの外面サーフェス(シェル)を表すために使用される 3D ジオメトリ。マルチパッチは、3 次元のシェルをモデリングするときに組み合わせて使用される平面の 3D リングとトライアングルで構成されます。マルチパッチは、球体や立方体などのシンプルなオブジェクトから、等値面や建造物などの複雑なオブジェクトまで、あらゆるオブジェクトを表現するために使用されます。
フィーチャ ジオメトリとフィーチャ座標
フィーチャクラスには、各フィーチャのジオメトリック シェープとそれらを説明する属性の両方が含まれます。各フィーチャ ジオメトリは、主にそのフィーチャ タイプ(ポイント、ライン、ポリゴン)によって定義されます。しかし、追加のジオメトリック プロパティを定義することもできます。たとえば、フィーチャがシングルパートかマルチパートか、3D 頂点を持つか、メジャー値(M 値)を持つか、パラメトリック カーブを持つかどうかを定義することができます。このセクションでは、これらの機能の概要について説明します。
シングルパートとマルチパートのラインとポリゴン
ライン フィーチャクラスとポリゴン フィーチャクラスは、シングルパートまたはマルチパートで構成することができます。たとえば、州はマルチパートで構成される場合がありますが(ハワイ諸島など)、単一の州フィーチャとみなされます。
頂点、線分、標高、メジャー値
フィーチャ ジオメトリは、主に座標頂点で構成されています。ライン フィーチャとポリゴン フィーチャの線分は、これらの頂点同士を結びます。線分は、直線のエッジか、パラメータで定義されたカーブです。フィーチャの頂点には、高さを表す Z 値と、ライン フィーチャに沿ったメジャー値(距離)を表す M 値を追加することもできます。
ライン フィーチャとポリゴン フィーチャの線分タイプ
ラインおよびポリゴンは、2 つの重要なエレメントによって定義されます。それは、ラインまたはポリゴンの形状を定義する頂点が順番に並んだリストと、各頂点間に使用される線分の種類の 2 つです。各ラインおよびポリゴンについては、頂点を順番に並べたもので、これらを結ぶとジオメトリック シェープを形成できる、と考えることができます。あるいは、接続された線分を順番に並べたもので、線分は直線、円弧、楕円弧、またはベジェ曲線のいずれかのタイプを持つ、と考えることもできます。
デフォルトの線分タイプは、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 は、整数値を使って座標を格納し、きわめて高い精度で位置を扱うことができます。さまざまな ArcGIS の操作では、フィーチャ座標の処理および管理に重要なジオメトリック プロパティが使用されます。これらのプロパティは、各フィーチャクラスまたはフィーチャ データセットの作成時に定義されます。
次のジオメトリック プロパティは、さまざまな空間処理とジオメトリック操作で使用される座標の精度と処理の許容値を定義するのに役立ちます。
- XY 座標精度: フィーチャクラス内の座標を記録するときの精度
- XY 許容値: フィーチャと同一ジオメトリをクラスタリングするときに使うクラスタ許容値で、トポロジ、フィーチャ オーバーレイ、および関連する操作で使用します。
- Z 許容値と Z 座標精度: 3 次元データセットの場合(標高の測定など)に使う垂直座標の許容値および座標精度プロパティ
- M 許容値および M 座標精度: リニア リファレンス データセットでライン フィーチャと合わせて使われる測定(メートル単位で測定する道路上の距離など)の許容値および座標精度プロパティ
XY 座標精度
フィーチャクラスまたはフィーチャ データセットの XY 座標精度は、XY 座標値を格納するための数値の精度です。精度は、フィーチャの正確な表現、分析、マッピングに重要となります。
XY 座標精度は、フィーチャ座標(X および Y)を格納するために使用される小数点以下の桁数または有効桁数を定義します。座標精度については、すべての座標がスナップされる非常に細かいグリッド メッシュの定義として考えることができます。ArcGIS の座標値は、実際には整数として格納され、処理されます。したがって、このグリッド メッシュを整数グリッドまたは座標グリッドと呼ぶことがあります。
座標精度は、すべての座標がスナップする座標グリッドのメッシュ間の距離を定義します。XY 座標精度は、State Plane フィート、UTM メートル、Albers メートルなど、(その座標系に基づく)データの単位で表現されます。
フィーチャクラスのデフォルトの 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 列は各フィーチャの一意な識別子を保持します。
ジオデータベースにライン フィーチャクラスを作成した場合、ラインの長さを記録するために、フィーチャクラスにフィールドが自動的に追加されます。ポリゴン フィーチャクラスを作成した場合、各ポリゴン フィーチャの長さ(周長)と面積を記録するために、2 つのフィールドが自動的に追加されます。これらの値の計測単位は、フィーチャクラスに対して定義された空間参照に依存します。これらのフィールドの名前は、使用しているデータベースと空間タイプによって異なります。これらは必須フィールドで変更できません。
フィーチャクラスの拡張
各フィーチャクラスは、同じジオメトリ タイプ(ポイント、ライン、ポリゴン)、同じ属性、同じ空間参照を持つ地理フィーチャの集合です。ジオデータベースに格納されたフィーチャクラスは、さまざまな目的を達成するために、必要に応じて拡張することができます。次に、ジオデータベースを使用してフィーチャクラスを拡張する方法とその理由をまとめます。
用途 |
目的 |
---|---|
空間的に関連するフィーチャクラスの集合を保持する、またはトポロジ、ネットワーク、パーセル ファブリック、テレインを構築します。 |
|
一連のフィーチャ サブクラスを単一のフィーチャクラスで管理します。同じフィーチャ タイプのサブセットで異なる振舞いを管理するために、フィーチャクラス テーブルでよく使用されます。 |
|
属性行の有効な値のリスト、または有効な値の範囲を指定します。属性値の整合性を保証するためにドメインを使用します。ドメインは、データ分類(道路クラス、ゾーン コード、土地利用分類など)を適用するためによく使用されます。 |
|
共通キーを使用して、フィーチャクラスと他テーブル間でリレーションシップを構築します。たとえば、フィーチャクラスで選択した行に基づいて、関連先テーブルで関連する行を検索します。 |
|
フィーチャがジオメトリを共有する方法をモデリングします。たとえば、隣接する郡は境界線を共有します。また、郡ポリゴンは州にネストし、州を完全にカバーします。 |
|
交通網の接続と流れをモデリングします。ArcGIS for Desktop に ArcGIS Network Analyst エクステンションがインストールされている必要があります。 |
|
公共ネットワークとトレーシングをモデリングします。 |
|
TIN(Triangulated Irregular Network)をモデリングし、大きな LiDAR/SoNAR ポイントのコレクションを管理します。ArcGIS for Desktop に ArcGIS 3D Analyst エクステンションがインストールされている必要があります。 |
|
住所をジオコーディングします。 |
|
地域および土地区画の計画に関するサーベイ情報を、継続的なパーセル ファブリック データ モデルとしてジオデータベースに統合および維持します。また、地域の計画や土地区画の記述として土地区画を入力するときの精度を段階的に向上します。 |
|
メジャー値を使用してリニア フィーチャ沿いのイベントを特定します。 |
|
複数のカートグラフィック リプレゼンテーションと高度なカートグラフィ描画ルールを管理します。 |
|
データ管理のための重要な GIS ワークフローを管理します。たとえば、更新のロング トランザクション、履歴アーカイブ、マルチユーザ編集など。ArcSDE ジオデータベースの使用を必要とします。 |