温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
Python
Matlab
测绘
程序设计
中的
对比
研究
更新
第 31 卷 第 4 期 2023 年 8 月Vol.31 No.4Aug.2023电脑与信息技术Computer and Information Technology文章编号:1005-1228(2023)04-0103-03收稿日期:2022-07-02基金项目:甘肃农业大学学生科研训练计划项目(项目编号:202207044)作者简介:张更新(2001-),男,甘肃人,本科,主要从事测绘程序开发设计与遥感研究;(通信作者)鄢继选(1983-),男,甘肃人,副教授,主要从事生态、水利遥感动态监测研究。测绘科学结合信息科学技术后,在诸多领域均有广泛应用。但也出现一些问题:在不同项目中,所需空间坐标属性存在差异,涉及大量坐标数据转换、地理系统坐标种类多等一系列问题。因此要实现成果在不同坐标系之间批量转换。由于转换步骤多,数据要求严,转换方法等的影响,会造成不同方面的成本浪费。为解决上述情况,研究高效坐标转换方法、实现坐标转换结果统一性在工程方面就显得尤为重要。因此本文基于 Python 与 Matlab 语言优势点,以坐标转换为例,寻求最佳方法以解决坐标转换问题,为生产生活中出现的问题提供参考。1研究概况与研究数据1.1 研究内容Python 与 Matlab 语言在测绘程序设计中的对比研究张更新,鄢继选,张海英,范玉洁,谢格桑加,李斌(甘肃农业大学 水利水电工程学院,甘肃 兰州,730070)摘要:测绘科学近年伴随着“3S”技术设备的快速发展衍生,不断与前沿科技相接轨。文章以不同坐标系统之间的坐标数据转换为研究内容,利用伪代码并结合布尔莎七参数模型经程序设计。针对两种语言对于测绘数据处理的不同能力和各自的优缺点,将其进行对比与优化。其结果表明:(1)对于大量的矢量数据,Matlab 相较于没有自带数据处理模块的 Python 而言,运算能力与稳定性更强。(2)前者数据转换的精度与算法、代码编辑息息相关。反观Python 对第三方库有较强依赖性,处理结果精度可能因此而异。(3)对于数据文件操作,Python 语言具有明显优势。可通过代码直接针对不同格式文件进行操作,极大的提升了操作工作效率。(4)良好的第三方软件兼容性,使Python 语言具有很强的灵活性。结合其丰富的第三方模块库,更适合用于脚本开发及程序设计。关键词:Python;Matlab;程序设计;测绘应用;对比研究中图分类号:TP311.52文献标识码:AA Comparative Study of Python and Matlab Languages in Mapping ProgrammingLearningZHANG Geng-xin,YAN Ji-xuan,ZHANG Hai-ying,FAN Yu-jie,XIE Ge-sang-jia,LI Bin(College of Water Conservancy and hydropower engineering,Gansu Agricultural University,Lanzhou 730070,China)Abstract:In recent years,with the rapid development of 3S technology and equipment,surveying and mapping science has been continuously in line with cutting-edge technology.This paper uses coordinate data between different coordinate systems to be converted into research content,using pseudocode and combined with the Boursa seven-parameter model.Compare and optimize the two languages for their different capabilities and advantages and disadvantages in mapping data processing.The results show that:(1)For a large number of vector data,Matlab has greater computing power and stability than Python without its own data processing module.(2)The accuracy of the data conversion of the former is closely related to the algorithm and code editing.In contrast,Python has a strong dependence on third-party libraries,and the accuracy of the processing results may vary.(3)For data file operations,the Python language has obvious advantages.You can directly operate on different format files through code,which greatly improves the operation efficiency.(4)Good Combined with its rich library of third-party modules,it is more suitable for script development and programming.Key words:Python;Matlab;Programming;Surveying and mapping applications;Comparative studies.DOI:10.19414/ki.1005-1228.2023.04.004电脑与信息技术 2023 年 8 月104坐标系统的转换是工程测量制图的重难点。要将原测区所有点坐标转换到新的坐标系统中,一直是较为复杂的问题。而本文主要从坐标转换的精度入手,结合坐标转换含义与内容,结合模型选用、参数解算等问题加以研究和讨论。利用 Python 和 Matlab 语言进行设计,以便实现在测量实践和理论中出现的各类不同坐标之间的相互转换计算。1.2研究方法我国常用的坐标系可分为国家坐标系统与地方独立坐标系统。在诸多测量工程中,所得坐标系统需要提供当地地方坐标系的坐标。其坐标的表达形式有空间直角坐标、大地坐标和平面直角坐标三种形式。通常情况下,原坐标系往往与所需坐标系不符,因此需要进行坐标转换,包括高斯正反算、大地坐标与空间直角坐标转换等内容。从精度上讲:相对而言样点需求很少,拥有较高精度的参数法被广泛使用。参数法转换模型一般为:布尔莎模型、莫洛金斯基模型、平面四参数模型等。最常用的是布尔莎模型。1.3研究数据(1)坐标数据:研究实际航测处理所得坐标点2500 个,为避免偶然误差与人为因素干扰,故采用系统抽样法并设置样本周期 T=5,将所选取的样本点进行重新编号,最终系统抽样选取 500 个坐标点。所得研究样本数据见表 1:(2)椭球参数:本文以西安 1980 年坐标系统与国家2000年大地坐标系统为研究基准进行对比研究。其所需的地球椭球具体参数信息见表 2。表 2西安 80 与国家 2000 大地坐标系椭球参数地球椭球椭球参数1975 年国际椭球体2000 中国大地椭球体长半轴6378140.00006378137.0000短半轴6356755.28816356752.3141扁率1/298.2571/298.257222第一偏心率0.0066943850.00669438对应坐标系西安 1980 年坐标系 国家 2000 大地坐标系2研究方法与精度评定2.1算法步骤与伪代码转换中平面坐标使用布尔莎模型法,高程则采用插值拟合法。基本操作步骤如下:导入公共点地理属性数据。通过布尔莎模型(或其他模型)进行计算。求得坐标系之间的平移参数、旋转参数和比例因子。建立高程插值模型。对数据进行批量转换。为减少语言对程序设计的形式限制与关键部分的理解。降低不同编程语言之间的程序设计差异,本文采用伪代码的形式来确定具体算法与程序设计思路。(1)大地坐标转换空间直角坐标,高斯正算涉及的转换主要伪代码公式为:LBHNXcoscos)(+=(1)LBHNYsincos)(+=(2)BHbaNBHeNZsin*sin)1(222+=+=(3)上式 e 为第一偏心率;b 为短半轴;a 为参考椭球长半轴;N 为卯酉圈半径值。(2)空间直角坐标转换成大地坐标,高斯反算所涉及的主要伪代码公式为:)/arctan(XYL=(4))1(sin/2eNBZH=(5)利用上式进行转换时,需采用迭代的进行计算。具体计算时,可先根据式(6)求纬度 B 的初值。后利用所得值代入公式求 H,N 的初值,再利用所求初值代入公式中再次求出B值。如此反复直至求出的B,H,N 收敛即可。)/arctan(22YXZB+=(6)2.2转换精度评定标准为检验结果正确性与精度,常用坐标残差、点位中误差作为检验标准来衡量其准确性。依据其坐标分表 1系统抽样所得数据样本点号测量坐标(2000 国家大地坐标系)转换坐标(西安 1980 坐标系)XYXYD0012858.174296112.08002749.270196100.4766D0022852.697396303.45402743.793296291.8498D0032356.933396296.12502248.031396284.5209D0042024.616096554.88801915.715396543.2828D4982569.129696179.88702460.226796168.2833D4992876.840696009.23002767.936695997.6271D5002441.467896452.93702332.565496441.3322第 31 卷 第 4 期105张更新等,Python 与 Matlab 语言在测绘程序设计中的对比研究量残差,作为精度比对的重要方法。具体使用公式如下:X 坐标残差中误差:)1/()(2=nMxX(7)Y 坐标残差中误差:)1/()(2=nMyY(8)坐标点点位中误差:22YXMMM+=(9)3对比分析(1)坐标转换残差统计分析:转换处理后数据与标准数据进行对比计算。得到有关坐标残差频数经正态分布统计(mm)如图 1 所示:图 1有关坐标残差频数经正态分布统计经分析可知:实验组坐标转换数据频数统计均满足正态分布,符合误差规律。且 Python 转换组残差数据分布较为分散,频数单峰值集中于 0 处。其余频数集中于 10mm 以内,转换残差均值为 11.34mm小于 20mm 转换限差。对于 X 坐标与 Y 坐标而言转换坐标标准差分别为 0.016、-0.084 其证明转换稳定性具有一定保证。对于 Matlab 转换组其残差统计频数大部分集中于 8mm 区间内,坐标转换残差均值为 9.30mm。分别对于 X 坐标与 Y 坐标而言,总体转换标准差为分别为-0.024 与 0.056。频数分布呈现双峰值分布,在-5,2 区间内达到峰值。5应用与拓展性讨论由本实验坐标残差数据分析可知,由于 Python语言自身不具备数据运算模块。故转换残差均值11.34mm9.30mm,证明其实验组转换结果总体稳定性相对较弱,且部分残差数据超出 3 范围,存在转换超限、频数分布较为分散等问题。相较而言,数据运算更为稳定的 Matlab 转换标准差绝对值 0.08 也小于 Python 转换标准差