您如何使用GRASS的v.kernel?


12

我对如何使用GRASS的v.kernel感到困惑。

我的向量层约为250万点。我想使用v.kernel制作一个热图以显示浓度,因为我有可变实例,它们的点重叠,有时重叠很大。

我已经在GRASS中获得了此矢量层,并且显示得很好。

我已经尝试根据我在这里和其他论坛上看到的内容使用GRASS的v.kernel命令,除了输出仅是一个粉红色正方形的栅格外,我无法执行任何其他操作。

这是我正在使用的命令:

v.kernel --verbose input=master_grass7 output=master_grass7a_heatmap stddeviation=.0001

我已经将标准从1000000更改为.000001,并且没有任何效果。

我反复阅读了v.kernel文档,但并不太了解它的含义。至少,这些说明是基于深奥的概念,没有实际意义。我也检查了源代码,但我也不是很了解。是的,我可以阅读C。问题在于它取决于GRASS GIS中其他地方定义的许​​多内容。

我也做了很多Google搜索,但是找不到完整的指南。我所得到的只是v.kernel文档/手册页的零散副本,或者显然是让它正常工作的人。

我还检查了内核密度估计(KDE)的概念,即使这样,我也看不到如何使用v.kernel命令。该命令似乎是对KDE的特定解释;它的开关似乎与通用KDE概念不太吻合。

回到这里的主要问题:不熟悉GRASS产品开发的人如何使用v.kernel命令?有没有简单的语言翻译?

Answers:


9

v.kernel算法为栅格地图的每个像元计算矢量点的密度。如果到目前为止您只使用了矢量对象,则可能是您没有充分设置region(不仅定义了范围,而且还定义了栅格分辨率):您可能region只设置了一行和一列,意味着该v.kernel算法只会将内核密度作为整个地图上的单个值进行计算。如果您不使用任何栅格地图,则这样的区域设置就可以了,因为矢量地图并不关心分辨率设置。使用检查您的区域设置g.region -p,如果rowscols设置为1,则使用来提高分辨率

g.region rows=<number of rows> cols=<number of columns>

要么

g.region res=<length>

其中<length>是以地图单位表示的分辨率单元格的长度。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.