强大的天文处理软件Stellarium使用教程.docx
《强大的天文处理软件Stellarium使用教程.docx》由会员分享,可在线阅读,更多相关《强大的天文处理软件Stellarium使用教程.docx(17页珍藏版)》请在冰豆网上搜索。
强大的天文处理软件Stellarium使用教程
强大的天文处理软件Stellarium使用教程
Stellarium有非常强大的功能,使用的人也很多。
但是,很多人只使用了它的GUI中提供的功能。
实际上,Stellarium还有很多功能是GUI没有提供的。
今天,我在此介绍一下Stellarium隐藏的功能。
先说一下如何把界面设置成中文。
网上有很多相关的方法,但都是用替换文件的方法。
这样的弊端在于:
同样的字体文件要复制两份,浪费空间。
其实,正确的方法是在config.ini和fontmap.dat中修改。
注意:
config.ini在%USERPROFILE%\Application Data\Stellarium目录下,不是Stellarium\data\default_config.ini。
找到config.ini中的[gui]段,将其中的base_font_name设置为字体文件名(字体要先复制到data目录下,此处以msyh.ttf为例)。
然后,将Stellarium\data\fontmap.dat按如图方式修改。
保存之后,在Stellarium中将语言设置成中文就可以了。
如果调整成中文后字体大小不合适,可以在fontmap.dat中修改(字体文件右边的数字)。
下面再说一下Stellarium中的图像。
图像主要在Stellarium\textures和Stellarium\nebulae\default中,skycultures和landscapes中也有(星座想象图和地景)。
nebulae目录中是星云的图片,暂不讨论。
textures目录中的大部分图片都是行星的图片,把它们替换成其他的图片就可以改变行星的显示效果。
不过,行星的图片是在data\ssystem.ini中指定的,修改ssystem.ini也可以达到同样效果。
值得注意的是star16x16.png,它是恒星或行星显示成光点时使用的图片。
将它替换成其他图片,效果会……
再介绍一下ssystem.ini。
Stellarium的行星数据都在Stellarium\data\ssystem.ini中。
每个小节是一个天体。
现举一例:
[moon]
name=Moon
parent=Earth
radius=1737.4
halo=false
color=1.0,0.98,0.96
tex_map=lune.png
tex_halo=NULL
coord_func=lunar_special
lighting=true
albedo=0.12
rot_periode=655.7198811
rot_rotation_offset=38
rot_obliquity=23.45
rot_equator_ascending_node=0
name就是行星的名称,此例中为moon。
parent是行星的中心天体。
radius是天体半径,单位为千米。
halo是否显示光晕。
(设置为true时,天体周围会显示出光晕,光晕图像由tex_halo键值指定。
)
color不用说了,颜色。
(R,G,B格式)
tex_map行星的图像。
coord_func轨道计算方式,ell_orbit是一般方式,comet_orbit是彗星方式,其他是针对于较著名天体的特殊计算方式。
lighting天体如果是反射恒星的光,则设置为true;如果是自行发光,则为false。
albedo反照率。
rot_开头的都是轨道参数。
其他参数:
hidden:
如果设置为true,则在其他天体上看不到该天体。
oblateness:
该天体的扁率。
rings:
该天体是否有环。
ring_outer_size:
环外圈的半径(单位:
千米)。
ring_inner_size:
环内圈的半径(单位:
千米)。
tex_ring:
环的图像。
这是修改ssystem.ini给地球和月球加上土星环的效果。
rot_开头的是自转参数。
rot_periode:
自转周期,单位为时。
rot_obliquity:
黄赤交角。
rot_precession_rate:
岁差(单位:
角度每世纪)
轨道参数在此不再赘述,这里有很完整的资料。
http:
//www.stellarium.org/wiki/index.php/JPL_HORIZONS
给月球加上一颗卫星:
[ghost]
name = Ghost
parent = Moon
radius = 511.2
halo = true
color = 0.5.,1.,0.5.
tex_map = lune.png
tex_halo = haloLune.png
coord_func = ell_orbit
lighting = true
albedo = 0.82
oblateness = 0.08
rot_periode = 17.68
rot_rotation_offset = 38
rot_obliquity = 83.45
rot_equator_ascending_node = 0
orbit_Epoch = 2451545.0
orbit_Period = 23
orbit_SemiMajorAxis = 12450
orbit_Eccentricity = 0.01
orbit_Inclination = 90
orbit_AscendingNode = 0
orbit_LongOfPericenter = 0
orbit_MeanLongitude = 90
从月球上看:
到这颗新添加的卫星上:
地景:
其实地景的制作在帮助文件中已有详细的介绍,但我估计大部分人都没有帮助文件,所以还是说一下。
(这一部分的内容将有大部分来自帮助文件)
Stellarium的地景有三种方式:
1 单幅鱼眼方式:
使用一幅鱼眼全景图片。
2 单幅球形方式:
使用一幅球形全景图片。
3 多幅图片方式:
使用几张从360°条状全景图片分割出来的图片和一张地面图片。
地景实际上是Stellarium\landscapes下的一个子文件夹,其中存放landscape.ini和PNG格式图片文件。
1.鱼眼方式:
Trees 地景是单幅鱼眼方式的地景仅使用一幅图片,图片的中央是观测者的正上方(天顶),观测者的脚下(天底)是图片四边的内切圆,内切圆外面的部分(四角)将被忽略。
图片文件必须为 alpha 透明的 PNG 格式,其透明部分将被 Stellarium绘制为天空。
由于这种方式的图片难以制作,在此不作过多介绍。
Stellarium自带的Trees地景是单幅鱼眼方式。
2.单幅球形方式
单幅球形全景方式使用一种更加常用的全景图片。
Stellarium自带的Moon地景使用这种方式。
它的landscape.ini是这样的:
[landscape]
name = Moon
type = spherical
maptex = apollo17.png
这种方式使用的图片是一张由多幅照片拼接成的全景图。
图片的下部是地面的360度环视,上部的透明部分会被绘制为天空。
下面说地景的关键文件:
landscape.ini
该文件有两个节, [landscape] 和[location]。
先说 [landscape]。
[landscape]下的type是地景的关键,它可以设置为三种值,spherical为单幅球形方式,fisheye是鱼眼方式,old_style是多幅图片方式。
name是地景的名称,maptex是单幅球形方式或鱼眼方式中的图片,author是作者名,description 是描述。
再说[location]。
[location]中只有4个键,用来描述地景的位置,planet是所在行星,latitude 是纬度,longitude 是经度,altitude是高度。
51楼
最后再说多幅图片方式的地景,因为它实在是太复杂。
前面说过,这种方式的地景,type是old_style。
以Stellarium默认的Guereins地景来说明:
[landscape]
name = Guereins
type = old_style
nbsidetex = 8
tex0 = guereins4.png
tex1 = guereins5.png
tex2 = guereins6.png
tex3 = guereins7.png
tex4 = guereins8.png
tex5 = guereins1.png
tex6 = guereins2.png
tex7 = guereins3.png
nbside = 8
side0 = tex0:
0:
0.005:
1:
1
side1 = tex1:
0:
0.005:
1:
1
side2 = tex2:
0:
0.005:
1:
1
side3 = tex3:
0:
0.005:
1:
1
side4 = tex4:
0:
0.005:
1:
1
side5 = tex5:
0:
0.005:
1:
1
side6 = tex6:
0:
0.005:
1:
1
side7 = tex7:
0:
0.005:
1:
1
groundtex = guereinsb.png
ground = groundtex:
0:
0:
1:
1
fogtex = fog.png
fog = fogtex:
0:
0:
1:
1
nb_decor_repeat = 1
decor_alt_angle = 40
decor_angle_shift = -22
decor_angle_rotatez = 0
ground_angle_shift = -22
ground_angle_rotatez = 45
fog_alt_angle = 20
fog_angle_shift = -3
draw_ground_first = 1
解释:
nbsidetex = 8 侧面景象的图片有8张。
tex开头的都是侧面景象的图片。
nbside与nbsidetex设置成相同数值。
side开头的是图片放置方式,格式为
图像:
横向放置方式:
纵向放置方式:
横向重复数:
纵向重复数
两个放置方式是个很有意思的参数,经我测试,设置为0-1的数时图像是正的,设置为
1-2的数时图像是倒的,而且越靠近1图像被拉得越长(有点像透镜成像的规律……),设置为2以上数时会出现多个重复的倒像。
这两个参数一般应该设置为0,该地景中可能是为了视觉效果,将纵向设置为0.005。
后面的重复数是将该图片重复的次数。
例如将最后一个参数设置为10,该图片就会被压扁,从上到下重复10个。
groundtex是地面图片,ground是放置方式;fogtex是雾气的图片,fog是显示方式。
nb_decor_repeat = 1 每张侧面图在全景图中重复一次。
decor_alt_angle = 40 不详。
decor_angle_shift = -22 侧面图片从-22度开始绘制。
decor_angle_rotatez = 0 侧面图片的水平旋转角是0度
ground_angle_shift = -22 地面图片从-22度开始绘制。
ground_angle_rotatez = 45 地面图片的水平旋转角是45度。
fog_alt_angle = 20 不详。
fog_angle_shift = -3 雾气从-3度开始绘制。
draw_ground_first = 1 如果是1,则先绘制地面图片。
Stellarium 0.9.x和0.10.x的星空文化文件格式有些不同,这也是最麻烦的地方。
先说一下它们相同的地方。
星空文化是Stellarium\skycultures\下的一个子文件夹,其中可能有很多文件(如western星空文化就有近百个文件,其中85个是星座想象图),但关键的文件只有4或5个:
info.ini,constellationship.fab,constellation_names.eng.fab,star_names.fab。
有星座想象图的还会有constellationsart.fab。
0.10.x版会有description.en.utf8和description.it.utf8,它们是“显示”设置窗口“星空术语”标签下星空文化的描述。
Stellarium的文件果然很奇怪,这两个文件竟然是HTML格式的。
需要特别注意的一点是,Stellarium的星空文化所用的文本文件都是UTF-8编码,如果编辑时误保存成了其它编码,会导致文件中的中文无法显示。
实际上,info.ini,constellationship.fab,constellationsart.fab,star_names.fab在两个版本的Stellarium中是相同的,唯一不同的是constellation_names.eng.fab。
info.ini是一个非常简单的ini文件,在0.9.x中只有一项,就是该星空文化的名称。
在0.10.x中也只有3项,另外两项是作者名和描述网址。
用“记事本”就可以编辑这个文件了,唯一要注意的是,一定要保存成UTF-8编码,不能是ANSI。
58楼
star_names.fab中储存的是恒星在该文化中的名称,如北落师门。
这个文件格式很简单,现举一例:
75097|北极一,太子
72607|北极二,帝
70692|北极三,庶子
69112|北极四,后宫
62572|北极五,天枢,纽星
113368|北落师门
左边是HP星表编号,右边是恒星名称,中间是一个|(在英文输入法下Shift+\)。
最后保存为UTF-8编码。
在Stellarium\stars\default下有一个name.fab,其内容是恒星的通用名称,如θ_And之类。
它的格式与star_names.fab是相同的。
constellationship.fab的内容是星座连线,它的格式也很简单。
在该文件中,每一行是一个星座的定义。
一个星座的多个参数由空格分隔:
004 3 72603 74392 74392 76333 76333 74785
005 5 89341 90496 90496 92041 92041 92855 92855 93864 93864 93506
(以上两行来自chinese星空文化)
Cnc 5 43103 42806 42806 40843 42806 42911 42911 40526 42911 44066
(此行来自western星空文化)
它的格式是这样的:
星座标识符 连线条数 连线1起点 连线1终点 连线2起点 连线2终点 …………
星座标识符可以是字母也可以是数字,但Stellarium自带的星空文化除了western的星座标识符是3个字母外,其他文化的都是数字。
连线的起点和终点都是恒星的HP编号。
接下来说constellationsart.fab。
这个就直接从帮助文件中复制了。
每个星座假象图的详细参数,每一行定义一个星座假象图,包
括11个参数,参数中间以空格分隔:
1 星座名称缩写(3个字符的星座名称缩写)
2 图片文件名,图片保存的目录为“.../skycultures/<星空文化
名称>/”,文件名区分大小写,并必须带有扩展名“.png”。
3 恒星1在图片中的x坐标(像素值)
4 恒星1在图片中的y坐标(像素值)
5 恒星1的HP(伊巴谷)星表编号
6 恒星2在图片中的x坐标(像素值)
7 恒星2在图片中的y坐标(像素值)
8 恒星2的HP(伊巴谷)星表编号
9 恒星3在图片中的x坐标(像素值)
10 恒星3在图片中的y坐标(像素值)
11 恒星3的HP(伊巴谷)星表编号
(注意,这回没有省略号了)
附注:
帮助文件中的“星座名称缩写”就是我前面说到的星座标识符。
最后说constellation_names.eng.fab。
这在0.9.x和0.10.x是不同的。
而且更麻烦的是,中文帮助文件里也没有说。
0.9.x版constellation_names.eng.fab还能在官网上找到说明,但0.10.x版的constellation_names.eng.fab则搜遍整个官网也找不到。
先说0.9.x。
0.9.x的constellation_names.eng.fab格式是这样的:
105 雷电
106 垒壁阵
107 离宫
108 离瑜
(以上四行来自chinese星空文化)
BooBootes
CaeCaelum
ChaChamaeleon
(以上三行来自western星空文化,其中的英文在显示时会通过Stellarium的语言文件翻译)
左边是星座标识符,右边是星座名,中间用空格或制表符分割。
(附注:
我用的0.9.1版据测试可以这样。
但据官网上的资料,0.9.0版有以下限制:
星座标识符必须是三个字节;中间的分隔符必须是五个空格。
我没有0.9.0版,无法测试。
)
0.10.x版的constellation_names.eng.fab多了一列,格式大约是这样:
Aql"Aquila"_("Aquila")
And"Andromeda"_("Andromeda")
(以上两行来自western星空文化)
003""_("Coiled Thong")
004""_("Wings")
(以上两行来自chinese星空文化)
三列之间用空格或制表符分隔。
第一列是星座标识符,第三列引号内是星座显示名称。
第二列的含义不明,我在官网上没有找到相关资料,似乎引号内为空没有什么影响。
这就是我制作的一个简单的星空文化。