Python3.6.8调用STK11.6仿真:从TLE文件读取某个ID号的卫星,外推星历并保存结果为*.xlsx文件
说明: 根据CSDN的'奶灰不会飞'博主的帖子,稍微改写实现
参考: Python与STK交互:创建场景,目标和计算目标参数并获取数据_奶灰不会飞-CSDN博客_python stk
代码、TLE文件、生成结果打包上传:
Python+STK联合仿真:外推星历_从TLE文件读取某个ID号的卫星.zip-互联网文档类资源-CSDN下载
直接上代码:
# -*- coding:utf-8 -*-
# JSLS备注
"""
① 根据如下技术帖子改写:
# 《CSDN__奶灰不会飞:Python与STK交互:创建场景,目标和计算目标参数并获取数据.mhtml》
# https://blog.csdn.net/weixin_43534654/article/details/107020445
② 代码开展的工作总结:
1、 COM对象编程,调试时可看见 COM组件对象 详情;
2、 将 STK 的时间格式 '1 Jan 2022 08:00:00' 转换成了可读性强的 '2022-01-01 08:00:00' 格式;
3、 使用了 pandas 库 第三方包,时刻、半长轴、纬度、经度等数据,进行批量处理;
4、 结果文件存储为 *.xlsx Excel文件。
"""
# %%import
import datetime
import os
import time
import pandas as pd
# JSLS添加
"""
Python调用STK11.6
可以在STK软件的【STK Help】网页帮助里看到详细介绍:
file:///C:/Program%20Files/AGI/STK%2011/Help/index.htm#training/StartPython.htm%3FTocPath%3DTraining%7CLevel%25202%2520-%2520Advanced%2520Training%7C_____10
网页帮助的文档标题《Part 16: Integrating STK with Python》
"""
# Set up your python workspace
from win32api import GetSystemMetrics
"""
报错:ImportError: No module named win32api
需要安装 pypiwin32 , 手动安装 pypiwin32 如下:
pip install pywin32-226-cp36-cp36m-win32.whl
"""
import comtypes
from comtypes.client import CreateObject
# 以下2句:是因为【 root=uiApplication.Personality2 】 运行后,生成了【comtypes.gen】
from comtypes.gen import STKUtil
from comtypes.gen import STKObjects
# TLE文件中指定 ID号的卫星,进行轨道外推
def createSatellite(path_tle, satelliteID, starttime, stoptime, steptime=300):
""" TLE文件中指定 ID号的卫星,进行轨道外推
输入: path_tle: TLE文件 全路径
satelliteID: TLE文件中 某颗卫星的 ID
starttime: 外推轨道的起始时刻
stoptime: 外推轨道的结束时刻
steptime: 外推轨道的步长时间(单位:秒)
输出: 'result01.xlsx' 和 'result01.xlsx' 轨道外推结果文件
注意: steptime时间步长: 默认为300秒,即5分钟
"""
# 首先创建卫星
""" COM