1

我有 1000 个 XYZ 数据点(GPS 纬度、经度、高度),来自乞力马扎罗山的步行。

我想使用垂直线制作一个 3D 图,因此 (x0 y0 0)-(x0 y0 z0), ... (x999 y999 0)-(x999 y999 z999)。

GpsPrune 会做这种情节,并为它制作动画,(http://activityworkshop.net/software/gpsprune/index.html)但我想更多地控制细节。

那么这可以在gnuplot中完成吗?是否可以对每条线的段进行着色,其中颜色 = f(高度)?

Richard H
4

2 回答 2

0

好问题!

z=0绘制从某个值到某个值的垂直线是绘图样式的impulses作用。

根据 -value 选择变量 linecolorz可以使用 来完成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):

在此处输入图像描述

于 2013-10-18T07:38:23.877 回答
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.

否则你的图形会看起来有点拉伸。我还会将 latNew 和 lonNew 转换为米,然后你的图表有一个单位米的所有 3 个轴。

度数到米系数 = 40 000 000 / 360.0;// 地球围墙除以 num 度

完成此转换后,您可以使用任何 3d 绘图软件。

于 2013-10-18T14:37:45.507 回答