17.18. 更复杂的模型

备注

在本课中,我们将在模型设计器中使用更复杂的模型。

我们在上一章中创建的第一个模型非常简单,只有一个输入和三个算法。可以创建更复杂的模型,具有不同类型的输入并包含更多步骤。在本章中,我们将使用基于DEM和阈值创建包含流域的矢量层的模型。这对于计算对应于不同阈值的多个矢量层非常有用,而不必每次重复每个步骤。

本课程不包含有关如何创建模型的说明。您已经知道了必要的步骤(我们在 previous lesson ),并且您已经看到了关于建模器的基本概念,所以您应该亲自尝试一下。花几分钟试着创建你的模型,不要担心会犯错。请记住:首先添加输入,然后添加使用它们来创建工作流的算法。

备注

如果您不能自己创建完整的模型,并且需要一些额外的帮助,与本课相对应的数据文件夹中包含了一个即将完成的版本。打开建模器,然后打开将在数据文件夹中找到的模型文件。你应该看到像这样的东西。

../../../_images/model1.png

该模型包含完成计算所需的所有步骤,但它只有一个输入:DEM。这意味着,通道定义的阈值使用了一个固定值,这使得该模型没有其应有的用处。这不是问题,因为我们可以编辑模型,这正是我们要做的。

  1. 首先,让我们添加一个数字输入。这将要求用户输入数字输入,当我们的模型中包含的任何算法需要这样的值时,我们可以使用该数字输入。

  2. 按下 Number 条目中的 Inputs 树,您将看到相应的对话框。

  3. 用下列值填充它。

    • Parameter name: Threshold for channel definition

    • Default value: 1,000,000

    ../../../_images/threshold.png

    现在,您的模型应该是这样的。

    ../../../_images/model_with_threshold.png

    我们刚才添加的输入没有使用,因此模型实际上没有更改。我们必须将该输入链接到使用它的算法,在本例中为 Channel network 一。要编辑建模器中已经存在的算法,只需单击画布中相应框上的笔图标。

  4. 按下 Channel network 算法,你会看到类似这样的东西。

    ../../../_images/channel_network.png

    该对话框中填充了算法使用的当前值。您可以看到, Initiation threshold 参数的固定值为1,000,000(这也是算法的默认值,但可以放入任何其他值)。但是,您可能会注意到,该参数不是在公共文本框中输入的,而是在下拉菜单中输入的。

  5. 打开Threshold PARAMETER菜单,您将看到如下所示。

    ../../../_images/unfolded.png

    我们添加的输入就在那里,我们可以选择它。每当模型中的算法需要一个数值时,您可以对其进行硬编码并直接键入它,或者您可以使用任何可用的输入和值(请记住,有些算法生成单个数值。我们将很快看到关于这一点的更多信息)。在字符串参数的情况下,您还将看到字符串输入,并且您将能够选择其中一个或键入所需的固定值。

  6. 选择 Threshold for channel definition 输入到 Initiation threshold 参数。

  7. 点击 OK 要将更改应用到模型,请执行以下操作。现在,模型的设计应该如下所示。

    ../../../_images/model_linked_parameter.png
  8. 现在,模型已完成。使用我们在上一课中使用的DEM并使用不同的阈值运行它。

    下面是针对不同值所获得的结果样本。可以与缺省值的结果进行比较,缺省值是我们在 hydrological analysis lesson

    ../../../_images/result_1.png

    图 17.27 阈值=100,000

    ../../../_images/result_2.png

    图 17.28 阈值=1,000,000,