Calcular la magnitud aparente de un satélite

9

Estoy escribiendo un programa que implica calcular la magnitud aparente de los satélites desde una ubicación en tierra. Actualmente tengo la magnitud intrínseca de los satélites y el ángulo de fase solar en grados. Parece que no puedo encontrar una fórmula que funcione.

Lo intenté

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

(B es el ángulo de fase)

... pero no funciona (devuelve números como +30). Sé que está mal porque lo estoy comparando con los pases satelitales de heavens-above.com.

intrinsicMagnitude = Magnitud visual a 1000 km de distancia (uso -1.3)

distanceToélite = Distancia del observador al satélite en km (Use 483)

B = Esto es lo que estoy tratando de resolver.

En el documento dice qué es esto pero dice algunas otras cosas que no entiendo. El ángulo de fase que utiliza para obtener esto debería ser 113.

El resultado objetivo de esta ecuación debe ser de alrededor de -3.

Nick Brown
fuente
Esto es lo que he estado trabajando con stackoverflow.com/questions/19739831/…
Nick Brown
Aquí es donde está la ecuación de satobs.org/seesat/Apr-2001/0313.html
Nick Brown
1
¿Qué es la "magnitud intrínseca"? Escriba su respuesta en términos de fórmulas matemáticas, con símbolos definidos.
Rob Jeffries
Es la brevedad del satélite desde 1000 km de distancia. Por ejemplo, use -1.3
Nick Brown
1
@uhoh La magnitud intrínseca es la magnitud aparente del objeto en la fase completa desde 1000 km de distancia
Nick Brown

Respuestas:

3

Esto es para satélites con tamaño y orientación desconocidos pero magnitud estándar conocida (la magnitud estándar se puede encontrar en la página de información satelital de los cielos arriba, el número se llama magnitud intrínseca) La fórmula adecuada es

            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;

Esto le dará la magnitud aparente del satélite. Nota: di la fórmula en C #

Nick Brown
fuente
¡Felicidades!
uhoh
2

¡Felicitaciones a @NickBrown por su solución ! Basado en esa ecuación y algunas referencias adicionales, solo agregaré un poco más.

Calcular la magnitud visual requiere tres parámetros de entrada

  1. qué tan bueno de un reflector es el objeto
  2. el ángulo entre la iluminación y la visión
  3. las distancias desde el iluminador y el visor son desde el objeto

Para los objetos astronómicos, utilizamos la magnitud absoluta para el elemento n. ° 1, para la visualización por satélite se utilizan tanto la magnitud absoluta como la magnitud intrínseca . La magnitud absoluta es la magnitud visual del objeto a 1 UA del Sol y 1 UA de usted, visto completamente (ángulo de fase = 0), lo que significa que está sentado justo al lado del Sol.

La magnitud intrínseca es similar, pero ahora está a solo 1,000 km del objeto con el Sol sobre su hombro.

De cualquier manera, toda la información sobre el albedo, el tamaño y la forma se agrupa en la magnitud absoluta o intrínseca, dejando solo distancias y ángulos.

El ángulo entre la dirección de la iluminación y la dirección de visualización se llama ángulo de fase . Piensa en las fases de la Luna, por ejemplo. Si el ángulo de fase de la Luna fuera de 90 grados, sería una media luna. Cero sería Luna llena y 180 grados sería Luna nueva.

La modulación del brillo en función del ángulo de fase fue propuesta por Vallerie, EM III, Investigación de datos fotométricos recibidos de un satélite artificial de la Tierra , AD # 419069, Instituto de Tecnología de la Fuerza Aérea, Centro de Documentación de Defensa, Alexandria, Virginia, 1963, que encontré en Observaciones y modelado de satélites GEO en ángulos de fase grandes por Rita L. Cognion, también en Researchgate

La dependencia viene dada por el término

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

y parece

ingrese la descripción de la imagen aquí

Para el satélite en la pregunta a una distancia de 483 kilómetros y una magnitud intrínseca de -1.3, la magnitud aparente parece ser aproximadamente -2.0 y su dependencia del ángulo de fase es la siguiente:

ingrese la descripción de la imagen aquí


No todas las naves espaciales son esféricas con superficies blancas difusas ni esféricas en forma de vaca.

ingrese la descripción de la imagen aquí

Para la dependencia del ángulo de fase de algunas formas más familiares, consulte la Figura 2 en Magnitud visible de satélites típicos en órbitas síncronas William E. Krag, MIT, 1974 AD-785 380, que describe muy bien el problema.

ingrese la descripción de la imagen aquí

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()
UH oh
fuente
1
vaca sagrada gracias por la respuesta. Voy a intentar implementar esto en lugar del que proporcioné. Te haré saber lo bueno que es.
Nick Brown
@NickBrown Acabo de usar su ecuación , no debería ser diferente a su resultado. Esta respuesta es solo para agregar información de fondo adicional y explicación.
uhoh
Ah bien. No leí completamente tus funciones. ¡Gracias!
Nick Brown
1
Hmm La mía en realidad es inexacta. El tuyo funciona perfectamente. Voy a editar mi respuesta para mostrar una versión tuya. ¡Gracias!
Nick Brown
1
No es realmente importante. Algunas personas usan -1.3, algunas personas usan -1.8
Nick Brown