hibitekitou
にゅーとんほう
sansu |2011-10-20
モルワイデ図法を表す式は、ただしソースはウィキペディアによると、地球の半径を1とし、地図にしたときの赤道上の縮尺を1にする場合、経度をλ、緯度をΦとして、
![](https://blogimg.goo.ne.jp/user_image/5a/05/2f007bfbd022a4994044d3ce67866010.jpg?random=90e9906774f590cb26411736cd76fbbf)
ただし、θは
![](https://blogimg.goo.ne.jp/user_image/1b/d1/7d4e73cc422e26be03c34c84d97cad53.jpg?random=093be249f6c03d7fd4a5defcec20cd04)
を満たす値、との事です。λ、Φ、θ、いずれもラジアン単位です。
正距円筒図法をモルワイデ図法に変形する場合には、正距円筒図法の座標をそのまま経緯度の値に読み替える事が可能ですから、λとΦの値は明らかなので、θの値を出す事が出来ればOKという事になります。
んじゃ、θの値をどうやって出すか、というわけっすね。先のθの条件式の要素を全部片方に集めます。
![](https://blogimg.goo.ne.jp/user_image/6f/06/2ac0fbd7b042f2ee1711d5eedf3149aa.jpg?random=4167f547ab5e4ff1ca7fc0149c2587ee)
すなわち、
![](https://blogimg.goo.ne.jp/user_image/5c/fb/ab050e7e55cd20310a32868067155871.jpg?random=bcde6eff1a4ca8c65b856d66e0417ec7)
こいつのyが0になるときのxが分かればいいってことっすね。
ってことで、ニュートン法とやらを試します。
ニュートン法は、y = f(x) について y = 0の時の x の値を近似して導く事が目的の物のようですね。
求める点付近のx値 x0 について、yの値はf(x0)。この点における y = f(x)の接線がx軸と交わる時のxの値がx1。このときのyの値がf(x1)。この点における y = f(x)の接線がx軸と交わるときのxの値がx2・・・・・・
といった作業を繰り返すと、正しいxの値に収束していく、という考え方みたいです。もちろんすべての場合でこれが成り立つわけじゃないけど、今回の目的には使えそうです。
![](https://blogimg.goo.ne.jp/user_image/56/79/84254feaf4bd42928526c7f53007da6f.jpg?random=44ab90dad5c30d39a9df570a7bda9f05)
接線がx軸と交わる時のxの値は、x = xnの時の接線の式が
y - f(xn) = f'(xn) * (x - xn)
だから(だからぢゃねーよって感じだけど、検算するとちゃんとそうなったよ)、
xn+1 = xn - f(xn)/f'(xn)
ってことで組んだICE Treeはこんな感じ。
こいつのlatitudeと名付けたポートに緯度の値Φを入れてやって出てくる値は、
![](https://blogimg.goo.ne.jp/user_image/7c/44/31f246cc28d518da06079ba6cf543d4b.jpg?random=7144b1152725524d0f592ce8fe1abc90)
こんな感じで、ただしソースはウィキペディアに書かれている値とだいたい一致しまする。
初期値が0なので、ここの値の取り方やリピートの回数によって結果が変わりますけど、まぁ、だいたいこんな感じで、だいたいモルワイデ図法を作る事が出来ました。
![](https://blogimg.goo.ne.jp/user_image/65/cd/078ae24fb6299286f0a79c3bd1fdf24a.jpg?random=426236feaba66ccf2e443e647f7b1fd8)
モルワイデ図法
コメント ( 0 )|Trackback ( )
コメント |
コメントはありません。 |
![]() |
コメントを投稿する |
![]() |
ブログ作成者から承認されるまでコメントは反映されません |