経緯度がはっきりと分からない地図をMapvwra用に調整

2018/07/24設置,2018/7/29内容とxlsxファイルを一部変更

「経緯度等がはっきりしない地図画像の位置関係を計算し、Mapvwraで利用する」というのが目標。
たとえば伊能大図とか。
(リンク先にあるのは JPEG 2000 形式だそうで、mapvwra で利用する際は png 辺りに変換してください。JPEG 2000 対応は気が向いたら。)


そのために、「地図画像上の分かりやすい地点の pixel 座標と対応する直交座標系をせっせと入力し(地図の種類に応じで数地点ないし百地点程度)、最小二乗法で画像と直交座標系との平均的なアフィン変換を決定し、四隅の経緯度またはUTM座標を計算して、KANRI.CSV を作る」。

旧版地形図の全体画像のように経緯度または直交座標系による外枠・方眼があり、四隅とも画像に含まれる場合は、それを利用した方が正確です。
ただし測地系に注意する必要があります。たとえば日本の場合、平成14年の世界測地系移行の他に、大正7年の標準経度修正(+10.4秒)があります。外国の旧版地図を利用する場合、このような変更を二百年前まで遡って調べるのも大変なので、以下の方法を使うのもアリかもしれません。 以下の方法では最新の測量成果を参照して座標計算を行うので、地図そのものの測地系は、楕円体面の違いによる歪み程度しか影響しません。

A:必要なもの

表計算ソフト

fitting.xlsx の座標と南北加算を書き換えれば計算できます。「ファイン変換6成分の最小二乗法」というだけなので、自分で書いても大した事ないですが。

pixel 座標を読むための画像表示ソフト

Windows標準で付いてくる「ペイント」でいいのですが、ついついクリックして点や線を記入してしまい、見づらくなる事もあります。表示専用で座標が読めるソフトがあればそっちがいいです。

対応する直交座標系の座標値を知る方法

国土地理院のサイトに、「経緯度から平面直角座標系を計算する」「クリックした地点の平面直角座標系の座標値を表示する」「旧測地系から新測地系への変換する」などができるページがあります。日本国内であればこれを使えば簡単です。一部で海上を指定できませんが、今回は陸上だけで足りるので問題ないです。
言語を問わなければ、UTMやその他の座標系でも似たようなページがあります。

方眼補正

古い地図の場合、折りたたんで倉庫の奥に眠っていたものを広げてオーバーヘッド型スキャナで撮影したものもあります。図中に方眼線が入っている場合、その方眼線を元に補正しようと思えばできます。どのくらい意味があるかは分かりませんが。

B:入力・計算

座標系を決める

平面直角座標系の系番号なり、UTM座標系のゾーン番号なりを決めます。画像範囲を1つの系でカバーできるように選びます。画像側の図法の中心経度に合わせられればその方がいいですが、狭い範囲ならあまり気にしなくていいです。

分かりやすい地点を選び、pixel座標と直交座標を入力する

日本国内であれば地理院地図などと比較して「こことここが同じ点だ」と判断し、その地点の画像のpixel座標と直交座標系の座標値を読み取り、fitting.xlsx に入力します。

入力をすれば勝手にアフィン行列を計算し、そのアフィン行列の下での誤差を計算し、グラフに表示します。この誤差は誤入力チェックにも使えます。符号を間違うなど極端な誤入力があれば、すべての点で誤差が大きくなりますが、その中で飛び抜けて誤差の大きい点が多分原因です。
計算は「最小二乗のアフィン変換」で、必ずしも回転とは限りません。

明治期の地形図であれば、三角点は十分な精度で測量されているので、三角点を6点取れば十分です。ただし平地の三角点や水準点は移動している事が多いので、山頂近くの三角点を利用しましょう。三角点が描かれていない地図の場合は山頂等が明確でなく、読み取り誤差も増えるので、点の数を増やして平均化操作で誤差をキャンセルしましょう。

伊能図の場合、基本的に道と海岸線しか測ってません。所々で山を測ってますが、道から見上げた測量がほとんどで、特定の方角からだけの場合も多々あります。山頂だからといって精度が高いわけではなさそうです。
都市部(江戸時代の時点で町と呼ばれているレベル)ならば、古い道がそのまま残っているケースが多いようです。ただし平行して国道が作られて、そのまたバイパスも作られて、元の道が分かりにくくなっている事もありますが、頑張って照合しましょう。
平地の村の場合は、昔からある道をまっすぐに作り直したケースがかなりあるので、あまりアテになりません。
海岸部や大河川の場合、氾濫、埋め立て、河道付け替えがあるのでさらに分かりにくくなりますが、元々島や岬だった部分が残っている事が多いので、これを目印にしましょう。ただしまっすぐな道路を作るために、岬の先端だった所を削っている事もあります。
山岳部や峠道は「当時の人にとって歩きやすい道」だったケースが多く、明治の時点で変わってしまっている場合もあります。谷や尾根1つずれていることもあります。ゴルフ場になっていることもあります。
また伊能図は磁気偏角や鉛直線偏差などを補正してないので、それに伴う誤差があります。重力や地磁気の変化が激しい場所では特に大きくなります。どういう補正方法がいいかは今考えている最中。

C:KANRI.CSV を作成する

KANRI.CSVのサンプル

四隅点を決める

明確な四隅点がない地図の場合は、地図描写が収まるように適当に四隅点の座標を決め、fitting.xlsxに入力します。必要があれば隣の図面との連結具合も考えます。

南北方向と東西方向の定数補正

UTM座標系の南北方向の原点は赤道上ですが、日本の平面直角座標系はそれぞれの系の指定点が原点です。この補正値をコピペします。
最初からUTM座標系で入力した場合は、北半球ならば南北方向加算は 0 ですが、南半球の場合は南北加算が -10000000 です。さらに通常は東西方向に "false easting" が加算されているので、その分を引くために東西加算を -500000 とします。
それ以外の個別国の座標系は、諸元を調べて自分で計算してください。

四隅点の座標をコピペ

これで四隅点の画像座標と直交座標が求まりました(16個の値)。経緯度の方がいいのであれば、適当に変換してください。mapvwra 内部では双方向変換で値を求めているので、どっちでもいいです。
これらを KANRI.CSV の「画像ファイル名(拡張子なし)」から始まる行の所定箇所にコピペします。平面直角座標系などの場合は中央子午線も指定します。適当に図名を付けて、磁気偏角などが分かっていればそれも入力して、完成です。
スマホの適当なフォルダに、画像ファイルと KANRI.CSV を放り込めば終了です。