衛星の見かけの大きさを計算する


9

地上から衛星の見かけの大きさを計算するプログラムを書いています。私は現在、衛星の固有の大きさと度単位の太陽位相角を持っています。うまくいく公式が見つからないようです。

私は試した

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

(Bは位相角です)

...しかし、機能しません(+30のような数値が返されます)。私はそれをheavens-above.com衛星パスと比較しているので、それが間違っていることを知っています。

explicitMagnitude = 1000 km離れた場所での視覚的な等級(-1.3を使用)

distanceToSatellite =衛星までの観測者距離(km)(483を使用)

B =これは私が理解しようとしているものです。

論文ではこれが何であるかを述べていますが、私が理解していない他のいくつかのことを述べています。これを取得するために使用する位相角は113にする必要があります。

この方程式の目標出力は約-3になります。




1
「固有の大きさ」とは何ですか?定義された記号を使って、数式で答えを書いてください。
ロブジェフリーズ2018

1000km離れたところからの衛星の明るさ。例として、-1.3
Nick Brown

1
@uhoh固有の等級は、1000 km離れたところからの全相における物体の見かけの等級です
Nick Brown

回答:


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#で数式を指定しました


おめでとう!
uhoh

2

彼の解決策について@NickBrownにおめでとう!その方程式といくつかの参照に基づいて、もう少し追加します。

視覚的な大きさの計算には3つの入力パラメーターが必要です

  1. オブジェクトのリフレクターの良さ
  2. 照明と表示の間の角度
  3. イルミネーターとビューアーからの距離はオブジェクトからの距離です

天体の場合、アイテム1に絶対等級を使用します。衛星の表示では、絶対等級と固有等級の両方が使用されます。絶対等級とは、太陽から1 AUとあなたから1 AUでのオブジェクトの視覚的な等級であり、完全に表示(位相角= 0)です。これは、太陽の真横に座っていることを意味します。

固有の等級は似ていますが、現在、太陽が肩にかかっているオブジェクトからわずか1,000 kmです。

どちらの方法でも、アルベド、サイズ、および形状の情報はすべて絶対または固有の大きさにまとめられ、距離と角度のみが残ります。

照明の方向と表示の方向の間の角度は、位相角と呼ばれます。たとえば、月の満ち欠けを考えてみてください。月の位相角が90度の場合、半月になります。ゼロは満月、180度は新月です。

位相角の関数としての輝度の変調は、Vallerie、EM III、人工地球衛星から受信した測光データの調査、AD#419069、空軍技術研究所、防衛文書センター、アレクサンドリア、バージニア州、1963年に提案されました。これはResearchgateにもあるRita L. Cognionによる大きな位相角でのGEO衛星の観測とモデリングで見つけました。

依存関係は次の用語で与えられます

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

のように見えます

ここに画像の説明を入力してください

問題の衛星の距離が483キロメートル、固有の等級-1.3の場合、見かけの等級は約-2.0のようで、位相角への依存は次のようになります。

ここに画像の説明を入力してください


すべての宇宙船が球形で、拡散した白い表面や球形の牛の形をしているわけではありません。

ここに画像の説明を入力してください

いくつかのより親しみやすい形状の位相角依存性については、同期軌道の典型的な衛星の可視マグニチュードの図2を参照してください。

ここに画像の説明を入力してください

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
聖なる牛の答えをありがとう。私が提供したものの代わりにこれを実装しようとしています。それがどれほど良いかを知らせます。
Nick Brown、

@NickBrown私はあなたの方程式を使用しました、それはあなたの結果と何の違いもないはずです。この回答は、追加の背景情報と説明を追加することのみを目的としています。
uhoh

あ、そう。私はあなたの機能を完全には読みませんでした。ありがとう!
Nick Brown、

1
うーん。鉱山は実際には不正確です。あなたは完璧に動作します。私はあなたのc#バージョンを表示するように私の答えを編集します。ありがとう!
Nick Brown、

1
それほど重要ではありませ。一部のユーザーは-1.3を使用し、一部のユーザーは-1.8を使用します
Nick Brown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.