Bir uydunun görünür büyüklüğünü hesaplama


9

Bir yer yerinden görünen uyduların büyüklüğünü hesaplamayı içeren bir program yazıyorum. Şu anda uyduların gerçek büyüklüğüne ve derece olarak güneş fazı açısına sahibim. İşe yarayan bir formül bulamıyorum.

denedim

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

(B faz açısıdır)

... ama çalışmıyor (+30 gibi sayılar döndürüyor). Bunun yanlış olduğunu biliyorum çünkü heavens-above.com uydu geçişleriyle karşılaştırıyorum.

intrinsicMagnitude = 1000km uzaklıktaki görsel büyüklük (-1.3'ü kullanın)

distanceToSatellite = Uyduya gözlemci mesafesi (km) (Kullanım 483)

B = Anlamaya çalıştığım şey bu.

Makalede bunun ne olduğunu söylüyor ama anlamadığım başka şeyler söylüyor. Bunu elde etmek için kullandığınız faz açısı 113 olmalıdır.

Bu denklemin hedef çıktısı -3 civarında olmalıdır.




1
"İçsel büyüklük" nedir? Lütfen cevabınızı, tanımlanmış sembollerle matematiksel formüller cinsinden yazın.
Rob Jeffries

1000 km uzaklıktaki uydunun azlığı. Örnek olarak, -1.3
Nick Brown

1
@uhoh İçsel büyüklük, nesnenin 1000 km uzaklıktaki tam fazdaki görünür büyüklüğüdür
Nick Brown

Yanıtlar:


3

Bu, boyutu ve yönü bilinmeyen ancak standart büyüklüğü bilinen uydular içindir (Standart büyüklük yukarıdaki göklerin uydu bilgi sayfasında bulunabilir, sayıya içsel büyüklük denir) Uygun formül

            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;

Bu uydunun görünür büyüklüğünü verecektir. Not: Formülü C # ile verdim


Tebrikler!
uhoh

2

@NickBrown'a çözümü için tebrikler ! Bu denkleme ve bazı ek referanslara dayanarak biraz daha ekleyeceğim.

Görsel büyüklüğün hesaplanması üç giriş parametresi alır

  1. nesnenin ne kadar iyi bir reflektör olduğu
  2. aydınlatma ve görüntüleme arasındaki açı
  3. aydınlatıcı ve izleyiciden olan mesafeler nesneden

Astronomik nesneler için madde 1 için mutlak büyüklük kullanıyoruz, hem uydu büyüklüğü için hem de mutlak büyüklük ve içsel büyüklük kullanılıyor. Mutlak büyüklük, nesnenin Güneş'ten 1 AU ve sizden 1 AU'da, tam açık olarak (faz açısı = 0) görüntülenen görsel büyüklüğüdür; bu, Güneş'in hemen yanında oturduğunuz anlamına gelir.

İçsel büyüklük benzerdir, ancak şimdi Güneş'in omzunuz üzerinden olduğu nesneden sadece 1.000 km uzaktasınız.

Her iki durumda da, tüm albedo, boyut ve şekil bilgileri mutlak veya içsel büyüklükte toplanır ve sadece mesafeler ve açılar bırakır.

Aydınlatma yönü ile görüş yönü arasındaki açıya faz açısı denir . Örneğin Ay'ın evrelerini düşünün . Ay'ın faz açısı 90 derece olsaydı, yarım ay olurdu. Sıfır dolunay ve 180 derece yeni Ay olurdu.

Faz açısının bir fonksiyonu olarak parlaklığın modülasyonu Vallerie, EM III, Bir Yapay Toprak Uydusundan Alınan Fotometrik Verilerin Araştırılması , AD # 419069, Hava Kuvvetleri Teknoloji Enstitüsü, Savunma Dokümantasyon Merkezi, İskenderiye, Virginia, 1963, Ben de bulduğu Büyük Faz açılar at Gözlemler ve GEO Uyduları Modelleme da Rita L. Cognion tarafından ResearchGate

Bağımlılık terimi ile verilir.

1π(günah(φ)+(π-φ)marul(φ))

ve benziyor

resim açıklamasını buraya girin

Söz konusu 483 kilometre mesafedeki uydu ve -1.3 gerçek büyüklüğü için, görünen büyüklük yaklaşık -2.0 gibi görünüyor ve faz açısına bağımlılığı aşağıdaki gibidir:

resim açıklamasını buraya girin


Tüm uzay araçları dağınık beyaz yüzeylerle küresel değildir veya küresel inek şeklinde değildir.

resim açıklamasını buraya girin

Bazı daha famillier şekillerin faz açısı bağımlılığı için, Senkron Yörüngelerdeki Tipik Uyduların Görünür Büyüklüğündeki Şekil 2'ye bakın , sorunu güzel açıklayan William E. Krag, MIT, 1974 AD-785 380.

resim açıklamasını buraya girin

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
kutsal inek cevap için teşekkürler. Sağladığım yerine bunu uygulamaya çalışacağım. Ne kadar iyi olduğunu sana bildireceğim.
Nick Brown

@NickBrown Denkleminizi yeni kullandım , sonuçtan farklı olmamalı. Bu cevap yalnızca ek arka plan bilgisi ve açıklama eklemek içindir.
uhoh

Ah tamam. Fonksiyonlarını tam olarak okumadım. Teşekkürler!
Nick Brown

1
Hmm. Benimki aslında yanlış. Seninki mükemmel çalışıyor. Cevabınızı ac # sürümünüzü göstermek için düzenleyeceğim. Teşekkürler!
Nick Brown

1
bu gerçekten önemli değil . Bazı insanlar -1.3 kullanır, bazı insanlar -1.8 kullanır
Nick Brown
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.