根据QGIS中的线数据制作热图?


12

我想基于属性对线数据执行线密度分析。

热图选项(内核密度分析)似乎仅适用于点数据。

我试图将线数据转换为点,并创建一个热图,但是权重的属性在转换时丢失了。

这是使用ArcGIS执行的线密度分析。我一直想对QGIS做同样的事情。

在此处输入图片说明

是否可以在QGIS中执行类似的线密度分析? 这是QGIS上的数据

Answers:


4

我找不到通过DB Manager / SQLite函数在QGIS中执行此操作的方法,但是在PostGIS中,我们执行以下操作:

select
(ST_DumpPoints(l.geom)).geom
from linedata as l

导出到新表格中的表格允许线的点(在本例中为PGRouting学生到学校),因此我们可以可视化学生“可以”采取的路线的热点:

在此处输入图片说明


4

实际上,可以使用将参数发送到GDAL可执行文件的标准菜单在QGIS中进行线密度设置。

使用-burn -add开关使用gdal_rasterize将创建线或点密度的栅格,而没有搜索半径作为内核密度或类似值。栅格像元内有多少点或多少线。

gdal_rasterize在菜单“栅格”->“转换”->“栅格化”中找到。在最后一个文本字段中,按铅笔按钮,然后更改文本,使其类似于下面的“ -burn 1 -add”。当然,您可以根据情况更改-tr(分辨率)参数以及输入和输出名称。

gdal_rasterize -burn 1 -add -tr 200.0 200.0 -l line C:/lines.shp C:/out_lines.tif

Jukka Rahkonen在gdal_dev邮件列表上给了我提示。我一直在寻找这个字面上的年份。

关于栅格化线的栅格像元值,我不确定这些值代表什么。显然,这不是行数或行长。

使用gdal_rasterize的线密度


3

使用与@DPSSpatial答案类似的方法,我将使用QChainage插件沿每条线创建均匀间隔的点。

该插件会沿线生成点,但不会跨线复制任何属性。

在这里,我假设WGS84(4326,纬度/经度)。您可能希望使用以米为单位的适当投影来执行此操作。

  • 使用QChainage沿直线生成点,例如每0.05度
  • 将该层缓冲例如0.001度。
  • 从缓冲点到原始线层,进行空间连接(“ 矢量”>“数据管理工具”>“按位置连接属性 ”)(使用“相交”)。这将使这些点从它们下面的线中拾取影响值。
  • 使用矢量>几何工具>多边形质心将此层转换回点

最后,我将使用标准的热图渲染器。通过设置和使用影响力字段,确保使用体重点

您现在应该有这样的内容。每行上的数字表示“影响力”值。

在此处输入图片说明

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.