●地球が楕球であることによる誤差について

まず最初にウィキから正距円筒図法について引用。
http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%B7%9D%E5%86%86%E7%AD%92%E5%9B%B3%E6%B3%95


投影式
正軸において、経度λ、緯度φ、標準緯線Φ(単位は共にラジアン)、地球半径Rを用いて、

x = cos(Φ)Rλ
y = Rφ
Plate carreeでは、標準緯線が(0)であるので、

x = Rλ
y = Rφ
で表されることになる。

Rを実際の地球半径(6378km)として1:1の地図を出力すると、縦20,037km、横40,074kmとなる。


式を見ると分かるとおり、正距円筒図法の投影は非常に単純である。
Plate carreeで作図する予定なので、式は非常に単純になる。
xは地図上の経度で、yは地図上の緯度ということになり、極めて経緯を示しやすい。

ウィキの図を開いてほしい。
経線緯線ともに本数は同じで、縦横それぞれ12ブロックに区切られている。
経線は30度間隔で、緯線は15度間隔である。

緯線と経線は直角に交差しており、各144ブロックはすべて等面積である。
これは作図をする際に非常に便利であり、助かる。

ところがこの縦横の長さの定義には疑問が生じる。
私が引っかかったのは「Rを実際の地球半径(6378km)として1:1の地図を出力すると、縦20,037km、横40,074kmとなる」の部分である。
縦横がこの長さだと、この図が示す地球は正球になる。だが高校で習ったとおり、地球は楕球である。
そこで赤道と子午線1周分の長さを調べてみた。


http://www.mobiley.net/chokkei.html
地球の直径は、cm(センチメートル)の単位は使わずkm(キロメートル)を使われます。赤道の付近では、約12,756.3km、極付近では、約12,713kmと直径の大きさは少し違います。
地球は、完全な球ではなく、赤道部分が長い楕円形になっています。赤道における半径は6,378kmで、北極・南極における半径は6,357kmです。また、平均公転半径は149,597,870kmです。
地球は楕円形をしていますので、現在わかっている地球の一周分の長さはふたつあります。赤道の長さの約40,077km。それから、北極と南極の2点を通る長さの約40,009kmです。


このサイトだと赤道は40,077kmで、子午線一周は40,009kmとなっている。
ところが正距円筒図法では地球半径に整数の概算値を用いているため、40,074kmと20,037kmが使われている。
後者は子午線1本分なので、一周すると40,074kmになり、正球の地球になる。
正距円筒図法における縦横の長さはこのように概算値の地球半径から計算されており、しかも正球で計算されている。
つまり実際の地球に対して誤差が生じている。

さて、正距円筒図法は縦横12ブロックずつに分けるので、PCで作図をする場合、横1200pxlの縦600pxlなどにするとよいと思われる。
1200*600だと画面表示もしやすく、かつ12の倍数なので作図がしやすいからである。
ところが1200*600だと地球は正球になってしまう。上記の誤差を加味するともっと複雑な数値になるだろう。

そこで、具体的にどれくらいの誤差か考えてみた。
40,077kmに対して1200pxlなので、1pxlあたり約33kmとなる。
赤道と子午線一周の差は40077-40009=68kmであり、およそ2pxlの差である。
すなわち横が2pxl分多い1202*600pxlなら誤差を加味した地図が作れる。

ところがである。その計算だと1202pxlを12ブロックに分けねばならない。
2pxlの誤差をさらに12分割すると1ブロックあたり約0.16pxlである。
むろんこれはドローソフト上で表現できない。小数点単位のピクセルなので。

これを打破するには横12,000pxlとか120,000pxlにすればよいだろう。
しかしそれでは完成後アップすることができない。
また、結局読者が画面で見る際は1200pxl程度の大きさに縮小するであろうから、加味した誤差は無駄になる。
ゆえに、2pxlの誤差、すなわち地球が楕球であることについての誤差は、地図上では加味しなくてよいという結論に辿りついた。

ところで、1200*600というのはキリのいい12の倍数であるが、実際はこのままではまずい。
縦600pxlだとすると緯度は180度あるので、1度あたり10/3度になってしまう。
3.33...の無理数なので、誤差が出てしまう。

そこで12(ブロック数)と180(緯度)と360(経度)の公倍数かつPCの画面上に表示しやすい数値を探した結果、720が出た。
縦720pxlだと緯度1度あたり4pxlになり、整数で描画しやすい。
よって、できあがる地図のサイズは横1440の縦720となる。

サイズ:1440pxl*720pxl
1ブロック:120pxl*60pxl
経度1度:4pxl
緯度1度:4pxl

続き