Esriグリッド形式に保存する際の座標系の名称

      2016/11/28

今回は皆様からのお問い合わせに答えるコーナーです。

金曜自宅に帰って、日付が変わって明日G空間エキスポだしそろそろ寝ようかと思ったところに SNS でメッセが来ていることに気づきました。個人的な問い合わせなのでここにも回答を転載します。

質問

「すみません。ちょっと座標系に関して困ったのがあり、連絡させてもらいました。例えば基盤地図情報の数値標高モデルは GCS_JGD_2000 ですが、これをジオプロセシングの [ラスターの投影変換] ツールで平面直角座標系とかにする際、GRID形式にしてしまうと「JGD_2000_Transverse_Mercator」という座標系になってしまいます。

それは GRID形式がそういうものだからと思うのですが、この GRIDデータを別の形式に変換しても投影変換してみると「JGD_2000_Transverse_Mercator」のままになります。
座標系のパラメーターとしては平面直角座標系と同じみたいなのですが、そういうものでしょうか?」

回答

「そういうものです。」

Esriグリッド(GRID)形式は ARC/INFO 時代から存在するフォーマットなので私もずっと「そういうもの」と思っていたのですが、改めて調べてみました。

ArcGIS 10.4.1 for Desktop でジオプロセシングの [ラスターの投影変換] ツールを実行して以下を検証してみました。

  • 入力ラスター:適当な東京都付近を含むラスター データセットを用意
  • 出力ラスター データセット:任意のフォルダー上に Esriグリッド形式で保存されるように指定(任意のフォルダー上で拡張子を書かずにファイル名を指定)
  • 出力データの座標系:※以下を参照

指定した座標系と出力されたラスター データセット プロパティに記載の空間参照名を比較すると、

  • Japan_Zone_9 → Tokyo_Transverse_Mercatorフィーチャクラスと異なる
  • JGD_2000_Japan_Zone_9 → JGD_2000_Transverse_Mercatorフィーチャクラスと異なる
  • JGD_2011_Japan_Zone_9 → JGD_2011_Japan_Zone_9(同じ)
  • Tokyo_UTM_Zone_54N → Tokyo_UTM_Zone_54N(同じ)
  • JGD_2000_UTM_Zone_54N → JGD_200_UTM_Zone_54N(同じ)
  • JGD_2011_UTM_Zone_54N → JGD_2011_UTM_Zone_54N(同じ)
  • WGS_1984_UTM_Zone_54N → WGS_1984_UTM_Zone_54N(同じ)
    ※名称は ArcGIS での定義上の表記(Name)で記載

となっていました。

[空間参照] ダイアログに表示される名称になじみのない(プリセットにない)ものが表示されていますが、 ARC/INFO や ArcView GIS 3.x の存在を知らない世代だと違和感があるかもしれません。

ただ、Esriグリッド形式の場合はすべての座標系の名前が特有になるのかと思ってたけど、そうでもないですね。過去の ArcGIS バージョンによっても違うのかもしれませんが、名前が違うのは日本測地系(Tokyo)の平面直角座標系と日本測地系2000(JGD2000)の平面直角座標系に限るようです。

[空間参照] ダイアログ

[空間参照] ダイアログ

Esriグリッド形式とは

現在のバージョンのヘルプで「Esriグリッド形式」と書かれて紹介されていますが、以前は ARCINFO/GRID、ARC GRID とも呼ばれていた Esri が開発したレガシーなフォーマットです。ジオデータベース設計ガイドには "ESRI ARC GRID" と書かれています。

ArcGIS の [カタログ] ウィンドウ上で表示すると、他のラスター データセット形式である 、TIFF、IMG、JPEG などと同じようなアイコンで表示されますが、Windows エクスプローラーで表示すると、フォルダーになっています。どれが 1 つのグリッドを指すのか分かりにくく、ファイルが欠損するとグリッドとして認識されなくなるので、極力 [カタログ] ウィンドウ上で操作しましょう。

ArcGIS ではどのように同じ座標系であることを判定するのか

ArcGIS では座標系が同じか異なるかは名前(Name)で判断しますが、数値の違いも見ています。例えば投影法やそのパラメーターの数値が同じでも名前が異なると「異なる座標系」と判断されますし、地理座標系の名前(Name)が異なると、実質同じ楕円体の大きさでも「異なる地理座標系(=測地系)」と判断されてしまいます。

coordinatesystemproperty

同じ名称であってもパラメーターの数値が異なると「同じ名前の異なる存在」として表示されます。JGD2011 を除いた平面直角座標系ではどの系にしても同じ名前となるようです。

[データ フレーム プロパティ] ダイアログ

[データ フレーム プロパティ] ダイアログ

また、"Tokyo_Transverse_Mercator" や "JGD_2000_Transverse_Mercator" が設定された Esriグリッド形式を TIFF や IMG 形式に変換しても座標系の名前は戻らないので気をつけてください。その場合は、ラスター データセット プロパティ ダイアログを開き、[空間参照] → [編集] をクリックして [空間参照] ダイアログを開き、座標系を右クリックして [コピーして修正] を選び、手動で名前を変更します。

[ラスター データセット プロパティ] ダイアログ

[ラスター データセット プロパティ] ダイアログ

同じ座標系なのに異なる名前で表示されると、混乱の原因になってしまいます。マップ上に異なる座標系のレイヤーが存在すると、編集セッション開始時に警告が表示されてしまいます。ラスター レイヤーは編集セッション上で編集しないので、この警告には関わることがないですが、ベクターをトレースする背景用レイヤーを使ったりする際、同じ座標系なのか異なる座標系なのかを理解して使うためにも、知っておくと便利です。

そういえば、学生時代に恩師から「データモデルにはベクターとラスターがあるがその中間的な存在としてグリッドというのがあり、セルで境界が保持できて属性情報が格納できる。」と、Esriグリッド形式ならラスターのように振る舞いつつ属性も格納できると習ったのですが、社会人になって ArcGIS の設計図とも言える ArcObjects のオブジェクト モデル ダイアグラムを見るとデータ モデルにはベクターとラスターしか存在せず(ここでは TIN を除く)、ラスターに属性を保持できるタイプとできないタイプの 2 種類に分類できることを知りました。つまり、ラスターのようなセル ベースのモデリングで属性情報を扱いたい場合は、わざわざ Esriグリッド形式を使用しなくても TIFF や IMG 形式で実現できるのです(シングル バンドで属性テーブルを作成する設定は要りますが)。

まとめ

今のバージョンでは好んで Esriグリッド形式を使用する必要ないと思うのです。

ジオプロセシング ツールの処理で、パラメーターにうっかり拡張子を付け忘れると気づかない間に Esriグリッド形式で保存されてしまいます。これもうっかりやってしまいがちなので気をつけましょう。

あ、Esri TIN でも同じことが起こるのではないかと書いた後に思ってしまいました。これは追って調べてみます。

 - ArcGIS, GIS