当前位置:首页 » 《随便一记》 » 正文

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

23 人参与  2023年04月05日 19:05  分类 : 《随便一记》  评论

点击全文阅读


环境搭建

安装Python和Jupyter notebook关键一步STK配置But

安装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也可以不配置,看个人喜好,按照官网的视频要求是要配置的

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

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

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

先不管这个,先完成其他的配置,我们新建一个场景,随便起个名字
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 视窗

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

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

from agi.stk12.stkdesktop import STKDesktopfrom agi.stk12.stkobjects import *from agi.stk12.stkutil import *from agi.stk12.vgt import *import os
STK_PID = 40556  # 根据自己刚刚得到的PIDstk = STKDesktop.AttachToApplication(pid=int(STK_PID))# stk = STKDesktop.StartApplication(visible=True) #using optional visible argumentroot = stk.Rootprint(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会同步更新组件
在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/58535.html

<< 上一篇 下一篇 >>

  • 评论(1)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1