Celestia/星数据库格式
外观
另请参阅GitHub上的此页面。
stars.dat文件包含有关恒星的二进制格式信息。字节顺序是小端序。格式如下
一个14字节的文件头
8-byte character string "CELSTARS" 2-byte unsigned integer version number = 0x0100 4-byte unsigned integer number of records in file
后面是长度为20字节的记录,格式如下
4-byte unsigned integer Hipparcos catalog number (=0 for Sol) 4-byte floating point x-coordinate in light years 4-byte floating point y-coordinate in light years 4-byte floating point z-coordinate in light years 2-byte signed integer absolute magnitude * 256 2-byte unsigned integer spectral class
x、y和z坐标的计算方法如下
其中d是光年距离,θ = RA + 180°,φ = Dec − 90°,ε = 23.4392911°。
光谱类型用四个十六进制数字0xKTSL表示。
K位表示物体类型,它们是
K=0 normal star K=1 white dwarf K=2 neutron star K=3 black hole
T位表示光谱类型。它对于普通恒星和白矮星有不同的含义。当物体是中子星或黑洞时,此位被忽略。
normal stars white dwarfs ----------------------------------------------------- T=0 spectral type O spectral type DA T=1 spectral type B spectral type DB T=2 spectral type A spectral type DC T=3 spectral type F spectral type DO T=4 spectral type G spectral type DQ T=5 spectral type K spectral type DZ T=6 spectral type M unknown spectral type D T=7 spectral type R spectral type DX T=8 spectral type S T=9 spectral type N T=a spectral type WC T=b spectral type WN T=c unknown spectral type T=d spectral type L T=e spectral type T T=f spectral type C
S位表示光谱亚型。对于中子星和黑洞,此位被忽略。
S=0 spectral subtype 0 S=1 spectral subtype 1 S=2 spectral subtype 2 S=3 spectral subtype 3 S=4 spectral subtype 4 S=5 spectral subtype 5 S=6 spectral subtype 6 S=7 spectral subtype 7 S=8 spectral subtype 8 S=9 spectral subtype 9 S=a unknown spectral subtype
L位表示光度等级。此位仅与普通恒星相关。
L=0 luminosity class Ia-O L=1 luminosity class Ia L=2 luminosity class Ib L=3 luminosity class II L=4 luminosity class III L=5 luminosity class IV L=6 luminosity class V L=7 luminosity class VI (also written as prefix sd) L=8 unknown luminosity class
因此,光谱类型为G2V的恒星使用数字0x0426。
在1.4.0版之前,Celestia使用略微不同的stars.dat格式。
一个4字节的文件头,格式如下
4-byte unsigned integer number of records
后面是长度为25的记录
4-byte unsigned integer Hipparcos catalog number 4-byte unsigned integer HD catalog number 4-byte floating point Right Ascension in degrees 4-byte floating point Declination in degrees 4-byte floating point Parallax (in milliarcseconds?) 2-byte signed integer Apparent magnitude * 256 2-byte unsigned integer Spectral class 1-byte unsigned integer Parallax error * 200
请注意,对于当前版本的Celestia,HD目录号存储在hdxindex.dat文件中。