经纬度坐标是一种地理坐标系,记录的经纬度信息,经度范围是(W)-180~180(E),南半球纬度0~90°S 北半球纬度0~90°N。

UTM分带及计算方法,3°分带(高斯克吕格)和6°分带(UTM)

带号计算公式如下:

Zone = int[(Lon - 1.5)/3] + 1  3°分带

Zone = floor(Lon/6)+31   6°分带

中央经线计算公式如下:

L0 = Zone*3  3°分带

L0 = (6*Zone - 3) - 180   6°分带

更多情况可以参考:UTM投影与高斯克吕格投影中分带带号与中央经线经度的计算关系

方法一:直接使用数学方法计算

参考:直接代码搬运进行修改

GPS经纬度坐标和UTM坐标的相互转换

修改代码如下:

from math import cos, sin, tan, sqrt
import mathlongitude, latitude=113.4,32.5def LonLat2UTM(longitude, latitude):lat = latitudelon = longitudekD2R = math.pi / 180.0ZoneNumber = math.floor(lon / 6.0) + 31print("ZoneNumber",ZoneNumber)L0 = (ZoneNumber-31) * 6+3# L0 = (ZoneNumber-31)*6+6  #中央经线计算print("中央经线",L0)a = 6378137.0F = 298.257223563f = 1 / Fb = a * (1 - f)ee = (a * a - b * b) / (a * a)e2 = (a * a - b * b) / (b * b)n = (a - b) / (a + b)n2 = (n * n)n3 = (n2 * n)n4 = (n2 * n2)n5 = (n4 * n)al = (a + b) * (1 + n2 / 4 + n4 / 64) / 2.0bt = -3 * n / 2 + 9 * n3 / 16 - 3 * n5 / 32.0gm = 15 * n2 / 16 - 15 * n4 / 32dt = -35 * n3 / 48 + 105 * n5 / 256ep = 315 * n4 / 512B = lat * kD2RL = lon * kD2RL0 = L0 * kD2Rl = L - L0cl = (cos(B) * l)cl2 = (cl * cl)cl3 = (cl2 * cl)cl4 = (cl2 * cl2)cl5 = (cl4 * cl)cl6 = (cl5 * cl)cl7 = (cl6 * cl)cl8 = (cl4 * cl4)lB = al * (B + bt * sin(2 * B) + gm * sin(4 * B) + dt * sin(6 * B) + ep * sin(8 * B))t = tan(B)t2 = (t * t)t4 = (t2 * t2)t6 = (t4 * t2)Nn = a / sqrt(1 - ee * sin(B) * sin(B))yt = e2 * cos(B) * cos(B)N = lBN = N + t * Nn * cl2 / 2N = N + t * Nn * cl4 * (5 - t2 + 9 * yt + 4 * yt * yt) / 24N = N + t * Nn * cl6 * (61 - 58 * t2 + t4 + 270 * yt - 330 * t2 * yt) / 720N = N + t * Nn * cl8 * (1385 - 3111 * t2 + 543 * t4 - t6) / 40320E = Nn * clE = E + Nn * cl3 * (1 - t2 + yt) / 6E = E + Nn * cl5 * (5 - 18 * t2 + t4 + 14 * yt - 58 * t2 * yt) / 120E = E + Nn * cl7 * (61 - 479 * t2 + 179 * t4 - t6) / 5040E = E+500000  #东偏移距离 默认500000N = 0.9996 * N# E = 0.9996 * EE = 0.9996 * (E - 500000.0) + 500000UTME=EUTMN=Nreturn UTME,UTMNprint("输入经纬度是:",longitude," ",latitude)
print("输出经纬度是:",LonLat2UTM(longitude, latitude))

输出结果:

输入经纬度是: 113.4   32.5
ZoneNumber 49
中央经线 111
输出经纬度是: (725482.0885903714, 3598397.4113411955)

方法二:使用现有python库计算

使用python库Proj库计算

代码如下:

from pyproj import Proj
# 首先定义要转换的投影坐标系
# p1 = Proj('+proj=utm +zone=38 +datum=WGS84 +units=m +no_defs')
p1 = Proj(proj='utm',zone=49,ellps='WGS84', preserve_units='m')
lon1,lat1 = p1(113.4,32.5)  # 将地理坐标转换为投影坐标,地理坐标为WGS84下的坐标
print(lon1,lat1)

输出结果:

725482.0885891931 3598397.411341262

以上两种方法计算得到的结果相同,上面都是采用6°分带计算的坐标,而且false Easting均为-500000.我们将以上结果和ARCGIS中的点进行比较验证。

如果是需要将投影坐标系转换为地理坐标系,可以增加​​​​​​​inverse=True来实现。比如:

lon1,lat1 = p1(x0,y0,inverse=True)

其中x0,y0是投影坐标

坐标点转换验证分析

ARCGIS中的坐标结果显示

首先将ARCGIS中的View菜单中Data Frame Properties窗口中的的坐标系统改为UTM进行显示,参数如下:

或者:

显示坐标为:(725,482.0886 m m,3,598,397.4113  m)

总结

通过以上两种方法计算得到的结果和ARCGIS中的结果是一致的。

补充:Albers投影和地理坐标系之间的转换

# Albers等积投影在中国没有已经定义好的,需要自己定义
proj1 = Proj('+proj=aea +lat_1=25 +lat_2=47 +lon_0=105 +datum=WGS84')
'''
epsg编号通过epsg官网或者arcmap中查询获得,此为最适合中国的albers投影
'''
lon1,lat1 = proj1(98.9406,38.8399)  # 将地理坐标转换为投影坐标,地理坐标为WGS84下的坐标
print(lon1,lat1)
lon2,lat2 = proj1(-516480.0192,4184573.034,inverse=True)  # 将投影坐标转换为地理坐标
print(lon2,lat2)

python 经纬度坐标转换为UTM坐标方法与结果验证分析相关推荐

  1. 经纬度坐标系转换为UTM坐标系(matlab)

    如题所说,直接上程序.验证自己做一下,结果应该是对的.诚不我欺. (注意:程序名与函数名保持一致!!!) function[shuchu]=lat_lon2utm(lat_shuru,lon_shur ...

  2. 经纬度坐标转换为工程坐标

    1. 绪论 在施工和工程测量时,经常需要将GPS坐标转换为工程中所使用的坐标.在Bing上检索到的类似问题,基本描述为两个坐标系的转换,但实际上并非如此. 本文将详细解释转换过程和转换方法. 1.1 ...

  3. 百度地图坐标转换为墨卡托坐标

    百度地图坐标转换为墨卡托坐标 转换思路 百度坐标系 (BD-09)首先转换为火星坐标系 (GCJ-02) ,根据gci坐标的经纬度再转成墨卡托坐标: 功能代码 /** * * 火星坐标系 (GCJ-0 ...

  4. python离线语音转文本_使用Python将语音转换为文本的方法

    使用Python将语音转换为文本的方法,语音,转换为,文本,您的,麦克风 使用Python将语音转换为文本的方法 易采站长站,站长之家为您整理了使用Python将语音转换为文本的方法的相关内容. 语音 ...

  5. GPS坐标转UTM坐标

    文章目录 1 代码 2 参考 1 代码 直接调用就好 /* Taken from utexas-art-ros-pkg:art_vehicle/applanix *//** Conversions b ...

  6. 经纬度转换为UTM坐标

    概念 : UTM(通用横向墨卡托投影): 是一种以米为单位的坐标系统,用于地图和GPS导航.将地球划分为60个纵向的区域.每个区域宽6度,从赤道开始往南北两级方向划分.每个区域都有一个特定的字母. 转 ...

  7. Python使用proj将GPS经纬度数据转换为utm坐标系(真实的地理位置坐标系,以米为单位),然后可以进行轨迹显示

    1. 代码如下 from pyproj import Transformer import pyproj import json from matplotlib.pyplot import *if _ ...

  8. 百度地图API gps坐标转换为百度坐标

    百度地图API官网示例 我写的例子,基于react 实现的功能: 根据点画折线 在点位置插入自定义图标 点击图标的时候显示一张图片 传递的gps坐标需要转换成百度坐标 因为坐标转换一次转换不能超过10 ...

  9. gps坐标转换为高德坐标

    问题:后端给的gps,前端用高德地图渲染,绘制出来的轨迹有偏移,没有在道路上 1.坐标系转换方法一 地址:https://blog.csdn.net/weixin_34049948/article/d ...

  10. python字符串转换成整数_在Python中将字符串转换为整数的方法

    在本文中,我们将向你展示如何将Python字符串转换为整数,可在Linux操作平台上进行.Python中的所有数据类型(包括整数和字符串)都是对象,通常在编写Python代码时,你需要将一种数据类型转 ...

最新文章

  1. 操作系统常用词典(二)
  2. phpcms v9整合Ueditor
  3. java 普通项目转web项目
  4. JavaScript基础三
  5. [Swift]LeetCode289. 生命游戏 | Game of Life
  6. 数据库事务的特性(ACID)
  7. java代码输出我喜欢你_程序员七夕如何表白:朕只爱一个皇后!(单例模式)...
  8. python 趋势线表达式_python添加趋势线
  9. 2016版excel_一招鲜,吃遍天之四:高效办公必备工具——Excel 易用宝
  10. cc9.3 indesign_InDesign CC 2019 14.0.3中文版(ID CC 2019 mac/win)
  11. 开源iTunes替代品– aTunes
  12. iOS打包静态库(完整篇)
  13. 用python将doc文件转换成docx文件
  14. 详谈如何实现手机浏览器跳转微信指定页面加好友及跳转微信公众号一键关注
  15. skimage中的图像直方图均衡化
  16. 单片机按键去抖,极简
  17. 无毛刺时钟切换(glitch free clock switching)
  18. 出版社、作者和图书 出版社类:属性:编号,出版社名称,地址 方法:显示出版社的信息 构造:无参构造方法、有参构造方法 作者类:属性:作者的编号,姓名 方法:显
  19. php的数组、排序、查找
  20. c语言图像压缩编码,基于C语言的图像压缩算法

热门文章

  1. 蓝牙模块:详解蓝牙通信模块的使用
  2. SEO外语网站批量翻译软件
  3. 什么是弱网测试?为什么要进行弱网测试?怎么进行弱网测试?
  4. gsp认证计算机系统检查内容,版GSP认证之附录计算机系统检查项目PPT课件.ppt
  5. 把路由器改成无线网卡
  6. matlab 导出asc文件,将* .asc文件保存为Excel文件
  7. CenterOS安装
  8. android brvah 分组,Android开源框架BRVAH由来篇
  9. 超级搜索术1-信息搜索/资源搜索
  10. Si4438, Si4432, Sx1278, Sx1276, Sx1212无线数传模块简单介绍