0 相关名词

在开始之前,有必要了解一下相关名词:

  1. 地心地固坐标系(Earth-Centered, Earth-Fixed,ECEF),简称地心坐标系。
  2. 地理坐标系统(Geographic Coordinate System,GCS)1,坐标系是地心坐标系,用经纬度表示球面上的点。
  3. 世界大地测量系统(World Geodetic System, WGS),比如WGS84,是一种地理坐标系统,用于全球定位系统(GPS)。
  4. 投影坐标系统(Projection Coordinate System,PCS)2
  5. 通用横轴墨卡托投影(Universal Transverse Mercator,UTM),是一种投影方法。

关于地理坐标系和投影坐标系更详细的解释可以查看这篇文章:你必须知道的地理坐标系和投影坐标系

地理坐标系统有不同的基准和方法,比如:Xian_1980,Beijing_1954,WGS_1984等。投影坐标系统也有不同的基准和方法,UTM和UPS等。每一个地理坐标系统(GCS)和投影坐标系统(PCS)都有一个独特的EPSG代码,代码可在 EPSG 网站查询。

有一篇介绍Pyproj进行地理投影坐标系转换的文章3,但不够全面。其中提到arcgis网站上查询 地理坐标系 和 投影坐标系 的方法很实用但不全。

1 地理和投影坐标系统相互转换

整理使用Python的第三方库 Pypro4 转换经纬度表示的地理坐标系统到投影坐标系统。

Pypro模块共有两个函数:

函数 描述
test() 运行模块测试
transform(p1, p2, x, y, z=None, radians=False) 用法:x2, y2, z2 = transform(p1, p2, x1, y1, z1, radians=False),将在坐标系统p1下的点(x1, y1, z1)转换到p2坐标系统下

1.1 使用EPSG Code转换

转换经纬度到的投影坐标系统;转换一个投影坐标系统到另一个投影坐标系统;反向转换,把投影坐标系统上的点转换到地理坐标系统:

>>> p1 = pyproj.Proj(init='epsg:26915') # 一个投影坐标系统EPSG Code
>>> p2 = pyproj.Proj(init='epsg:26715') # 另一个投影坐标系统EPSG Code
>>> x1, y1 = p1(-92.199881,38.56694) # 投影到EPSG Code为26915的投影坐标系统
>>>> '%9.3f %11.3f' % (x1,y1)
'569704.566 4269024.671'
>>> x2, y2 = pyproj.transform(p1,p2,x1,y1) # 转换一个投影坐标系统到另一个投影坐标系统
>>> '%9.3f %11.3f' % (x2,y2)
'569722.342 4268814.027'
>>> '%8.3f %5.3f' % p2(x2,y2,inverse=True) # 反向转换
' -92.200 38.567'

用元组传入多个点

>>> lats = (38.83,39.32,38.75) # 所有纬度组成的元组
>>> lons = (-92.22,-94.72,-90.37) # 所有精度组成的元组
>>> x1, y1 = p1(lons,lats) # 转换经纬度到投影坐标系统
>>> x2, y2 = pyproj.transform(p1,p2,x1,y1) # 转换一个投影坐标系统到另一个投影坐标系统
>>> lons, lats = p2(x2,y2,inverse=True) # 反向转换

1.2 使用基准名称转换

除了使用EPSG Code之外,还可以显示指定坐标系统名称

>>> p1 = pyproj.Proj(proj='latlong',datum='WGS84') # WGS84,GPS使用的地理坐标系统,EPSG Code为4326
>>> x1 = -111.5; y1 = 45.25919444444
>>> p2 = pyproj.Proj(proj="utm",zone=10,datum='NAD27') # 投影坐标系统NAD27 / UTM zone 10N,EPSG Code为26710
>>> x2, y2 = pyproj.transform(p1, p2, x1, y1)
>>> "%s  %s" % (str(x2)[:9],str(y2)[:9])
'1402285.9  5076292.4'

2 其他

如果需要计算地球上两点的距离,可以使用大圆距离来计算,不能使用投影坐标系中的两点计算距离


  1. https://en.wikipedia.org/wiki/Geographic_coordinate_system ↩︎

  2. https://en.wikipedia.org/wiki/Geographic_coordinate_system#Map_projection ↩︎

  3. https://blog.csdn.net/sinat_28797501/article/details/75635439 ↩︎

  4. https://jswhit.github.io/pyproj/ ↩︎

Python地理坐标系和投影坐标系转换相关推荐

  1. Google Earth Engine谷歌地球引擎GEE地理坐标系与投影坐标系变换与重投影

      本文主要对GEE中地理坐标系与投影坐标系转换.重投影等操作加以介绍.本文是谷歌地球引擎(Google Earth Engine,GEE)系列教学文章的第十三篇,更多GEE文章请参考专栏:GEE学习 ...

  2. 利用Pyproj进行地理投影坐标系转换

    利用Pyproj进行坐标转换 作者:郜庆科 两个坐标系统的参考椭球不同,实地一个点的不同坐标系的值是不同的,不同的部门采用的坐标系统经常是不一致,所以要转换后才能相互利用.例如目前使用的北京市观测站点 ...

  3. 地理坐标系与投影坐标系区别与联系

    地理坐标系与投影坐标系区别 空间参考中主要包含大地水准面.地球椭球体.投影坐标系等几部分内容.地图投影就是把地球表面的任意点,利用一定数学法则,转换到地图平面上的理论和方法,一般有两种坐标系来进行表示 ...

  4. 大地坐标系、地理坐标系、投影坐标系

    大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系.地面点的位置用大地经度.大地纬度和大地高度表示.大地坐标系的确立包括选择一个椭球.对椭球进行定位和确定大地起算数据.一个形状.大小和定位.定 ...

  5. Arcgis 地理坐标系转投影坐标系(WGS84转CGCS2000)

    因为工作需要,将GCS_WGS_1984地理坐标系的DEM转为CGCS2000_GK_CM_105E投影坐标系,中间碰了很多坑,利用arcgis"数据管理工具"-"投影和 ...

  6. 地理坐标系和投影坐标系

    地理坐标系和投影坐标系讲解收藏 cr.龙之吻number7 (一)两种坐标系 坐标系(Coordinate System)的概念为:"In geometry, a coordinate sy ...

  7. 天球坐标系、地球坐标系、地理坐标系、投影坐标系...一次搞清

    写在前面:在GIS与GPS学习中,必须要面对的就是各种坐标系,常常被各种坐标系搞得晕头转向.虽然百度上都有相应的解释说明,但它们之间的分类关系常常令人困惑,为此梳理了一个简单的思维导图,彻底搞清楚来! ...

  8. 地理坐标系与投影坐标系辨析

    原文出处:EPSG 3857 vs EPSG 4326 EPSG 4326 vs EPSG 3857(投影.基准面.坐标系统-) 原作者:Lyzi Diamond | May 26, 2017 基于地 ...

  9. ArcGIS中的地理坐标系与投影坐标系

    ArcGIS中的地理坐标系与投影坐标系 一.ArcGIS中的地理坐标系与投影坐标系及地图投影 1.基本概念 地理坐标系(Geographic Coordinate System),是使用三维球面来定义 ...

最新文章

  1. tightvnc viewer 传文件_TightVNC中文版下载_TightVNC viewer(远程控制软件)简体中文版下载【32位|64位】-华军软件园...
  2. python自学步骤-零基础学Python应该学习哪些入门知识及学习步骤安排
  3. 直播预告丨B2B 企业如何高效获客增长?
  4. 关于.net的.dll.refresh文件
  5. matlab 实现 stacked Autoencoder 解决图像分类问题
  6. python2协程_python中的协程(二)
  7. python一次性输入多个数_python如何利用input函数输入多个参数?
  8. 一文了解linux内核,一文了解Linux的系统结构
  9. js递归性能影响及解决方案
  10. 开机登录时取消Ctrl+Alt+Delete
  11. mysql jdbc配置重连_Spring Boot 配置MySQL数据库重连的操作方法
  12. redis九大数据类型数据结构及底层源码
  13. 机器学习十大算法(一)
  14. 从巴菲特身上学习到的投资哲学
  15. FreeType字体程序库介绍(转)
  16. 万年历黄历星座查询v3.6.9引流吸粉 实用工具 流量变现小程序
  17. postgresql的下载与安装
  18. 微信h5支付 php sdk_TP5专用微信支付SDK使用简介
  19. win10文件同步到服务器失败,手把手为你解决win10系统同步时间同步失败的思路...
  20. IOS苹果ipa重签名工具(苹果签名工具,ios签名工具,支持Windows系统和Macos系统)

热门文章

  1. 速达数据库服务器密码修改,如何创建SQL数据库登录用户及密码? 找昆明速达软件...
  2. MFC设置背景图片之三(使用GDI+)
  3. JPG文件编解码详解——详细介绍编码和解码JPG
  4. 警告:Xcode Warning: “no rule to process file
  5. Stata:用-mapch-命令绘制“事件链”
  6. Photoshop学习(二十二):创建木板纹理及凸起
  7. Mac上为VS Code配置Python运行环境及matplotlib画图示例
  8. 阿里云ET工业大脑助力智能制造转型
  9. 在模型训练前为什么要把数据打包为.npy文件,和普通文件格式有什么区别?
  10. 17万字 JUC 看这一篇就够了(三) (精华)