地域メッシュから緯度経度変換プログラム その2
こないだの日記のやつ、最後の計算式
'度分秒変換で度に統一する
ido = (p * 40 / 60) + ((5 * q) / 60) + ((r * 30 / 60) / 3600)
keido = 100 + s + ((t * 15 / 120) / 60) + ((u * 45 / 60) / 3600)
の部分、度分秒の単位変換がミスっていたので修正
'度分秒変換で度に統一する
ido = (p * 40 / 60) + ((5 * q) / 60) + ((r * 30 / 60 * 60) / 3600)
keido = (100 + s) + (t * 7.5 / 60) + ((u * 45 / 60 * 60) / 3600)
こっちがただしい
修正箇所
今回やってるのが地域メッシュコード→緯度経度
で、それの元になる
緯度経度→地域メッシュコードに変換する式の中で
3次メッシュの緯度であるrの計算が
b * 60(s) / 30(s) = r と出てきているので
それを元にbを算出するために
b = 30(s)/60(s) * r
としていたのだけれど、よく(上位の?1次メッシュp,2次メッシュのq)計算式みると、これbの単位(m:分)じゃんね。
なので、単位変換したうえで計算するとすると
(b*60) * 60(s) / 30(s) = r
となるので
b = r * 30 / 60 * 60)
が正しい(ハズ)
同様のミスをt,uでもやっていたので、修正。
反省
ヒュベニの距離計算方までやった上で、どう考えてもおかしい(1kmぐらいしか離れていない地点が60kmぐらい離れていたり)値がでて、そこで発覚したので
ヒュベニの検算したり、こっちの計算式を見直していたりした結果の単位計算のミスだったので
結局のところ単位計算ミスって(他の作業していたにしろ)1日悩んでた。
反省。
(言い訳)
統計局の資料が日本語と数式が混じった式でわかりやすく算出方法書いてくれている
のではあるのだけど
逆にそこで単位変換ミスったりしてたので読みやすいようでミスが起こりやすいような…orz
(まだ間違ってる部分ありそうでこわい…)