亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

利用pyproj將經(jīng)緯度投影為平面坐標以及地理坐標系背景知識解讀

 更新時間:2023年06月25日 09:19:57   作者:qiu_xingye  
這篇文章主要介紹了利用pyproj將經(jīng)緯度投影為平面坐標以及地理坐標系背景知識解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

代碼示例

import pyproj
#定義投影坐標系
proj = pyproj.Proj(proj='tmerc', lon_0=120, lat_0=15, preserve_units=False)
#將經(jīng)緯度投影為平面坐標
print(proj(120, 15))#結(jié)果為(0.0, 0.0)
#將平面坐標反投影為經(jīng)緯度坐標
print(proj(0, 0, inverse=True))#結(jié)果為(119.99999999999999, 14.999999999999998)

背景知識

地球的三級逼近

地球的自然表面有高山也有洼地,是崎嶇不平的,我們要使用數(shù)學法則來描述他,就必須找到一個相對規(guī)則的數(shù)學面。

為此,通過大地水準面 (geoid),參考橢球體(Reference ellipsoid),大地基準面(Geodetic datum)實現(xiàn)對地球表面的三級逼近。

一級逼近:大地水準面

大地水準面是地球表面的第一級逼近。

假設(shè)當海水處于完全靜止的平衡狀態(tài)時,從海平面延伸到所有大陸下部,而與地球重力方向處處正交的一個連續(xù)、閉合的曲面,這就是大地水準面。

二級逼近:參考橢球體

大地水準面表面仍然是“高低起伏”的,但可以近似成一個規(guī)則橢球體,其形狀接近一個扁率極小的橢圓繞短軸旋轉(zhuǎn)所形成的規(guī)則橢球體,這個橢球體稱為地球橢球體。

它是地球的第二級逼近。

橢球體與大地水準面

參考橢球體(Reference ellipsoid)是一個數(shù)學上定義的地球表面,因為是幾何模型,可以用長半軸、短半軸和扁率來確定。

一方面,我們對地球形狀的測量隨著時間遷移而不斷精確,另一方面,因為大地水準面并不規(guī)則,地球上不同地區(qū)往往需要使用不同的參考橢球體,來盡可能適合當?shù)氐拇蟮厮疁拭妗?/p>

比較有名的參考橢球體包括克拉索夫斯基(Krasovsky)參考橢球,WGS-84參考橢球等。

三級逼近:大地基準面

由于參考橢球體是對地球的抽象,因此其并不能與地球表面完全重合,在設(shè)置參考橢球體的時候必然會出現(xiàn)有的地方貼近的好(參考橢球體與地球表面位置接近),有地地方貼近的不好的問題,因此這里還需要一個大地基準面來控制參考橢球和地球的相對位置。

這是地球表面的第三級逼近。

大地基準面與參考橢球體的關(guān)系

有以下兩類基準面:

  • 地心基準面:由衛(wèi)星數(shù)據(jù)得到,使用地球的質(zhì)心作為原點,使用最廣泛的是 WGS1984基準面。
  • 區(qū)域基準面(參心基準面):特定區(qū)域內(nèi)與地球表面吻合,大地原點是參考橢球與大地水準面相切的點,例如Beijing54、Xian80。我們通常稱謂的Beijing54、Xian80坐標系實際上指的是我國的兩個大地基準面。

不同基準面通過該基準面向WGS1984基準面的7個轉(zhuǎn)換參數(shù)來定義,轉(zhuǎn)換通過相似變換方法實現(xiàn),具體算法可參考科學出版社1999年出版的《城市地理信息系統(tǒng)標準化指南》第76至86頁。

假設(shè)Xg、Yg、Zg表示W(wǎng)GS84地心坐標系的三坐標軸,Xt、Yt、Zt表示當?shù)刈鴺讼档娜鴺溯S,那么自定義基準面的7參數(shù)分別為:三個平移參數(shù)ΔX、ΔY、ΔZ表示兩坐標原點的平移值;三個旋轉(zhuǎn)參數(shù)εx、εy、εz表示當?shù)刈鴺讼敌D(zhuǎn)至與地心坐標系平行時,分別繞Xt、Yt、Zt的旋轉(zhuǎn)角;最后是比例校正因子,用于調(diào)整橢球大小。

地理坐標系

地理坐標系包括天文坐標系和大地坐標系。大地坐標系是與地球固連在一起的,與地球同步運動,因而又稱地固坐標系。天文坐標系是空間固定的坐標系,與地球自轉(zhuǎn)無關(guān),成為慣性坐標系或天球坐標系,主要用于描述衛(wèi)星和地球的運動位置和狀態(tài)。這兩種坐標系都又可分為空間直角坐標系和經(jīng)緯度坐標系。下面重點介紹大地坐標系。

大地坐標系是建立在基于參考橢球的大地基準面上的,因此又分為參心坐標系(建立在參心基準面上)和地心坐標系(建立在地心基準面上),其經(jīng)緯高定義如下:

  • 大地經(jīng)度:參考橢球面上某點的大地子午面與本初子午面(與參考橢球無關(guān))間的兩面角。東正西負。
  • 大地緯度 :參考橢球面上某點的法線與赤道平面(與參考橢球無關(guān))的夾角。北正南負。
  • 大地高: 指某點沿法線方向到參考橢球面的距離。

投影坐標系

在地球橢球面和平面之間建立點與點之間函數(shù)關(guān)系的數(shù)學方法,稱為地圖投影。

地球橢球表面是一種不可能展開的曲面,要把這樣一個曲面表現(xiàn)到平面上,就會發(fā)生裂隙或褶皺。

在投影面上,可運用經(jīng)緯線的“拉伸”或“壓縮”(通過數(shù)學手段)來加以避免,以便形成一幅完整的地圖,但不可避免會產(chǎn)生變形。

地圖投影的變形通常有:長度變形、面積變形和角度變形。具體分類如下:

按變形性質(zhì)分類:

  • 等角投影:角度變形為零(Mercator)
  • 等積投影:面積變形為零(Albers)
  • 任意投影:長度、角度和面積都存在變形

其中,各種變形相互聯(lián)系相互影響:等積與等角互斥,等積投影角度變形大,等角投影面積變形大。

從投影面類型劃分:

  • 橫圓柱投影:投影面為橫圓柱
  • 圓錐投影:投影面為圓錐
  • 方位投影:投影面為平面- 從投影面與地球位置關(guān)系劃分為:
  • 正軸投影:投影面中心軸與地軸相互重合
  • 斜軸投影:投影面中心軸與地軸斜向相交
  • 橫軸投影:投影面中心軸與地軸相互垂直
  • 相切投影:投影面與橢球體相切 - 相割投影:投影面與橢球體相割

具體的不同的投影變換可參考Projections

既然投影是在地球橢球面和平面之間建立點與點之間函數(shù)關(guān)系的數(shù)學方法,因此描述一個投影坐標系(Projected coordinate systems)須包括對應(yīng)的大地坐標系(基于大地基準面)和投影方式及相關(guān)投影參數(shù)。

投影坐標系可以理解為是一個二維地圖平面坐標系,在該坐標系下每個點都有一個對應(yīng)的XY坐標和經(jīng)緯度坐標。

主要的投影參數(shù)如下(不同的投影方式,投影參數(shù)一般不同):

標準線

  • 概念:投影面與參考橢球的切線或割線。分為標準緯線與標準經(jīng)線。
  • 特點:沒有變形,也稱主比例尺。

中心線

  • 概念:是指中央經(jīng)線(原點經(jīng)線)與中央緯線(原點緯線),用來定義圖投影的中心或者原點。
  • 特點:一般會有變形。 pyproj中的投影變換

在pyproj中Proj類負責地圖投影變換(經(jīng)緯度->XY坐標)和逆變換(XY坐標->經(jīng)緯度)。Proj類主要由不同投影坐標系的相關(guān)參數(shù)來初始化。

打印示例代碼

proj = pyproj.Proj(proj='tmerc', lon_0=120, lat_0=15, preserve_units=False)

中的projproj.crs,有:

In [4]: proj = pyproj.Proj(proj='tmerc', lon_0=120, lat_0=15, preserve_units=False)
In [5]: proj
Out[5]:
Proj('+proj=tmerc +lat_0=15 +lon_0=120 +k=1 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs', preserve_units=True)
In [16]: proj.crs
Out[16]:
<Projected CRS: +proj=tmerc +lon_0=120 +lat_0=15 +type=crs>
Name: unknown
Axis Info [cartesian]:
- E[east]: Easting (metre)
- N[north]: Northing (metre)
Area of Use:
- undefined
Coordinate Operation:
- name: unknown
- method: Transverse Mercator
Datum: World Geodetic System 1984
- Ellipsoid: WGS 84
- Prime Meridian: Greenwich

可知該投影坐標系的大地基準面是WGS84,投影變換方式是’tmerc’(橫軸魔卡托投影)及其它的一些參數(shù)。

Proj類初始化的主要參數(shù)如下表所示:

ParameterDescription
+aSemimajor radius of the ellipsoid axis
+axisAxis orientation
+bSemiminor radius of the ellipsoid axis
+ellpsEllipsoid name (see pyproj.pj_ellps)
+kScaling factor (deprecated)
+k_0Scaling factor
+lat_0Latitude of origin
+lon_0Central meridian
+lon_wrapCenter longitude to use for wrapping
+overAllow longitude output outside -180 to 180 range, disables wrapping (see below)
+pmAlternate prime meridian (typically a city name)
+projProjection name (see pyproj.pj_list)
+unitsmeters, US survey feet, etc.
+vunitsvertical units.
+x_0False easting
+y_0False northing

詳細信息可參考Cartographic projection

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何通過Python的pyttsx3庫將文字轉(zhuǎn)為音頻

    如何通過Python的pyttsx3庫將文字轉(zhuǎn)為音頻

    pyttsx3是一個開源的Python文本轉(zhuǎn)語音庫,可以將文本轉(zhuǎn)換為自然的人類語音,這篇文章主要介紹了如何通過Python的pyttsx3庫將文字轉(zhuǎn)為音頻,需要的朋友可以參考下
    2023-04-04
  • Python異常處理之try...except語句

    Python異常處理之try...except語句

    Python異常處理是Python中重要的一部分,為了保證程序的穩(wěn)定性和可靠性,我們需要使用異常處理來及時捕獲,并以優(yōu)雅的方式來處理這些異常,本教程將介紹如何處理?Python中的異常,需要的朋友可以參考下
    2023-06-06
  • python GUI庫圖形界面開發(fā)之PyQt5 Qt Designer工具(Qt設(shè)計師)詳細使用方法及Designer ui文件轉(zhuǎn)py文件方法

    python GUI庫圖形界面開發(fā)之PyQt5 Qt Designer工具(Qt設(shè)計師)詳細使用方法及Designer

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5 Qt Designer工具(Qt設(shè)計師)詳細使用方法及Designer ui文件轉(zhuǎn)py文件方法,需要的朋友可以參考下
    2020-02-02
  • Python實現(xiàn)多屬性排序的方法

    Python實現(xiàn)多屬性排序的方法

    這篇文章主要介紹了Python實現(xiàn)多屬性排序的方法,非常不錯,具有一定的參考價借鑒價值,需要的朋友可以參考下
    2018-12-12
  • 解決pycharm無法識別本地site-packages的問題

    解決pycharm無法識別本地site-packages的問題

    今天小編就為大家分享一篇解決pycharm無法識別本地site-packages的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python批量合并365個工作表

    Python批量合并365個工作表

    這篇文章主要為大家詳細介紹了Python批量合并365個工作表的2種方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法

    python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法

    今天小編就為大家分享一篇python數(shù)據(jù)批量寫入ScrolledText的優(yōu)化方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • django 自定義過濾器(filter)處理較為復(fù)雜的變量方法

    django 自定義過濾器(filter)處理較為復(fù)雜的變量方法

    今天小編就為大家分享一篇django 自定義過濾器(filter)處理較為復(fù)雜的變量方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python設(shè)計模式行為型觀察者模式

    Python設(shè)計模式行為型觀察者模式

    這篇文章主要介紹了Python設(shè)計模式行為型觀察者模式,觀察者模式即Publish?Subscribe?Pattern,定義了一種一對多的關(guān)系,讓多個觀察對象同時監(jiān)聽一個主題對象,當主題對象狀態(tài)發(fā)生變化時會通知所有觀察者,是它們能夠自動更新自己,下面和小編一起進入文章學習詳細內(nèi)容吧
    2022-02-02
  • Python通過future處理并發(fā)問題

    Python通過future處理并發(fā)問題

    這篇文章主要介紹了Python通過future處理并發(fā)問題,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-10-10

最新評論