恭喜@NickBrown提供解决方案!基于该方程式和一些其他参考,我将添加更多内容。
计算视觉强度需要三个输入参数
- 物体的反射率有多好
- 照明与视野之间的角度
- 照明器和观察者之间的距离与物体的距离
对于天文物体,我们对项目1使用绝对震级,对于卫星观测,则同时使用绝对震级和固有震级。绝对大小是物体在距太阳1 AU和距您1 AU处的视觉大小,以全视角(相角= 0)观看,这意味着您坐在太阳旁边。
内在震级相似,但是现在您距离物体只有1000公里,太阳在肩上。
无论哪种方式,所有的反照率,大小和形状信息都集中在绝对或固有量级中,仅留下距离和角度。
照明方向与观察方向之间的角度称为相位角。想想月相。如果月球的相位角为90度,那将是一个半月。零将是满月,而180度将是新月。
亮度调制作为相角的函数由瓦莱里(Vallerie)于EM III,从人造地球卫星接收的光度数据研究,AD#419069,空军技术学院,国防文献中心,弗吉尼亚州亚历山大市,1963年提出,我在Researchgate的 Rita L. Cognion 在大相位角的GEO卫星观测和建模中发现了这一点
依赖性由以下术语给出
1个π(罪(ϕ )+ (π− ϕ )cos(ϕ ))
看起来像
对于距离为483公里且固有大小为-1.3的问题卫星,其视在大小似乎约为-2.0,并且其对相角的依赖性如下:
并非所有航天器都是球形的,具有弥漫的白色表面,也不是球形的牛形。
有关某些形状的相位角的相关性,请参见同步轨道中典型卫星的可见幅度的图2,William E. Krag,MIT,1974 AD-785 380,很好地描述了这个问题。
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()