平平淡淡说的应该是心境,而不是我们自甘平庸的借口。
图1. AquaCrop-OSPy模型气象数据需求
图2. SoilClass类的定义
图3. SoilClass类中对Clay土壤默认属性的定义
图4. 指定土壤属性为土壤SandLoam的默认属性
图5. CropClass类的定义
图6. 作物参数重新指定
图7. 田间管理类的定义
图8. 田间管理属性设置
图9. 初始水分条件类的定义
图10. 地下水类的定义
图11. 灌溉管理类的定义
文章目录
前言
此系列博文的目的是学习AquaCrop-OSPy作物模型的基本使用。
1. 概述
1.1 目的
- 学习AquaCrop-OSPy的输入设置
2. 版本
2.1 山东青岛,2021年12月12日,Version1
3. 微信公众号GISRSGeography
- 欢迎大家关注公众号 GISRSGeography,谢谢!。
一、输入设置
与界面版不同,AquaCrop-OSPy在设计时,对于气象数据采用从外部文件读取的方式输入模型,但对于土壤属性数据、作物参数数据等,AquaCrop-OSPy模型通过classes类中的对应子类进行设置,而不是从外部文件读入。
1. 气象数据
- AquaCrop-OSPy模型从外部文件读取气象数据,需要的气象数据内容包括:最低温、最高温、降水和参考蒸散发(图1)。
2. 土壤属性数据
- 与界面版本不同,AquaCrop-OSPy模型不再将土壤属性数据作为外部文件读取,而是通过SoilClass函数指定土壤属性。
- AquaCrop-OSPy模型在设计时,在SoilClass类中已经预定义了AquaCrop作物模型运行时所需要的土壤组分特征和土壤水力特性的默认值。SoilClass类的源码可以在classes里查找到(图2)。在SoilClass类中对FAO中指定的十二个土壤质地类别的默认土壤属性进行了预定义(图3),因此,最简单的制定土壤属性的方式就是在知道模拟站点所属的土壤质地类别后,通过土壤质地类别,获取该类别默认的土壤属性(图4)。
3. 作物参数数据
- 与土壤属性数据类似,AquaCrop-OSPy模型通过CropClass类定义了多种作物的默认参数(图5),包括玉米、小麦、土豆和水稻等。当针对特定模拟站点进行作物模拟时,可以通过CropClass类,指定和本地作物品种相对应的作物参数(图6)。
4. 田间管理
- AquaCrop-OSPy模型通过FieldMngtClass类定义了默认的田间管理参数(图7),可以通过调用FieldMngtClass类对默认参数进行修改(图8)。
5. 初始含水量和地下水参数设置
- AquaCrop-OSPy模型通过InitWCClass类定义土壤的初始含水条件(图9),通过调用GwClass类对地下水位的参数进行设置(图10)。可以通过调用上述两个类函数实现对特定模拟站点初始水条件和地下水参数进行针对性修改。
6. 灌溉管理参数设置
- AquaCrop-OSPy模型通过IrrMngtClass类对田间管理中和灌溉相关的措施进行设置(图11)。
二、小结
- AquaCrop-OSPy与界面版本对于模型输入的一个很大不同是,除了气象数据从外部的文本文件读取之外,其余的模型输入,均在classes类中进行了预定义,如需改动,则需要调用classes类下的子类对需要改动的参数进行修改。
三、参考资料
[1] Kelly, T. D.; Foster, T. (2021): AquaCrop-OSPy:Bridging the gap between research and practice in crop-water modeling. InAgricultural Water Management 254, p. 106976.
[2] AquaCrop_OSPy_Notebook_1
[3] AquaCrop_OSPy的classes类的源码