2013-10-18 52 views
1

我有1000个XYZ数据点(GPS纬度, 经度,海拔高度),从步行上乞力马扎罗山。Gnuplot中GPS数据的3D图形

我想用3D绘图垂直线从而 (X0 Y0 0),使 - (X0 Y0 Z0), ... (X999 y999 0) - (X999 y999 Z999)。

GpsPrune会做这样的情节,和动画一样好, (http://activityworkshop.net/software/gpsprune/index.html) 但我想在细节更多的控制。

所以这可以在gnuplot中完成吗? 是否有可能为每条线的颜色段, 哪里color = f(高度)?

Richard H 

回答

0

伟大的问题!

绘制从z=0到一定值的垂直线是绘图风格impulses所做的。

根据z选择一个变量linecolor值可以用linecolor palette完成,它使用当前调色板获取相应的线条颜色。

为了测试我使用的数据文件

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):

enter image description here

+0

谢谢!我能够生成一组gif(伪动画)。乞力马扎罗山攀登的消息是**集视图70,190,**是最好的(非常好)一堆。 – user2893515

+0

http://users.skynet.be/watermael/Kilimanjaro.html示例图片,但这只是第一次黑客 - 仍然在努力 – user2893515

0

经度和纬度的尺度不一样,只有在赤道。 做一个简单的笛卡儿变换,你可以乘以每个经度与cos(middleLatitude)。

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. 

否则yor graphic会显得有点拉长。 我会另外将latNew和lonNew转换为米,然后你的diagramm具有所有3个轴的单位米。

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

在这个trasnformation之后,你可以使用任何3D绘图软件。

+0

在乞力马扎罗山步行,(最大纬度,最低纬度)=(-2.95, - 3.41)所以我不认为这个错误太麻烦了。我在高纬度地区遇到过这个问题,通常使用Perl的GIS :: Distance模块,默认选项Haversine。该图的z尺寸确实需要一点伸展 - 走上乞力马扎罗山5.8公里的z尺寸与x-y平面上的5.8公里不同。 – user2893515

+0

是的,你是戴着帽子的纬度。但是perls距离对高纬度没有帮助,它只能计算距离,但是你需要将所有点转换为笛卡儿 – AlexWien