使用GMT绘制星下点图 您所在的位置:网站首页 北斗七星分布图怎么画 使用GMT绘制星下点图

使用GMT绘制星下点图

2024-07-17 18:12| 来源: 网络整理| 查看: 265

写在前面 这是2023年第一篇文章,今天要介绍的是使用GMT绘制星下点图,在卫星导航实验重,要求我们绘制北斗卫星的星下点图,我们需要知道卫星的轨迹,就需要计算出卫星的坐标,并进行相应的坐标转换,获得了坐标之后,需要使用GMT进行星下点图的绘制。 一、获得卫星坐标

可以在我的其他的博客中找到计算卫星坐标的代码,此处放置链接,请自行取用。

【python】读取卫星星历(RENIX 3.04)进行卫星位置的计算(北斗卫星专题)

其大致原理是,通过读取卫星星历相应的卫星轨道信息,对相应的数据块进行读取并计算出在历元时刻的卫星位置。

二、对卫星坐标进行坐标转换

由于计算获得的卫星坐标是以高斯空间直角坐标系(CGCS2000或其他坐标系),我们需要转化为BLH坐标,才能够使用GMT来进行卫星的星下点图。以下是转换坐标的相关类的代码。

1.建立椭球类,采用CGCS2000坐标系 class Earth(): # 建立椭球类,,采用CGCS2000中国大地坐标系数据 def __init__(self): # 给定椭球数据 # 长半轴 self.a = 6378137.0 # 短半轴 self.b = 6356752.31414 # 扁率 self.f = 1 / 298.257222101 # 第一偏心率的平方 self.e1s = m.pow(0.0818191910428, 2) # 第二偏心率的平方 self.e2s = self.e1s / (1 - self.e1s) 2.建立转换类(包括XYZ与BLH的互相转换方法) class Transform(): # 建立转换类 def __init__(self): # 导入椭球数据 self.earth = Earth() def BLH_XYZ(self, B, L, H): # 大地坐标转换为空间直角坐标 # 将角度转换为弧度 self.b = m.radians(B) self.l = m.radians(L) # 计算辅助函数 self.W = m.sqrt(1 - self.earth.e1s * m.pow(m.sin(self.b), 2)) # 转换为空间直角坐标 self.N = self.earth.a / self.W self.X = (self.N + H) * m.cos(self.b) * m.cos(self.l) self.Y = (self.N + H) * m.cos(self.b) * m.sin(self.l) self.Z = (self.N * (1 - self.earth.e1s) + H) * m.sin(self.b) def XYZ_BLH(self, X, Y, Z): # 空间直角坐标转换为大地坐标 # 求出大地经度 self.l = m.atan(Y / X) # 求出大地纬度 self.r = m.sqrt(X * X + Y * Y) self.tb1 = Z / self.r while True: self.tb2 = 1 / self.r * ( Z + self.earth.a * self.earth.e1s * self.tb1 / m.sqrt(1 + self.tb1 * self.tb1 * (1 - self.earth.e1s))) if abs(self.tb2 - self.tb1) sattrack.ps psxy GEO.txt -R -J -B -Sj -Ggray -Wthinner -K -O >> sattrack.ps psxy GEO.txt -R -J -B -Sc0.3c -Gyellow -Wthinner -K -O >> sattrack.ps psxy IGSO.txt -R -J -B -Sj -Ggray -Wthinner -K -O >> sattrack.ps psxy IGSO.txt -R -J -B -Sc0.3c -Gyellow -Wthinner -K -O >> sattrack.ps psxy MEO.txt -R -J -B -Sj -Ggray -Wthinner -K -O >> sattrack.ps psxy MEO.txt -R -J -B -Sc0.3c -Gyellow -Wthinner -K -O >> sattrack.ps pstext GEONAME.txt -R -J -B -D-0.2/-0.4 -F+f13p -K -O >> sattrack.ps pstext IGSONAME.txt -R -J -B -D-0.2/-0.4 -F+f13p -K -O >> sattrack.ps pstext MEONAME.txt -R -J -B -D-0.2/-0.4 -F+f13p -K -O >> sattrack.ps psxy C06.txt -R -J -B -W1.5p,SEAGREEN,solid -K -O >> sattrack.ps psxy C07.txt -R -J -B -W1.5p,SEAGREEN,solid -K -O >> sattrack.ps psxy C08.txt -R -J -B -W1.5p,SEAGREEN,solid -K -O >> sattrack.ps psxy C09.txt -R -J -B -W1.5p,SEAGREEN,solid -K -O >> sattrack.ps psxy C10.txt -R -J -B -W1.5p,SEAGREEN,solid -K -O >> sattrack.ps psxy C11.txt -R -J -B -W1.5p,DARKORCHID3,solid -K -O >> sattrack.ps psxy C12.txt -R -J -B -W1.5p,DARKORCHID3,solid -K -O >> sattrack.ps psxy stations.txt -R -J -B -St12p -Gred -Wthinner -K -O >> sattrack.ps pstext stations.txt -R -J -B -D0.5/-0.4 -F+f17p,40 -O >> sattrack.ps psconvert sattrack.ps -C-sFONTPATH=C:\WINDOWS\Fonts -E600 -P -Tt

3)新建文件,放入卫星的坐标,保存退出。

4)修改文件扩展名为".bat",双击打开或者在CMD里运行也是可以的。

5)获得了tif图,则绘图完毕。

星下点图,绘制完毕。

四、总结

GMT虽然配置较为麻烦,且没有好的GUI界面以供使用者使用,需要使用命令行来绘制图像,但是对于测绘来说,仍不失为一款绘图科研利器。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有