ArcGISのラスタ投影変換アルゴリズム

      2014/10/30

ArcMapに追加したラスタレイヤをリアルタイムに投影変換したり,ArcToolboxにある投影変換(Project)ツールを使って測地系や投影法を変換することがあります。

エケルト第6図法

エケルト第6図法

フラー図法

フラー図法

 

 

 

 

fig1ベクトルデータの座標変換だと,各頂点ごとに座標変換を行って表現することは分かるのですが,ラスタの座標管理は,画像の左上にあるピクセルの中心を示す地理的な座標と,各ピクセルのX幅,Y幅の実世界上の距離によって表示しているはずなので(fig1),これだけの情報から投影変換を行おうとすると,左上のピクセルしか正しい位置に合わせることができません。割り出せる実座標もせいぜい四隅の位置だけなので,多項式変換がせいぜいでしょう。

しかし,今年の年賀状のレイアウトのように,オンザフライ投影変換で湾曲したような表現もできているので,もっと何かすごいことをしてるのでしょう。せっかくなのでサポートに聞いてみました。

ラスタは,"piecewise polynomial transformation"というアルゴリズムに基づいて各ピクセル毎に変化されるべき座標を計算して割り出しているのだそうです。ただ,このアルゴリズムは何を意味するのか分からないので調べてみると,ArcGIS Develope Helpに少し書かれていました。Remarksに書いてある記述を超要約すると,

断片多項式変換(?)は,ラスタをいくつかのブロックに分割し,それぞれのブロックで多項式変換を行うアルゴリズム。ArcGridのPROJECTコマンドよりは正確ではないが,ほとんどの解析において十分な精度と処理速度を持つ。

のだそうです。ArcObjectsでも同じアルゴリズムを利用しているラスタ投影変換用のメソッドが用意されており,このメソッドでは64x64ピクセルのブロックでそれぞれ変換するようです。正確には処理を速くするために各ピクセル毎ではなく,ブロックごとに分割して多項式変換をしてるのですね。

ちなみに,ArcGridのPROJECTは何をしてるのか分かりません。Workstationは持ってないので。

あと,ポンチ絵描くのにペンタブレットがほしい。

 - GIS, ArcGIS