У меня есть функция, которая преобразует ECEF в Lat Lon, и я не понимаю, почему Python жалуется, что ни одна из переменных не объявлена. Например, он сначала жалуется, что переменные asp
и esp
не объявлены, но я могу ясно видеть, что они не только на две строки выше.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()
'' asq '! =' Asp'' ... – jonrsharpe
Где именно вы определяете 'asq'? – Selcuk
Вам нужно научиться [разуметь свои Ps и Qs] (https://en.wikipedia.org/wiki/Mind_your_Ps_and_Qs) :) –