说明
STK版本:9.2.2
需求
在STK场景中经常需要插入地面设施(Facility)对象,地面设施对象的基本包括:纬度、经度和高度,STK提供了一个数据库可以方便的进行选择,快捷插入预定义的地面设施。
在自己的需求中,经常要插入的地面设施不在STK自带的数据库中,构建不同的场景时,同一个地面设施需要重复输入对象属性数据,非常不方便。经测试,发现STK支持自己构建数据库(文件),通过自己构建的数据库(文件)方便快捷的插入自己预定义的地面设施。
数据准备
假设有如下4个地面站:北京、上海、深圳、乌鲁木齐,各地面站经纬度如下表。
序号 |
地面站 |
纬度 |
经度 |
1 |
北京(BeiJing) |
39°54’20’’N(39.90°) |
116°25’29’’E(116.40°) |
2 |
上海(ShangHai) |
31°12’00’’N(31.23°) |
121°26’00’’E(121.47°) |
3 |
深圳(ShenZhen) |
22°38’00’’N(22.55°) |
114°10’00’’E(114.05°) |
4 |
乌鲁木齐(Urumqi) |
43°46’00’’N(43.82°) |
87°36’00’’E(87.62°) |
注:上表中的数据为网络搜索得到,各地(城市)的经纬度实际是一个变化的范围,上表中的数据仅为参考!
STK地面设施数据库(文件)分析
找到安装目录下STK附带的本地地面设施数据库文件(stkFacility.fd),该文件是一个文本文件,直接打开后,查看其格式,文件每一行代表一个预定的地面设施,如下图(本例截取了中间几行代表性数据):
根据STK官网(https://help.agi.com/stk/)的在线手册,对stkFacility.fd的说明如下:
分析:每行数据由6列、89个字符组成,每列的意义分别为:设施名称、(数据来源的)网络、纬度(单位:°)、经度(单位:°)、高度(m)、中心体(均默认为Earth),各列的长度见图(一目了然)。
构建自己的地面设施数据库
参照STK规范构建自己的地面设施数据库,例如命名为customFacility.fd,内容如下图:
说明:
- 文本文件格式选择保存为“ANSI/ASCII”;
- 所有的数据库来源(第2列)均设置为‘Other’;
- 所有的(海拔)高度均设置为:0。
测试
启动STK,新建场景。
主菜单:插入 -> 新建,弹出“Insert STK Objects”对话框。
选择‘Facility,在右侧‘Select A Method’中,选择‘Select From Facility Database’。
点击‘Insert’按钮,在弹出的对话框中点击‘Advanced…’按钮,如下图所示:
在弹出的对话框中,点击选择数据库文件按钮,如下图。然后选择自己定义的地面设施数据库文件(例如本例中的customFacility.fd),然后点击‘OK’按钮。
回到‘Insert From Facility DataBase’界面,记住要点击界面上的‘Search’按钮,重新执行搜索,OK!大功告成,而且,STK的数据文件及界面居然支持中文!(坏消息是插入对象后对象浏览窗口的对象名称为乱码,虽然可以将对象名更改为中文,但在STK的三维窗口中仍然会显示乱码,乱码问题的解决不在本文讨论范围),结果如下图。
OK!现在可以愉快的选择自己想要插入的地面设施了,而且,在不同的场景中可以方便地复用。
拓展
-> 也可以通过自定义城市数据库(在插入对象操作中选择‘Select From City Database’)完成地面设施的定制。
-> 可以将自定义的地面设施直接添加到STK自带的数据库文件(stkFacility.fd)中,好处是少一个文件,缺点是需要在一个长长的列表中查找或搜索定位。
-> STK中的其他对象应该也是支持通过自定义数据库的方式进行快捷的对象插入操作(尚未亲测)。
-> 如果需要把自定义的文件作为默认的地面设施数据库文件,则需要把文件拷贝到STK默认的数据库文件目录(通过搜索定位,或者通过修改STK的配置调整默认数据库文件的位置)。
-> 虽然本场景是基于STK 9.2定制的,可以推断的是,在更高版本的STK中也是支持的,只是界面和操作略有不同。