我下载了一些 DAF“传输”格式的数据,NASA 完全
无法在这里解释:
http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/daf.html#Conversion%20and%20Transfer%20of%20DAF%27s
我如何阅读这个文件。这是我试图理解的前几行:
DAFETF NAIF DAF ENCODED TRANSFER FILE
'DAF/SPK '
'2'
'6'
'NIO2SPK '
BEGIN_ARRAY 1 3895604
'URA111 '
'-BC186A96D0E76^8'
'BC0DDF032F041^8'
'2BD'
'7'
'1'
'3'
1024
'-BC18166^8'
'FD2^4'
'-DA4A19AC2BCD18^4'
'-4D5E7E1A67739^4'
'1D46248537C30E^5'
'EBA587DFA5E3B^3'
'-26885CE73CB0D^4'
'-BF0DC6EDB5B2C8^2'
'129C1CFEABE48^3'
'5594FC676368^1'
'-472EBF2225A^1'
'-2198AE1963D^0'
'79CC4CA0C^-1'
'FDD9792D82^-2'
'2001D81A^-2'
'333BCEE2BDD724^4'
'-D78AA10831D9C8^4'
'-6D712677574DF8^4'
'283A14783CDC^4'
'90AC22194ABF6^3'
'-1DEF6219F664FE^3'
'-47318F604096^2'
'9B805F405B1C^1'
'1275B947E2AC^1'
'-16A664664D^0'
'-2F614B9F5^-1'
'-B7C3E41D^-3'
'2F3D71F8^-3'
根据 NASA 的说法,这是/曾经是 Fortran 程序的流行格式,
但谷歌根本没有帮助(维基百科没有条目
任何一个)。
最佳答案
好吧,我想我终于至少弄清楚了其中的一部分。为了
引用,原始文件(大小高达 162M)是
ura111.bsp 文件在:
http://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/satellites/
并使用 toxfr 程序转换为 ura111.xsp:
http://naif.jpl.nasa.gov/pub/naif/utilities/SunIntel_32bit/
小文件:
http://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/satellites/ura111.cmt
http://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/satellites/ura111.inp
解释更多关于主文件的信息。
像“-BC18166^8”这样的东西真的是 double 数字,写成
修改后的十六进制 IEEE-754 格式。维基百科有点解释
这种格式在这里:
http://en.wikipedia.org/wiki/IEEE-754
还有像这样的 IEEE-754 到十进制转换器:
http://www.h-schmidt.net/FloatConverter/(和许多其他人)
但是,这些并不能解释/转换 NASA 使用的确切格式,即
是我困惑的原因之一。
供引用“-BC18166^8”转换如下:
换句话说,我们除以 16^(“BC18166”的长度)),得到
0.734742544591427
当然,我们可以将第 2 步和第 3 步结合起来,然后相乘
197230950 由 16。
@klugerama,回答你的问题,是的,我正在尝试写一个文件
解析器,这次是在 Perl 中,作为程序的一部分,可以准确地
识别太阳系中各种物体的位置。
我已经解析了与行星(和地球的)有关的 NASA 文件
自己的月亮)在这里:
ftp://ssd.jpl.nasa.gov/pub/eph/planets/ascii/
但这些格式大不相同,而且更容易解析。