<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何利用Python進(jìn)行地理坐標(biāo)系統(tǒng)的轉(zhuǎn)換?

          共 2615字,需瀏覽 6分鐘

           ·

          2020-09-12 22:19

          點(diǎn)擊上方"藍(lán)字"關(guān)注我們





          Python大數(shù)據(jù)分析


          記錄? ?分享? ?成長

          作者:師大Giser

          專欄地址:

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

          本文主要講述地理坐標(biāo)系統(tǒng)的原理以及怎么利用Python進(jìn)行地理坐標(biāo)系統(tǒng)轉(zhuǎn)換,內(nèi)容包含以下幾塊:

          1. 什么是地理坐標(biāo)系統(tǒng)?
          2. 常用的地理坐標(biāo)系統(tǒng)有哪些?
          3. 常用地圖產(chǎn)品分別是什么地理坐標(biāo)系?
          4. 怎么樣利用Python實(shí)現(xiàn)地理坐標(biāo)系的轉(zhuǎn)換?
          5. 如何對轉(zhuǎn)換后的精確度進(jìn)行驗(yàn)證?

          一、什么是地理坐標(biāo)系統(tǒng)

          用一張圖來解釋什么是地理坐標(biāo)系統(tǒng)。

          上圖中紅色實(shí)線圈為「地球自然表面」,由于地球自然表面坑坑洼洼、凹凸不平,所以在進(jìn)行精準(zhǔn)測量和定位的時候是不能直接用數(shù)據(jù)公式來擬合地球表面的。

          這時,用一個可以近似表示地球表面的規(guī)則的橢圓(如上圖中的藍(lán)色虛線框所示)來進(jìn)行地球表面的定位和測量,這個規(guī)則的三維球面就是地球橢球體。

          但是,地球表面高低起伏不平,造成「地球橢球體」與地球自然表面在有的地方能夠十分貼合,在有的地方則不是很貼合,這會造成測量及定位地誤差。

          所以,需要在地球橢球體以及地球自然表面之間加一層中間層,使其能夠盡量貼合真實(shí)的地球表面,那這中間層就是「大地基準(zhǔn)面」(如圖中綠色實(shí)線圈所示),其可以理解為在特定區(qū)域內(nèi)與地球自然表面極為吻合的橢球體。

          地球上各個地方的地理位置及環(huán)境都是獨(dú)一無二的,為了滿足當(dāng)?shù)販y量及定位的精度要求,全世界的地理學(xué)家們建立了無數(shù)個適合當(dāng)?shù)氐拇蟮鼗鶞?zhǔn)面。

          地理坐標(biāo)系統(tǒng)就是由大地基準(zhǔn)面衍生而來的,其是使用三維球面來定義地球表面位置,以實(shí)現(xiàn)通過經(jīng)緯度對地球表面點(diǎn)位引用的坐標(biāo)系。

          一個地理坐標(biāo)系包括角度測量單位、本初子午線和基準(zhǔn)面三部分。一個大地基準(zhǔn)面可以對應(yīng)多個地理坐標(biāo)系統(tǒng),而一個「地理坐標(biāo)系統(tǒng)」只能對應(yīng)一個大地基準(zhǔn)面。(這邊為了方便理解,沒有加入大地水準(zhǔn)面的概念)

          「同一個坐標(biāo)點(diǎn)在不同地理坐標(biāo)系的地圖上,會落在不同的區(qū)域;同一個地點(diǎn)獲取不同地理坐標(biāo)系下的坐標(biāo)數(shù)據(jù),值不相同。」

          因此,在地圖制圖以及空間分析之前,先要了解坐標(biāo)點(diǎn)以及地圖的地理坐標(biāo)系統(tǒng)。

          二、常用的地理坐標(biāo)系統(tǒng)有哪些?

          常用地圖產(chǎn)品的地理坐標(biāo)系統(tǒng)有:

          1. 地球坐標(biāo)系(WGS-84)WGS-84是國際通用坐標(biāo)系,也叫地球坐標(biāo)系,GPS系統(tǒng)就是采用的WGS-84。WGS-84對于具體地方的位置描述可能不如當(dāng)?shù)刈鴺?biāo)系來的準(zhǔn)確,但是它對全球范圍內(nèi)的位置估計(jì)更準(zhǔn)確。

          在中國范圍內(nèi),一般不直接使用WGS-84,而是使用由國家測繪局在WGS-84基礎(chǔ)上加密的火星坐標(biāo)系(GCJ-02),或者使用企業(yè)在GCJ-02上二次加密的坐標(biāo)系,例如百度坐標(biāo)系(BD-09)、搜狗坐標(biāo)系等。

          2.北京54坐標(biāo)系(BJ-54)BJ-54是建國初期提出的地理坐標(biāo)系,因此在早期有比較廣泛的運(yùn)用,有一定比例的數(shù)據(jù)使用的是BJ-54。

          從現(xiàn)代的眼光看,它并不能十分準(zhǔn)確地表達(dá)我國國境內(nèi)的空間位置。

          3.西安80坐標(biāo)系(XIAN-80)XIAN-80由于后期意識到BJ-54的不足,我國1978年4月在西安召開全國天文大地網(wǎng)平差會議,確定重新定位,建立的我國新地理坐標(biāo)系。它在中國經(jīng)濟(jì)建設(shè)、國防建設(shè)和科學(xué)研究中發(fā)揮了巨大作用。

          4.2000國家大地坐標(biāo)系(CGCS-2000)CGCS-2000我國當(dāng)前最新的國家大地坐標(biāo)系。2018年,我國國土資源系統(tǒng)全面采用CGCS-2000,并要求各類國土資源數(shù)據(jù)向CGCS-2000進(jìn)行轉(zhuǎn)換。

          5.地方獨(dú)立坐標(biāo)系許多城市、礦區(qū)基于實(shí)用、方便與科學(xué)的目的,建立了地方坐標(biāo)系。

          國內(nèi)地圖產(chǎn)品的地理坐標(biāo)系集中于CGCS-2000、GCJ-02以及一些對GCJ-02加密的商業(yè)坐標(biāo)系,國外地圖產(chǎn)品的地理坐標(biāo)系則基本是WGS-84。

          下表羅列了常用地圖產(chǎn)品的地理坐標(biāo)系,供大家參考。

          三、利用Python實(shí)現(xiàn)地理坐標(biāo)系統(tǒng)的轉(zhuǎn)換

          本節(jié)主要介紹怎么利用Python實(shí)現(xiàn)常用地理坐標(biāo)系統(tǒng)之間的轉(zhuǎn)換,并對轉(zhuǎn)換結(jié)果進(jìn)行精度檢驗(yàn)。

          話不多說,先上Python代碼。

          設(shè)置常量:

          經(jīng)緯度計(jì)算功能類:

          簡單判斷坐標(biāo)點(diǎn)是否在中國范圍內(nèi):

          WGS-84轉(zhuǎn)換為GCJ-02:

          GCJ-02轉(zhuǎn)換為WGS-84:

          GCJ-02轉(zhuǎn)換為BD-09

          GCJ-02轉(zhuǎn)換為BD-09:

          WGS-84轉(zhuǎn)換為BD-09:

          BD-09轉(zhuǎn)換為WGS-84:

          坐標(biāo)轉(zhuǎn)換功能包使用方法:

          輸出結(jié)果:

          5. 如何對轉(zhuǎn)換后的精確度進(jìn)行驗(yàn)證?

          接下來,對上述地理坐標(biāo)系轉(zhuǎn)換代碼的精確度進(jìn)行驗(yàn)證,具體的驗(yàn)證步驟為:

          1. 在A坐標(biāo)系的地圖產(chǎn)品下拾取5個坐標(biāo)點(diǎn);
          2. 利用代碼對5個坐標(biāo)點(diǎn)進(jìn)行A坐標(biāo)系到B坐標(biāo)系的轉(zhuǎn)換;
          3. 在B坐標(biāo)系地圖產(chǎn)品下同樣拾取這5個位置的坐標(biāo)點(diǎn);
          4. 計(jì)算轉(zhuǎn)換后坐標(biāo)點(diǎn)與真值坐標(biāo)點(diǎn)的偏移距離,并計(jì)算平均偏移距離。

          其中,WGS-84坐標(biāo)系的地圖產(chǎn)品是OpenStreetMap,GCJ-02坐標(biāo)系的地圖產(chǎn)品是高德地圖,BD-09坐標(biāo)系的地圖產(chǎn)品是百度地圖。

          以下為選擇的5個坐標(biāo)點(diǎn)。

          坐標(biāo)點(diǎn)1. 北京西路與石門一路交叉口:

          坐標(biāo)點(diǎn)2. 嘉定梅園路與塔城路交叉口:

          坐標(biāo)點(diǎn)3. 白石公路與外青松公路交叉口:

          坐標(biāo)點(diǎn)4. 賢浦路與金大公路交叉口:

          坐標(biāo)點(diǎn)5. 臨港達(dá)到與環(huán)湖西三路交叉口

          以下為精確度計(jì)算過程表:

          通過上表可以得到:

          • 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米

          三個坐標(biāo)系之間轉(zhuǎn)換公式的誤差均值都在10米以下,在能夠使用的合理范圍之內(nèi)。由于不同地圖產(chǎn)品之間存在一定的差異以及在拾取坐標(biāo)的時候存在一定的誤差,真實(shí)的誤差均值可能比看到的誤差還要再小。


          · 往期精選 ·
          1

          詳解seaborn可視化中的kdeplot、rugplot、distplot與jointplot

          2

          快速提升效率的6個pandas使用小技巧

          3

          在模仿中精進(jìn)數(shù)據(jù)可視化01:國內(nèi)38城居住自由指數(shù)




          Python大數(shù)據(jù)分析

          data creates?value

          掃碼關(guān)注我們


          瀏覽 75
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97性爱视频 | 久久婷婷秘 精品日产538 | 做爱www | 久久视频网 | 国产卡一卡二在线观看 |