3d Gnuplot中gps数据的三维图形

3d Gnuplot中gps数据的三维图形,3d,gps,gnuplot,3d,Gps,Gnuplot,我有1000个XYZ数据点GPS纬度, 经度,海拔,从乞力马扎罗山走上去 我想用垂直线做一个3D图 x0 y0-x0 y0 z0, ... x999 y999 0-x999 y999 z999 GpsPrune将进行此类绘图,并对其进行动画制作, 但我希望对细节有更多的控制 那么这可以在gnuplot中完成吗? 有没有可能给每条线的线段上色, 哪里的颜色=falitude Richard H 好问题 绘制从z=0到特定值的垂直线是打印样式脉冲的作用 可以使用linecolor palette根

我有1000个XYZ数据点GPS纬度, 经度,海拔,从乞力马扎罗山走上去

我想用垂直线做一个3D图 x0 y0-x0 y0 z0, ... x999 y999 0-x999 y999 z999

GpsPrune将进行此类绘图,并对其进行动画制作, 但我希望对细节有更多的控制

那么这可以在gnuplot中完成吗? 有没有可能给每条线的线段上色, 哪里的颜色=falitude

Richard H
好问题

绘制从z=0到特定值的垂直线是打印样式脉冲的作用

可以使用linecolor palette根据z值选择变量linecolor,该选项板使用当前调色板获取相应的线颜色

为了进行测试,我使用了数据文件

0 0 0
0.1 0.1 1
0.2 0.2 1.1
0.5 0.5 1.2
1 0.5 2
1.5 1 2.5
1 2 4
0.8 1.8 3.5
用于打印的脚本是:

set ticslevel 0
set zrange[0:*]
set view 40,40
set termoption dashed
unset key

splot 'gps.dat' using 1:2:3:3 with impulses lw 2 linecolor palette, \
      '' using 1:2:3 lc rgb 'black' lt 2 lw 0.5 w l
它给出了4.6.4的输出:


纬度和经度的尺度不同,只是在赤道。 要进行简单的笛卡尔变换,您可以将每个经度和纬度相乘

latNew = lat; // stays the same
lonNew = lon * cos(latAvg); // corrects the fact that longitudes shrinks the more north or south from equator the position is.
否则,您的图形将看起来有点拉长。 我会另外将latNew和lonNew转换为米,那么你的图表有一个全部3轴的单位米

度数与仪表系数=40 000 000/360.0;//地球周界围栏除以num度


完成此信息后,您可以使用任何三维绘图软件。

谢谢!我能够生成一组gifs伪动画。对于乞力马扎罗climmbers来说,最新消息是,set view 70190是一组非常好的图片中最好的。但这只是第一张图片,还在乞力马扎罗步道上工作,最大纬度,最小纬度=-2.95,-3.41,所以我不认为这个错误太麻烦。我在高纬度地区遇到过这个问题,通常使用Perl的GIS::Distance模块,默认选项Haversine。图中的z维度确实需要一点伸展——走上乞力马扎罗山5.8公里的z维度感觉有点不同于x-y平面上的5.8公里。是的,你是为了帽子纬度。但是皮尔斯距离对高纬度地区没有帮助,它只计算距离,但需要将所有点转换为笛卡尔坐标