トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

PROG-PY-GeoGraphicLib

  GeoGraphicLib で空港間の距離を

インストール

pip3 install --upgrade geographiclib 

Sample code

from geographiclib.geodesic import Geodesic

import math
geod = Geodesic.WGS84  # define the WGS84 ellipsoid

# 空港の位置のテーブル うーん不細工だ。。 
NRT = { "lat":(35,45,55),"lon":(140,23,8)  }
HND = { "lat":(35,33,12),"lon":(139,46,52) }
IBR = { "lat":(36,11,0) ,"lon":(140,25,14) }
ITM = { "lat":(34,47,4) ,"lon":(135,26,21) }
KIX = { "lat":(34,26,3) ,"lon":(135,13,58) }
UKB = { "lat":(34,37,58),"lon":(135,13,26) }

SFO = { "lat":(37,37,8) ,"lon":(-122,22,30) }
LAX = { "lat":(33,56,33),"lon":(-118,24,29) }
#
## 度分秒を度に変換
def dms2dd (dd,mm,ss) :
   if dd >= 0 :
       ret = float(dd) + float(mm)/float(60)+float(ss)/(60*60)
   else :
       ret = float(dd) - (float(mm)/float(60)+float(ss)/(60*60))
   return ret
## 
(d,m,s) = NRT["lat"]
lat1 = dms2dd (d,m,s)
(d,m,s) = NRT["lon"]
lon1 = dms2dd (d,m,s)
##
(d,m,s) = UKB["lat"]
lat2 = dms2dd (d,m,s)
(d,m,s) = UKB["lon"]
lon2 = dms2dd (d,m,s)
#######
print ("出発", lat1,lon1)
print ("到着":, lat2,lon2)
## 
g = geod.Inverse(lat1, lon1, lat2, lon2)

## print(g)
print("距離は {:.3f} m.".format(g['s12']))
print("方位角は {:.12f} m.".format(g['azi1']))
print("方位角は {:.12f} m.".format(g['azi2']+180.0))
# 空港の緯度経度
# NRT-RJAA : 座標	北緯35度45分55秒 東経140度23分08秒
#  HND-RJTT : 座標	北緯35度33分12秒 東経139度46分52秒
#  IBR-RJAH : 座標	北緯36度11分00秒 東経140度25分14秒
#  ITM-RJOO : 座標	北緯34度47分04秒 東経135度26分21秒
#  KIX-RJBB : 座標	北緯34度26分03秒 東経135度13分58秒
#  UKB-RJBE : 座標	北緯34度37分58秒 東経135度13分26秒
#
# SFO-KSFO : 座標	北緯37度37分08秒 西経122度22分30秒
# LAX-KLAX : 座標	北緯33度56分33秒 西経118度24分29秒