【集中講座】RhinoとGISの連携:高さの基準とRhinoでの扱い方

同じモデルを表示しているはずなのに、環境によって高さが合わないことがあります。
これまでの連載では、第1〜5回で位置情報(座標)と空間参照の扱いを整理し、第9回・第10回ではDEMを用いた地形の取得とサーフェス解析を扱いました。
第9回・第10回のように、同じ地形データからサーフェスや解析結果を作成する場合は、同じ高さの前提の中で処理が進みます。一方で、地形サーフェスに点群や測位データ、建物モデルなど別の地理空間情報を組み合わせると、上下方向にずれて表示される場合があります。
このような差を確認する際は、それぞれのデータがどの高さを基準としているかも確認します。今回は、標高・楕円体高・ジオイド高の違いを整理し、Rhino × GISで複数の地理空間情報を扱う際の高さの確認方法を見ていきます。

高さの基準の違い

地理空間情報で扱われる高さには、複数の基準があります。ここでは詳細な測地学上の定義には踏み込まず、Rhinoでデータを組み合わせる際に確認する範囲として、標高・楕円体高・ジオイド高の3つを整理します。

  • 標高:ジオイドを基準として表される高さです。
  • 楕円体高:地球の形状を近似した基準楕円体を基準として表される高さです。GNSS / GPSによる測位データでは、楕円体高が使用される場合があります。
  • ジオイド高:基準楕円体とジオイドとの高さの差です。

標高を H、楕円体高を h、ジオイド高を N とすると、3つの高さは次の関係になります。

h = H + N または、H = h − N となります。

標高 H はジオイドから地表までの高さ、楕円体高 h は基準楕円体から地表までの高さです。ジオイド高 N は、基準楕円体とジオイドとの高さの差を表します。
ジオイドは、地球の重力場に基づく重力等ポテンシャル面で、平均海面に近い基準面として扱われます。基準楕円体との間隔は一定ではなく、場所によって変化します。
楕円体高と標高の間で高さを変換する際は、ジオイド高を用います。このように、ジオイド高を用いて楕円体高と標高を変換する処理を「ジオイド補正」と呼びます。 なお、ジオイド高 N は場所によって値が異なり、正負も変化するため、ジオイド補正を行う場合は、対象地域に対応したジオイドモデルを使用します。
ここで確認するのは、同じ位置情報(座標)であっても、標高と楕円体高では高さの値が一致しない場合があるという点です。
本記事では、ジオイドモデルを用いた具体的なジオイド補正の操作までは扱わず、Rhinoで複数のデータを組み合わせる際の確認方法を中心に扱います。

Rhinoで起きるZ方向のずれ

Rhinoでは、読み込まれた高さはモデル空間上のZ値として扱われます。そのため、ある点が Z = 50 に配置されていても、その50がどの高さの基準に基づく値なのかを、Rhino上の数値だけから判別することはできません。例えば、モデル単位をメートルに設定している場合でも、Z = 50が標高50 mなのか、楕円体高50 mなのかはRhino上では区別されません。
第9回・第10回で扱ったように、1つのDEMから地形サーフェスを作成し、そのサーフェスから等高線や傾斜、方向などを求める場合は、同じデータの中で処理が完結します。
一方、DEMから作成した地形に、点群や測位データ、建物モデルなど別の地理空間情報を重ねる場合は、それぞれの高さの基準を確認します。

一方が標高、もう一方が楕円体高の場合は、XY方向の位置情報(座標)が対応していても、Z方向では異なる位置に配置されます。ただし、Rhino上で確認できるZ方向の差が、すべて高さの基準の違いによるものとは限りません。

同じ地点でも地形データによって高さが異なる場合

同じ地点を表す地形データであっても、高さの値が一致しない場合があります。
DEMは、提供元、解像度、計測方法、作成方法、補間処理などによって地表面の表現が異なります。そのため、同じ位置情報(座標)を基準として配置しても、Z方向に差が現れる場合があります。

富士山山頂付近でALOS World 3DとGMRTを比較した例

この例では、富士山山頂付近を対象として、ALOS World 3DとGMRTの地形データを同じ位置情報(座標)を基準に配置したところ、約26 mの差が確認できます。この差だけから原因を特定することはできません。標高と楕円体高の違いだけでなく、使用している地形データそのものや、各データの作成条件も確認します。
そのため、Rhino上でZ方向の差が確認された場合は、「高さの基準が異なる場合」と「高さの基準が同じでも、元となる地形データが異なる場合」を分けて確認します。

同じモデルでも表示環境によって高さが異なる場合

同じ3Dモデルを異なる環境で表示した場合でも、地表との位置関係が異なることがあります。

同じモデルをCesium ionとGoogle Earth Proで表示した例

このような場合は、モデル自体の位置情報(座標)だけでなく、それぞれの環境で使用されている地形データや、モデルを配置するときの高さの扱いも確認します。
平面的な位置が一致していても、地表からの高さが異なる場合は、Z方向に関係する条件が異なっている状態です。
ただし、表示結果だけから標高と楕円体高の違いと判断することはできません。使用している地形データ、高さの基準、配置時に設定されたZ方向の移動量などを分けて確認します。Z方向の差を確認する際は、高さの基準、元となる地形データ、表示・配置条件をそれぞれ分けて確認します。

Rhino × GISにおける高さ確認方法

Rhino × GISにおける高さ確認の流れ

Rhinoで複数の地理空間情報を組み合わせる場合は、位置情報(座標)、空間参照、高さの基準をそれぞれ確認します。
まず、DEMや点群、測位データなどの提供元の仕様から、そのデータがどの高さを使用しているかを確認します。
GNSS(GPSなど)を使用して取得されたデータであっても、提供される段階ですでに標高へ変換されている場合があります。そのため、取得方法だけから高さの基準を判断せず、データの仕様を確認します。
高さの基準が異なる場合は、それぞれのデータがどの高さを基準としているかを確認した上で扱います。楕円体高と標高の変換にはジオイド補正が用いられますが、本記事では具体的な変換方法までは扱いません。

一方、高さの基準が同じ場合でも、異なるDEMや測量データを使用していれば、高さに差が生じる場合があります。その場合は、それぞれの元データの仕様を確認します。
Rhinoへ読み込んだ後は、TopビューでXY方向の位置情報(座標)を確認し、FrontビューまたはRightビューでZ方向の位置関係を確認します。平面上では重なって見えていても、立面方向から確認することで上下方向の差が確認できる場合があります。

Heronを使用する場合も、確認する内容は同じです。Set SRS(空間参照を設定するコンポーネント)で指定した内容はHeronコンポーネントの処理に使用されますが、標高と楕円体高を自動的に変換するものではありません。
そのため、Heronを介して地形データを取得した場合も、読み込まれたZ値がどの高さを表しているかは、使用しているデータサービスの仕様とあわせて確認します。
Rhino上で高さが一致しない場合は、Z値だけを移動して合わせる前に、元データの仕様、高さの基準、地形データ、配置条件を確認します。

高さについて確認する内容は、使用するデータや処理内容によっても変わります。
第7回・第8回で扱った3Dデモグラフィックのように、人口などの属性データを高さとして表現する場合、そのZ値は標高や楕円体高ではありません。可視化や傾向把握を行う場合は、属性値を3D形状の高さとして表現している状態として扱います。

まとめ

今回は、標高・楕円体高・ジオイド高の関係と、Rhinoで複数の地理空間情報を組み合わせる際の高さの扱いを整理しました。

Rhinoでは、高さの基準そのものではなく、読み込まれた値がZ値として扱われます。そのため、複数のデータを組み合わせる場合は、位置情報(座標)と空間参照に加えて、それぞれのデータがどの高さを使用しているかを確認します。

また、Z方向の差は高さの基準だけでなく、使用している地形データや表示・配置条件によって生じる場合もあります。差が確認された場合は、それぞれの条件を分けて確認した上でデータを扱います。