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

本文主要讲述地理坐标系统的原理以及怎么利用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。

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

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

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

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

国内地图产品的地理坐标系集中于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米以下,在能够使用的合理范围之内。由于不同地图产品之间存在一定的差异以及在拾取坐标的时候存在一定的误差,真实的误差均值可能比看到的误差还要再小。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271