python筛选处理天线暗室数据,得到1. 增益随频率变化 2.指定频点E面H面的主极化,交叉极化 的数据

应用场景

从天线暗室中获取的数据一次完整测试约有44万行数据,手动筛选出需要数据较为困难。暗室中的软件可以选择需要数据进行拷贝,但是一是在暗室的时间非常宝贵(学校其他课题组资源,5元/分钟收费)二是在暗室中筛选后的数据是不完整数据,后续处理中如果发现有遗漏数据后续补数据非常麻烦。所以不如一次性拷走所有数据通过代码筛选出所需要的数据,再用origin画图。

其他说明

本代码主要考虑实用性,实现相似功能的代码重复率较高(未将重复代码抽出复用)

所需数据材料格式

从天线暗室导出的初始数据即可。格式为.csv文件(如果是.xlsx或者.xls文件另存为.csv即可)。表头如下:
在这里插入图片描述

  • 第一行的表头固定为’Frequency’ ,‘Phi’ ,‘Theta’ ,‘Gain Phi. dB’,‘Gain Theta. dB’(后续数据处理的识别中使用)
  • 本文中暗室所用数据的Phi和Theta的单位为弧度

处理数据步骤

一、Python目录结构

示例中该项目名为antenna,需要处理的初始文件(xx.csv)放在antenna下的files文件夹中

--antenna
    --files
        --xx.csv
        --xx
            --筛选后的文件.csv
    --set.py
    --selectphi0.py
    --selectphi90.py
    --selectallgain.py
    --selectfrequencyphi0.py
    --selectfrequencyphi90.py
    --selectfrequencytheta0.py
    --selectfrequencytheta90.py
    

二、设置待处理文件名和需筛选的频点的集合

"set.py"文件设置需要处理的文件名和需要被筛选的频点

#需要处理的原始文件
origincsv = 'files/xx.csv'
#需要输出的采样频点 单位:GHz
used_frequency = ['2.15','2.45','2.9','3.45','3.85']

三、分别筛选出所有phi=0 theta=0的数据和phi=90 theta=90的数据

数据初处理:分别筛选出所有phi=0和phi=90的数据,方便后续筛选出所需要频点的方向图所需数据,每次从44万行数据中筛选时间较久,故做一次初筛。
其对应的文件分别为:selectphi0.py 和 selectphi90.py

  • 需要安装pandas扩展
    selectphi0.py代码如下
import pandas as pd
import math
import os
from set import *

#初始数据表格
print(os.path.exists(origincsv))
#显示当前工作目录
originfilename = os.path.splitext(origincsv)[0]
#df = pd.concat(map(pd.read_csv,  ['wlj11.csv', 'gainphi.csv','gaintheta.csv']))
df1 = pd.read_csv(origincsv)
contents1 = [['Frequency','Phi','Theta','Gain Phi. dB']]
contents2 = [['Frequency','Phi','Theta','Gain Theta. dB']]
for index, row in df1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值