美赛建模需要使用到平面坐标系去做基于时间序列的运动范围模型,所以需要对经纬度进行坐标系转换,转换到XY坐标系下。同时,在机器人的路径规划等方面依然会经常使用到坐标系的转换,所以记录一下。

文章目录

  • 经纬度坐标系和平面投影坐标系
    • 地理坐标系 / 大地坐标系
    • 平面投影坐标系
  • 墨卡托投影法
    • 变量和常量定义
    • (1)墨卡托投影正解算公式
    • (2)墨卡托投影逆解算公式
  • Python代码实现
    • (1)墨卡托投影正解算公式
    • (2)墨卡托投影逆解算公式

经纬度坐标系和平面投影坐标系

地理坐标系 / 大地坐标系

用经纬度表示的是地理坐标系,也称大地坐标系。

  • 大地测量中以参考椭球面为基准面的坐标。地面点P的位置用大地经度L、大地纬度B和大地高H表示。 当点在参考椭球面上时,仅用大地经度和大地纬度表示。大地经度是通过该点的大地子午面与起始大地子午面之间的夹角,大地纬度是通过该点的法线与赤道面的夹角,大地高是地面点沿法线到参考椭球面的距离。

平面投影坐标系

人们比较习惯于使用平面坐标系,平面坐标系用xy表示。

  • 把球体表面的坐标转成平面坐标需要一定的手段,这个手段称为投影。投影是XYZ平面内的。有时候用地理坐标系不够方便,投影方法也不是唯一的,还是为了一个目的,务求使当地的坐标最准确。所以目前就存在了好多投影方法,比如高斯投影、墨卡托投影等。

大地坐标、地理坐标均是球面的,投影坐标是平面的。

墨卡托投影法

若点(B,L)经过墨卡托投影(下图)得到的新坐标为点(X,Y)
其中B0为标准纬度,L0为标准经度,e 为第一偏心率,e ’为第二偏心率,根据墨卡托投影方法我们可以实现坐标系的相互转化。

变量和常量定义

椭圆的长半轴a, 椭圆的短半轴b

(1)墨卡托投影正解算公式

经纬度坐标(B,L)计算得到平面投影坐标(X,Y)

(2)墨卡托投影逆解算公式

平面投影坐标(X,Y)计算得到经纬度坐标(B,L)。可以用牛顿迭代的方法进行解算,即已知q求B,方法如下:

Python代码实现

(1)墨卡托投影正解算公式

代码还有小问题,需要各位同学帮忙指正。

from math import *def get_coordinate(latitude,longitude):B = latitudeL = longitudeq = log( tan(pi/4 + B/2)*(1-exp(1)*sin(B)) / (1+exp(1)*sin(B))**exp(1/2) )x = K*qy = K*(L-L0)return (x, y)if __name__ == '__main__':latitude = 34longitude = -167a = 6378137.0000 # 单位为mb = 6356752.3142B0 = 0; L0 = 0;e1 = sqrt(pow(a,2) - pow(b,2)) / ae2 = sqrt(pow(a,2) - pow(b,2)) / bK = a* cos(B0) / sqrt(1-pow(exp(2), 2)*pow(sin(B0), 2))data = get_coordinate(latitude,longitude)print(data)

运行示例:

(2)墨卡托投影逆解算公式

公式已有,可以自行复现。

参考论文:

  • [1]胡正,杨青,卜晓楠,张波,江伟健,宋祥瑞.TDOA定位中经纬度与平面坐标转换方案的研究[J].电子世界,2019(03):36-37.

python——经纬度坐标和平面投影坐标的相互转换相关推荐

  1. 平面投影坐标转经纬度坐标

    平面投影坐标转经纬度坐标 本人在进行开发时,使用geotools的GeoTiffReader类读取卫星影像的顶点坐标,得到的是平面坐标,单位是米,打开arcGIS,加载影像,右下角会有坐标,在视图-& ...

  2. 地理坐标(经纬度)转换成投影坐标(XY坐标)

    前言:限于需求,项目中所有涉及到经纬度的字段都要转换成XY坐标,面向度娘之后发现都没有可用的,琢磨了之后在以为大佬博客中发现了宝藏 使用工具:Proj4 Proj4是一个JavaScript类库,其主 ...

  3. 学习笔记——【python】GetGeoTransform()使用,gdal截取图像,使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换

    1. GetGeoTransform()使用.gdal截取图像 GetGeoTransform() GeoTransform[0],左上角横坐标(应该是投影坐标) GeoTransform[2],行旋 ...

  4. 图像坐标、地理坐标和投影坐标的相互转化(Python版)

    本博客系转载~ from osgeo import gdal from osgeo import osr import numpy as npdef getSRSPair(dataset):'''获得 ...

  5. 如何判断投影坐标是 3 度带还是 6 度带?如何计算中央子午线经度?

    在做坐标转换时通常会涉及到:3 度带.6 度带.中央子午线经度的计算,下面使用两种方法对其进行展开计算: 1.什么是3°带? 三度带就是地球的一周(360度)按照经度方向三度一个划分为120份: 2. ...

  6. supermap iobjects 组件设置坐标,投影坐标之间的转换

    组件 :supermap iobjects java 功能使用: 1.设置地理坐标 2.投影坐标转投影坐标 3.地理坐标转投影坐标 4.投影坐标转地理坐标 注:注释的根据需要使用 public Res ...

  7. python dataset[trans_科学网—Python GDAL 图像坐标,投影坐标,经纬度坐标 三者映射及运行错误解决 - 吴妍潼的博文...

    题记: 写该博客是因为自己经常遇到这个问题,而我发现网络上关于这方面浏览量高的一些代码竟然都有误,每次照搬都被虐得很惨.有一些同志在某些博客下方留言说代码有问题,而博主没有回应,也没有更改错误.为了自 ...

  8. python运行报错无法映射_科学网-Python GDAL 图像坐标,投影坐标,经纬度坐标 三者映射及运行错误解决-吴妍潼的博文...

    题记: 写该博客是因为自己经常遇到这个问题,而我发现网络上关于这方面浏览量高的一些代码竟然都有误,每次照搬都被虐得很惨.有一些同志在某些博客下方留言说代码有问题,而博主没有回应,也没有更改错误.为了自 ...

  9. (Python)卫星RPC有理多项式模型读取与正反投影坐标计算原理与实现

    (Python)卫星RPC有理多项式模型读取与正反投影坐标计算原理与实现 文章目录 (Python)卫星RPC有理多项式模型读取与正反投影坐标计算原理与实现 摘要 RPC几何定位模型介绍 RPC模型库 ...

最新文章

  1. 最近火爆全网!这个 Python 项目很骚气!
  2. 关于Jboss/Tomcat/Jetty的JNDI定义123
  3. Smart Business design time = CDS view + SADL
  4. 小猴吃桃matlab,看图写话:小猴吃桃精彩选篇
  5. eclipse配置glassfish、将一个WEB项目部署到glassfigh
  6. 京东程序员回应“被猝死”;淘宝特价版已提交微信小程序;苹果 M1 单核性能勇超 Intel 11 代 i7|极客头条...
  7. Spark1.5.1学习笔记汇总
  8. JavaScript 设计模式之代理模式
  9. JSTL Tutorial with Examples – JSTL Core Tags
  10. Web SQL Database
  11. SolidWorks2020绘制电脑折叠支架
  12. libmodbus协议栈4—— 总结
  13. 2019年机器学习/ 深度学习热门论文集锦
  14. 关于builder模式的使用
  15. 中国联通cdma 1x和中国移动gprs数据业务比较
  16. 鸿雁:我俸你为神明你却偏偏容不下我
  17. iOS 一个错误 Unable to find a specification for
  18. 条形码录入测试软件,条形码产品信息如何录入
  19. 计算机系专用表情包,计算机学起来挺有意思的表情包 - 计算机学起来挺有意思的微信表情包 - 计算机学起来挺有意思的QQ表情包 - 发表情 fabiaoqing.com...
  20. MC9S12XS128 PIM配置

热门文章

  1. Python中语音播报的应用(简单版)
  2. 详解HashMap的put方法
  3. fastapi 大型应用_FastAPI使用小结
  4. currency translation BW 货币转换
  5. au如何关闭预览编辑器_Garageband怎么打开关闭音频编辑器 操作方法介绍
  6. 考研线性代数:矩阵的合同关系,合同对角化以及一些坑
  7. Carbon教程之 基本语法入门大全 (教程)
  8. 上市速度赶超蚂蚁集团跟京东数科,陆金所上市后却“水土不服“?
  9. pta求一元二次方程的根
  10. 全国首例 | 国产ECMO在阜外医院成功救治一名患者