Calcul de la magnitude apparente d'un satellite


9

J'écris un programme qui consiste à calculer la magnitude apparente des satellites à partir d'un emplacement au sol. J'ai actuellement la magnitude intrinsèque des satellites et l'angle de phase solaire en degrés. Je n'arrive pas à trouver une formule qui fonctionne.

j'ai essayé

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

(B est l'angle de phase)

... mais cela ne fonctionne pas (il renvoie des nombres comme +30). Je sais que c'est faux parce que je le compare aux passes du satellite Heavens-above.com.

intrinsicMagnitude = Magnitude visuelle à 1000 km de distance (utilisez -1,3)

distanceToevision = Distance de l'observateur au satellite en km (utilisez 483)

B = C'est ce que j'essaie de comprendre.

Dans le document, il dit ce que c'est, mais il dit d'autres choses que je ne comprends pas. L'angle de phase que vous utilisez pour l'obtenir doit être de 113.

La sortie cible de cette équation devrait être d'environ -3.


C'est ce que j'ai travaillé avec stackoverflow.com/questions/19739831/…
Nick Brown

Voici où est l'équation de satobs.org/seesat/Apr-2001/0313.html
Nick Brown

1
Qu'est-ce que la «magnitude intrinsèque»? Veuillez écrire votre réponse en termes de formules mathématiques, avec des symboles définis.
Rob Jeffries

C'est la rapidité du satellite à 1000 km. Par exemple, utilisez -1.3
Nick Brown

1
@uhoh La magnitude intrinsèque est la magnitude apparente de l'objet en pleine phase à 1000 km de distance
Nick Brown

Réponses:


3

Ceci est pour les satellites dont la taille et l'orientation sont inconnues mais dont la magnitude standard est connue (la magnitude standard peut être trouvée sur la page d'informations des cieux ci-dessus, le nombre est appelé magnitude intrinsèque) La formule appropriée est

            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;

Cela donnera l'ampleur apparente du satellite. Remarque: j'ai donné la formule en C #


Toutes nos félicitations!
uhoh

2

Félicitations à @NickBrown pour sa solution ! Sur la base de cette équation et de quelques références supplémentaires, j'ajouterai juste un peu plus.

Le calcul de la magnitude visuelle nécessite trois paramètres d'entrée

  1. à quel point un réflecteur est bon
  2. l'angle entre l'éclairage et la visualisation
  3. les distances de l'illuminateur et du spectateur sont de l'objet

Pour les objets astronomiques, nous utilisons la magnitude absolue pour l'élément n ° 1, pour la visualisation par satellite, la magnitude absolue et la magnitude intrinsèque sont utilisées. La magnitude absolue est la magnitude visuelle de l'objet à 1 UA du Soleil et 1 AU de vous, vue de face (angle de phase = 0) ce qui signifie que vous êtes assis juste à côté du Soleil.

La magnitude intrinsèque est similaire, mais vous n'êtes maintenant qu'à 1 000 km de l'objet avec le soleil sur votre épaule.

Quoi qu'il en soit, toutes les informations sur l'albédo, la taille et la forme sont regroupées dans la magnitude absolue ou intrinsèque, ne laissant que les distances et les angles.

L'angle entre la direction d'éclairage et la direction d'observation est appelé angle de phase . Pensez aux phases de la Lune par exemple. Si l'angle de phase de la Lune était de 90 degrés, ce serait une demi-lune. Zéro serait la pleine lune et 180 degrés serait la nouvelle lune.

La modulation de la luminosité en fonction de l'angle de phase a été proposée par Vallerie, EM III, Investigation of Photometric Data Received from an Artificial Earth Satellite , AD # 419069, Air Force Institute of Technology, Defense Documentation Center, Alexandria, Virginia, 1963, que j'ai trouvé dans Observations and Modeling of GEO Satellites at Large Phase Angles par Rita L. Cognion, également dans Researchgate

La dépendance est donnée par le terme

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

et ressemble

entrez la description de l'image ici

Pour le satellite en question à une distance de 483 kilomètres et une magnitude intrinsèque de -1,3, la magnitude apparente semble être d'environ -2,0 et sa dépendance à l'angle de phase est la suivante:

entrez la description de l'image ici


Tous les vaisseaux spatiaux ne sont pas sphériques avec des surfaces blanches diffuses ni en forme de vache sphérique.

entrez la description de l'image ici

Pour la dépendance de l'angle de phase de certaines formes plus familières, voir la figure 2 dans Amplitude visible des satellites typiques dans les orbites synchrones William E. Krag, MIT, 1974 AD-785 380, qui décrit bien le problème.

entrez la description de l'image ici

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
vache sainte merci pour la réponse. Je vais essayer de mettre en œuvre cela au lieu de celui que j'ai fourni. Je vous ferai savoir à quel point c'est bon.
Nick Brown du

@NickBrown Je viens d'utiliser votre équation , elle ne devrait pas être différente de votre résultat. Cette réponse consiste uniquement à ajouter des informations et des explications supplémentaires.
uhoh

Ah ok. Je n'ai pas entièrement lu vos fonctions. Merci!
Nick Brown

1
Hmm. Le mien est en fait inexact. Le vôtre fonctionne parfaitement. Je vais modifier ma réponse pour afficher la version ac # de la vôtre. Merci!
Nick Brown

1
ce n'est pas vraiment important. Certaines personnes utilisent -1,3, certaines personnes utilisent -1,8
Nick Brown
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.