Расчет видимой величины спутника


9

Я пишу программу, которая включает в себя вычисление видимой величины спутников из наземного местоположения. В настоящее время у меня есть собственная величина спутников и фазовый угол Солнца в градусах. Я не могу найти формулу, которая работает.

Я старался

magnitude = intrinsicMagnitude - 15 + 5 * Math.Log(distanceToSatellite) - 2.5 * Math.Log(Math.Sin(B) + (Math.PI - B) * Math.Cos(B));

(B - фазовый угол)

... но это не работает (это возвращает числа как +30). Я знаю, что это неправильно, потому что я сравниваю это с пропусками на небесах-above.com.

intrinsicMagnitude = Визуальная величина на расстоянии 1000 км (используйте -1.3)

distanceToS satellite = Расстояние наблюдателя до спутника в км (используйте 483)

B = Это то, что я пытаюсь выяснить.

В статье говорится, что это такое, но говорится о некоторых других вещах, которые я не понимаю. Фазовый угол, который вы используете, чтобы получить это, должен быть 113.

Выходной результат этого уравнения должен быть около -3.


Это то, над чем я работал со stackoverflow.com/questions/19739831/…
Ник Браун

Вот где уравнение взято
Ник Браун

1
Что такое «внутренняя величина»? Пожалуйста, напишите свой ответ в терминах математических формул с определенными символами.
Роб Джеффрис

Это спутник спутника на расстоянии 1000 км. Для примера, используйте -1,3
Ник Браун

1
@uhoh Внутренняя величина - это видимая величина объекта в полной фазе на расстоянии 1000 км
Ник Браун

Ответы:


3

Это для спутников с неизвестным размером и ориентацией, но известной стандартной величиной (стандартную величину можно найти на странице информации о спутниках небес выше, число называется внутренней величиной). Правильная формула

            double distanceToSatellite = 485; //This is in KM
            double phaseAngleDegrees = 113.1; //Angle from sun->satellite->observer
            double pa = phaseAngleDegrees * 0.0174533; //Convert the phase angle to radians
            double intrinsicMagnitude = -1.8; //-1.8 is std. mag for iss


            double term_1 = intrinsicMagnitude;
            double term_2 = 5.0 * Math.Log10(distanceToSatellite / 1000.0);

            double arg = Math.Sin(pa) + (Math.PI - pa) * Math.Cos(pa);
            double term_3 = -2.5 * Math.Log10(arg);

            double apparentMagnitude = term_1 + term_2 + term_3;

Это даст видимую величину спутника. Примечание: я дал формулу в C #


Поздравляем!
Ух

2

Поздравляем @NickBrown за его решение ! Основываясь на этом уравнении и некоторых дополнительных ссылках, я просто добавлю немного больше.

Расчет визуальной величины требует трех входных параметров

  1. насколько хорош отражатель объекта
  2. угол между освещением и обзором
  3. расстояния от осветителя и зрителя от объекта

Для астрономических объектов мы используем абсолютную величину для элемента № 1, для просмотра со спутника используются как абсолютная величина, так и собственная величина . Абсолютная величина - это визуальная величина объекта в 1 а.е. от Солнца и в 1 а.е. от вас, если смотреть полностью (фазовый угол = 0), что означает, что вы сидите прямо рядом с Солнцем.

Внутренняя величина аналогична, но вы сейчас находитесь всего в 1000 км от объекта с Солнцем через плечо.

В любом случае, вся информация об альбедо, размере и форме сведена в абсолютную или внутреннюю величину, оставляя только расстояния и углы.

Угол между направлением освещения и направлением обзора называется фазовым углом . Вспомните фазы Луны, например. Если бы фазовый угол Луны был 90 градусов, это был бы полумесяц. Ноль будет полной Луной, а 180 градусов будет новой Луной.

Модуляция яркости как функции фазового угла была предложена Валлери, Е.М. III, « Исследование фотометрических данных, полученных с искусственного спутника Земли» , AD № 419069, Технологический институт ВВС, Центр оборонной документации, Александрия, Вирджиния, 1963 г., который я нашел в наблюдениях и моделировании спутников ГЕО при больших фазовых углах Риты Л. Когнион, также в Researchgate

Зависимость дается термином

1π(sin(ϕ)+(πϕ)cos(ϕ))

и выглядит как

введите описание изображения здесь

Для рассматриваемого спутника на расстоянии 483 километра и внутренней величине -1,3 кажущаяся величина составляет около -2,0, а его зависимость от фазового угла следующая:

введите описание изображения здесь


Не все космические корабли имеют сферическую форму с диффузными белыми поверхностями и не имеют сферическую форму в виде коровы.

введите описание изображения здесь

Относительно зависимости фазового угла от некоторых других известных форм см. Рис. 2 в «Видимой величине типичных спутников на синхронных орбитах» Уильяма Э. Крэга, MIT, 1974 г. н.э.-785 380, в котором хорошо описана проблема.

введите описание изображения здесь

def Mapparent_from_Mintrinsic(Mint, d_km, pa):
    term_1 = Mint
    term_2 = +5.0 * np.log10(d_km/1000.)
    arg    = np.sin(pa) + (pi - pa) * np.cos(pa)
    term_3 = -2.5 * np.log10(arg)
    return term_1 + term_2 + term_3

import numpy as np
import matplotlib.pyplot as plt

halfpi, pi, twopi = [f*np.pi for f in (0.5, 1, 2)]
degs, rads = 180/pi, pi/180

Mintrinsic   = -1.3
d_kilometers = 483.

phase_angles = np.linspace(0, pi, 181)

Mapp = Mapparent_from_Mintrinsic(Mintrinsic, d_kilometers, phase_angles)

# https://astronomy.stackexchange.com/q/28744/7982
# https://www.researchgate.net/publication/268194552_Large_phase_angle_observations_of_GEO_satellites
# https://amostech.com/TechnicalPapers/2013/POSTER/COGNION.pdf
# https://apps.dtic.mil/dtic/tr/fulltext/u2/785380.pdf

if True:
    plt.figure()

    F = (1./pi)*(np.sin(phase_angles) + (pi-phase_angles)*np.cos(phase_angles))

    plt.suptitle('F = (1/pi)(sin(phi) + (pi-phi)cos(phi))', fontsize=16)

    plt.subplot(2, 1, 1)
    plt.plot(degs*phase_angles, F)
    plt.ylabel('F', fontsize=16)

    plt.subplot(2, 1, 2)
    plt.plot(degs*phase_angles, -2.5*np.log10(F))
    plt.xlabel('phase angle (degs)', fontsize=16)
    plt.ylabel('-2.5log10(F)', fontsize=16)
    plt.ylim(-1, 11)

    plt.show()

if True:
    plt.figure()
    plt.plot(degs*phase_angles, Mapp)
    plt.plot(degs*phase_angles[113], Mapp[113], 'ok')
    plt.text(90, -5, '{:0.2f} at {:0.1f} deg'.format(Mapp[113], 113), fontsize=16)
    plt.xlabel('phase angle (degs)', fontsize=16)
    plt.ylabel('mag', fontsize=16)
    plt.title('apparent mag of intrinsic mag=-1.3 at 483 km', fontsize=16)
    plt.ylim(-10, 15)
    plt.show()

1
Святая корова, спасибо за ответ. Я собираюсь попытаться реализовать это вместо того, который я предоставил. Я дам вам знать, как это хорошо.
Ник Браун

@NickBrown Я только что использовал ваше уравнение , оно не должно отличаться от вашего результата. Этот ответ только для добавления дополнительной справочной информации и объяснений.
Ух

Ах хорошо. Я не полностью прочитал ваши функции. Спасибо!
Ник Браун

1
Хм. Мое на самом деле неточно. Твой работает отлично. Я собираюсь отредактировать свой ответ, чтобы показать вашу версию ac #. Спасибо!
Ник Браун

1
это не очень важно. Некоторые люди используют -1,3, некоторые люди используют -1,8
Ник Браун
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.