APSIM实战练习:Kingsthorpe土壤水分蒸发研究

8 篇文章 1 订阅
7 篇文章 1 订阅

在本练习中,您将对来自澳大利亚昆士兰州金斯索普的真实试验的数据进行建模。使用从试验中观察到的数据,您将创建一个气象文件,模拟三个蒸发曲线并将模拟输出与观察到的数据进行比较。

有关试用的更多背景信息,请参阅此 PowerPoint 演示文稿。请注意,该演示文稿是为 APSIM 课堂培训计划设计的,因此缺乏对所含图表的深入分析。

入门

从 APSIM 安装文件夹(默认为 C:\Program Files(x86)\Apsim[version]-r[revision]\Documentation)中的文档文件夹中提取 Advanced_Scenario zip 到您可以处理它的地方(例如文档或桌面) ). 我们将编辑和保存文件,您的安全设置可能会阻止您保存到安装文件夹。

此方案假设您熟悉 Excel 和基本的 Windows 功能,例如重命名文件。没有为这些任务提供分步说明。此外,该场景设计用于与培训师一起在课堂环境中使用。因此,此处可能无法完全解释某些概念。但是,如果您已成功完成基本练习,您应该能够轻松完成任务。
其实还是有很多小障碍

首先,从零创建met气象文件

模拟任何试验的第一步是确保您拥有准确的气候数据。您将使用的数据是从试验地点的气象站收集的。原始的每小时数据被处理成每日数据,并以您在此处看到的形式呈现。

  1. 打开文件 Data.xlsx 并单击天气表。还为不使用 Excel 的用户提供了数据的“.csv”文件。当系统要求您单击选项卡时,请参考这些内容。前几行看起来像这样:
    在这里插入图片描述

  2. 您可能还记得 APSIM 需要六列才能运行。您可以拥有其他数据,例如蒸汽压力或风速,并通过脚本访问它们,但 APSIM 不会使用它们。这些列是:年、日、最低气温、最高气温、降雨量和 辐射量。它们分别是年份、年份、最低和最高温度(摄氏度)、降雨量(毫米)和入射太阳辐射(兆焦耳/平米 / 天)。虽然这些列是强制性的,但它们的位置不是;它们可以按任何顺序排列。

  3. 创建一个新工作表。创建天气文件时最好开始一个新工作表,这样您就不会覆盖现有数据。

  4. 在新工作表的前两列顶部单元格中输入“year”和“day”(无引号)。

  5. 将最高温度、最低温度、辐射和雨量列复制到年和日列之后的新表中。

  6. 将 max temp、min temp 和 rad 分别重命名为 maxt、mint 和 radn。

  7. 我们不需要那么多小数位。选择所有包含数据的列(不是年和日列),将数据类型更改为数字并使用“减少小数”选项(点击相应单元格区域,开始->数值)将小数位数减少为一位。请注意,这不会导致数据丢失,它只会影响显示。

  8. 您的工作表现在应该如下表所示。请注意,列名不能包含空格。
    在这里插入图片描述

  9. 我们将使用一个公式来计算年值和日值。这将允许您复制所有日子的公式,无论您有多少年。在 day 下方的第一个单元格中键入此公式:=Weather!A2 – DATE(2010,1,0) 其中 Weather 是包含天气数据的工作表,A2 是包含第一个 Date 的单元格,2010 是天气的第一年数据。您可能需要将列的格式从“日期”更改为“常规”。在“年”列中再次使用公式:=YEAR(Weather!A2),A2 是包含第一个日期的单元格,Weather 是包含源数据的工作表。您可能还需要更改此列的格式。

  10. 将两个公式向下复制以完成列。

  11. 现在我们需要添加单位。文件中的每一列都必须有一个关联的单位(请注意,这不允许您更改 APSIM 使用的单位。例如,温度必须以摄氏度为单位,您不能通过在单位字段中输入 oF 来使它们成为华氏度。添加另一个在标题下但在第一行数据之前的行,如下所示。请注意,无单位列需要有空括号。
    在这里插入图片描述

  12. 还有两件事我们需要补充。在工作表顶部插入两行。在第一行中键入“[weather.met.weather]”(无引号)。这向 APSIM 表明这是一个天气文件。在第二行中,键入“latitude = -27.478”(无引号)。您必须提供纬度,因为 APSIM 使用它来计算日长。建议使用经度,但不是必需的。如果你确实放了一个,它会在单独的一行上。

  13. 选择所有数据并使其右对齐。这不是必需的,但它可以在以后停止对齐问题。

  14. 确保列之间有一些空间!在上表中,每一列的数据之间有相当多的空白,所有数据都是右对齐的。如果没有足够的空间,Excel 将保存最终输出文件,而列之间没有空格,这会破坏文件。这就是为什么我们右对齐文本的原因;以确保它不会聚在一起。

  15. 保存文件。

  16. 单击文件 -> 另存为。从下拉列表中选择格式化文本(空格分隔)(.prn)。

  17. 将文件另存为天气。您会收到一些关于丢失格式的警告。全部单击“确定”。这就是您在更改格式之前保存文件的原因。

  18. 单击文件 -> 关闭。请注意,现在您正在处理 .prn 文件,而不是您的原始文件。此处所做的任何更改都不会反映在源文件中。该文件也必须在加载到 APSIM 之前关闭,否则您将收到错误消息。它会问你是否要保存,说不。

  19. 转到保存文件的文件夹。它将被称为 Weather.prn。将名称更改为 Weather.met。您可能需要取消隐藏文件扩展名才能正常工作。

  20. 我们的文件需要几个常量才能完整:TAV(年平均环境温度)和 AMP(月平均温度的年振幅)。我们在这里提供了一个工具,这样您就不需要自己输入这些了。运行该工具,选择您刚刚创建的文件,然后单击“开始”。它将为您插入所需的数字。注意使用这个脚本处理,需要列宽度不能太大,只要不相互遮挡就可以,可以用记事本先打开看看,太宽了会使脚本报错

现在可以像往常一样将 met 文件加载到 APSIM 中。请注意,我们已从原始数据中删除了日期列。met 组件只需要数字,因此不能使用像斜杠这样的字符。

建立第一个模拟

  1. 打开 APSIM。单击“新建”并选择“连续小麦”作为基础模拟。我们使用这个是因为它有我们需要的所有节点加上一些我们将删除的节点。将其另存为“Scenario.apsim”,保存在与您的 met 文件相同的文件夹中。

  2. 这是裸土试验,所以我们不需要作物或肥料。删除肥料、小麦和管理器文件夹节点。

  3. 我们正在对从 4 月、5 月和 9 月开始的三条曲线建模。将您的模拟重命名为 April 并保存。它应该是这样的:

在这里插入图片描述
4. 单击 met 并选择您刚刚创建的 Weather.met 文件。如果它没有加载,请检查格式是否正确以及列之间是否有足够的空间。

  1. 点击时钟。将开始日期更改为 02/04/2010,将结束日期更改为 03/05/2010。

  2. 我们现在需要将土壤参数更改为现场测量的参数。如果您还没有 Data.xlsx 文件,请打开它并转到“土壤”选项卡。单击模拟中土壤下的水节点,在表中输入深度、BD、AirDry、LL15、DUL 和 SAT 列的值。将 KS 列留空。请注意,存在小麦、高粱和棉花的详细信息,并以粉红色突出显示。这表明这些值是计算得出的,不能更改或删除。大多数 Vertosol 土壤都是这样的。另请注意,土壤分析有很多我们不会使用的额外数据。

  3. 单击土壤水。设置等于下表的值。这些值是使用测量数据为当前土壤计算的,但该过程不是本练习的一部分。

  4. 在这里插入图片描述
    我们将底层的 SWCON 和 MWCON 设置为 0,以证实there is no drainage out of the lysimeter (steel plate)这句话不好翻译。
    在这里插入图片描述

  5. 删除 Initial water 节点。我们将逐层指定起始含水量。

  6. 单击初始氮气。将所有起始 N 设置为 0,我们在本次试验中不考虑 N。更改图层以使用与水节点中相同的结构。

  7. 将以下值添加到 SW 列:
    在这里插入图片描述
    我们希望模拟从与观察到的土壤相同的土壤含水量开始。通过使用不同的起始值运行每条曲线并使用与观察值匹配的曲线来找到这些值。在整个试验中,运行了大约 20,000 次模拟以确定所有曲线的起始条件。为了节省时间,这里提供了最终值。

  8. 将 SurfaceOrganicMatter -> Initial surface residue 更改为 0。

  9. 删除除 Date 之外的所有输出变量并添加 sw_dep()。

  10. 将报告频率更改为 end_day。

  11. 运行模拟以确保没有错误。

准备观测数据

在 APSIM 中使用观测数据与创建 met 文件非常相似。您将需要一个包含数据的表格,其中的标题与 APSIM 中的输出相匹配,以及标题下的一行单位。您还需要一个列,其中包含 APSIM 可用于匹配观察数据和建模数据的数据。在此示例中,日期将是我们匹配的列。

在 Data.xlsx 文件中,有两张纸,Kings daily 和 Kings sw_dep。Kings daily 是从蒸渗仪中的负载计收集的原始数据。还有四列用于校正因子(每个代表一个),用于校正因子总和的列和用于校正质量的列。在试验期间,称重传感器有时无法正确测量(一些因素包括调节器损坏、洪水、为称重传感器测试添加已知重量以及读取读数时站在传感器上的当地动物群)。这些错误在数据中显示为大下降或尖峰,在一两天后自行纠正。使用的校正因子消除了这些大的增量。您会注意到图中的直线段。这些时期代表缺失数据;

对于任何数据集,在尝试对其建模之前总是需要考虑错误来源。不要忘记模型和真实数据都可能是错误的来源。如果您的建模结果与您观察到的结果不吻合,最好检查您的测量数据是否尽可能没有错误。事实上,您可以预料,您建模的大部分时间实际上都花在了清理数据上。建立这个试验的模型花了一两周的时间。清理数据花了将近三个月的时间,即便如此,很多数据还是因为无法量化的错误而被拒绝。最后,从最多 60 条可能的曲线中选出了 38 条干燥曲线。其他曲线由于测量数据误差过大而被拒绝。

  1. 打开 Data.xlsx 并单击 Kings sw_dep 选项卡。您将使用的数据已经过错误更正。

  2. 我们将对所有四次代表的平均值进行建模。将均值列重命名为 sw_dep()。通过在观察数据和建模数据中使用列的名称,同一 APSIM 可以将它们绘制在同一图表上。

3.调整小数位数为3位。

  1. 在标题下添加另一行并添加单位。() 为日期,(mm) 为其余。注意,这里的日期相应单元格数值格式是日期,但是要改为英国制,而不是其他值,即月/日/年,如02/28/2012这样才是正确的,否则待会读取不了

  2. 列靠的有点近。调整列宽,以便我们在保存时在它们之间获得足够的空间。

  3. 保存文件。

  4. 使用另存为将文件另存为“observed.prn”。

  5. 关闭 Excel 中的文件。

添加观测数据

现在我们已经有了 APSIM 可以处理的格式的观察数据,我们希望将其绘制在与我们的建模数据相同的图表上,以查看模型的有效性。

  1. 打开 Scenario.apsim(如果尚未打开)。

  2. 打开图形工具箱并将 XY 图放到“四月”模拟节点上。

  3. 打开 XY 节点并单击“绘图”。

  4. 使 X 变量 Date 和 Y 变量 sw_dep()。将“点类型”更改为“无”。

  5. 将绘图重命名为 sw_dep。它应该是这样的: 在这里插入图片描述

  6. 复制绘图节点并粘贴到 sw_dep 图上以创建第二个节点。将第一个图重命名为“预测”,将第二个图重命名为“观察”。
    在这里插入图片描述

  7. 我们将所有观察到的数据都放在一个文件中,但我们只想绘制其中的一部分。在观察到的节点上放置一个 Filter 组件(Graph > GraphBits > Filter)。

8.打开观察节点,剪切ApsimFileReader节点。将其粘贴到 Filter 节点上。它现在应该是这样的:

在这里插入图片描述
9. 单击 ApsimFileReader 并选择您的 observerd.prn 文件。如果文件格式正确,您将在列表中看到您的数据。

  1. 单击过滤器节点。在“输入过滤器表达式”中输入以下内容:

    日期 >= #4/2/2010# 和日期 <= #5/3/2010#。

请注意,日期现在采用美国格式 (MM/DD/YYYY),并且需要散列来表示日期。有关过滤器节点的更多信息,请参阅过滤器文档。

  1. 单击观察节点,将“点类型”更改为“圆”,将“线类型”更改为“无”。

  2. 单击 sw_dep 绘图节点,您应该会看到下图:
    在这里插入图片描述
    如果您的图表看起来不是这样,请检查前面的步骤;你可能错过了什么。
    其他月份的模拟,只需要改变相应筛选日期就行。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值