Чтобы помочь мне вычислить визуальную величину Международной космической станции, мне нужно уметь вычислять фазовый угол.
Может ли кто-нибудь помочь мне рассчитать это?
В любой момент времени я сгенерировал объект Obs
и объект ISS
, используя PyEphem
. Для наблюдателя у меня есть Alt/Az
к ISS
и Alt/Az
к Солнцу ... И, конечно, у меня есть ISS.range
(в км) от наблюдателя. Мне кажется, что я смогу вычислить фазовый угол с помощью "простой" геометрии. К сожалению, эта простая геометрия немного выходит за рамки того, что я могу уверенно разработать (думаю, это было слишком долго с тех пор, как я делал это в последний раз).
ОТВЕТ: Я понял это (с помощью старого доброго Интернета). Это частичный фрагмент кода (обновлен с поправкой на ephem.earth_radius на Km Леандро Гедесом)
# SSA Triangle. We have side a and b and angle C. Need to solve to find side c
a = sun.earth_distance * au - ephem.earth_radius/1000 #distance sun from observer (Km)
b = iss.range / 1000 # distance to ISS from observer (Km)
angle_c = ephem.separation( (iss.az, iss.alt), ( sun.az, sun.alt) )
c = math.sqrt( math.pow(a,2) + math.pow(b,2) - 2*a*b*math.cos( angle_c) )
# now we find the "missing" angles (of which angle A is the one we need)
angle_a = math.acos((math.pow(b,2) + math.pow( c,2) - math.pow(a,2)) / (2 * b * c))
angle_b = math.pi - angle_a - angle_c #note: this is basically ZERO - not a big surprise really - and I don't need this anyway.
phase_angle = angle_a # This is the angle we need. BINGO!!
a = sun.earth_distance * au - ephem.earth_radius *10**(-3)
- person Leandro Guedes   schedule 18.04.2017