资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
1JPL 行星精密历表的使用上海航天技术研究院上海航天技术研究院李云飞李云飞(blitheligmail.com) 当计算太阳系某行星相对太阳或者相对其他行星的位置和速度的时候,在精度不太高 的情况下,可以用行星的平均根数解析的得出,但是如果需要计算其高精度的位置和速度 的时候,通常采用 NASA(美国航空航天局)的 JPL(喷气推进实验室)给出的行星精密历表 (DE200,DE403,DE405)。 在 JPL 的太阳系动力学网页(http:/ssd.jpl.nasa.gov/)上有太阳系行星历表计算的一般精 度和高精度计算方法和子程序。 本文以行星历表的高精度计算(DE405)为例,阐述如何从 JPL 的 FTP 上下载相关数据, 如何验证子程序的正确性,以及最后如何使用子程序。 本示例中以 DE405 为例,下载的子程序为 FORTRAN 语言,对于其他的历表(如 DE200) 和语言(C+),过程和以下相同,只要将相应的代码对应修改即可。 详细的过程可参考 http:/ssd.jpl.nasa.gov/?planet_eph_export,作者的操作系统为 Windows XP,对于 UNIX 操作系统,请阅读上行中的链接中的说明。由于下载数据后要对 其验证子程序做一些修改,而读者在初次读其验证子程序时难免有些疑惑,因此下面直接 给出步骤: 1.登录 JPL 的 ftp(ftp:/ssd.jpl.nasa.gov/),下载以下数据: 一共 9 个文件: /pub/eph/planets/usrguide/pub/eph/planets/fortran/testeph.f/pub/eph/planets/fortran/selcon.f/pub/eph/planets/fortran/asc2eph.f/pub/eph/planets/fortran/binmerge.f/pub/eph/planets/fortran/binshort.f/pub/eph/planets/ascii/DExxx/ascpYYYY.XXX (多个文件)/pub/eph/planets/ascii/DExxx/header.XXX/pub/eph/planets/test-data/testpo.XXX 将上述文件放在同一文件夹下,为了方便下面描述,设文件夹名字为 D:DE405。 请仔细阅读 usrguide 文件,看不明白也行,只要按照以后步骤做即可。上述文件中,ascpYYYY.XXX 系列文件就是我们所需要的精密历表的数值文件。 其中 XXX 表示星历表编号,本示例中为 405;YYYY 表示年份,如果你只需要公元 2000 到公元 2060 年之间的行星位置数据,那么只下载 ascp2000.405 到 ascp2040.405 的文件即可。 2.打开“开始”菜单,点击“运行” ,进入窗口 DOS 命令行界面,并进入 DE405 文件 夹下。 首先你的系统内要有 fortran 的编译器(如 Compaq visual fortran 6.5 版);那么在命 令行界面输入: copy header.405+ascp2000.405+ascp2020.405+ascp2040.405 infile.405此命令会产生一个 infile.405 的文件。继续在命令行界面输入: DF asc2eph.fasc2eph = 1.D-13 *的字样,那么表 示程序修改错误,需要继续修改。如果出现错误,则尝试将步骤 3 中的”NRECL”设 为 1 重新试试。如果仍不行,那么可能由于系统的原因,请读者自己按照其英文 的说明文档自己做,或者来信与笔者交流(blitheligmail.com)。 5.打开”testeph.f”文件,将子程序FSIZER3(包括它)以下所有的子程序全部拷贝到到 selcon.f文件中。 6.至此,精密历表的前期工作已经完成,读者所需要的计算行星位置速度的高精度 星历表子程序全部在文件selcon.f中,读者在实际应用中可以直接调用selcon.f文 件中的相关子程序(相应的JPLEPH数据文件要存在)。如果需要的精密历表的时间 与上面的时间范围不同,读者可以自己转换所需要时间段的(如公元 2020-2100 年 间的精密历表)星历表数值文件,具体方法同本文的步骤类似。 7.关于selcon.f文件中的行星历表的子程序名称及其接口,请参考附录 A。3附录 A 精密历表子程序在最后的selcon.f文件中,包含着读者所需要的几个有关精密历表的子程序,下面给 出各个子程序的简介及其接口参数说明。 PLEPH : 给定某一儒略日时刻,得到目标行星相对某行星中心的位置和速度CONST : 获取所有的有关星历表的常数 SELCON : 获得读者所需的星历表某一常数 DPLEPH: 同子程序 PLEPH,但输入的儒略日时刻更加精确PLEPH ( ET, NTARG, NCENT, RRD ) Input:ETd.p.: 儒略日 NTARGint. : 目标行星的编号 NCENTint.: 中心行星的编号 Output:RRD(6)d.p. : 目标行星相对中心行星的位置和速度; 单位: au, au/day for nutations, d(psi), d(eps), d(psi)-dot, d(eps)-dot;rads, rads/day for librations, (Euler angles and rates, w.r.t. the ephemeris reference frame) rads, rads/day -关于目标行星和中心行星的编号,它们的含义如下: 1 = MERCURY2 = VENUS3 = EARTH4 = MARS5 = JUPITER 6 = SATURN7 = URANUS8 = NEPTUNE 9 = PLUTO10 = MOON 11 = SUN12 = SOLAR-SYSTEM BARYCENTER 13 = EARTH-MOON BARYCENTER 14 = NUTATIONS (LONGITUDE AND OBLIQ) 15 = LIBRATIONS, IF ON EPH FILE (IF NUTATIONS ARE WANTED, SET NTARG = 14. FOR LIBRATIONS, SET NTARG = 15. SET NCENT=0.)DPLEPH ( ET2, NTARG, NCENT, RRD ) Input:ET2(2)d.p.: 通常此向量有以下三种用法: 1最简单的用法,将儒略日赋值给 ET2(1),将 ET2(1)置 0; 2为了最大的提高计算精度,将 ET2(1)赋值为离所要计算时刻最近的午夜对应 的儒略日,将剩下的儒略日赋值给 ET2(2); 3为了方便,也可将 ET2(1)赋值为某一固定时刻的儒略日(如开始积分的时刻), 将剩下的儒略日赋值给 ET2(2); 其他参数参考 PLEPH ( ET, NTARG, NCENT, RRD )。CONST(NAM,VAL,SSS,N) Output: NAM(N) char*6. : 常数名称向量4VAL(N)d.p.: 常数值向量 SSS(3)d.p.: sss(1): 星历表数据对应的起始时刻儒略日 sss(2): 星历表数据对应的终点时刻儒略日 sss(3): Chebychev 系数每块数据所包含的天数 NInt.: 常数向量的长度selcon(nams,nns,vals) Input:namschar*6 : 所要计算常数的名称 nnsint.: 所要计算常数的编号 Output:valsd.p.: 所要计算常数的数值 -部分常数名称(按编号顺序): DENUM Planetary ephemeris number. LENUM Lunar ephemeris number. TDATEF, TDATEB Dates of the Forward and Backward Integrations CLIGHT Speed of light (km/s). AU Number of kilometers per astronomical unit. EMRAT Earth-Moon mass ratio. GMi GM for ith planet au*3/day*2. GMB GM for the Earth-Moon Barycenter au*3/day*2. GMS Sun (= k*2) au*3/day*2. X1, ., ZD9 Initial conditions for the numerical integration,given at “JDEPOC“, with respect to “CENTER“. JDEPOC Epoch (JED) of initial conditions, normally JED 2440400.5. CENTER Reference center for the initial conditions.(Sun: 11, Solar System Barycenter: 12) RADi Radius of ith planet km.* 上面,d.p.表示双精度类型数据(double precision); Int.表示整型类型数据; Char 表示 字符型数据。 * 某一格林尼治时刻所对应的儒略日(例如 2008-Jan-20 15:00:00 时刻对应的儒略日为 2454486.125)的计算方法的子程序见我个人主页中的UTC 到 Julday 转换文件 (http:/blitheli.googlepages.com/programs);也可用 JPL 网站上现成的程序来进行转换 (http:/ssd.jpl.nasa.gov/tc.cgi#top)。5附录 B JPL 精密历表分类DE200 : (包含章动,但不含岁差) 对应的历元起始时刻为: JED 2305424.5 (1599 DEC 09) to JED 2513360.5 (2169 MAR 31)。 This ephemeris has been the basis of the Astronomical Almanac since 1984. It is based upon the dynamical equator and equinox of J2000 (see Standish, 1982 and Standish, 1990).DE403 : (包含岁差和章动) 对应的历元起始时刻为:JED 2433264.5 (1949 DEC 14) to JED 2469808.5 (2050 JAN 02) Tied to the International Celestial Reference Frame through comparison of UTPM estima
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号