フィーチャクラスの基礎

フィーチャクラスは共通フィーチャと同種のコレクションであり、それぞれのフィーチャクラスに同じ空間表現 (ポイント、ライン、ポリゴンなど) と共通の属性列が設定されています (たとえば、道路の中心線を表すライン フィーチャクラス)。最もよく使用される 4 つのフィーチャクラスは、ポイント、ライン、ポリゴン、アノテーション (マップ テキストの用語) です。

次の図では、同じ領域にある 4 つのデータセットをフィーチャクラスで表現しています。

  • マンホールの位置を表すポイント
  • 下水管を表すライン
  • パーセル ポリゴン
  • 道路の名前を示すアノテーション

ジオデータベースで最もよく使用される 4 つのフィーチャクラス

この図を見て、高度なフィーチャ プロパティをモデリングできる可能性があることに気付いたかもしれません。たとえば、下水管とマンホールは下水設備ネットワークを構成しますが、このシステムでは流出と流向をモデリングできます。また、隣接する土地区画が境界線を共有していることにも注目してください。土地区画を使用するほとんどのユーザーは、データセットに含まれる共有フィーチャの境界線の整合性をトポロジに基づいて管理します。

先に述べたように、地理データセットでは、空間的な関連性や振舞いなどのモデルが必要になることがよくあります。このような場合は、高度なジオデータベース エレメント (トポロジ、ネットワーク データセット、テレイン) を追加して、基本的なフィーチャクラスを拡張できます。

フィーチャクラスのタイプ

ベクター フィーチャ (ベクター ジオメトリを持つ地理オブジェクト) は、地理データ タイプによく使用され、道路、都道府県、土地区画などの明確な境界を持つフィーチャを表すのに適しています。フィーチャとは、その地理表現を行のプロパティ (フィールド) の 1 つとして格納するオブジェクトです。地理表現は、通常はポイント、ライン、またはポリゴンです。ArcGIS のフィーチャクラスは、共通の空間表現を持ち、データベース テーブルに同じ属性情報が格納されている、同じ種類のフィーチャの集まりです。たとえば、ライン フィーチャクラスは、道路の中心線を表します。

メモ:

フィーチャクラスを作成する際には、フィーチャクラスのタイプ (ポイント、マルチポイント、ポリライン、マルチパッチなど) を定義するために、フィーチャのタイプを設定する必要があります。

一般に、フィーチャクラスはポイント、ライン、ポリゴンの主題別の集合ですが、フィーチャクラス タイプがいくつか存在します。最初の 3 つのタイプは、データベースおよびジオデータベースでサポートされます。残りの 4 つのタイプは、ジオデータベースのみでサポートされます。

  • ポイント: ラインまたはポリゴンとして表すには小さすぎるフィーチャおよびポイント ロケーション (GPS 観測点など)。
  • ライン: 道路のセンターラインや河川など、エリアとして表すには狭すぎる地理オブジェクトの形状と場所を表します。ラインは、等高線や境界線のように、長さはあるものの面積がないフィーチャを表す場合にも使用されます。
  • ポリゴン: 県、市区町村、土地区画、土壌タイプ、土地利用区画などの同種のフィーチャ タイプの形状と場所を表す、複数の辺で構成される面フィーチャ。
  • アノテーション: テキストを表現するためのプロパティを含んだマップ テキスト。たとえば、各アノテーションのテキスト文字列に加えて、テキストを配置するシェープ ポイント、フォントサイズとポイントサイズ、その他の表示プロパティが含まれます。アノテーションは、フィーチャリンク アノテーションとして作成することもでき、サブクラスを含むこともできます。
  • ディメンション: 建物の幅、土地区画の一辺の長さ、2 つのフィーチャ間の距離など、特定の長さや距離を示す特殊なアノテーション。ディメンションは、GIS における設計、エンジニアリング、設備管理の用途でよく使用されます。
    ジオデータベースのディメンション フィーチャのスタイル例
  • マルチポイント: 複数のポイントで構成されるフィーチャ。マルチポイントは、ポイント数が数十億に上ることもある LiDAR ポイント クラスターなど、膨大な数のポイント コレクションの配列を管理するためによく使用されます。そうしたポイント ジオメトリに 1 つの行で対処するのは不可能です。これらのマルチポイント行でクラスタリングすれば、ジオデータベースを膨大な数のポイント セットに対応させることができます。

    LiDAR 観測のマルチポイント フィーチャクラスの内容を表す緑のポイント
  • マルチパッチ: 3 次元空間における個別の領域または体積占めるフィーチャの外面サーフェス (外郭構造) を表すために使用される 3D ジオメトリ。マルチパッチは、3 次元のシェルをモデリングするときに組み合わせて使用される平面の 3D リングと三角形で構成されます。マルチパッチは、球体や立方体などのシンプルなオブジェクトから、等値面や建造物などの複雑なオブジェクトまで、あらゆるオブジェクトを表現するために使用されます。

    都市部の一連の建物からなるマルチパッチ フィーチャクラス

フィーチャ ジオメトリとフィーチャ座標

フィーチャクラスには、各フィーチャのジオメトリック シェープ (幾何形状) とそれを説明する属性の両方が含まれます。各フィーチャ ジオメトリは、主にそのフィーチャ タイプ (ポイント、ライン、ポリゴン) によって定義されます。しかし、追加のジオメトリック プロパティを定義することもできます。たとえば、フィーチャがシングルパートかマルチパートか、3D 頂点を持つか、メジャー値 (M 値) を持つか、パラメトリック カーブを持つかどうかを定義することができます。このセクションでは、これらの機能の概要について説明します。

シングルパートとマルチパートのラインとポリゴン

ライン フィーチャクラスとポリゴン フィーチャクラスは、シングルパートまたはマルチパートで構成することができます。たとえば、州はマルチパートで構成される場合がありますが (ハワイ諸島など)、単一の州フィーチャとみなされます。

頂点、線分、高さデータ、メジャー値

フィーチャ ジオメトリは、主に座標頂点で構成されています。ライン フィーチャとポリゴン フィーチャの線分は、これらの頂点同士を結びます。線分は、直線のエッジまたはパラメーターで定義されたカーブのいずれかになります。フィーチャの頂点には、高さを表す Z 値と、ライン フィーチャに沿ったメジャー値 (距離) を表す M 値を追加することもできます。

ライン フィーチャとポリゴン フィーチャの線分タイプ

ラインおよびポリゴンは、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 許容値が反映され、XY 許容値に基づいてすべてのフィーチャ座標 (ノードおよび頂点) の最短距離が決定されます。当然ながら、クラスター処理の際に、X または Y 方向 (または両方向) に座標を移動できる距離も定義されます。

XY 許容値は、非常に小さい距離です (デフォルトは地表単位で 0.001 メートル)。XY 許容値は、クラスター処理の際に、不正確な交差位置にある座標を解決するために使用されます。ジオメトリ操作を使用してフィーチャクラスを処理する際、互いの X 方向の距離と Y 方向の距離が XY 許容値の範囲内にある座標は、同一 (つまり、同じ X,Y 位置を共有している) とみなされます。このため、クラスタリングされた座標は共通の位置へ移動します。

同一の (相互に許容範囲内にある) 座標を一致させるために使用する XY 許容値

通常は、一方の座標がより正確な座標の位置へ移動するか、新しい位置がクラスター内の座標間で加重平均距離として計算されます。このような場合、加重平均距離は、クラスタリングされる座標の精度ランクに基づきます。

各フィーチャクラスに対する正確なランクの設定方法については、「ArcGIS の トポロジ」をご参照ください。

クラスタリングのプロセスは、互いに XY 許容値の範囲内にある座標のクラスターを識別して、マップ全体にわたって移動するという仕組みになっています。ArcGIS は、フィーチャ間の共有ジオメトリの検出、クリーンナップ、管理に、このアルゴリズムを使用します。つまり、座標は同一である (同じ共有座標位置にスナップされる) とみなされます。これは GIS の多くの処理および概念の基礎です。

そうした処理の過程で座標を新しい場所へ移動するための最大距離は、「<XY 許容値 x 2> の平方根」で求められます。クラスタリング アルゴリズムは反復的なので、場合によっては、座標位置がこの距離よりも移動する可能性があります。

デフォルトの XY 許容値は、0.001 メートル、またはデータセットの実際の座標系単位でこれに相当する値 (つまり、地表上の 0.001 メートル) に設定されます。たとえば、座標系が State Plane Feet で記録される場合、デフォルトの XY 許容値は 0.0003281 フィート (0.003937 インチ) になります。

XY 許容値 = 座標精度の 10 倍

XY 許容値のデフォルト値は、デフォルトの XY 座標精度の 10 倍であり、ほとんどの場合に、この値が推奨されます。座標の精度が低いデータに大きい許容値を設定するか、極めて精度の高いデータセットに小さい許容値を設定することができます。

X,Y 許容値は、ジオメトリ形状をジェネラライズするためのものではないことに注意してください。XY許容値は、トポロジ処理の過程で線画や境界線を統合するためのものであり、 互いに非常に近い距離にある座標同士を統合します。座標は XY 許容値の範囲内で X,Y 方向に移動できるため、XY 許容値を使用するコマンドでデータセットを処理すれば、多くの問題を未然に防ぐことができます。これには、微小なオーバーシュートやアンダーシュートの処理、重複する線分の不要部分の自動的な削除、境界線に沿った座標の削減が含まれます。

次に、便利なヒントをいくつか紹介します。

  • 通常は、XY 座標精度の 10 倍の XY 許容値を使用すると、良好な結果が得られます。
  • 座標移動を小さく抑え、XY 許容値を小さく保ちます。ただし、XY 許容値が小さすぎると (XY 座標精度の 3 倍未満など)、同一と見なされる境界および座標の線画が正しく結合されない場合があります。
  • 逆に、X,Y 許容値が大きすぎると、フィーチャの座標が互いに消失するおそれがあります。これにより、フィーチャの境界線が正確に表現されなくなる可能性があります。
  • XY 許容値はデータを取得した座標精度に近い値に設定しないでください。たとえば、マップ スケールが 1:12,000 の場合、1 インチは 1,000 フィート、1/50 インチは 20 フィートに相当します。X,Y 許容値に基づく座標の移動は、これらの値以下に抑える必要があります。この場合、デフォルトの XY 許容値は 0.0003281 フィートであり、極めて妥当なデフォルト値です。実際には、特異なケースを除いて、常にデフォルトの XY 許容値を使用することが最も効果的です。
  • トポロジでは、各フィーチャクラスの座標ランクを設定することができます。最も精度の高いフィーチャ (測量されたフィーチャなど) の座標ランクを 1 に設定し、次に精度の高いフィーチャから順に 2、3、... と設定していきます。これにより、ランクの低い (したがって、座標の精度が低い) フィーチャの座標が、ランクの高いフィーチャに合わせて調整されるようになります。

フィーチャクラスの格納

各フィーチャクラスは単一のテーブルで管理されます。各行の Shape 列は、各フィーチャのジオメトリまたはシェープの格納に使用されます。

フィーチャクラス テーブルにおいて、以下の事項が当てはまります。

  • 各フィーチャクラスは 1 つのテーブルです。
  • 個々のフィーチャは行として格納されます。
  • フィーチャ属性は列に格納されます。
  • Shape 列は各フィーチャのジオメトリ (ポイント、ライン、ポリゴンなど) を格納します。
  • ObjectID 列は各フィーチャの一意な識別子を保持します。

ジオデータベースにライン フィーチャクラスを作成した場合、ラインの長さを記録するために、フィーチャクラスにフィールドが自動的に追加されます。ポリゴン フィーチャクラスを作成した場合、各ポリゴン フィーチャの長さ (周長) と面積を記録するために、2 つのフィールドが自動的に追加されます。これらの値の計測単位は、フィーチャクラスに対して定義された空間参照に依存します。これらのフィールドの名前は、使用しているデータベースと空間タイプによって異なります。これらは必須フィールドで変更できません。

フィーチャクラスの拡張

各フィーチャクラスは、同じジオメトリ タイプ、同じ属性、同じ空間参照を持つ地理フィーチャの集合です。ジオデータベースに格納されたフィーチャクラスは、振る舞いやデータ整合性を追加するために、拡張することができます。次に、ジオデータベースを使用してフィーチャクラスを拡張する方法とその理由をまとめます。

ジオデータベースでのフィーチャクラスの操作

使用目的

サブタイプ

一連のフィーチャ サブクラスを単一のフィーチャクラスで管理します。同じフィーチャ タイプのサブセットで異なる振舞いを管理するために、フィーチャクラス テーブルでよく使用されます。

属性ドメイン

属性行の有効な値のリスト、または有効な値の範囲を指定します。属性値の整合性を保証するためにドメインを使用します。ドメインは、データ分類 (道路クラス、ゾーン コード、土地利用分類など) を適用する場合によく使用されます。

バージョニング

データを管理する上で重要な GIS ワークフローを管理します (長期にわたる更新のトランザクション、履歴アーカイブ、マルチユーザー編集など)。