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


    安装Python和Jupyter notebook

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

    关键一步

    STK的安装目录里找到:STK\bin\AgPythonAPI里面的agi.stk12-12.2.0-py3-none-any.whl
    我的是 F:\STK\bin\AgPythonAPI
    路径栏中输入cmd,表示在当前目录中打开命令行
    在这里插入图片描述
    输入 pip install 然后 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    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))
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

    新建两个简单的组件

    # 添加地面站
    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');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

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

  • 相关阅读:
    stm32cubemx hal学习记录:PWM
    ES6 入门教程 19 Generator 函数的语法 19.1 简介
    【图像处理】图像配准、图像增强和图像分割研究(Matlab代码实现)
    后端一次性返回10万条数据,使用vue,你该如何渲染?
    缺乏沟通能力怎么办?如何提高沟通能力?
    java项目-第143期ssm母婴用品网站_java毕业设计_计算机毕业设计
    Flask Web——Jinjia2模板的使用
    Android中View的工作流程之draw过程
    聚沙成塔【45天玩转uni-app】uni-app开发工具
    MySQL锁机制详解
  • 原文地址:https://blog.csdn.net/qq_42635142/article/details/126689524