You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在QGIS或其他GIS软件中生成街道密度极坐标直方图?

如何基于Line Density栅格生成反映街道布局的极坐标直方图

一、在QGIS中将Line Density栅格转为极坐标直方图的步骤

  • 步骤1:提取栅格的密度与坐标信息
    打开QGIS的Processing Toolbox,找到Raster pixels to points工具(路径:Raster conversion),将你的Line Density栅格转为点要素。每个点会自动携带原栅格的密度值(默认字段名为value),以及点的XY坐标。

  • 步骤2:将笛卡尔坐标转为极坐标
    打开点图层的属性表,用字段计算器添加两个新字段:

    • 角度字段(命名为angle):用表达式degrees(azimuth(make_point(你的原点X, 你的原点Y), $geometry))。这里的原点可以是城市中心(手动输入坐标),也可用centroid(layer_extent(@layer))自动取图层范围中心。QGIS中azimuth返回弧度,转角度后范围为0-360度,0对应正北,顺时针递增。
    • 距离字段(可选,命名为distance):用表达式distance(make_point(你的原点X, 你的原点Y), $geometry),用于后续筛选不同距离范围的密度数据。
  • 步骤3:按角度分组统计密度
    先通过字段计算器创建角度区间字段angle_bin,比如每10度一组,表达式为floor("angle"/10)*10,将0-360度划分为36个区间。
    再用Statistics by categories工具(路径:Vector analysis),选择angle_bin作为分类字段,对value字段做统计(选平均值或总和,总和代表该角度区间的总密度,平均值代表区间内平均密度,按需选择)。

  • 步骤4:生成极坐标直方图
    方法一:QGIS自带图表工具
    打开统计结果图层的属性表,点击工具栏Chart按钮,选择Bar chart:

    • X轴选angle_bin,Y轴选统计后的密度值(如mean_value)
    • 在Axes选项卡中,将X轴类型改为Polar,调整角度起始方向、范围等参数即可生成极坐标直方图。
      方法二:导出数据到外部工具绘制
      将统计结果导出为CSV,用Excel的极坐标图功能,或Python的Matplotlib库(设置projection='polar'后用bar函数绘制),自由度更高。

二、能否绘制以角度为函数的街道位置密度(而非方向密度)

完全可以,上述流程就是实现这个需求的方案:

  • 传统极坐标直方图统计的是街道线段的方向数量,因此会出现对称问题(比如0度和180度的街道方向会被重复计数);
  • 基于Line Density栅格的统计,是按从原点出发的角度方向上的像素密度值计算,反映的是该方向上街道的分布密度(和位置直接相关),不会出现对称偏差——某方向街道多、密度高,对应角度的柱形就高,相反方向街道少则柱形低,刚好能捕捉街道布局的偏好方向。

注意:原点的选择要贴合城市核心位置,否则统计结果会偏离实际布局特征;角度区间的大小可按需调整(5度更精细,20度更简洁)。

内容的提问来源于stack exchange,提问作者Basilikum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:03:24