作物模型计算服务简介
1. 起始
本项目以 ChinaAgrosys 为起始,最初的想法是将 ChinaAgrosys PC 版程序移植到 linux 系统下,并改为 WebApp 的形式,使得用户可以直接使用浏览器界面设置计算任务并执行计算。 同时,提供基础气象数据驱动,使得用户可以省去搜集和转换数据格式的操作。 此外,对于模型计算结果,提供基础的数据图标显示和查询功能。
2. 扩展
以同样的方式将其他开源模型转换为 WebApp,使得多个模型可供用户选择调用。
此外,重点需要增加的两个功能是 模型参数调优 和 模拟结果分析。
3. 功能设计
3.1 计算任务功能
计算任务 即用户根据自己的需要设定计算内容、提交计算、查看结果。
用户需要设定的计算内容主要包括:
- 计算任务名称(自定义)
- 计算模型(选项)
- 模型参数(填写、选项、模板编辑等)
计算任务设定后可以保存、修改、提交、复制、删除、查看:
-
保存即保存用户设定的计算任务所包括的全部内容。
-
修改的对象是对计算任务设定的模型参数,包括时空范围、作物和土壤类型参数、种植管理参数等。
-
提交即将设定的计算任务提交给服务端进行计算。 提交后显示计算状态,计算完成后显示计算耗时。如果计算错误,给出错误提示信息,帮助用户诊断问题,比如模型参数设定可能有问题。
-
复制是指可以将已经设定好的计算任务配置完全复制到一个新的任务里。 在新复制的任务中修改配置,然后进行计算,就可以方便的对比不同配置的计算结果。 在这种使用情境下,复制是非常好用的。
-
删除即删除对应的计算任务,包括配置信息和计算结果(如果已经计算)。
-
查看即连接到该任务的计算结果显示页(如果已经计算)。
3.2 模型功能
ChinaAgrosys 模型的主要功能包括:
- 计算时间和空间范围的设定
- 作物类型和参数的设定
- 土壤类型和参数的设定
- 种植管理措施参数的设定
其他模型的设定内容同样可以归结为类似上述的 4 类,但稍微扩展或通用一些:
- 通用设定:时间、空间范围,以及模拟情景、二氧化碳水平等大气环境因素
- 作物设定:作物品种和各项参数
- 土壤水文设定:土壤和水文环境因素
- 种植管理设定:灌溉和施肥
不同模型的差异主要在于:
- 各自的目的、侧重点、机理有所不同
- 各自所带的作物品种、参数内容、命名和格式等没有统一规范,差别较大
- 其他相应参数的内容有所差异
- 输出结果的内容和命名有所差异
3.3 参数调节功能
主要引入采用 Gauss-Marquardt-Levenberg 算法的 PEST 软件对作物模型参数进行调节。
参数调节功能的详细设计有待确定。
3.4 结果分析功能
站点的模型计算结果包括日值和年值两类。
日值结果的展示方式包括表格和曲线图两种。表格可以进行排序和分页,曲线图可以进行要素条目的增减。
年值结果的的展示方式包括表格和空间分析两种。空间分析功能提供要素、时间和空间范围的设定、插值方式的设定、显示格式的设定(图片或者在线地图)。
当前页面设计仅提供对结果的初级展示和分析功能。用户如果要进行个性化或深层的分析,可以将数据下载到本地然后根据个人需要进行分析。
后续将根据需要增加更多通用的结果分析功能。
4. 软件开发方案
-
前端:Bootstrap 框架 + leaflet WebGIS 库 + HighChart 图表库
-
后端:Python 及 Tornado Web 框架、sqlalchemy ORM 框架
-
数据库:sqlite / MySQL
-
操作系统:Linux / Windows
-
模型编译:gfortran
5. 贡献者
- 许守华:ChinaAgrosys 模型源程序、PC版界面程序、数据样例、说明文档
- 何亮:WOFOST 模型源程序、PC版界面程序、数据样例、计算脚本程序
- 马海姣:DSSAT 模型源程序和非界面计算方式说明文档、PEST 对 DSSAT 参数调节的计算个例说明文档