access python_STK中的Access的获取及计算(Python)

本文介绍如何在Python中获取STK场景中的Access并计算链路质量。首先,通过GetExistingAccesses获取所有Access,然后利用GetAccessBetweenObjectsByPath获取发射机和接收机之间的Access。接着,设置时间格式为EpSec,计算链路质量指标,如BER、EbNo、Prop_Loss等,并将结果存储到CSV文件中。文章还提及了各种链路性能指标的详细描述。
摘要由CSDN通过智能技术生成

在之前的文章里面已经介绍了如何创建发射机和接收机之间的Access,原则上在可见性范围内的卫星均可以计算其Access。

这篇文章介绍在已经建立了Access的情况下如何读取场景中的Access以及对其进行计算。

一、Access的获取

access_list = scenario2.GetExistingAccesses() #获取所有的Access

for access_path in tqdm(access_list):

# access_path:('Satellite/Sat0_0/Transmitter/Transmitter_Sat0_0','Satellite/Sat0_1/Receiver/Reciver_Sat0_1',True)

# access_path[0]:发射机地址

# access_path[1]:接收机地址

Transmitter_name = access_path[0].split('/')[-1]

Reciver_name = access_path[1].split('/')[-1]

access = scenario2.GetAccessBetweenObjectsByPath(access_path[0], access_path[1])

Transmitter_name = access_path[0].split('/')[-1]

Reciver_name = access_path[1].split('/')[-1]

access = scenario2.GetAccessBetweenObjectsByPath(access_path[0], access_path[1])

scenario2为IAgScenario类物体。与获取场景中的卫星等实体物体不同,Access的为虚拟物体,只能从场景的根目录下获取。

获取的为一个列表,列表的每一项为一个格式如('Satellite/Sat0_0/Transmitter/Transmitter_Sat0_0','Satellite/Sat0_1/Receiver/Reciver_Sat0_1',True)的元组,第0项为发射机的地址,第1项为接收机的地址。第2项中的Bool项我不太清楚是什么。

最后一句话的意思是从场景中获取讲个物体的Access。

二、计算每个Access的链路质量

首先将STK的时间格式设置为EpSec格式,才可以获得与STK中相似的格式。Epsec格式的时间为从场景开始计时为0秒,以秒计数。

之前使用的UTCG格式为方便人们阅读的日期格式,但是计算中并不方便,且使用UTCG格式计算Access时会导致结果中只有一项StopTime处的数据,显然这是我们不希望看到的。

接下来计算链路质量:

access = scenario2.GetAccessBetweenObjectsByPath(access_path[0], access_path[1])

Times, Link_Name, BER, EbNo, Prop_Loss, Xmtr_Gain, EIRP, Range, Xmtr_Power, Rcvd_Frequency, g_over_T, Bandwidth, Free_Space_Loss, Propagation_Delay, Propagation_Distance, Rcvd_Iso_Power = Compute_access(

access=access)

# print(Times, Link_Name, BER, EbNo, Xmtr_Gain, EIRP, Prop_Loss)

df = pd.DataFrame(

[Times, Link_Name, BER, EbNo, Prop_Loss, Xmtr_Gain, EIRP, Range, Xmtr_Power, Rcvd_Frequency,

g_over_T, Bandwidth, Free_Space_Loss, Propagation_Delay, Propagation_Distance, Rcvd_Iso_Power])

df = df.T

df.to_csv('./access_data/' + Transmitter_name + '_to_' + Reciver_name + '.csv',

header=['Times', 'Link_Name', 'BER', 'EbNo', 'Prop_Loss', 'Xmtr_Gain', 'EIRP', 'Range', 'Xmtr_Power',

'Rcvd_Frequency', 'g_over_T', 'Bandwidth', 'Free_Space_Loss', 'Propagation_Delay',

'Propagation_Distance', 'Rcvd_Iso_Power'], index=False)

计算的函数在之前的文章中给出过,这里不再赘述。

得到了链路性能指标后进行存储即可。

附:通信链路指标Name描述CommSystemAccess

Time时间√√

Xmtr Name发射机的名字√

Rcvr Name接收机的名字√

Link To ID链路分析中的发射机ID√

Multibeam Antenna Beam-ID链路分析中多光束发射机内光束的ID√

Xmtr Power在天线输入处测得的发射机的射频功率输出。√√

Xmtr Gain发射机的天线增益取决于所选的天线类型。对于简单发射机,由于简单发射机被建模为各向同性辐射体,因此为0 dB。√√

EIRP链路方向上的有效各向同性辐射功率。它指的是卫星或地面站在某个指定方向上的辐射功率。理想状态下等于功放的发射功率乘以天线的增益√√

Xmtr Azimuth - Phi发射机方位角(Phi)是发射机主体+ x轴与链接矢量的x-y投影之间的角度。√

Xmtr Elevation - Theta发射机仰角(Theta)是发射机天线视轴矢量与链路矢量之间的角度。√

Multibeam Rcvr Antenna Beam-ID多波束天线波束ID是指链路分析中使用的多波束接收机内波束的ID。√

Rcvd. Frequency接收机频率,可以设置为自动跟踪√√

Freq. Doppler Shift频率多普勒频移是发射频率和接收频率之间的频率偏移。对于自动跟踪的接收器,该值为零。√√

Rcvd. Iso. Power接收的各向同性功率。它等于所有信道损耗以及应用的带宽重叠的EIRP。√√

Carrier Power at Rcvr Input接收机输入端的载波功率为添加接收机天线增益后的功率。√√

Flux Density发射机的功率越过垂直于波传播方向的单位面积。√√

Rcvr Gain接收机增益√√

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python STK交互是指使用Python编程语言与STK软件进行交互的过程。在进行PythonSTK交互之前,需要进行首次连接的初始化。可以使用以下链接提供的方法进行连接初始化。该链接提供了使用Python进行STK操作的示例,包括创建卫星、计算参数和获取数据等。 为了验证是否安装了必要的组件,可以在Python文件复制并粘贴以下代码并运行: ```python from agi.stk12.stkengine import STKEngine stk = STKEngine.StartApplication(noGraphics=True) print(stk.Version) ``` 以下是完整的首次连接STKPython代码示例: ```python # -*- coding: utf-8 -*- """ Python 首次连接STK(此文件只运行一次) 此文件运行后,会在目录<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [PythonSTK交互:创建场景,目标和计算目标参数并获取数据](https://blog.csdn.net/weixin_43534654/article/details/107020445)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [大型SAR卫星星座设计——Python STK联合仿真](https://blog.csdn.net/Beau_Wen/article/details/129961249)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [STK二次开发-Python的首次连接](https://blog.csdn.net/u011575168/article/details/86582961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值