《SoftwareX》:PI-Advisor: Precision irrigation decision support with farmer-in-the-loop control
编辑推荐:
有效的灌溉管理对于提高农业水分生产力至关重要,尤其是在干旱地区。尽管CROPWAT和AquaCrop是经过科学验证的成熟工具,但它们缺乏实时互联网连接、多区域时空分析能力以及农民反馈的整合功能。PI-Advisor是一个基于Python和Streamlit开发
有效的灌溉管理对于提高农业水分生产力至关重要,尤其是在干旱地区。尽管CROPWAT和AquaCrop是经过科学验证的成熟工具,但它们缺乏实时互联网连接、多区域时空分析能力以及农民反馈的整合功能。PI-Advisor是一个基于Python和Streamlit开发的开源云端灌溉决策支持系统,旨在解决这些局限性。该系统应用FAO-56双作物系数法(dual crop coefficient method)和Penman-Monteith参考蒸散发(reference evapotranspiration)方程,估算多个土壤-作物组合区域的每日土壤水平衡。系统从天气预报服务或用户提供的气象站文件中获取天气数据,并自动对土壤和作物矢量文件进行空间叠加,生成针对特定区域的灌溉方案。所有项目数据均作为Google Earth Engine资产进行版本化存储。系统的关键特色是引入了农民参与式决策机制(farmer-in-the-loop decision system),使用户能够接受、拒绝或修改单个灌溉建议,从而使模型能够根据实际田间条件进行重新校准。计算引擎复现了已发表的FAO-56标准算例,与两个独立的开源实现高度一致(r = 0.9996),并经过了23年半干旱气候条件下FAO参考数据的外部验证(Nash–Sutcliffe效率系数 = 0.97),季节性作物用水量估计值与AquaCrop的误差约为1%。
一、研究背景与现存问题
全球约70%的淡水抽取用于灌溉农业,其提供了世界40%的食物供应。在许多发展中国家,灌溉调度主要依赖经验知识,常导致过度灌溉(引发渍涝、能耗增加和养分淋失)或灌溉不足(造成减产)。联合国粮农组织(FAO)一直倡导基于科学的灌溉管理实践,如FAO-56指南所述。然而,推荐技术与可实施的操作工具之间存在显著差距,成为推广的主要障碍。
现有工具存在诸多局限:CROPWAT是最广泛采用的软件,但仅支持单作物分析、需手动输入数据,缺乏实时或空间分析能力;AquaCrop虽具备有效的作物生长模型,同样缺乏网络化、多区域和实时功能;IrriSAT、DSSAT及CropWaterBalance R包等工具的灌溉规划能力有限,未能全面支持网络化或空间分析。CROPWAT和AquaCrop作为单点建模标准,仅限于桌面端和单一田块分析,缺乏空间集成、实时预报和决策记录功能。IrriSAT可实现基于卫星的调度,但具有区域特异性且闭源,而CropWaterBalance R包缺乏图形界面和数据持久化能力。
因此,研究人员开发了PI-Advisor,旨在将上述方法统一为一个开源、多区域、云端化且允许农民交互的工作流程。量化效益在案例研究中得到展示:在一次会话中配置和调度12种土壤-作物组合,计算时间不足0.2秒,而相同分析若使用CROPWAT则需要12次独立运行并手动输入气象数据。
二、研究方法与技术路线
PI-Advisor是一个基于Streamlit框架v1.35+开发的先进Web应用程序,采用Python 3.12实现,部署于Streamlit Community Cloud作为单页应用。系统架构包含三个层次:数据层利用Google Earth Engine(GEE)实现持久化云存储,通过Meteoblue应用程序编程接口(API)或现场气象站数据获取天气信息,并由用户上传ESRI矢量文件定义空间区域;计算层运行FAO-56 Penman-Monteith(PM)参考蒸散发(ETo)模型,确定双作物系数,并使用Numba即时编译(JIT)编译器加速计算每日土壤水平衡(WB);呈现层采用Streamlit控件、Folium交互地图、Plotly图表和HTML/CSS日历。天气数据获取有两种途径:连接Meteoblue天气API获取每日最高最低温度、降雨量和平均风速的预报数据,或采用Hargreaves方法利用日最高最低温度计算太阳辐射。气象数据可通过CSV或JSON格式上传,经质量保证处理后序列化为orjson格式再上传至GEE资产。系统内置29种作物的数据库,每种作物包含四个生长阶段、三个基础作物系数(Kcb)值和株高,用户也可自定义作物。
三、研究结果
3.1 天气数据获取
软件通过两种主要方式获取天气数据:一是连接Meteoblue天气API,提供每日最高温(Tmax)、最低温(Tmin)、降雨量和平均风速的预报数据;二是应用Hargreaves方法,利用日最高和最低温度计算每日太阳辐射(Rs = 0.16 * √(Tmax - Tmin) * Ra,其中Ra为地外辐射)。气象数据可上传CSV或JSON格式,历史数据保持原样,未来参考数据被移除。
3.2 空间区域管理与作物库
系统要求加载土壤区域矢量文件和作物区域矢量文件,包含九种FAO质地分类及预定义的易蒸发水量和总蒸发水量值。通过geopandas.overlay()执行空间叠加,生成唯一的土壤-作物组合,并为每个组合独立计算水平衡(WB)。
3.3 蒸散发与水平衡计算
参考蒸散发(ETo)通过FAO-56 Penman-Monteith公式计算:ETo = [0.408Δ(Rn - G) + γ(900/(T+273))u2(es - ea)] / [Δ + γ(1 + 0.34u2)],其中Δ为饱和水汽压曲线斜率,Rn为净辐射,γ为湿度计常数,Tavg为日均温度,u2为2米高处风速,es为饱和水汽压,ea为实际水汽压。大气压力由海拔估算:P = 101.3 * [(293 - 0.0065h)/293]5.26。作物蒸散发(ETc)采用FAO-56双作物系数法确定:ETc = (Kcb + Ke) * ETo。
四、讨论与结论
PI-Advisor通过三大核心特性解决了现有工具的关键空白:第一,基于空间和时间数据的多区域灌溉调度,自动对不同土壤区域与作物区域的矢量文件进行空间叠加,生成独立水平衡(WB);第二,引入农民参与式决策系统,使用户可以批准、拒绝或修改模型生成的灌溉处方,并根据实际田间条件重新计算或调整土壤水平衡(WB);第三,支持云端环境下的项目管理,利用存储在GEE资产中的气象记录和灌溉决策数据,确保跨会话和跨用户的项目连续性,无需本地数据库管理。
计算引擎复现了已发表的FAO-56标准算例,与两个独立开源实现高度一致(相关系数r = 0.9996),并经过23年半干旱气候条件下FAO参考数据的外部验证(Nash-Sutcliffe效率系数 = 0.97),季节性作物用水量估计值与AquaCrop的误差约为1%。