QGISで、磁北が上で書かれた地図を投影しようと思ったときに、「線形」での投影ではうまくいかなかったので他のアルゴリズムについて調べてみた。
ソースはqgis3.28のユーザーガイド
意訳
特に専門家ではないので解釈の正確性に自信はない。
線形(Linear )
投影したい画像を回転させたりせず、シンプルに画像に位置情報を与えて画像の縮尺を決める。そのため、読み込むラスタは高品質であるべきで、単純に位置情報を持っていない、という場合に適している。最低2つのGCPが必要。
ヘルマート(Helmert)
縮尺を決めるだけでなく、画像を回転させることが可能。読み込むラスタは高品質だけどきちんと向きが決まっていない時(たとえば航空写真だけど角度が変、とか)に良い。最低2つのGCP必要。
多項式 (Polynomial 1)
より一般的な変換を可能にするが、直線や平行は維持する。縦と横で縮尺が異なるような場合に良い。最低3つのGCP必要。
多項式2,3 (Polynomial algorithms 2,3)
2次または3次の多項式を使用。地図のゆがみに対応する(たとえば、周縁部にゆがみが発生した写真等)。読み込む画像に一律に変換が適用されるわけではないため、GCPを置きすぎると部分的に最適だが離れたところの誤差が大きくなる(過適合、オーバーフィッディングのことと思われる)が発生する可能性がある。直線が曲線になることもある。多項式2は6, 多項式3は10のGCP必要。
薄板スプライン(Thin Plate Spline)
読み込むラスタを部分部分で適合させ、全体としては最もゆがみが少ないように投影する、ということらしい。破損したり変形した地図、微妙にずれている地図等に適する方法。最低10個から可能だが、通常はより多く使う。
投影変換
多項式1の異なるバージョン、直線は保持させるが平行は保持されず、遠近の変化に応じて変換される。真上ではなく斜めから撮影された地図や航空写真に使う。
ということで、正確で真北ではなく磁北を上として書かれた地図は「ヘルマート変換」が適切だとわかった。
と思っていたが、実際はそうではなかった。
原因
まず、投影法について考慮していなかった。読み込んだ地図は平面直角座標系であったが、投影先はWGS84だった。そのため、単純に回転させればきちんと当てはまるわけではなかった。多項式1を選択したところ、合致した。
なにか勘違いがあれば指摘していただければ幸いです。
参考
Deepl翻訳
原文