tamiologo
    Home Electronics Programing etc
Hello!

    ヒュベニの公式をpythonで実装する方法


      今回は、ヒュベニの公式をpythonで実装していきたいと思います。

    ■今日のゴール

    ・コード

    Graphic

    ■使用するPC・ソフト・サイト


    ・Macbook pro
    ・jupyter lab
    ・参考サイト

    ■数式

    数式は、参考サイトに掲載されているものを使用します。
    それはこちら↓
    Connect with EMG

    ■コード

    Graphic
    全体のコードはこちらです。

    ・解説

    import math

    ①まずはsqrtなどを使用するため、mathをインポートします。

    Latitude = [0,0]
    Longitude = [0,0]
    Rx = 6378137
    Ry = 6356752
    PowE = pow(math.sqrt((pow(Rx,2)-pow(Ry,2))/pow(Rx,2)),2)
    data1 = [2,3,4,6,3,3,6,6,3,6,7,8,3,1,6,2,6,2,4,6,2,4]
    data2 = [4,6,7,4,3,3,3,7,3,8,7,8,3,1,6,2,6,2,4,6,2,4]
    i = 0

    ②次に使用する配列と変数、データを用意します。
    ※data1&data2は、実際に取得するデータを想定しています。

    for j in range((len(data1)-1)*3):
    if i < 2:
     Latitude[i] = data1[i]
     Longitude[i] = data2[i]
     i += 1

    ③そして、for文で取得したデータを配列に格納してi < 2になるまで回します。

    else:
     LatRad0 = Latitude[0]*math.pi/180
     LatRad1 = Latitude[1]*math.pi/180
     LogRad0 = Longitude[0]*math.pi/180
     LogRad1 = Longitude[1]*math.pi/180

    ④i < 2ではなくなったら、まずは角度をラジアンに変換します。

    Dy = LatRad0 - LatRad1
    Dx = LogRad0 - LogRad1
    P = (LatRad0 + LatRad1)/2
    W = math.sqrt(1 - (PowE*pow(math.sin(P),2)))
    M = (Rx*(1-PowE))/pow(W,3)
    N = Rx/W
    D = math.sqrt(pow(Dy*M,2) + pow(Dx*N*math.cos(P),2))
    print(round(AD,8))

    ⑤あとは、数式を見て値を当てはめてプリントするだけです。

    data1.pop(0)
    data2.pop(0)
    i = 0

    ⑥最後に、配列の0番目を消去しi = 0にして、for文が回り続けるようにします。

    ■完成

    Graphic

    これでヒュベニの公式をpythonに実装できました。

    計算方法に間違いがあったり、もっと良い書き方があったら指摘いただけたら嬉しいです。








    Fin.

    Thank you for visiting. See you soon...
    ©Kenshin Tanno