distgps GPS距離 -------------------------- * 書式1: distgps(緯度1,経度1,緯度2,経度2,[方位]) 2地点の緯度経度座標からその直線距離(km単位)を求める。 緯度経度は10進表記で与える。 地球の球状を考慮した計算を行っている。 緯度経度の指定は、60進表記には対応しておらず10進表記に変換しておくことが必要である。 60進法で表記された度分秒をそれぞれ :math:`d,m,s` とすると、 10進の座標は :math:`d+m/60+s/60/60` で計算できる。 また方位については、北緯と東経はプラスで表記し、南緯と西経はマイナスで表記する。 例えば、大阪駅(北緯34.702398,東経135.495188),東京駅間(北緯35.681391,東経139.766103)の距離を求めるには 以下のとおり指定すればよい。 egin{verbatim} distgps(34.702398,135.495188,35.681391,139.766103) \end{verbatim} またエベレスト(北緯32.655556,東経79.015833),からアコンカグア(南緯27.987778,西経86.944444)の距離は、以下のとおり指定すればよい。 egin{verbatim} distgps(32.655556,79.015833,-27.987778,-86.944444) \end{verbatim} 利用例 '''''''''''' **importと入力データ(CSV)の準備** .. code-block:: python :linenos: import nysol.mcmd as nm with open('dat1.csv','w') as f: f.write( '''point1,point2,lat1,lon1,lat2,lon2 osaka,tenma,34.702398,135.495188,34.704923,135.512233 osaka,tokyo,34.702398,135.495188,35.681391,139.766103 osaka,kobe,34.702398,135.495188,34.679453,135.178221 osaka,Fuji,34.702398,135.495188,35.360556,138.727500 Evelest,Aconcagua,32.655556,79.015833,-27.987778,-86.944444 Denali,Kilimanjaro,63.069444,-151.007222,-3.075833,37.353333 ''') **基本例** .. code-block:: python :linenos: nm.mcal(c='distgps(${lat1},${lon1},${lat2},${lon2})', a='rsl', i="dat1.csv", o="rsl1.csv").run() ### rsl1.csv の内容 # point1,point2,lat1,lon1,lat2,lon2,rsl # osaka,tenma,34.702398,135.495188,34.704923,135.512233,1.585046048 # osaka,tokyo,34.702398,135.495188,35.681391,139.766103,405.774306 # osaka,kobe,34.702398,135.495188,34.679453,135.178221,29.12042213 # osaka,Fuji,34.702398,135.495188,35.360556,138.727500,304.7527532 # Evelest,Aconcagua,32.655556,79.015833,-27.987778,-86.944444,16956.12242 # Denali,Kilimanjaro,63.069444,-151.007222,-3.075833,37.353333,11362.37758