17.5. 更多算法和数据类型

备注

在本课中,我们将再运行三个算法,学习如何使用其他输入类型,并配置要自动保存到给定文件夹的输出。

对于本课程,我们将需要一个表格和一个多边形层。我们将基于表中的坐标创建一个点层,然后计算每个多边形中的点数。如果打开与本课对应的QGIS项目,您将找到一个具有X和Y坐标的表,但不会找到任何多边形层。别担心,我们将使用处理地理算法创建它。

我们要做的第一件事是根据表中的坐标创建一个Points图层,使用 Points layer from table 算法。您现在知道如何使用搜索框,因此找到它应该不难。双击它以运行它,并进入下面的对话框。

该算法与上一课中的算法一样,只生成一个输出,并且有三个输入:

  • Table :带有坐标的表格。您应该从课程数据中选择此处的表。

  • X and Y fields :这两个参数链接到第一个参数。相应的选择器将显示所选表中可用字段的名称。选择 XCOORD 属性的字段 X 参数,并且 YYCOORD 属性的字段 Y 参数。

  • CRS :由于该算法不需要输入层,因此它不能基于它们将CRS分配给输出层。相反,它要求您手动选择表中的坐标使用的CRS。单击左侧的按钮打开QGISCRS选择器,并选择EPSG:4326作为输出CRS。我们使用这个CRS,因为表中的坐标在那个CRS中。

您的对话框应该如下所示。

../../../_images/points_from_table.png

现在按下 Run 按钮以获取以下层(您可能需要全图缩放以重新进入新创建的点周围的地图):

../../../_images/points.png

接下来我们需要的是多边形层。我们将使用 Create grid 算法,它具有以下参数对话框。

../../../_images/graticule_dialog.png

警告

在最新版本的qgis中,选项更简单;只需要输入X和Y的最小和最大值(建议值:-5.696226,-5.695122,40.24742,40.248171)

创建网格所需的输入都是数字。当您必须输入一个数值时,您有两种选择:直接在相应的框中输入,或者单击右侧的按钮以进入如下所示的对话框。

../../../_images/number_dialog.png

该对话框包含一个简单的计算器,因此您可以键入以下表达式 11 * 34.7 + 4.6 ,结果将被计算并放入参数对话框中相应的文本框中。此外,它还包含您可以使用的常量,以及来自其他可用层的值。

在本例中,我们希望创建一个覆盖输入点图层范围的栅格,因此我们应该使用其坐标来计算栅格的中心坐标及其宽度和高度,因为这些都是算法创建栅格时采用的参数。用一点数学知识,尝试使用计算器对话框和来自输入点层的常量自己做这件事。

选择 Rectangles (polygons)Type 菲尔德。

与上一个算法的情况一样,我们也必须在此处输入CRS。和我们之前一样,选择EPSG:4326作为目标CRS。

最后,您应该有一个如下所示的参数对话框:

../../../_images/graticule_parameters.png

(最好在宽度和高度上增加一个间距:水平间距:0.0001,垂直间距:0.0001,宽度:0.001004,高度:0.000651,居中X:-5.695674,居中Y:40.2477955)X居中的情况有点棘手,请参见:-5.696126+((-5.695222+5.696126)/2)

新闻发布会 Run 然后你就会得到经纬层。

../../../_images/graticule.png

最后一步是计算该经纬线的每个矩形中的点。我们将使用 Count points in polygons 算法。

../../../_images/count_points.png

现在我们得到了我们想要的结果。

在结束本课之前,这里有一个快速提示,可以让您的生活变得更轻松,以防您想要永久保存数据。如果希望将所有输出文件保存在给定的文件夹中,则不必每次都键入文件夹名。相反,请转到处理菜单并选择 Options and configuration 项目。它将打开配置对话框。

../../../_images/config.png

Output folder 条目,您将在 General 组中,键入目标文件夹的路径。

../../../_images/output_folder.png

现在,当您运行算法时,只需使用文件名而不是完整路径。例如,使用上面所示的配置,如果您输入 graticule.shp 作为我们刚才使用的算法的输出路径,结果将保存在 D:\processing_output\graticule.shp 。如果希望将结果保存在不同的文件夹中,您仍可以输入完整路径。

试试你自己吧 Create grid 算法有不同的网格大小,也有不同类型的网格。