導航座標系和大地座標系的轉化程式

2021-07-26 03:00:41 字數 1512 閱讀 1202

導航座標系和大地座標系的轉化程式

主要目的:

實現了 站心座標系和大地座標系的轉化(有什麼用?為了實現由gps座標獲得相對距離)

什麼是站心座標系呢?

以你為座標原點,xyz座標系。

什麼是大地座標系呢?(wg-84座標系)

gps的輸出座標系,和地心座標系不同。

本**考慮了橢球修正,實測比較準確。

#encoding=utf-8

'''created on 2023年9月26日

@author: sx

'''import math

import numpy as np

pi= math.pi

a=6378137

b=6356755.00

e=0.016710219

def deg(x):

x=(x/180)*pi

return x

def translate(l,b,h):

#l為經度,b為緯度,h為高度(補償高度)

l0=116

b0=39.4877777

h0=0

print("gps下經度、緯度、高度為",l,b,h)

b=deg(b)

l=deg(l)

b0=deg(b0)

l0=deg(l0)

n=a/(math.sqrt(1-e*e*math.sin(b)*math.sin(b)))

x=(n+h)*math.cos(b)*math.cos(l)

y=(n+h)*math.cos(b)*math.sin(l)

z=n*(1-e*e)*math.sin(b)

n0=a/(math.sqrt(1-e*e*math.sin(b0)*math.sin(b0)))

x0=(n0+h0)*math.cos(b0)*math.cos(l0)

y0=(n0+h0)*math.cos(b0)*math.sin(l0)

z0=n0*(1-e*e)*math.sin(b0)

print("空間直角座標系下x軸、y軸、高度為",'%.3f'%x,'%.3f'%y,'%.3f'%z)

mat=np.array([[-math.sin(l),math.cos(l),0],\

[-math.sin(b)*math.cos(l),-math.sin(b)*math.sin(l),math.cos(b)],\

[math.cos(b)*math.cos(l),math.cos(b)*math.sin(l),math.sin(b)]])

arr=np.array([[x-x0],[y-y0],[z-z0]])

res=np.dot(mat,arr)

x2=res[0]

y2=res[1]

print("站心座標系下東偏向、北偏向",'%.3f'%x2,'%.3f'%y2)

translate(116,41.08,0)

公式見 《大地測量學原理》一書

大地座標系 地理座標系 投影座標系

大地座標系 是大地測量中以參考橢球面為基準面建立起來的座標系。地面點的位置用 大地經度 大地緯度和大地高度 表示。大地座標系的確立包括選擇乙個橢球 對橢球進行定位和確定大地起算資料。乙個形狀 大小和定位 定向都已確定的地球橢球叫參考橢球。參考橢球一旦確定,則標誌著大地座標系已經建立。大地座標系是一種...

詳解座標系及座標變換 大地座標系(一)

以前讀大學的時候,沒有好好的把座標系學一下,到工作的時候才發現座標系是如此的重要。如果說資料是gis的血肉 那麼座標系就是gis的靈魂。離開這個靈魂gis就是乙個空殼,毫無意義。在gis中座標系被分為兩大類,大地座標系 地理座標系 和投影座標系。大地座標系屬於參心座標系,座標系中的點位於球面上,如w...

左手座標系和右手座標系

今天記錄一下一些基本的數學知識,左手座標系和右手座標系。這些對於搞影象開發或者遊戲開發的朋友來說,應該是很基礎的東西,不過對於大部分人來說還是比較陌生的知識。之所以看這方面資料主要是因為在使用android camera使用matrix的過程中,發現需要一些數學理論支援才能理解。這是為了後面使用an...