- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试获取行星的 body 固定条件,RA、DEC、PM,使用 NASA 的示例。 ftp://naif.jpl.nasa.gov/pub/naif/toolkit_docs/FORTRAN/spicelib/tipbod.html
TIPBOD用于将J2000惯性坐标中的位置转换为人体固定坐标中的状态。 TIPM = TIPBOD('J2000', BODY, ET)
然后将 STATE 的前三个元素position转换为bodyfixed坐标。什么是状态? BDPOS = MXVG( TIPM, POSTN)
我的代码:
Targ = 399 (Earth)
et = spice.str2et(indate)
TIPM = spice.tipbod( "J2000", Targ, et )
BDPOS = spice.mxvg(TIPM, POSTN, BDPOS )
但是什么是 POSTN,什么是 BDPOS?
最佳答案
您可以通过搜索相关函数here来获得有关spiceypy函数输入的更多详细信息。 .
在您的特定情况下,TIPM
将是一个 3x3 2D 矩阵,它提供惯性系中的对象与 body 固定系中的对象之间的转换。 mxvg
函数所需的输入为 here 。在您的情况下,POSTN
应该是一个包含 3 个值的列表(或 numpy 数组),给出您感兴趣的 body 的 x、y 和 z 位置。BODPOS
将是 mxvg
的输出,它将是矩阵 TIPM
乘以向量 POSTN
,因此将是一个包含三个值的向量: body 的 x、y 和 z 位置。
我不完全确定您需要什么,但一个例子可能是:
from astropy.time import Time
from spiceypy import spiceypy as spice
# create a time
t = Time('2010-03-19 11:09:00', format='iso')
# put in spice format - this may require a leap seconds kernel to be
# downloaded, e.g. download https://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/naif0012.tls
# and then load it with spice.furnsh('naif0012.tls')
et = spice.str2et(t.iso)
# get the transformation matrix - this may require a kernel to be
# downloaded, e.g. download https://naif.jpl.nasa.gov/pub/naif/generic_kernels/pck/pck00010.tpc
# and then load it with spice.furnsh('pck00010.tpc')
target = 399 # Earth
TIPM = spice.tipbod( "J2000", target, et )
# get the position that you want to convert
from astropy.coordinates import Angle, ICRS
ra = Angle('12:32:12.23', unit='hourangle')
dec= Angle('-01:23:52.21', unit='deg')
# make an ICRS object (you can also input a proper motion as a radial velocity or using 'pm_dec' and 'pm_ra_cosdec' keyword arguments)
sc = ICRS(ra=ra, dec=dec)
# get position in xyz
xyz = sc.cartesian.xyz.value
# perform conversion to body centred frame
newpos = spice.mxvg(TIPM, xyz, 3, 3)
# convert to latitude and longitude
scnew = SkyCoord(x=newpos[0], y=newpos[1], z=newpos[2], representation_type='cartesian')
# print out new RA and dec
print(scnew.spherical.lon, scnew.spherical.lat)
可能有一些方法可以完全在 astropy 中完成此操作,无论是使用预定义的框架还是根据您自己的定义,并使用 ICRS
的 transform_to()
方法。目的。例如,您可以从 ICRS 转换为 GCRS .
关于python - NASA 香料 Tipbod 香料,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49352660/
尝试获取行星的 body 固定条件,RA、DEC、PM,使用 NASA 的示例。 ftp://naif.jpl.nasa.gov/pub/naif/toolkit_docs/FORTRAN/spice
我是一名优秀的程序员,十分优秀!