Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何利用Python进行地理坐标系统的转换?

如何利用Python进行地理坐标系统的转换?

作者头像
朱卫军 AI Python
发布于 2022-04-03 03:12:41
发布于 2022-04-03 03:12:41
1.7K0
举报

Python大数据分析

记录 分享 成长

作者:师大Giser

专栏地址:

https://zhuanlan.zhihu.com/p/100993681

本文主要讲述地理坐标系统的原理以及怎么利用Python进行地理坐标系统转换,内容包含以下几块:

  1. 什么是地理坐标系统?
  2. 常用的地理坐标系统有哪些?
  3. 常用地图产品分别是什么地理坐标系?
  4. 怎么样利用Python实现地理坐标系的转换?
  5. 如何对转换后的精确度进行验证?

一、什么是地理坐标系统

用一张图来解释什么是地理坐标系统。

上图中红色实线圈为「地球自然表面」,由于地球自然表面坑坑洼洼、凹凸不平,所以在进行精准测量和定位的时候是不能直接用数据公式来拟合地球表面的。

这时,用一个可以近似表示地球表面的规则的椭圆(如上图中的蓝色虚线框所示)来进行地球表面的定位和测量,这个规则的三维球面就是地球椭球体。

但是,地球表面高低起伏不平,造成「地球椭球体」与地球自然表面在有的地方能够十分贴合,在有的地方则不是很贴合,这会造成测量及定位地误差。

所以,需要在地球椭球体以及地球自然表面之间加一层中间层,使其能够尽量贴合真实的地球表面,那这中间层就是「大地基准面」(如图中绿色实线圈所示),其可以理解为在特定区域内与地球自然表面极为吻合的椭球体。

地球上各个地方的地理位置及环境都是独一无二的,为了满足当地测量及定位的精度要求,全世界的地理学家们建立了无数个适合当地的大地基准面。

地理坐标系统就是由大地基准面衍生而来的,其是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。

一个地理坐标系包括角度测量单位、本初子午线和基准面三部分。一个大地基准面可以对应多个地理坐标系统,而一个「地理坐标系统」只能对应一个大地基准面。(这边为了方便理解,没有加入大地水准面的概念)

「同一个坐标点在不同地理坐标系的地图上,会落在不同的区域;同一个地点获取不同地理坐标系下的坐标数据,值不相同。」

因此,在地图制图以及空间分析之前,先要了解坐标点以及地图的地理坐标系统。

二、常用的地理坐标系统有哪些?

常用地图产品的地理坐标系统有:

  1. 地球坐标系(WGS-84)WGS-84是国际通用坐标系,也叫地球坐标系,GPS系统就是采用的WGS-84。WGS-84对于具体地方的位置描述可能不如当地坐标系来的准确,但是它对全球范围内的位置估计更准确。

在中国范围内,一般不直接使用WGS-84,而是使用由国家测绘局在WGS-84基础上加密的火星坐标系(GCJ-02),或者使用企业在GCJ-02上二次加密的坐标系,例如百度坐标系(BD-09)、搜狗坐标系等。

2.北京54坐标系(BJ-54)BJ-54是建国初期提出的地理坐标系,因此在早期有比较广泛的运用,有一定比例的数据使用的是BJ-54。

从现代的眼光看,它并不能十分准确地表达我国国境内的空间位置。

3.西安80坐标系(XIAN-80)XIAN-80由于后期意识到BJ-54的不足,我国1978年4月在西安召开全国天文大地网平差会议,确定重新定位,建立的我国新地理坐标系。它在中国经济建设、国防建设和科学研究中发挥了巨大作用。

4.2000国家大地坐标系(CGCS-2000)CGCS-2000我国当前最新的国家大地坐标系。2018年,我国国土资源系统全面采用CGCS-2000,并要求各类国土资源数据向CGCS-2000进行转换。

5.地方独立坐标系许多城市、矿区基于实用、方便与科学的目的,建立了地方坐标系。

国内地图产品的地理坐标系集中于CGCS-2000、GCJ-02以及一些对GCJ-02加密的商业坐标系,国外地图产品的地理坐标系则基本是WGS-84。

下表罗列了常用地图产品的地理坐标系,供大家参考。

三、利用Python实现地理坐标系统的转换

本节主要介绍怎么利用Python实现常用地理坐标系统之间的转换,并对转换结果进行精度检验。

话不多说,先上Python代码。

设置常量:

经纬度计算功能类:

简单判断坐标点是否在中国范围内:

WGS-84转换为GCJ-02:

GCJ-02转换为WGS-84:

GCJ-02转换为BD-09

GCJ-02转换为BD-09:

WGS-84转换为BD-09:

BD-09转换为WGS-84:

坐标转换功能包使用方法:

输出结果:

5. 如何对转换后的精确度进行验证?

接下来,对上述地理坐标系转换代码的精确度进行验证,具体的验证步骤为:

  1. 在A坐标系的地图产品下拾取5个坐标点;
  2. 利用代码对5个坐标点进行A坐标系到B坐标系的转换;
  3. 在B坐标系地图产品下同样拾取这5个位置的坐标点;
  4. 计算转换后坐标点与真值坐标点的偏移距离,并计算平均偏移距离。

其中,WGS-84坐标系的地图产品是OpenStreetMap,GCJ-02坐标系的地图产品是高德地图,BD-09坐标系的地图产品是百度地图。

以下为选择的5个坐标点。

坐标点1. 北京西路与石门一路交叉口:

坐标点2. 嘉定梅园路与塔城路交叉口:

坐标点3. 白石公路与外青松公路交叉口:

坐标点4. 贤浦路与金大公路交叉口:

坐标点5. 临港达到与环湖西三路交叉口

以下为精确度计算过程表:

通过上表可以得到:

  • WGS-84 => GCJ-02的误差均值是8.9米
  • WGS-84 => BD-09的误差均值是7.6米
  • GCJ-02 => WGS-84的误差均值是8.2米
  • GCJ-02 => BD-09的误差均值是3.9米
  • BD-09 =>WGS-84的误差均值是7.2米
  • BD-09 => GCJ-02的误差均值是3.9米

三个坐标系之间转换公式的误差均值都在10米以下,在能够使用的合理范围之内。由于不同地图产品之间存在一定的差异以及在拾取坐标的时候存在一定的误差,真实的误差均值可能比看到的误差还要再小。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【vue-cesium】在vue上使用cesium开发三维地图(一)
作为一个WebGIS开发,从前端往GIS靠拢,虽说不是纯GIS,但是也了解到一些相关GIS上的东西
玖柒的小窝
2021/11/04
8K0
【vue-cesium】在vue上使用cesium开发三维地图(一)
WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说明与转换
最近好多人问我,坐标系转换真的太难了!GCJ02,BD09,火星坐标,大地坐标,啊啊啊,快要疯了!
陈南GISer
2022/04/04
7K0
WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说明与转换
【GIS - 地理信息系统】WGS 84 坐标系和 GCJ-02 坐标加密偏移 ( 大地坐标系 和 加密坐标系 | WGS 84 坐标体系简介 | GCJ-02 坐标加密偏移 )
大地坐标系(Geodetic Coordinate System)是一种用于 表示地球上位置的坐标系统,考虑了地球的形状和尺寸 ;
韩曙亮
2023/10/11
7.8K0
【GIS - 地理信息系统】WGS 84 坐标系和 GCJ-02 坐标加密偏移 ( 大地坐标系 和 加密坐标系 | WGS 84 坐标体系简介 | GCJ-02 坐标加密偏移 )
GIS坐标系:WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说与转换
在我朝,地理坐标转换有:WGS84转GCJ02、GCJ02转BD009、BD09转GCJ02。
周陆军博客
2023/05/14
2.7K0
GIS数据漫谈(五)— 地理坐标系统
地理坐标系通过角度测量单位(Unit)、本初子午线(PRIMEM)和基准面(DATUM)来进行定义。地理坐标系下的坐标值为经纬度,所以有时也叫经纬度坐标系。CGCS2000,2000国家大地坐标系。我们很多时候直接用WGS84的坐标来代替CGCS2000坐标。因为CGCS2000的定义与WGS84实质一样,采用的参考椭球非常接近。扁率差异引起椭球面上的纬度和高度变化最大达0.1mm。当前测量精度范围内,可以忽略这点差异。
thingjs
2022/07/27
2.2K0
GIS数据漫谈(五)— 地理坐标系统
让GIS三维可视化变得简单-地理坐标系统
地理位置也就是坐标说是 GIS 的灵魂不为过吧,像天气预报、火箭发射包括地震、火山等事故发生时,新闻媒体就会说东经 XX 度、北纬 YY 度发生了什么什么,还有高德百度的地图导航、定位等等都需要用到坐标系统,因为没有准确的位置信息就无法表达地物的位置关系,地图查询分析等等也就无从谈起了
isboyjc
2022/03/28
1.1K0
让GIS三维可视化变得简单-地理坐标系统
【森城市】GIS数据漫谈(四)— 坐标系统
地球表面并不是一个标准的正球体,根据2020年的测量成果,珠穆朗玛峰高程为8848.86m,而地球上最深的海沟——马里亚纳海沟深度为11034 m。两者相差了将近 20 km!由于地球的自然表面凹凸不平,形态复杂,显然不能作为测量的基准面。所以人们开始寻求一种与地球自然表面接近的规则曲面来代替不规则的地球表面。地球表面积中海洋面积约占71%,陆地面积仅占29%。于是利用水准面表示地球的物理表面,简单说就是假设有一个静止的海水面(一个无波浪、无潮汐、无水流、无大气压变化,处于流体平衡状态的静止海平面),向陆地延伸形成的一个封闭曲面来表示地球的物理表面。
thingjs
2022/07/15
7510
【森城市】GIS数据漫谈(四)— 坐标系统
高德百度坐标系转换方法
在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统。大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示地球平面上的某一个位置,这应该是国际共识。但在我国,出于国家安全考虑,国内所有导航电子地图必须使用国家测绘局制定的加密坐标系统,即将一个真实的经纬度坐标加密成一个不正确的经纬度坐标,我们在业内将前者称之为地球坐标,后者称之为火星坐标,具体的说明可以参看百度百科中关于火星坐标系统的解释。
哲洛不闹
2018/09/19
7K0
火星坐标系统_怎样算自己的上升星座
其原理是这样的:保密局开发了一个系统,能将实际的坐标转换成虚拟的坐标。所有在中国销售的数字地图必须使用这个系统进行坐标转换之后方可上市。这是生产环节,这种电子地图被称为火星地图。在使用环节,GPS终端设备必须集成保密局提供的加密算法(集成工作由保密局完成),把从GPS卫星那里得到的坐标转换成虚拟坐标,然后再去火星地图上查找,这样就在火星坐标系上完成了地图的匹配。 所以大家所用的百度,高德等地图定位准是偏差几百米
全栈程序员站长
2022/09/20
4130
常用坐标系
    随着接触的地图种类越来越多,每种产品对地图服务的坐标系的要求不同,今天遇到了整理的好文,整理记录分享。
sunsky
2022/06/14
3.6K0
常用坐标系
GCJ-02(高德) BD-09(百度) WGS-84(谷歌)坐标系之间的转换
新建一个 js 文件,直接把下面的代码copy进去。在需要使用的地方导入就可以调用下面的各个转换方法了 —.—
andyhu
2022/12/14
11.8K0
走进地图(2)-坐标系
    前面简单介绍了下什么是地图,我们主要说说电子地图,而对于电子地图来说,还是先了解什么是坐标系。
XiaoA
2023/05/24
4450
GIS坐标系测绘原理:大地水准面/基准面/参考椭球体/EPSG/SRI/WKT
预热文章系列:《GIS历史概述与WebGis应用开发技术浅解》、《GIS坐标系:WGS84,GCJ02,BD09,火星坐标,大地坐标等解析说与转换》、《OGC标准WMTS服务概念与地图商的瓦片编号流派》、《GIS基础知识 - 坐标系、投影、EPSG:4326、EPSG:3857 》我们过一遍如下概念:
周陆军
2021/07/13
5K0
高德,百度,Google地图定位偏移以及坐标系转换
一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的;但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用;
麦克劳林
2018/09/11
7.4K0
移动端地图哪些事
在App中接入地图是很多项目的需求,咱们可选的有百度地图SDK,高德地图SDK甚至是腾讯地图SDK,当然了谷歌中国区地图就不说了……那么问题来了今天说的是啥呢?当然不是iOS开发技术啦而是科普
大话swift
2019/12/03
1.1K0
移动端地图哪些事
自动驾驶中的时空坐标系
下面我们介绍自动驾驶技术中几种常用的坐标系统,以及他们之间如何完成关联和转换,最终构建出统一的环境模型。 所谓时空坐标系,包括三维空间坐标系和一维时间坐标系。在此基础上,用解析的形式(坐标)把物体在空间和时间的位置、姿态表示出来。一般三维空间坐标系用三个正交轴X,Y,Z表示物体的位置,用绕这三个正交轴的旋转角度(roll 横滚角, pitch 俯仰角, yaw 偏航角)表示物体的姿态。时间坐标系只有一个维度。为了表述方便,我们一般将空间坐标和时间坐标分开讨论。 摄像机坐标系统 摄像机/摄像头以其低廉的价格、
刘盼
2018/03/16
4.8K0
自动驾驶中的时空坐标系
GIS世界里坐标系“黑话”
世界大地测量系统(World geodetic system,简称WGS)是指1960年以来, 由美国国防制图局(DMA)建立的四个世界大地测量系统(WGS60、WGS66、WGS72和WGS84)的统称
追风骚年
2021/11/19
2.3K0
gis经纬度坐标转换多格式兼容:支持字符串/数组/GeoJSON
代码,https://www.npmjs.com/package/coordtransform2
周陆军博客
2023/04/09
8380
什么是坐标系,不同坐标系之间有什么区别
本文作者为国外制图师希瑟·史密斯,由点点GIS翻译发布,如有错漏之处请后台留言指出
陈南GISer
2021/08/18
1.9K0
什么是坐标系,不同坐标系之间有什么区别
地理坐标系与投影坐标系的区别
1、首先理解地理坐标系(Geographic coordinate system),Geographic coordinate system直译为 地理坐标系统,是以经纬度为地图的存储单位的。很明显,Geographic coordinate syst em是球面坐标系统。我们要将地球上的数字化信息存放到球面坐标系统上,如何进行操作 呢?地球是一个不规则的椭球,如何将数据信息以科学的方法存放到椭球上?这必然要求 我们找到这样的一个椭球体。这样的椭球体具有特点:可以量化计算的。具有长半轴,短
用户1075292
2018/01/23
2.1K0
推荐阅读
相关推荐
【vue-cesium】在vue上使用cesium开发三维地图(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文