Proj で、国土地理院が公開しているジオイドデータを利用できるようになりました。
ジオイドとは
水は高いところから低いところに流れます。
ですが、引力は質量に比例し距離の二乗に逆比例しますので、同じ距離にある海域(海水)よりも山岳部(鉱物)の方に強く引き寄せられます。
潮汐や波を考えず、重力的に均衡が取れた海水面をジオイドと呼び、そのジオイド面からの高さを「標高」といいます。普段使っている標高のことです。
一方、地球全体をモデル化した回転楕円体からの高さを「楕円体高」といいます。また回転楕円体からジオイド面までの高さをジオイド高といいます。
国土地理院ウェブサイト - ジオイド - ジオイドを知るより (国土地理院コンテンツ利用規約に基づき複製)
標高の求めるにはジオイドデータが必要
衛星測位等では楕円体高は計算で求めることができますが、標高はジオイド高がわからないと求めることができません。
そしてジオイド高は規則性がないため、精密な重力測定によって得られた場所ごとの値が必要となります。そのひとつが国土地理院が提供するジオイドデータです。
PROJ での変換
$ proj
Rel. 7.2.0, November 1st, 2020
usage: proj [-bdeEfiIlmorsStTvVwW [args]] [+opt[=arg] ...] [file ...]
$ echo 34.290 135.630 0.0 | PROJ_NETWORK=ON cs2cs -f "%.4f" EPSG:6667 EPSG:6697
34.2900 135.6300 -39.8601
$ echo 34.290 135.630 0.0 | PROJ_NETWORK=ON cs2cs -f "%.4f" EPSG:6667 EPSG:6674+6695
-189632.0416 -34062.4530 -39.8601
楕円体高から標高に変換した例です。(楕円体高 0.0m 地点を、標高すなわちジオイド面からの高さに変換しているので負数になります。)
検算は国土地理院 - 測量計算サイト - ジオイド高計算ですることができます。(ジオイド高すなわち回転楕円体表面からの高さを求めているので、上記変換とは正負逆になります。)
PROJ-data もインストールしていれば PROJ_NETWORK=ON
はなくてもよいです。
EPSG における JGD2011
ちなみに EPSG に登録されている JGD2011 は以下のとおりです。
EPSG | 説明 |
---|---|
6666 | JGD2011 地心直交座標系 (X, Y, Z) |
6667 | JGD2011 緯度、経度、楕円体高 |
6668 | JGD2011 緯度、経度 |
6669 | JGD2011 平面直角座標系1系 |
: | |
6687 | JGD2011 平面直角座標系19系 |
6688 | JGD2011 UTM zone 51N |
: | |
6692 | JGD2011 UTM zone 55N |
6695 | JGD2011 標高 |
6697 | JGD2011 緯度、経度、標高 (EPSG:6668+6695) |