Celestia/目录文件参考
Celestia 的宇宙包含三类主要天体
- 恒星 (STC)
- 深空天体(星系和星云) (DSC)
- 太阳系天体(行星、卫星、小行星、彗星和航天器) (SSC)
每个天体都由不同类型的目录文件定义。 太阳系目录(.ssc)文件 包含太阳系天体的定义; .dsc 文件 包含深空天体的定义;恒星可以在 .stc 文件 或 stars.dat 中定义,后者为二进制格式。使用二进制恒星格式是因为 Celestia 的宇宙包含的恒星数量远超深空天体或太阳系天体,因此使用紧凑且快速加载的格式非常重要。
除了二进制 .DAT 恒星目录外,所有其他目录都是文本文件,包含以类似格式排列的天体定义列表。每个定义都包含一个名称,后跟一个属性列表。属性列表是由大括号分组的一组名称-值对。以下是比邻星的属性列表
{ RA 217.429167 Dec -62.679444 Distance 4.225 SpectralType "M5.5V" AppMag 11.09 }
属性名称与天体类型相关。属性值有相应的类型。在上面的例子中,除了 SpectralType 为字符串外,所有属性都是数字。Celestia 目录文件可以包含注释 - 从井号 (#) 到行尾的任何文本都将被忽略。
Celestia 目录文件中的数字是一个标量实数值。非常大或非常小的值可以使用类似 C 语言的指数形式编写,例如 1.2e-3 代替 .0012。有效数字值的示例
1234 3.14159265 1.234e10 0.1025 -2.24 .1025 (Celestia v1.5.0 or later) +2.24 (Celestia v1.5.0 or later)
注意:Celestia v1.4.1 及更早版本存在两个限制,在 v1.5.0 中已修复。在 Celestia v1.4.1 及更早版本中,所有数字必须以数字字符或减号开头。不应该使用前导小数点或前导加号。也就是说,小于 1 的值必须包含前导 0:0.5 可以,但 .5 不行。另外,会自动假设前导 +。提供前导 + 会导致错误。
字符串是由双引号括起来的任意长度的字符序列。它们可以跨越多行,但字符串内的任何换行符都将被逐字解释。一些特殊字符可以用反斜杠开头的转义序列表示。
- \"
- 双引号字符
- \n
- 换行符
- \\
- 反斜杠
- \uxxxx
- Unicode 字符,其中 xxxx 是由四个十六进制数字组成的序列
Celestia 目录文件中的向量是由方括号括起来的三个实数值列表。向量示例
[ 0 +1 0 ] [ 1.2 -3.4 5 ] [ 1.0e3 2.2 63 ]
列表中的一些属性具有复杂的值,这些值本身就是属性列表。与顶层属性列表一样,这些属性列表也只是一个由大括号括起来的一组名称-值对。以下是如何在太阳系目录(.ssc)文件中设置名为 UniformRotation 的属性的值
UniformRotation { Period 24.0 Inclination 23.5 }
(这只是一个示例,用于显示格式。UniformRotation 指令在 Celestia v1.4.1 及更早版本中不受支持。它需要 Celestia v1.5.0。)
日期值可以写成数字或字符串。数字将被解释为儒略日数。日期字符串包含公历的年份、月份和日期。它们可以选择包含 hh:mm:ss 格式的时间。时间使用 24 小时制。负年份值用作公元前或 BCE 的替代;如果您想要公元前 1 年的日期,您应该将年份设置为零。(这是天文学惯例,与大多数日历中使用的基督教惯例不同。基督教日历没有编号为 0 的年份。)
带有解释性注释的日期值示例
2451545.0 # J2000 - noon January 1, 2000 2453023.1232 "2006 11 8" # midnight November 8, 2006 "1984 12 25 1:30:00" # 1:30am December 25, 1985 "-4 8 23 10:00:00" # 10:00am August 23, 5 B.C. "2130 4 1 22:10:34.15" # 22:10:34.15 April 1, 2130
从 Celestia v1.5.0 开始,所有目录时间都使用 TDB(质心动力学时)时间尺度指定。但是,屏幕上的时间显示为 UTC。TDB 与 UTC(协调世界时)相差 32.184 秒,加上一些整数秒的闰秒。截至 2006 年,TDB 比 UTC 快 65.184 秒。有关更多信息,请参见关于时间尺度的页面。