座標値を高精度の空間参照で格納する機能は、ArcGIS 9.2 で導入された新しい側面です。 低精度と比べて、高精度の格納では、座標値をより密に格納すると同時に、データセットの X、Y、Z、M ドメイン (格納可能な領域) を拡大することができます。 上記の利点から、ほとんどの場合、データを高精度に変換することが推奨されます。 ただし、低精度の空間参照を使用するデータも、これまでと同様に使用することができます。 アップグレードしていないクライアントにデータを提供する必要がある、または既存の解像度に満足している場合は、引き続き低精度の空間参照を使用することもできます。
ArcGIS 9.2 以降では、まだアップグレードされていない ArcGIS 9.2 以前のジオデータベースを使用して、引き続き低精度のデータセットを作成することができます。 このジオデータベースでフィーチャクラスまたはフィーチャ データセットを新規作成したり、このジオデータベースにデータをインポートしたりする場合、新しいデータは低精度の空間参照を持ちます。 また、ArcGIS 9.2 以前のジオデータベースをアップグレードしたとしても、既存のフィーチャ データセットは空間参照をアップグレードするまで低精度のままです。 このため、既存の低精度のフィーチャ データセット内に、低精度のフィーチャクラスを新規作成することができます。 ジオデータベースを ArcGIS 9.2 以降で新規作成した場合、または ArcGIS 9.2 以降にアップグレードした場合、低精度のスタンドアロン フィーチャクラスまたはフィーチャ データセットを作成することはできません。
低精度の空間参照を指定する場合は、XY 解像度とドメインを設定する必要があります。 大きなドメインを設定するには、解像度に大きな値を設定する必要があります。 小さい解像度を反映する値を設定すると、必然的に、UTM (Universal Transverse Mercator) や State Plane などの多くの投影座標系には小さすぎるほど、ドメインが小さくなることがあります。 このため、低精度の空間参照を使用する際には、ドメインと解像度値のバランスをうまく保つ必要があります。
このトピックでは、低精度の空間参照の XY 解像度とドメインを設定する方法について説明します。 最初のセクションでは、解像度の基礎について説明します。 次のセクションでは、データに適した解像度値を計算するための方法をいくつか紹介します。
XY 解像度とドメインについて
低精度のジオデータベースは、正の 4 バイトの整数 (最大値は 2,147,483,647) として座標を格納します。 整数では 1 フィートや 1 メートルの精度でしか格納できないように思えますが、実際にはそうではありません。4 バイト整数で何を表すかはユーザーが決定します。 メートル精度で格納する場合は、21 億 4 千万メートル (地球の円周の約 53 倍) までの範囲で格納することができます。 また、センチメートル精度で格納する場合は、21 億 4 千万センチメートル (地球の円周の約 1/2 倍) までの範囲で格納することができます。 解像度値は、2 つの座標値の間で許可される最短距離を表します。 解像度値は、小数値をジオデータベースに格納される整数値に変換するために使用されます。 ジオデータベースはそれらをリアルタイムに変換するため、最低レベルの ArcObjects API を使用する場合でも、小数値のみを操作することが可能です。
次に、座標間の最短距離、座標系の単位、それに相当する解像度値の例を示します。
座標間の最短距離 | 解像度 | 座標系単位 |
---|---|---|
1 センチメートル | 0.01 | メートル |
1 ミリメートル | 0.001 | メートル |
2 センチメートル | 0.02 | メートル |
1 インチ | 0.083333 | フィート |
ジオデータベースは、実際には小数値を整数値に変換するだけではなく、 変換の過程で小数ベースの座標値をシフトします。 解像度とドメインを手動で計算する場合は、このシフトにも注意する必要があります。
解像度と XY ドメインの関係は正比例です。 座標を正の整数値で格納するための最大値は約 21 億 4 千万であるため、ドメインには境界が存在します。 解像度の値が小さくなればなるほど、ドメインの範囲も小さくなります。 ドメインの外側にフィーチャを追加しようとすると、「座標またはメジャーが範囲外です」というエラーになります。 このため、調査領域 (スタディ エリア) 全体にフィーチャを追加できないほど解像度値を小さくするのは禁物です。 ただし、約 21 億 4 千万までの整数値を格納できるため、ほとんどの場合は、解像度値を適切に設定すれば問題はありません。 たとえば、1 メートルの解像度で世界全体を格納できますが、1 センチメートルの解像度では世界の半分しか格納できません。 NAD83 のような 10 進度数表記の地理座標系を使用する場合は、1 つのフィーチャクラスで世界全体に対して 1.9 cm の解像度を使用することができます。
XY 解像度とドメインの設定方法
XY 解像度とドメインを指定する前に、検討しなければならないことが 3 つあります。
- その解像度でデータ コレクションの正確さを維持できるか
- そのドメインは調査領域の範囲全体をカバーするか
- エンタープライズ ジオデータベースの場合、その解像度は最小限の格納領域で最大限のパフォーマンスを達成するのに十分か
必ずしもこれらの問題すべてに対処する必要はありません。 多くの場合は、ソフトウェアによって生成されるデフォルト設定のままにしておくことで、これらの問題に対処できます。 次に、3 種類の手法を示します。 アプリケーションに最適な手法を選択してください。
A. データのインポート時にデフォルト設定を使用する。
B. ドメインを指定し、解像度はデフォルト設定のままにする。
C. 解像度とドメインを指定する。
手法 A: データのインポート時にデフォルト設定を使用する
データのインポート時に生成されたデフォルトの解像度とドメインを使用するだけなので、これは最も簡単な手法です。 この手法は、次のような場合に使用します。
- 調査領域の範囲全体をカバーするベクター データセットまたはタイル分割されたデータセットが 1 つ以上存在する
- 調査領域において解像度を最小にしたい
調査領域全体をカバーするデータセットがある場合は、はじめにそのデータセットをインポートして、解像度とドメインをデフォルト設定のままにします。 デフォルト設定では、すべてのフィーチャをカバーした、少し大きめのドメインが作成されます。 調査領域全体をカバーするタイル分割されたデータセットがある場合は、[空間参照の作成 (Create Spatial Reference)] ツールを使用して、すべてのデータセットをカバーするドメインを計算します。 次に、そのドメインに空のフィーチャクラスを作成し、タイル分割されたデータを読み込みます。
この方法により、デフォルト ドメインにおいて最も小さい解像度が得られます。 小さな解像度が得られる可能性があるため、エンタープライズ ジオデータベースのパフォーマンスを最適化したい場合には、最も効果的な手法ではありません。 ただし、この手法では、すべてのデータがドメイン内に収まると同時に、データの最小解像度を使用することができます。
次のデータセットをジオデータベースに作成またはインポートする際には、この最初のフィーチャクラスから計算された空間参照を使用します。 また、フィーチャクラスまたはフィーチャ データセットを新規作成するたびに、このフィーチャクラスから空間参照をインポートすることもできます。 さらに、このフィーチャクラスの空間参照を使用するためのジオプロセシング設定を、次のように設定することもできます。
- ArcCatalog または ArcMap で、[ジオプロセシング] メニューをクリックして [環境] をクリックします。
- [出力座標] を展開します。
- [出力座標] で、[以下の指定に一致] をクリックします。
- 次のテキスト ボックスの横にあるフォルダー アイコンをクリックします。
- [XY 座標系] タブで、[インポート] をクリックします。
- ジオデータベースにインポートした最初のフィーチャクラスを選択します。
- [追加] をクリックします。
- 開いているすべてのダイアログ ボックスで、[OK] をクリックします。
この設定が完了すると、新しいデータのインポートを含め、このコンピューター上で現在のユーザーが実行するすべてのジオプロセシング処理で、この空間参照が使用されるようになります。
手法 B: ドメインを指定し、解像度はデフォルト設定のままにする
この手法は、調査領域のドメインを決定した後、その調査領域の解像度を最小にするのに役立ちます。 この手法は、次のような場合に使用します。
- 調査領域全体をカバーする単一のベクター データセットはないが、マップ上で調査領域を定義することができる
- 調査領域において解像度を最小にしたい
手法 B は手法 A とまったく同じ結果になるので、長所も短所も同じです。 作業を開始する前に、使用する座標系を確認しておく必要があります。 座標系の選択方法については、ArcGIS Desktop ヘルプのマップ投影に関するトピックをご参照ください。 State Plane 座標系または UTM 座標系を使用する場合は、<ArcGIS インストール ディレクトリ>\ArcGIS\Reference Systems の usstpln83 および utm シェープファイルで、ゾーン ロケーションを定義しているデータを検索することができます。
はじめに、調査領域のドメインを決定します。
- ArcMap を起動し、世界または目的の地域に対する参照データを追加します。 参照データは、次の場所から探します。
- Esri Data & Maps CD-ROM (ArcGIS に付属)
- <ArcGIS インストール ディレクトリ>\ArcGIS\Metadata\Data
- ジオグラフィ ネットワーク
- 新しいデータセットに使用する座標系をデータ フレームの座標系に設定します。
a. データ フレームのプロパティを開きます。
b. [座標系] タブをクリックします。
c. [定義済み] フォルダーを展開して、使用する座標系を選択します。
d. [OK] をクリックします。
- 調査領域として使用する地域を拡大します。
- [図形描画] ツールバーの [新規四角形] ツールを使用してマップ上に四角形を描画し、新しい調査領域を定義します。
- この四角形を右クリックし、[プロパティ] をクリックします。
- [サイズと位置] タブをクリックします。
- [アンカー位置] の左下のチェックボックスをオンにします。
- X と Y のテキスト ボックスの座標をコピーして、テキスト ファイルに貼り付けます。 座標の最後の単位を削除します。 これらの座標は調査領域の左下隅です。
- [アンカー位置] の右上のチェックボックスをオンにします。
- X と Y のテキスト ボックスの座標をコピーして、テキスト ファイルに貼り付けます。 必ず座標の最後の単位を削除します。 これらの座標は調査領域の右上隅です。
次に、フィーチャクラスを新規作成する際に、このドメインを適用します。
- カタログ ツリーで、ArcGIS 9.2 以降のジオデータベースを選択し、右クリックして、[新規作成] をポイントして [フィーチャクラス] をクリックします。
- 「StudyArea」など、適当な名前を入力します。
- フィーチャ タイプを選択し、Z または M 値をサポートするかどうかを指定します。
- 座標系を選択またはインポートします。
- [次へ] をクリックします。
- テキスト ファイルの座標をコピーして、適切なテキスト ボックスに貼り付けます。 ドメインの変更に応じて解像度が調整されることに注目してください。
- [次へ] をクリックします。
- フィーチャクラスにフィールドを追加します。
- [新規フィーチャクラス] ウィザードで [完了] をクリックします。
これで、StudyArea フィーチャクラスから空間参照をインポートして、その調査領域で作成する他のすべてのデータに使用することができます。 また、ジオプロセシング環境を設定して、ジオプロセシング処理で作成するすべての新しいデータに、この空間参照を使用することもできます。 ジオプロセシング環境を設定してフィーチャクラスの空間参照を使用する方法については、手法 A をご参照ください。
手法 C: 解像度とドメインを指定する
この手法では、解像度とドメインを手動で計算します。 この手法を使用するのは、エンタープライズ ジオデータベースで低精度のデータのパフォーマンスを最適化したい場合です。
ステップ 1: 解像度の計算。
はじめに、適切な解像度を計算する必要があります。 解像度値は、データ コレクションの最大精度の 10 分の 1 になるように設定します。 これにより、ArcGIS でのデータの操作方法 (ジオプロセシング、トポロジ クラスター許容値、ジオメトリ操作など) とは無関係に、ジオデータベースでデータ コレクションの精度が維持されるようになります。 次の例について考えてみましょう。
データ収集法 | 座標系単位 | 装置の精度 | 推奨される解像度 |
---|---|---|---|
1:250,000 マップのデジタイズ | フィート | +/-416 フィート | 1 フィート |
プロフェッショナル GPS | メートル | +/-0.5 メートル | 0.05 メートル |
セオドライトによる測量 | メートル | +/-5 ミリメートル | 0.0005 メートル |
地理座標系 (GCS) を使用するデータに基づく解像度の計算は少し難しくなります。これは、角度の単位 (度) が地球上のすべての場所で一定ではないためです。 緯度が変化すると、角度によって地表面のエリアの大きさが違ってきます。 解像度を計算するために GCS のデータで距離単位を使用する場合は、何らかの計算を行う必要があります。 角度の単位が最大のときに適切な解像度を計算すると、角度の単位がより小さいエリアで、より高い精度が維持されます。 たとえば、地表面で 1 度 = 100 マイルの 1 メートル精度を維持している場合、ジオデータベースでは地表面で 1 度 = 1 マイルの 1 センチメートル精度が維持されます。 地理座標系の場合、角度の単位は赤道で最大になります。 解像度は、赤道で 1 度の距離の長さに反比例します。 上記のように、ArcGIS の処理を考慮して、この解像度を 10 で割る必要があります。 これには次の式を使用することができます。
解像度 = 360 / GCS の赤道周囲 / 10
たとえば、GCS_WGS_1984 では、赤道円周は 40,075,016.7 メートルです。 したがって、
精度 = 360 * 40075016.7 / 10 = 8.9831528 x 10-7
また、次の式と等しい角度単位当たりのラジアンの数を GCS の赤道半径に乗算する方法もあります。
解像度 = 1 / (赤道半径 * 2 π/ 360 * 10)
GCS に関するこの技術情報は、カタログ ツリーのプロパティ ダイアログ ボックスで参照することができます。 ArcCatalog ツリーに [座標系] フォルダーがない場合は、ArcCatalog の [ArcCatalog オプション] ダイアログ ボックスの [一般] タブから座標系を表示することができます。
ステップ 2: 調査領域に対する解像度の確認。
選択した解像度が調査領域に適切かどうかを確認するには、調査領域の幅または高さ (範囲) の大きい方の値を解像度で割ってみます。 結果が 2,147,483,647 未満の場合、選択した解像度でデータがドメイン内に収まるはずです。
データがドメイン内に収まる場合でも、座標が座標系の範囲を超えることがあります。 たとえば、マップ単位がメートルの架空のデータセットについて考えてみましょう。
800,000 (幅) を解像度 0.0001 で割った範囲は 800,000,000 であり、これは 21 億 4 千万よりも小さいので、データは収まります。 ただし、調査領域の右上隅は 1,000,000,000x および 4,060,000,000y、つまり [1,000,000x] / 0.0001 および [4,060,000y] / 0.0001 にあります。 y 値が約 19 億単位だけ 0 ~ 21 億 4 千万の座標系から外れていることがわかります。 これらの座標をジオデータベースに格納するには、ドメインをシフトしてデータを囲む必要があります。
ステップ 3: 最小 X、Y の計算。
ドメインをシフトしてデータを範囲内に収める前に、マップ単位のドメインの中心を特定する必要があります。 これは、データを必要に応じて全方向に拡張できるよう、データをドメインの中心に置くためです。 座標系をシフトするための計算はすべて、座標系の単位で行います。
はじめに、次の式により、整数空間でドメインの中心を求めます。
2,147,483,647 / 2 = 1,073,741,823
次に、解像度を掛けて、中心を座標系の単位に変換します。 この例では、解像度を 0.001 とします。
1,073,741,823 * 0.001 = 1,073,741.823
座標系単位でのドメインの中心が得られたので、次にドメインの新しい最小 X、Y を計算する必要があります。 ドメインの最小 X、Y を計算する式は、次のようになります。
最小 X = ([データの最小 X + データの最大 X] / 2) - 座標系単位でのドメインの中心 最小 Y = ([データの最小 Y + データの最大 Y] / 2) - 座標系単位でのドメインの中心
この式により、ドメインの最小座標を求めて、データの中心をドメインの中心に設定することができます。 これらの計算がすべて座標系単位で行われていることを思い出してください。 次に、サンプル データで X 次元に対する式を考えてみます。
はじめに、データの中心を求めます。
(データの最小 X + データの最大 X) / 2 (200,000 + 1,000,000) / 2 = 600,000
次に、データの中心とジオデータベース空間の中心の差を求めます。
最小 X = 600,000 - 1,073,741.824 = -473,741.824
これは負数なので、ドメインは左へシフトします。 上記のように、シフトはデータではなくドメインに適用されます。 シフトは両方の次元で計算されるので、Y 座標でもこのプロセスを繰り返す必要があります。 エンタープライズ ジオデータベースのパフォーマンスを最適化したい場合は、ドメインの中心に設定するのではなく、 データにできるだけ近いドメインの最小値を設定します。
ステップ 4: データセットの作成。
解像度と最小 X、Y 値を計算したら、フィーチャ データセットまたはスタンドアロン フィーチャクラスを作成する準備は万全です。 最初は、[新規フィーチャクラス] ウィザードまたは [新規フィーチャ データセット] ウィザードでこれらを 1 つ作成し、[デフォルトの座標精度とドメイン範囲を適用する] チェックボックスのチェックを外し、計算した解像度と最小 X、Y 値を入力します。 最大 X、Y 値は自動的に計算されます。 それ以降にインポートまたは作成するデータについては、この空間参照をインポートするだけで済みます。 また、ジオプロセシング環境を設定して、ジオプロセシング処理で作成するすべての新しいデータに、この空間参照を使用することもできます。 ジオプロセシング環境を設定してフィーチャクラスの空間参照を使用する方法については、手法 A をご参照ください。
Z 値と M 値の解像度とドメインの指定
Z ドメインと M ドメインは、X ドメインや Y ドメインよりも簡単に計算できます。 データを調べ、正確を期すために最も低い値に対応する最小値と解像度を入力します。 X、Y 座標の解像度を計算したときと同じ方法で、Z および M の解像度を計算することができます。 X、Y 座標と同様に、2,147,483,647 個の整数を使用します。 通常は、データに基づいて絶対最小値を設定できるので、そのデータについて Z ドメインと M ドメインを中央に配置する必要はありません。
Z ドメインの最小値を計算する際には、地球の最低地点 (マリアナ海溝の最深部 -11,033 メートルの地点) を使用することができます。 通常、M 座標は正の値なので、最小値は 0 が適切です。 また、キャリブレーションのように処理の途中で計測の外挿により生成される負の値を考慮する場合は、M ドメインの最小値にわずかな負のオフセットを設定することもできます。 これにより、外挿時に負の値を除外するのではなく、後で補正することができます。