一般来说,为了更准确的在野外测试,通常要用到GPS和地波仪,GPS很常见了,那么地波仪是什么呢?
地波仪本质上就是个振荡器,发射的信号是以1.001MHz为基频的各次倍频波等幅波,强谐波信号能维持到30MHz以上,即在1~30MHz范围内同时输出1MHz基频及各次谐波,频率准确度:1.001MHz±15Hz,这类无线电波沿地面传播,通常叫地波了。
之前做了一个地波测试小工具,但是使用过程中发现还是不方便。
比如携带的GPS测量仪测出发射源位置(纬度1,经度1)后 需要与天线阵位置(纬度0,经度0) 计算距离和方位角(又称示向度),没有趁手的家伙事儿,所以上网搜了一些资料,做了个小工具。
Part1 坐标计算,
(1)求地球球面A点和B点之间的方位角以及二者之间的距离,方位角
距离
参考常用的距离计算Haversine公式,精度还不错,具体算法可以参考
Haversine formulaen.wikipedia.org
代码随后更新
方位角
利用球面公式就能求,基础数学知识
代码随后更新
经纬度度分秒转换度工具
平时度分秒格式比较方便,但是不便于进行数学运算
这个很容易,初中知识,就不赘言了
--------------------------------
Part 2 地波测试
参考文章
土笋冻要学习:基于PyQt5的简单RMSE计算小工具设计-研究笔记
Part 3 笔记
(1) 经纬度非法值判定
a. 纬度范围[-90,90] 经度范围[-180,180],东经和北纬以正度数表示,西经和北纬以负数表示
b. 除非4个lineedit都填入合法值,否则计算不产生结果
(2)角度转换非法值判定
(度 分 秒)如果不填入值,判定为0;如果填入非法值,不产生计算结果,并将非法值所在lineedit置为空
图a 分位为空
图b 自动补零
(3)打开保存文件
首先为了以后方便,测试结果可以保存到本地
如何打开保存的excel文件呢?
PyQt5.QtWidgets.QfileDialog提供了一些便捷方法
参照https://programtalk.com/python-examples/PyQt5.QtWidgets.QFileDialog./
getOpenFileName()方法 #单个文件打开
getOpenFileNames() #多个文件打开
getExistingDirectory() #文件夹选取
getSaveFileName() #文件保存
所以我们使用PyQt5.QtWidgets.QFileDialog.getOpenFileName()方法,但是发现通过这个途径打开文件以后没有响应?
查了资料发现,需要把这个方法的返回值赋给os.startfile()方法,执行动作与在Windows中双击文件相同
def openSavedFile(self):
fileName1,filetype = QFileDialog.getOpenFileName(self.pushButton_openSavedFile,'选择文件','','Excel files(*.xlsx , *.xls)')
# 参数1 是个对象,通常把需要执行点击操作的按钮对象赋给参数1
# 参数2 是对话框的名字
# 参数3 路径名,""表示py文件所在目录
# 参数4 过滤器,这里我们只显示excel文件
print(fileName1,filetype) # QFileDialog.getOpenFileName返回文件名,需要使用其他命令打开
startfile(fileName1) #调用系统默认方式打开文件
-------------------------------------
很简陋,再用一用发现问题吧