求一份de405星历表使用表

求大神给个QuickDo3.6—1激活码,谢谢!我的ID是DE4051950D_百度知道求大神给个QuickDo3.6—1激活码,谢谢!我的ID是DE4051950D_百度知道DE405星历计算天体位置和速度
按照如下步骤根据DE405天文星历计算天体的位置和速度:
下载DE405星历数据和官方程序
下载地址:;
fortran文件夹里下载程序,ascii文件夹里下载星历数据。
2. &合并数据文件
在dos下: copy header.405+ascp+ascp infile.405
在Unix下:cat&header.405
ascp&ascp & infile.405
3. &将合并后的数据文件转化为二进制文件
利用CV Fortran 编译asc2eph.f文件(由于源程序是用Fortran
77写的,以及平台差异,在Ubuntu编译或运行该程序时可以会有错误,但在CV Fortran下测试没有问题),
生成asc2eph.exe文件,在dos下运行命令:asc2eph & infile.405.
运行的结果会生成二进制文件JPLEPH.
4. &测试源程序(testeph.f)
官方提供了testeph.f程序,测试源程序文件是否正确执行。在测试前需要将该程序文件中的部分参数赋值,具体如下:
在子程序FSIZER3中,将NRECL设为4,将NAMFIL设为JPLEPH,将KSIZE设为2036.在子程序STATE中,将语句CALL
FSIZER3取消注释。保存修改后的程序。
继续在CV Fortran下编译程序testeph.f,生成可执行文件testeph.exe
进入dos下,执行命令:testeph & testpo.405
输出结果是一系列常用参数,以及和标准比较的结果,其中对应difference的位置数据全是E-13量级,此时表示程序运行正确;否则会出现"warning:
next difference &= ..."字样,此时需要继续修改程序。
将testeph.f文件中子程序“FSIZER3”以下所有的子程序拷贝到'selcon.f文件中',并接下来准备在该文件前编写主函数。
6. 编写主函数
如果要计算星体的位置和速度主要是调用PLEPH函数:
PLEPH(JUD,NTARG,NCTR,R),其中
输入参数为:JUD 儒略日; NTARG 目标星体的编号(参考函数说明);NCTR
中心星体的编号;&
返回参数为:R(6),R(1:3)目标星体的位置(直角坐标),R(4:6)目标星体的速度。
默认结果的单位时AU.
注: 由于编译环境的差别,源程序在Ubuntu下不一定能编译成功,但在CV Fortran下编译没有问题。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。[转载]JPL行星精密历表的使用(最近使用,补充了一点)
已有 3163 次阅读
|系统分类:|关键词:使用 精密|文章来源:转载
JPL行星精密历表的使用
上海航天技术研究院& 李云飞()
&&&&&&& 当计算太阳系某行星相对太阳或者相对其他行星的位置和速度的时候,在精度不太高的情况下,可以用行星的平均根数解析的得出,但是如果需要计算其高精度的位置和速度的时候,通常采用NASA(美国航空航天局)的JPL(喷气推进实验室)给出的行星精密历表(DE200,DE403,DE405)。
&&&&&&& 在JPL的太阳系动力学网页(http://ssd.jpl.nasa.gov/)上有太阳系行星历表计算的一般精度和高精度计算方法和子程序。
本文以行星历表的高精度计算(DE405)为例,阐述如何从JPL的FTP上下载相关数据,如何验证子程序的正确性,以及最后如何使用子程序。
本示例中以DE405为例,下载的子程序为FORTRAN语言,对于其他的历表(如DE200)和语言(C++),过程和以下相同,只要将相应的代码对应修改即可。
详细的过程可参考,作者的操作系统为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年之间的行星位置数据,那么只下载ascp到ascp的文件即可。
2.打开“开始”菜单,点击“运行”,进入窗口DOS命令行界面,并进入DE405文件夹下。
首先你的系统内要有fortran的编译器(如Compaq
visual fortran 6.5版);那么在命令行界面输入:
copy header.405+ascp+ascp+ascp infile.405
此命令会产生一个infile.405的文件。继续在命令行界面输入:
DF asc2eph.f(df 表示对.f文件使用fortran进行编译,生成exe文件。若在linux系统下,命令为gfortran;在windows下,为ifort。因为我是第一次用编译器来做,为win7下***vs2010+studio XE2011 。其对应的编译器的命令串口可以在开始菜单中找到,根据自己计算机的位数,32或64进行使用,如图
asc2eph & infile.405 &(此命令会产生一个名为JPLEPH的文件)
3.打开”testeph.f”文件,修改程序中以下部分:
在子程序”FSIZER3”中,将”NRECL”设为4, 将”NAMFIL”设为'JPLEPH'。将”KSIZE”设为 2036,对于其它的历表(如DE200), ”KSIZE”的值有所不同,参考程序中旁边的提示。
在子程序”STATE”中,将语句”CALL
FSIZER3(NRECL,KSIZE,NRFILE,NAMFIL)”最前端的’C’去掉。关闭”testeph.f”。
4.继续在命令行界面中输入:
DF testeph.f
testeph & testpo.405
此时界面中会输出一系列的常用参数,以及和标准数据的比较结果,其中对应”difference”的位置的数据全是”0.****E-13”,则表示”testeph.f”程序修改的正确,否则则会出现'*****& WARNING : next
difference &= 1.D-13& *****'的字样,那么表示程序修改错误,需要继续修改。如果出现错误,则尝试将步骤3中的”NRECL”设为1重新试试。如果仍不行,那么可能由于系统的原因,请读者自己按照其英文的说明文档自己做,或者来信与笔者交流()。
5.打开”testeph.f”文件,将子程序’FSIZER3’(包括它)以下所有的子程序全部拷贝到到’selcon.f’文件中。
6.至此,精密历表的前期工作已经完成,读者所需要的计算行星位置速度的高精度星历表子程序全部在文件’selcon.f’中,读者在实际应用中可以直接调用’selcon.f’文件中的相关子程序(相应的’JPLEPH’数据文件要存在)。如果需要的精密历表的时间与上面的时间范围不同,读者可以自己转换所需要时间段的(如公元年间的精密历表)星历表数值文件,具体方法同本文的步骤类似。
7.关于’selcon.f’文件中的行星历表的子程序名称及其接口,请参考附录A。
附录A 精密历表子程序
&&&&&&& 在最后的’selcon.f’文件中,包含着读者所需要的几个有关精密历表的子程序,下面给出各个子程序的简介及其接口参数说明。
[ PLEPH]&& : 给定某一儒略日时刻,得到目标行星相对某行星中心的位置和速度
: 获取所有的有关星历表的常数
&&&&&&& [SELCON]
: 获得读者所需的星历表某一常数
&&[ DPLEPH]: 同子程序PLEPH,但输入的儒略日时刻更加精确
lPLEPH ( ET, NTARG, NCENT, RRD )
ET&&&&&&&&&&&& [d.p.]&&&&&&& : 儒略日
NTARG&&&& [int.]&
目标行星的编号
NCENT&&&& [int.] &&&&&&& : 中心行星的编号
RRD(6)&&&&& [d.p.]& &&& : 目标行星相对中心行星的位置和速度; 单位: [au, au/day]
for nutations, d(psi), d(eps), d(psi)-dot, d(eps)-dot;[rads,
for librations,
(Euler angles and rates, w.r.t. the ephemeris reference frame)&& [rads, rads/day]
----------------------------------------------------------------------------
关于目标行星和中心行星的编号,它们的含义如下:
1 = MERCURY&&&&&&&&& 2 = VENUS&&&&&&&&&&&&&& 3 = EARTH&&&&&&& 4
= MARS&&&&&&&& 5 = JUPITER&&&&&&&
6 = SATURN&&&&&&&&&&&&& 7 = URANUS&&&&&&&&&&& 8 = NEPTUNE& 9 =
PLUTO&&&&&&& 10 = MOON
11 = SUN&&&&&&&&&&&&&&&&& 12 = 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.)
lDPLEPH ( ET2, NTARG, NCENT, RRD )
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 )。
lCONST(NAM,VAL,SSS,N)
&&&&&&& NAM(N)&& [char*6.]& :
常数名称向量
&&&&&&& VAL(N)&&&& [d.p.]&&&&&&& :
常数值向量
&&&&&&& SSS(3)&&&&& [d.p.]&&&&&&& :
&&&&&&&&&&&&&&&&&&&&&&&& sss(1)&&&&&& : 星历表数据对应的起始时刻儒略日
&&&&&&&&&&&&&&&&&&&&&&&& sss(2)&&&&&& : 星历表数据对应的终点时刻儒略日
&&&&&&&&&&&&&&&&&&&&&&&& sss(3)&&&&&& :& Chebychev系数每块数据所包含的天数
N&&&&&&&&&&&&& [Int.]&&&&&&&& : 常数向量的长度
lselcon(nams,nns,vals)
nams&&&&&&& [char*6]&& : 所要计算常数的名称
&&& nns&&&&&&&&&& [int.]&&&&&&&& : 所要计算常数的编号
vals& &&&&&&& [d.p.]&&&&&&& : 所要计算常数的数值'
--------------------------------------------------------------------------------
部分常数名称(按编号顺序):
&&&&&&&&&&&&&&&& DENUM&&&&&&& &&& Planetary
ephemeris number.
&&&&&&&&&&&&&&&& LENUM&&&&&&& &&&& Lunar
ephemeris number.
&&&&&&&&&&&&&&&& TDATEF,
TDATEB &&& Dates
of the Forward and Backward Integrations
&&&&&&&&&&&&&&&& CLIGHT&&&&&&&&&
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 .
&&&&&&&&&&&&&&&& 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时刻对应的儒略日为)的计算方法的子程序见我个人主页中的’文件
();也可用JPL网站上现成的程序来进行转换()。
JPL精密历表分类
lDE200 : (包含章动,但不含岁差)&&&&&&& 对应的历元起始时刻为:&&& JED
(1599 DEC 09)& to& JED & (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).&lDE403 : (包含岁差和章动)&&&&&&& 对应的历元起始时刻为:&&&& JED
(1949 DEC 14)& to& JED
(2050 JAN 02)&&&&&&& Tied to the International Celestial Reference Frame through comparison of UTPM estimates from Lunar Laser Ranging and VLBI&lDE405 : (包含岁差和章动)&&& 对应的历元起始时刻为:&&&& JED & (1599 DEC 09)& to& JED & (2201 FEB 20)&&&&&&& Tied to the International Celestial Reference Frame through VLBI&&&& observations of the Magellan spacecraft in orbit around Venus.&&&&&&& DE405 was created in May-June 1997.&lDE406 : 长期星历表(不含岁差章动)&&& 对应的历元起始时刻为:&&&& JED
(-3001 FEB 04) to
(+3000 MAY 06)&&&&&&& This is the same ephemeris as DE405, though the accuracy of the &&&&&interpolating polynomials has been lessened (interpolation on the &&&&&64-day mesh points remains exact, however).& For DE406/LE406, the &&&&&interpolating accuracy is no worse than 25 meters for any planet and &&&&&no worse than 1 meter for the moon.&&&& DE406 requires about 10 megabytes for each 300-year block.&lDE410 : Specialzed ephemeris used for Mars Exploration Rover navigation&& &&&& (DE409 is identical except for the reference vale uf GM for Mars)&&&&&&& Tied to ICRF by VLBI observations of Mars Global Surveyor and&&& Mars Odyssey.&&&&& Created& 24 April 2003lDE413 : A special ephemeris to update the orbit of Pluto to aid in planning for an accolutation of a relatively bright start by Pluto's satellite Charon on 11 July 2005.&&&&& Created 4 November 2004lDE414 : An ephemeris fit to ranging data from MGS and Odyssey through2003 in addition to many other data types for all planets.&&&&&& Integration covers 1599 to 2201. Some aspects are documented inAlex S Konopliv et al., Icarys vol 182, pp 23-50 (2006).&&&&&& Created May 2005
转载本文请联系原作者获取授权,同时请注明本文来自朱强科学网博客。链接地址:
当前推荐数:1
评论 ( 个评论)
扫一扫,分享此博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &

参考资料

 

随机推荐