日々適当

hibitekitou

正距方位図法化

cg |2024-05-17

先日のGeoPandasで地図を出せたわーいって喜んでたら、必要な図法は正距方位図法でした。

GeoPandasでGeoDataFrameに対して to_crs("正距方位図法を示す文字列")って指定は単純にはできないようで、まずpyporjモジュールを使って座標参照系(Coordinate Reference System)ってのを作るのだそうです。前のコードの

gdf_WebMerc = gdf_withColor.to_crs("EPSG:3857")

の代わりに from pyproj import CRS した上で

aeqd = CRS(proj='aeqd', ellps='WGS84', lat_0=35.6580992222, lon_0=139.7413574722).srs
gdf_WebMerc = gdf_withColor.to_crs(crs=aeqd)

としときます。まあ本来は gdf_WebMerc って変数名じゃなくて gdf_AE とかにしとくべきなのだろうけど、そこはそれ。手抜き。
projで図法を指定しており、正距方位図法(Azimuthal Equidistant Projection)はaeqdのようです。pyprojのgithubでpyproj.projのソースコードを見ると150以上の投影法に対応しているみたいですね。
lat_0とlon_0で中心となるところの緯度経度を指定しやす。入っている数字は国土地理院で配布されている日本地図に記された位置のはず。たぶん日本経緯度原点で「東京都港区麻布台二丁目十八番一地内 日本経緯度原点金属標の十字の交点」と定義されているようです。東経 139度44分28秒8869,北緯 35度39分29秒1572。
ellps は地球をどのような楕円体でモデル化しているかを示してて、この場合WGS84測地系で採用されているものを使っているという意味みたいです。参考にしたページには datum も指定されていたけど、それは測地系の定義を指定してるところで微妙に歪んだ楕円体である地球をどんな形で捉えているかって情報の模様です。無くても結果は変わってないように見えます。
最後のsrsで文字列に変換してto_crsの引数に食わせているということらしい。

そんなわけでこんな風にすれば結果が出たのはとりあえず確認できたので満足です。

コメント ( 0 )|Trackback ( )
 
コメント
 
コメントはありません。
コメントを投稿する
ブログ作成者から承認されるまでコメントは反映されません
 
名前
タイトル
URL
コメント
コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。