Calcolo della grandezza apparente di un satellite


9

Sto scrivendo un programma che prevede il calcolo della magnitudine apparente dei satelliti da una posizione a terra. Al momento ho la grandezza intrinseca dei satelliti e l'angolo di fase solare in gradi. Non riesco a trovare una formula che funzioni.

Provai

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

(B è l'angolo di fase)

... ma non funziona (restituisce numeri come +30). So che è sbagliato perché lo sto confrontando con i pass satellitari di heavens-above.com.

intrinsicMagnitude = Magnitudo visiva a 1000km di distanza (Usa -1.3)

distanceToSatellite = Distanza dell'osservatore dal satellite in km (Usa 483)

B = Questo è quello che sto cercando di capire.

Nel documento dice di cosa si tratta ma dice alcune altre cose che non capisco. L'angolo di fase che usi per ottenere questo dovrebbe essere 113.

L'output target di questa equazione dovrebbe essere di circa -3.


Questo è ciò su cui ho lavorato con stackoverflow.com/questions/19739831/…
Nick Brown,

Ecco dove si trova l'equazione da satobs.org/seesat/Apr-2001/0313.html
Nick Brown,

1
Che cos'è la "grandezza intrinseca"? Scrivi la tua risposta in termini di formule matematiche, con simboli definiti.
Rob Jeffries,

È la brezza del satellite a 1000 km di distanza. Per esempio, usa -1.3
Nick Brown il

1
@uhoh La grandezza intrinseca è la grandezza apparente dell'oggetto a piena fase a 1000 km di distanza
Nick Brown,

Risposte:


3

Questo è per i satelliti con dimensioni e orientamento sconosciuti ma con magnitudine standard nota (la magnitudine standard è disponibile nella pagina delle informazioni satellitari dei cieli sopra, il numero è chiamato magnitudine intrinseca) La formula corretta è

            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;

Questo darà la grandezza apparente del satellite. Nota: ho dato la formula in C #


Congratulazioni!
uh

2

Congratulazioni a @NickBrown per la sua soluzione ! Sulla base di tale equazione e di alcuni riferimenti aggiuntivi, aggiungerò solo un po 'di più.

Il calcolo della magnitudine visiva richiede tre parametri di input

  1. quanto è buono un riflettore l'oggetto
  2. l'angolo tra l'illuminazione e la visione
  3. le distanze dall'illuminatore e dal visore sono dall'oggetto

Per gli oggetti astronomici utilizziamo la magnitudine assoluta per l'articolo n. 1, per la visualizzazione satellitare vengono utilizzate sia la magnitudine assoluta che la magnitudine intrinseca . La magnitudine assoluta è la magnitudine visiva dell'oggetto a 1 UA dal Sole e 1 UA da te, vista a pieno (angolo di fase = 0), il che significa che sei seduto proprio accanto al Sole.

La magnitudine intrinseca è simile, ma ora sei a soli 1.000 km dall'oggetto con il Sole sopra la spalla.

Ad ogni modo, tutte le informazioni su albedo, dimensioni e forma sono raggruppate nella grandezza assoluta o intrinseca, lasciando solo distanze e angoli.

L'angolo tra la direzione dell'illuminazione e la direzione della visione è chiamato angolo di fase . Pensa ad esempio alle fasi lunari . Se l'angolo di fase della Luna fosse di 90 gradi, sarebbe una mezzaluna. Zero sarebbe luna piena e 180 gradi sarebbe luna nuova.

La modulazione della luminosità in funzione dell'angolo di fase è stata proposta da Vallerie, EM III, Indagine sui dati fotometrici ricevuti da un satellite di terra artificiale , n. Annuncio 419069, Air Force Institute of Technology, Defence Documentation Center, Alexandria, Virginia, 1963, che ho trovato in Osservazioni e modellizzazione di satelliti GEO a grandi angoli di fase di Rita L. Cognion, anche in Researchgate

La dipendenza è data dal termine

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

e sembra

inserisci qui la descrizione dell'immagine

Per il satellite in questione a una distanza di 483 chilometri e una magnitudine intrinseca di -1,3, la magnitudine apparente sembra essere di circa -2,0 e la sua dipendenza dall'angolo di fase è la seguente:

inserisci qui la descrizione dell'immagine


Non tutti i veicoli spaziali sono sferici con superfici bianche diffuse né a forma di mucca sferica.

inserisci qui la descrizione dell'immagine

Per la dipendenza dall'angolo di fase di alcune forme più familiari, vedere la Figura 2 in Magnitudine visibile dei satelliti tipici in orbite sincrone William E. Krag, MIT, 1974 AD-785 380, che descrive bene il problema.

inserisci qui la descrizione dell'immagine

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
mucca santa grazie per la risposta. Cercherò di implementare questo invece di quello che ho fornito. Ti faccio sapere quanto è bello.
Nick Brown,

@NickBrown Ho appena usato la tua equazione , non dovrebbe essere diversa dal tuo risultato. Questa risposta serve solo ad aggiungere ulteriori informazioni di base e spiegazioni.
uh

Ah ok. Non ho letto completamente le tue funzioni. Grazie!
Nick Brown,

1
Hmm. Il mio in realtà è impreciso. Il tuo funziona perfettamente. Ho intenzione di modificare la mia risposta per mostrare la tua versione ac #. Grazie!
Nick Brown,

1
non è molto importante. Alcune persone usano -1.3, alcune persone usano -1.8
Nick Brown il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.