今日のテーマは WGS84 です。飛田さんの書籍では「測量分野では WGS84 は使うべきではない。」と断言されていますが、今日は ArcGIS で他の測地系と WGS84 との変換について起こった問題と対処について書いていきます。Web マップは測量じゃないからいいのか、、
目次
はじめに
今やほとんどの Web マップに Webメルカトルと呼ばれる座標系が使われていますが、Webメルカトルの測地系は WGS84 です。WGS84 は GPS の運行管理のために開発された測地系ですが、現在では GNSS ログや衛星画像など、全世界にまたぐデータのほとんどに WGS84 が使われています。
日本はその他に使われている測地系として
- 日本測地系(GCS_Tokyo)
- 日本測地系2000(GCS_JGD2000)
- 日本測地系2011(GCS_JGD2011)
※括弧内は ArcGIS での名称。GCS は Geographic Coordinate System の略で地理座標系を意味します。ArcGIS では地理座標系=測地系としても定義されます。以降は GCS_ を省略して説明しています。ちなみに Tokyo だからといって東京測地系と言ってはいけません。
があります。これは国土地理院が日本の測量のために定めてきた測地系です。国土地理院や地方公共団体や民間企業の地図などにはこれらの測地系が使われています。上記 3 つの測地系から WGS84 に変換する機会は多いでしょう。
WGS84 で採用されている回転楕円体(WGS84楕円体)と JGD2000 で採用されている回転楕円体(GRS80楕円体)の大きさは極半径が 0.1mm 違うだけで、ほぼ同じものと見なすことができます。そのため、測地系(ArcGIS でいうところの地理座標系)を変換する際は、シフト量 0 の地心座標系変換(JGD_2000_To_WGS_1984_1)を選択するのが基本です。
現在、日本の測量では JGD2011 を使用します。JGD2011 で採用されている回転楕円体も JGD2000 と同じ GRS80 楕円体なので、WGS84 ともほぼ同じです。つまりシフト量は 0 で良いわけです。しかし、ArcGIS 10.4.1 時点では JGD2011 からシフト量 0 で WGS84 に変換するためのパラメーターは用意されていないため自分で作成する必要があります。
ところで、JGD2000 と JGD2011 とはどのように変換するのでしょうか。日本測地系2011 は東北地方太平洋沖地震の影響による地殻変動を受けたもので、宮城県付近では 5m 近く東に移動しています。
JGD2000 と JGD2011 間を変換するには、地殻変動の補正を行うパラメーターである touhokutaiheiyouoki2011.par を使用します。ArcGIS では、この国土地理院が提供する補正パラメーターを適用した変換を行うために NTv2(National Transformation version 2) というメソッドを使用することから、JGD_2000_To_JGD_2011_NTv2 と名付けられたパラメーターを使用します。
ちなみに、日本測地系から日本測地系2000 に変換する際には Tokyo_To_JGD_2000_NTv2 を使用します。日本測地系は日本測地系2000 と異なる回転楕円体が採用されているため、Tokyo_To_JGD_2000_NTv2 には地殻変動(と過去の低い測量精度の歪み)の補正+回転楕円体の変換が行われています。
これまでの説明を図に示すと以下のようになります。
図のパラメーターは、ArcGIS 10.6 時点の情報です。バージョンによってはより最適なパラメーターが追加されている可能性があります。
2011年以降の WGS84 に変換する方法
WGS84 と WGS84 は同じものなので変換不要(シフト量 0)のはず。だけど、JGD2000 と JGD2011 間を変換する相当の処理をさせなければつじつまが合いません。これは、WGS84 に「いつ」測量したものかを示す時間の概念が含まれて異ないためなのかと考えています。
JGD2000 は 2002年4月~2011年10月までの測量成果を意味して、JGD2011 は 2011年10月以降の測量成果であることを意味します。しかし WGS84 にはいつの測量成果か分からないため、「2009年にGPSで取得した WGS84 のデータ」と「2013年にGPSで取得した WGS84 のデータ」では同じ経緯度でも示す場所が違うのです。地盤(=場所)が動いたから。
すくなくとも ArcGIS 10.4.1 までの WGS84 は 地理座標系変換パラメーターをみる限り JGD2000 と同等の測地系と考えるべきです。
そのため、上図に示した WGS84 → WGS84 を測地成果2011 で求められたように変換させるには以下の手順で修正を行う必要があります。
WGS84 →(シフト量0)→ JGD2000 →(NTv2)→ JGD2011 →(シフト量0)→ WGS84
ArcGIS では同じ名前の測地系間での地理座標系変換はできないので、マップ上で動的な変換であるリアルタイム変換はできません。また、前述したように、JGD2011→(シフト量0)→WGS84 の適切な変換パラメーターは存在しないため自分で作成する必要があります。
カスタム地理座標系変換の作成
ジオプロセシング ツールで独自の地理座標系変換パラメーターが作成できます。
ArcToolbox → [データ管理 ツール] → [投影変換と座標変換] → [カスタム地理座標系変換の作成]
パラメーター
- 地理座標系変換名: JGD_2011_To_WGS_1984_0(名前は何でも良いが分かりやすいものを指定)
- 入力地理座標系:GCS_JGD_2011([空間参照プロパティ] ダイアログから選択)
- 出力地理座標系:GCS_WGS_1984([空間参照プロパティ] ダイアログから選択)
- カスタム地理座標系変換:
- メソッド:GEOCENTRIC_TRANSLATION
- パラメーター:XYZ 軸共に 0 のまま
この処理が面倒な方は、以下のファイルをダウンロード、解凍してファイルのみを配置場所に置いてください。
- ダウンロード:JGD_2011_To_WGS_1984_0.zip
- 配置場所:C:\Users\<ユーザー名>\AppData\Roaming\ESRI\Desktop〈バージョン番号〉\ArcToolbox\CustomTransformations 内
※フォルダーが存在しない場合は作成してください。
カスタム地理座標系変換が作成できると、ジオプロセシングの [投影変換] ツールで JGD2011 から WGS84 に変換する際に、地理座標系変換パラメーターが選択できるようになります。下の 2 つのパラメーターをまず使うことはないでしょう。
データ フレーム プロパティの [変換] ダイアログにも反映されます。今回の場合はシフト量 0 なので無視するか、座標系の定義を上書きする方法でも良いのですが、リアルタイム投影変換でも使用したい場合は作成シておいた方が良いです。
日本測地系から現在の WGS84 に変換したい場合
元のデータの地理座標系が Tokyo で WGS84 のマップやモザイクデータセットなどにリアルタイム投影変換したい場合、これも ArcGIS が提供している標準のパラメーターでは正しく変換できません。Tokyo_To_WGS_1984_NTv2 は 2011年10月までの WGS84 に変換するためのパラメーターのため、東北地方太平洋沖地震の地殻変動が考慮されません。2011 年 10 月以降の場合は、
Tokyo_To_JGD_2000_NTv2 + JGD_2000_To_JGD_2011_NTv2 + (シフト量 0)JGD_2011_To_WGS_1984_0
の変換が必要です。ArcGIS の標準機能では「コンポジット地理座標系変換」という、複数の地理座標系変換を組み合わせることができます(+で表示されているパラメーターがそれです)が、残念ながらコンポジット変換はジオプロセシング ツールでは作れそうに見えて作れません。上記のように 3 つのコンポジット変換は自動では作成されません。ArcObjects ならできるんだけど、、、
今回の場合はシフト量 0 の変換は無視できるので、JGD2000 から WGS84 へ NTv2 変換する独自の変換式を作成します。ジオプロセシングで [カスタム地理座標系変換] ツールを以下のパラメーターで実行してファイルを作成してください。
- 地理座標系変換名: JGD_2000_To_WGS_1984_NTv2_2(名前は何でも良いが分かりやすいものを指定)
- 入力地理座標系:GCS_JGD_2000([空間参照プロパティ] ダイアログから選択)
- 出力地理座標系:GCS_WGS_1984([空間参照プロパティ] ダイアログから選択)
- カスタム地理座標系変換:
- メソッド:NTV2
- グリッド データセット名:japan/touhokutaiheiyouoki2011.gsb
この処理も面倒な方は、以下のファイルをダウンロード、解凍してファイルのみを配置場所に置いてください。
- ダウンロード:JGD_2000_To_WGS_1984_NTv2_2
- 配置場所:C:\Users\<ユーザー名>\AppData\Roaming\ESRI\Desktop〈バージョン番号〉\ArcToolbox\CustomTransformations 内
※フォルダーが存在しない場合は作成してください。
そうすることで、Tokyo → (現在の)WGS84 に変換するための最適なコンポジット変換が表示されるようになります。<カスタム> と表示されているのがカスタム地理座標系変換で作成した変換パラメーターですす。
これで日本で使う測地系の組み合わせについては、一度の処理で任意の測地系に変換でき、リアルタイム投影変換も可能になりました。
仙台市付近にポイント フィーチャを作成して検証したら期待通りにシフトされました。国土地理院提供のパラメーターは陸地部だけしか用意されていないので、海部はシフトしないことに気をつけましょう。
おわりに
JGD2011 が登場した当時はまだこの問題に気づいていませんでした。一昨年くらい前にやっと気がついたのですが、他からの質問もなく困ることもなかったのでそのままにしていたら指摘できる機会がなくなってしまいました。しかも今まさに自分自身がプロジェクトで困る羽目に。他からこのような問題を指摘されないということは、誰も困っていないということでしょうか。変換パラメーターの設定は今回説明した方法で回避方法で解決できますが、標準設定に追加されると良いですね。
この記事では 1~2 年に提供されている厳密な補正パラメーターと地心直交座標系については触れていません。今年3月に発生した熊本地震では 1m 以上程度動いているところもありますが、現状 ArcGIS では国土地理院が提供している厳密な変換パラメーターを加味した変換はできません。当初は国土地理院のパラメーター ファイル(*.par)がそのまま使えるツールが公開されていたのですが、ArcGIS 9.3 から NTv2 変換ができるようになって以降提供を停止してしまいました。なお、NTv2 には *.gsb というバイナリー ファイルを使用していますが、これが作成できるのは Esri だけです(仕様は公開されているものなのか?今の私は調べるすべがなくて不明です)。
追記
2019年7月22日
ArcGIS Pro 2.3 では以下のパラメーターを指定する。ArcMap 10.6.1 も同様。
- JGD2011 ←→ WGS 84(2002年4月1日~2011年10月30日):JGD_2000_To_WGS_1984_1+JGD_2000_To_JGD_2011_NTv2_1
- JGD2011 ←→ WGS84(2011年10月31日以降):JGD_2011_To_WGS_1984