STK12与Python联合仿真(一):环境搭建

安装Python和Jupyter notebook

这个各大博主都有讲解,附上几个链接吧
Jupyter Notebook介绍、安装及使用教程 @ 知乎 豆先生
jupyter notebook自动补全 @ CSDN 怎么会有不写代码的小朋友呢
1. python安装时一定要选择让pip在系统的环境变量里
2. 要记住自己Python的安装路径,后面有用

关键一步

在STK的安装目录里找到<your path>:STK\bin\AgPythonAPI里面的agi.stk12-12.2.0-py3-none-any.whl
我的是 F:\STK\bin\AgPythonAPI
路径栏中输入cmd,表示在当前目录中打开命令行
在这里插入图片描述
输入 pip install <TAB> 然后 Enter安装(TAB键是自动补全,因为该目录下就这一个文件,所以会很轻易的自动补全)
在这里插入图片描述

STK配置

其实STK也可以不配置,看个人喜好,按照官网的视频要求是要配置的

  1. 打开STK,如图,先把创建场景的弹窗关掉,然后点击Python的那个图标
    在这里插入图片描述

  2. 配置 Python路径,前文所说要记住自己Python路径的作用就有了
    在这里插入图片描述
    这是我自己Python的路径,第一个路径选中Python.exe就对了
    在这里插入图片描述
    第二个就是Scripts文件了,就在同一级目录,然后双击进去后点击确定就可以了
    在这里插入图片描述
    配置完之后Lunch就可以了,另外那两个勾我是都勾上的
    在这里插入图片描述

  3. 然后你就得到一个在软件里面的,狭小的notebook
    在这里插入图片描述

  4. 先不管这个,先完成其他的配置,我们新建一个场景,随便起个名字
    File > New > Name任意 > OK
    在这里插入图片描述
    进入的时间要卡一会,等一会就好了,进去后如下:
    在这里插入图片描述
    先把插入的那个close掉

然后在Edit > Preference 里面找到 Intergrated Jupyter Notebooks for Python
在这里插入图片描述
注意这个localhost,每个人可能不一样,我们把他复制下来,打开你的浏览器,直接输进浏览器的地址行,回车进入

在这里插入图片描述
在这里插入图片描述
这里需要登录,不过没关系啊,我们按照他的说法,随便打开一个命令,输入jupyter notebook list 找到localhost和你一样的那一个,这里我的是5281,然后把token复制下来(在命令行中,选中完成后右击一下即可完成复制)
在这里插入图片描述

粘贴在这里
在这里插入图片描述
然后 New Password随便输入就可以了,123都行,点击下面的Log in and …
在这里插入图片描述
点击进入StarterScripy
就能看到舒适版的了

But

这个方法我自认为有点繁琐,而且路径不能自己定义,以下方法可以自己创建notebook并且链接上去
我们新建一个场景后,可以用如下方式打开Python 视窗

  1. View>Toolbars>Intergrate … (如图)
    在这里插入图片描述
    然后,就会多出来这个
    在这里插入图片描述
    点一下那个Python的图标,就会弹出来了
    在这里插入图片描述
    然后进入绿色已开启的笔记本,在最后一行加入STK_PID
    运行
    记住这个PID,这里是40556,每个人的可能不一样
    在这里插入图片描述
    然后,自己新建笔记本,我的方法是直接在想要放的路径中,打开cmd用ipython notebook

输入以下代码,要修改的就是那个STK_PID,这个是根据刚才那一步得到的

from agi.stk12.stkdesktop import STKDesktop
from agi.stk12.stkobjects import *
from agi.stk12.stkutil import *
from agi.stk12.vgt import *
import os
STK_PID = 40556  # 根据自己刚刚得到的PID
stk = STKDesktop.AttachToApplication(pid=int(STK_PID))
# stk = STKDesktop.StartApplication(visible=True) #using optional visible argument
root = stk.Root
print(type(root))

在这里插入图片描述
如果允许成功了,就说明连接到STK了
由于我们已经创建了场景
因此,我们只要让代码连结现有的场景就可以了

scenario = root.CurrentScenario # 链接当前场景
scenario.SetTimePeriod('Today','+24hr') # 日期设置为今天
root.Rewind() # 复位

新建两个简单的组件

# 添加地面站
target = AgTarget(scenario.Children.New(AgESTKObjectType.eTarget,"GroundTarget"))
target.Position.AssignGeodetic(50,-100,0)
# 添加卫星
satellite = AgSatellite(root.CurrentScenario.Children.New(AgESTKObjectType.eSatellite,"LeoSat"))
print(scenario.StartTime)
print(scenario.StopTime)
root.ExecuteCommand('SetState */Satellite/LeoSat Classical TwoBody "' + 
                    str(scenario.StartTime) + '" "' + str(scenario.StopTime) + 
                    '" 60 ICRF "' + str(scenario.StartTime) + '" 7200000.0 0.0 90 0.0 0.0 0.0');

STK会同步更新组件
在这里插入图片描述

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年2月26日 上午11:06
下一篇 2023年2月26日 上午11:07

相关推荐