经纬度转UTM后坐标不一致问题调查

  • 背景介绍
    工作中需要处理经纬度数据,需要进行缓冲区计算等操作.想将经纬度转换到utm下,使用距离单位制作缓冲区方便且准确,处理完数据后,再将utm坐标转换回经纬度.
  • 问题描述
    将经纬度的图幅框mesh_wgs,转换为utm对应的图幅框mesh_utm时,在qgis查看发现不能重合,即坐标在转换前后发生偏移了,误差在10m+,如下图
    error_utm_wgs84_left_up
  • 坐标转换代码如下(有问题的)
'''
错误示例
'''
utm_minxy = geoCalcSet.coord_crs_transform([minX,minY], 4326, geomFunction.calcUtmSrid(minX))
utm_maxxy = geoCalcSet.coord_crs_transform([maxX,maxY], 4326, geomFunction.calcUtmSrid(maxX))
utm_minx = utm_minxy[0][0]
utm_miny = utm_minxy[0][1]
utm_maxx = utm_maxxy[0][0]
utm_maxy = utm_maxxy[0][1]
utm_edge_a = [(utm_minx, utm_miny), (utm_minx, utm_maxy)]
utm_edge_b = [(utm_minx, utm_maxy), (utm_maxx, utm_maxy)]
utm_edge_c = [(utm_maxx, utm_maxy), (utm_maxx, utm_miny)]
utm_edge_d = [(utm_maxx, utm_miny), (utm_minx, utm_miny)]
  • 调查过程
    对比图幅框的左下角和右上角(即[utm_minx,utm_miny]和[utm_maxx,utm_maxy]),UTM坐标能和原经纬度下的图幅框对应位置重合,误差在毫米左右.这两个点的坐标为使用投影转换得到的,而左上角和右下角的utm坐标为使用上面两个坐标推导出来的,即直接使用utm_minx和utm_maxy组合出左上角utm坐标.
    考虑到坐标转换时,需要考虑球面参数,相对平面直角坐标,存在形变等情况,故采取对左上角和右下角都进行坐标转换操作,得到投影变换后的utm坐标
  • 效果对比
    叠加后的效果如下图所示,转换得到的坐标是符合预期的ok_utm_wgs_left_up
  • 坐标正确转换的代码
utm_minxminy = geoCalcSet.coord_crs_transform([minX,minY], 4326, geomFunction.calcUtmSrid(minX))
utm_maxxmaxy = geoCalcSet.coord_crs_transform([maxX,maxY], 4326, geomFunction.calcUtmSrid(maxX))
utm_minxmaxy = geoCalcSet.coord_crs_transform([minX,maxY], 4326, geomFunction.calcUtmSrid(minX))
utm_maxxminy = geoCalcSet.coord_crs_transform([maxX,minY], 4326, geomFunction.calcUtmSrid(maxX))
utm_edge_a = [utm_minxminy, utm_minxmaxy]
utm_edge_b = [utm_minxmaxy, utm_maxxmaxy]
utm_edge_c = [utm_maxxmaxy, utm_maxxminy]
utm_edge_d = [utm_maxxminy, utm_minxminy]
  • 总结
    坐标投影转换在gis数据处理中十分常见,在转换时要考虑到球面与平面的区别,不能简单的进行算术计算.除了本文中遇到的问题,在进行距离计算等操作时,也需要注意球面与平面的区别.
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

young_always

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值