计算线长和统计信息(QGIS3)

QGIS具有内置的功能和算法,可以根据特征的几何形状(例如长度,面积,周长等)计算各种属性。本教程将展示如何使用 添加几何属性 工具添加带有代表每个特征长度的值。

内容说明

给定北美铁路的折线层,我们将确定美国铁路的总长度。

你还会学到这些

  • 使用表达式过滤特征。

  • 使用 Statistics 面板来计算和查看列的统计信息。

获取数据

Natural Earth 具有公共领域的铁路数据集。

从门户网站下载 北美供给 文件。

为了方便起见,您可以直接从下面的链接下载数据集:

ne_10m_railroads_north_america..zip

数据来源 [NATURALEARTH]

操作流程

  1. Browser 面板中找到下载的 ne_10m_railroads_north_america.zip 文件,然后将其展开。将 ne10m_railroads_north_america.shp 文件拖到画布上。

../../_images/120.png
  1. 您会在 Layers 面板中看到一个新的图层 ne_10m_railroads_north_america 。您将看到该图层具有代表整个北美铁路的线。现在,让我们计算每个线要素的长度。转到 Processing ‣ Toolbox

../../_images/219.png
  1. 搜索并找到 Vector geometry ‣ Add geometry attributes 的算法。双击以启动它。

../../_images/316.png
  1. Add Geometry Attributes 对话框中,选择 ne_10m_railroads_north_america 作为 Input layer 。 输入层的坐标参考系统(CRS)是 EPSG:4326 WGS84 。这是一个 地理 CRS,以经度和纬度为坐标,WGS84为椭球,度为单位。由于纬度和经度没有标准长度,因此无法使用平面几何函数精确地测量距离或面积。幸运的是,QGIS提供了一种更好的方法来使用椭圆形几何来计算距离,这是跨越这样大面积区域的最准确方法。选择 Ellipsoidal 作为 Calculate using 选项。点击 Run 。该过程完成后,单击 Close

../../_images/47.png

注解

如果您的输入图层位于 Projected CRS 中,则可以选择 Layer CRS 选项进行计算。局部或区域投影坐标系旨在将其感兴趣区域上的失真最小化,因此对于此类计算更为精确。

  1. 您会在 Layers 面板中看到一个新图层 Added geom info 。这是输入层的副本,其中添加了新的列以表示距离。右键单击 Added geom info 层,然后选择 Open Attribute Table

../../_images/57.png

注解

添加几何属性 工具根据输入图层是点,线还是面来添加不同的属性集。有关更多详细信息,请参见 QGIS文档 s。

  1. Attribute Table 中,您会看到一个名为 距离 的新列。它包含每个线要素的长度以 为单位。另请注意 sov_a3 属性包含每个功能的正常代码。关闭 Attribute Table 窗口。

../../_images/67.png
  1. 现在我们有了各个铁路线段的长度,我们可以将它们加起来以找到铁路的总长度。但是,根据问题陈述的要求,我们需要美国的铁路总长度,因此我们只能使用美国境内包含的路段。我们可以使用 sov_a3 列中的国家代码值来过滤图层。右键单击 Added geom info 图层,然后选择 Filter

../../_images/77.png
  1. Query Builder 对话框中,输入以下表达式,然后单击 OK

"sov_a3" = 'USA'
../../_images/87.png
  1. 您会在 Layers 面板的 添加的几何信息 图层旁边看到一个 Filter 图标,表示已将过滤器应用于该图层。您还可以直观地确认图层现在仅包含美国的线段。现在我们准备计算总和。点击 Attributes Toolbar 上的 Show statistical summary 按钮。

../../_images/97.png
  1. 将打开一个新的 Statistics 面板。选择 添加的几何信息 图层和 长度 列。

../../_images/107.png
  1. 您将在面板中看到各种统计信息。统计信息的单位与 长度 列的单位 相同。让我们将计算更改为使用 公里数 。在 Statistics 面板中,单击字段下拉菜单旁边的 Expression 图标。

../../_images/1110.png
  1. Expression Dialog 中输入以下表达式,将长度转换为公里。

length / 1000
../../_images/127.png
  1. 显示的 Sum 值是美国铁路的总长度。

../../_images/137.png