アプリの裏側の話 — 世界標準の変換ライブラリと、日本特化エンジンGeoCoreJP

,

世界標準ライブラリと日本特化エンジンの関係イメージ

GeoPrism JP のズレマップやヒートマップの奥では、GeoCoreJP という座標変換エンジンが動いています。今回は少し視点を変えて、「そもそも座標変換のプログラムは世の中でどう作られているのか」という裏側の話です。測量士補の試験には出ませんが、QGIS などの GIS ソフトに触れる機会がある方には、きっとつながる話だと思います。

世界には「標準の変換ライブラリ」がある

座標変換は世界中で必要とされる処理なので、実は世界標準のオープンソースライブラリが存在します。名前は PROJ。QGIS や GDAL といった有名な GIS ソフトの内部で使われていて、世界数千の座標系を「EPSG コード」という番号で指定するだけで相互変換できます。授業や実務で QGIS を使って座標系を変換したことがある方は、知らないうちに PROJ のお世話になっています。

ただし、日本向けに PROJ が公式に同梱しているのは、実は高さ(ジオイド)の変換データだけです。楕円体高から標高を出すジオイド計算はそのままできますが、旧日本測地系(TOKYO)から JGD2000、さらに JGD2011 へと緯度経度をずらす水平方向のデータは、PROJ 公式には入っていません。国土地理院が配る水平パラメータが PROJ の標準形式(NTv2)と違う独自の .par 形式のためで、使うには開発者が形式を変換して自分で組み込む必要があります。「高さは入っているが、緯度経度をずらすデータは入っていない」というのが実態です。

こわいのは「エラーにならない」こと

ここで知っておくと良いのは、水平データが無くても PROJ はエラーを出さずに動いてしまうことです。JGD2011 や TOKYO を指定すると、PROJ は「地球の形(楕円体)」と「地図への描き方(投影法)」だけを使って、それらしい数字を返します。

  • 同じ測地系の中での計算(緯度経度 ↔ 平面直角座標)は、楕円体の寸法が分かっているので正確です。
  • でも TOKYO → JGD の変換は、専用データが無いと「地球全体をまとめてずらすだけ」のざっくり近似になり、場所によって数メートル〜十数メートルずれます。
  • さらに JGD2000 → JGD2011(地震の補正)は、楕円体が同じなのに専用データが無いと、PROJ は何もしません——地震で動いたぶんがまるごと無視されてしまうのです。

しかもエラーが出ないので、間違いに気づきにくい。数センチの精度を扱う測量アプリでは、これは見過ごせません。だからこそ、日本の補正データをきちんと持った専用エンジンが必要になります。

では、なぜ日本特化のエンジンが要るのか

答えは、GeoPrism JP の「学ぶ」タブでも扱っている 元期と今期 にあります。

日本列島はプレートに乗って毎年数センチ動いています。GNSS が返す「いま」の座標(今期)を、地図や台帳が使う基準日の座標(元期)に引き戻すには、毎年更新されるセミダイナミック補正や、2か月ごとに更新される定常時地殻変動補正が必要です。さらに熊本(2016)や能登(2024)のような大きな地震のたびに、その地域だけの地震補正パラメータが公開されます。

世界標準の PROJ は「静的な座標系の登録簿」を土台にした仕組みなので、こうした毎年・隔月で更新され続ける日本固有の補正は、標準では扱えません。世界共通のものさし帳に、動き続ける日本列島の「時刻合わせ」までは書き込めない——そんなイメージです。

GeoCoreJP は、まさにこの部分のために作られた日本特化エンジンです。地震補正・セミダイナミック補正・定常時地殻変動補正をすべて内蔵し、複数の地震が重なった土地では発生順に自動で補正を重ね、電波の届かない場所でもオフラインで動きます。GeoPrism JP のヒートマップで色分けされて見えるあの補正量は、すべて GeoCoreJP が計算しています。

まとめ — 役割分担の世界

世界標準 PROJ 日本特化 GeoCoreJP
世界中の座標系を変換 日本の測地系だけを深く
静的な変換(昔↔今のものさし) 時間の補正(元期↔今期・地震)
QGIS など GIS ソフトの土台 GeoPrism JP / GeoConverterPro の心臓部

「世界標準があるのに、なぜ自前で作るのか」——その答えは「守備範囲が違うから」でした。開発者向けの詳しい比較(対応表・国土地理院ツールとの精度照合)は、GeoConverterPro ブログの記事にまとめてあります。プログラミングに興味のある方はぜひ。

PROJで足りること・足りないこと — 日本特化エンジンGeoCoreJPを作った理由(GeoConverterProブログ)


開発者より: アプリ・Kindle本・オープンソースの一覧は GitHub: amru195704 にまとめています。


お願い
本記事の情報は参考目的で掲載しており、正確性・完全性を保証するものではありません。誤記・不正確な情報がございましたら、コメント欄よりご指摘いただければ、確認のうえ修正いたします。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Back to top