トップ 一覧 検索 ヘルプ 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秒