我正在尝试为不同的卫星轨道高度显示不同的子点图,并使用这些线进行进一步分析。
所以我给自己写了一个卫星创建函数来计算倾角和平均运动:
def create_sat (a,orbit_type='ISS',e=0.0008835,epoch=26317,number=1):
a=(a+6378)*1000
if orbit_type=='ISS':
i=0.90058989402907
else:
i=np.arccos(-(((a)/(12352000))**(7/2)))
mu=3.986004418*(10**14)
pii=3.14159265359793
p=np.sqrt((a**3*4*pii**2)/(mu))/60
mean_motion=((2*pii)/p)
satrec = Satrec()
satrec.sgp4init(
WGS84, # gravity model
'i', # 'a' = old AFSPC mode, 'i' = improved mode
number, # satnum: Satellite number
epoch, # epoch: days since 1949 December 31 00:00 UT
2.2, # bstar: drag coefficient (/earth radii)
6.969196665e-13, # ndot: ballistic coefficient (revs/day)
0.0, # nddot: second derivative of mean motion (revs/day^3)
e, # ecco: eccentricity
0, # argpo: argument of perigee (radians)
i, # inclo: inclination (radians)
0, # mo: mean anomaly (radians)
mean_motion, # no_kozai: mean motion (radians/minute)
2, # nodeo: right ascension of ascending node (radians)
)
print(p)
print(1/(p/60))
print(mean_motion)
print(i)
ts = load.timescale()
sat = EarthSatellite.from_satrec(satrec, ts)
return sat
但是,当我尝试使用 skyfiled 包计算子点时,出现错误:
\toposlib.py:232: RuntimeWarning: invalid value encountered in remainder
lon = (arctan2(y, x) - pi) % tau - pi
我发现_compute_latitude(self, position)
skyfields toposlib.py 为x、y 和z 返回nan。
如果我为倾斜度选择不同的值i
并且mean_motion
它有效,但不适用于计算值。(虽然计算是正确的)
为什么它返回 nan 以及计算的边界是什么?
提前致谢!