2016-06-27 25 views
-2

私はECEFをLat Lonに変換する関数を持っています。なぜPythonが変数が宣言されていないと不平を言っているのか分かりません。たとえば、変数aspespは宣言されていませんが、2行だけではないことがわかります。Pythonグローバル変数定義トラブルシューティング

import math 


def main(): 

    x = 504722.144 
    y = -488562.32 
    z = 4059321.82 
    a = 6378137.0 
    e = 8.1819190842622e-2 
    asp = math.pow(a,2) 
    esp = math.pow(e,2) 

    b = math.sqrt(asq * (1-esp)) 
    bsq = math.pow(b,2) 
    ep=math.sqrt((asq-bsq/bsq)) 
    p = math.sqrt(math.pow(x,2) + math.pow(y,2)) 
    th = math.atan2(a*z, b*p) 
    lon = math.atan2(y,x) 
    lat = math.atan2((z+math.pow(ep,2)*b*math.pow(math.sin(th),3)), (p- esq*a*Math.pow(Math.cos(th),3))) 
    N = a/(math.sqrt(1-esq*math.pow(math.sin(lat),2))) 
    alt = p/math.cos(lat) - N 
    lon = lon % (2*math.pi) 
    ret = [lat, lon, alt] 
    print ret 

    return ret 
if __name__=='__main__': 
    main() 
+0

''asq'!= 'asp'' ... – jonrsharpe

+0

正確に' asq'をどこで定義しましたか? – Selcuk

+0

あなたは[あなたのPsとQsを覚えている](https://en.wikipedia.org/wiki/Mind_your_Ps_and_Qs)を学ぶ必要があります:) –

答えて

1

「たとえば、それは最初の変数は、ESPをASPと文句を言いに宣言されていません...まだ私ははっきり彼らはありませんが、2本のラインが高いことがわかります。」

をあなたがそこにタイプミスがあります。 asp!= asqなので、 'asq'は不明です。

関連する問題