本人在做一个项目的时候,需要使用STK12.2创建大量卫星,并给每个卫星设置成像载荷,计算整个场景时间下,所有成像载荷与地面目标的Access数据,最后还要将数据导出用于其他处理计算。
在尝试手动使用STK12.2实现以上效果失败后,考虑使用Python对STK12.2编程实现。本人编程语言方面只学过Python语言(而且学得很普通),整个联合仿真过程下来,感觉就是:入门较难、入门后感觉较简单;二次开发的水平取决于对STK12.2这个软件了解的多少,了解的越多,编程实现某些功能就越容易。
本次联合仿真大致过程:
(一)软件准备:
STK12.2是在某宝上花钱买的。我个人在安装软件上,更偏向于能用钱解决的就用钱解决,无论是商家远程安装还是自己按照商家的步骤安装,效率都更高,而自己从网上找免费的渠道安装软件费时费力还不一定能成功。Python是自己按照版本对应关系下载的,我使用的Python版本是3.10.9。我是在Pycharm Community Edition 2023.1.1上进行编程。
(二)STK12与Python开发的环境配置:
互联教程是在CSDN上搜到的是作者“一只大佬铁”的教程,链接我放在下面了。
STK12与Python联合仿真(一):环境搭建-CSDN博客
如果按照他的步骤完整走下来,最后可以在STK中打开一个Jupyter notebook进行编程。我按照步骤来搞,没有完全成功,但是Pycharm已经可以对STK12.2进行编程了,具体什么原因我也不太清楚。环境配置这块我搞得也是稀里糊涂,建议大家电脑上安装一个Pycharm。然后按照这位作者的步骤试一试。
STK12.2+Python开发(一):STK和Python开发环境配置_python链接stk-CSDN博客
如果已经成功连接了,那么STK12.2自带的例子程序是可以直接运行的。正常情况下,例子程序存在路径C:\Program Files\AGI\STK 12\CodeSamples\Automation和路径C:\Program Files\AGI\STK 12\CodeSamples\CustomApplications。这两个文件夹中不仅存有python例子程序,还有C++、Java等程序。
(三)编程应用
安装与互联完成后,更头疼的就来了。初次进行互联编程真的就感觉无从下手,没有系统的教程,能查到的一些文章页很少,而且很多还是STK11版本的。除了CSDN上可以搜到的教程,这里也是推荐知乎作者“小脏鱼儿”的教程,虽然教程是STK11版本的,但是其中关于对象模型和模型调用的讲解非常值得学习,也是适用于STK12的,链接放下面了。
Python与STK联合仿真-第三讲 - 知乎 (zhihu.com)
除了例子程序、网上的教程以外,能够参考的资料就是STK自带的非常完整的英文说明书,Programming Interface Help,在STK中可以直接打开。
打开后可以在里面直接搜索对象和接口的使用方法,但是首先要知道有什么对象、有什么接口,他们之间的关系是什么。这就需要在说明书中下载另一个关键的资料——接口关系图。
可以在说明书中看到,STK Object Model的库有STK Objects、STK X、STK VGT等6个。每个库都有如下的一张接口关