一种基于CatBoost的灌溉量计算方法及系统与流程

文档序号:30422885发布日期:2022-06-15 13:53阅读:136来源:国知局
一种基于CatBoost的灌溉量计算方法及系统与流程
一种基于catboost的灌溉量计算方法及系统
技术领域
1.本技术涉及计算机技术领域,具体涉及一种基于catboost的灌溉量计算方法及系统。


背景技术:

2.我国水资源短缺,农业用水量占全国总水量的70%以上,但利用率在40%~50%,采用先进的灌溉技术解决农业灌溉用水的问题,合理科学地利用水资源,对提高农作物产量和缓解水资源危机有着重要意义。
3.随着物联网技术的发展和农业节水理论研究的深入,水肥灌溉正朝向精量化、智能化不断发展,在目前主流的灌溉决策方法中,主要采用基于土壤含水量或者基于光辐射的灌溉方法两种灌溉方式。土壤含水量灌溉方法主要是将土壤或基质持水量的80%设为灌溉下限,土壤或基质持水量的100%设为灌溉上限。基于光辐射的灌溉方法主要是基于太阳辐射建立灌溉控制模型,当太阳辐射积累到一定量时启动一次灌溉,灌溉量与光辐射成正比。然而作物的灌溉量受温度、平均湿度等气象因子以及土壤水分等综合因素的影响,现有技术无法根据不同作物不同生育期的在不同气候条件灵活计算灌溉量,使得要不算计算,手动不断调整参数,智能化水平低。
4.此外,作物蒸发蒸腾量是估算作物耗水量、制定灌溉制度、提高用水效率实现农业节水的重要参数,现有技术中应用彭曼公式计算作物蒸发蒸腾量的方法所需参数多,数据采集成本高,计算复杂。


技术实现要素:

5.本发明实施例的目的在于提供一种基于catboost的灌溉量计算方法及系统,综合考虑作物生长、气象因素、温室小气候、基质含水量等因素,建立了智能、全面灌溉决策方法。具体技术方案如下:
6.在本发明实施例的第一方面,提供一种基于catboost的灌溉量计算方法,步骤s110、获取设定时间步长的环境特征数据集以及环境特征数据集所对应的目标数据;步骤s120、根据环境特征数据集、目标数据以及catboost算法构建基于catboost的蒸发蒸腾量估算模型,分别以小时和天为步长部署模型;步骤s130、获取预设的目标灌溉参数;所述目标灌溉参数包括所述待灌溉作物的栽培模式和灌溉时段;所述栽培模式包括大田土壤栽培模式、设施土壤栽培模式以及设施无土栽培模式;步骤s140、获取待灌溉作物的图像数据,识别作物所在生育阶段;步骤s150、灌溉时段符合预设灌溉条件,根据所述栽培模式,获取相应时间步长的环境特征数据,输入训练好的所述基于catboost的蒸发蒸腾量估算模型,计算所述待灌溉作物的参考蒸发蒸腾量;步骤s160、根据所述参考蒸发蒸腾量,计算实际蒸发蒸腾量;步骤s170、根据所述生育阶段和所述实际蒸发蒸腾量,计算所述待灌溉作物的灌溉量;其中,所述灌溉量为上次灌溉时段与当前时段之间所述待灌溉作物的耗水量。可选地,所述步骤s110、根据设定的时间步长构造特征集,获取特征数据集及特征数据集所对应
的目标数据之前,还包括:步骤s100、获取历史环境数据,根据设定的时间步长构建环境训练数据集;对环境训练数据集进行预处理,构造设定时间步长的环境特征数据集。
7.可选地,所述步骤s120、根据环境特征数据集、目标数据以及catboost算法构建基于catboost的蒸发蒸腾量估算模型,包括:步骤s121,将所述环境特征数据集分为训练集、测试集以及验证集;步骤s122、对所述训练集进行预处理和向量化处理,获得特征向量;步骤s123,对所述目标数据进行预处理和向量化处理,获得目标向量;步骤s124、根据所述特征向量和所述目标向量对所述模型进行训练,获得训练后的模型;步骤s125、根据所述验证集对所述训练后的模型进行验证;步骤s126、根据所述测试集对所述训练后的模型的精度进行测试;步骤s127、保存所述模型。
8.可选地,所述步骤s150、根据所述栽培模式,获取相应时间步长的环境特征数据,包括:若所述栽培模式为所述大田土壤栽培模式或所述设施土壤栽培模式,则获取相应时间步长的平均温度、平均湿度和累积太阳辐射作为所述环境特征数据集;其中,时间步长为一日;若所述栽培模式为设施无土栽培模式,则获取相应时间步长的平均温度、平均湿度和累积太阳辐射作为所述环境特征数据集;其中,时间步长为一小时。
9.可选地,所述步骤s160、根据所述参考蒸发蒸腾量,计算实际蒸发蒸腾量,包括:步骤s161、根据所述参考蒸发蒸腾量,采用如下公式计算累积参考蒸发蒸腾量:
[0010][0011]
其中,在所述大田土壤栽培模式或所述设施土壤栽培模式下,et
0i
表示距上次灌溉期间,每日的参考蒸发蒸腾量;在所述设施无土栽培模式下,et
0i
表示距上次灌溉期间,每小时的参考蒸发蒸腾量;et0表示距离上次灌溉到本次灌溉启动时若干天或若干小时参考蒸发蒸腾量累积之和,即累积参考蒸发蒸腾量;步骤s162、通过图像识别技术识别所述作物所在生育阶段,根据作物系数数据库,获取作物系数;其中,所述作物系数数据库用于存储不同作物所在生育阶段的作物系数;步骤s163、根据所述作物系数和所述累积参考蒸发蒸腾量,采用如下公式计算所述实际蒸腾蒸发量:
[0012]
etc=kc×
et0[0013]
其中,etc表示实际蒸腾蒸发量,kc表示作物系数,et0表示累积参考蒸发蒸腾量。
[0014]
可选地,所述步骤s170、根据所述生育阶段和所述实际蒸发蒸腾量,计算所述待灌溉作物的灌溉量,包括:根据所述生育阶段和所述实际蒸发蒸腾量,采用如下公式计算所述灌溉量:
[0015][0016]
其中,w表示灌溉量,s表示实际生产面积,etc表示实际蒸腾蒸发量,η表示灌溉水利用系数,r表示降水量。
[0017]
可选地,所述步骤s170、根据所述生育阶段和所述实际蒸发蒸腾量,计算所述灌溉量之后,还包括:步骤s181、获取所述待灌溉作物的灌溉量系数;其中,首次灌溉的灌溉量系数为1;步骤s182、根据所述生育阶段,调整灌溉量系数;步骤s183、根据所述调整灌溉量系数和所述灌溉量,调整所述灌溉量。
[0018]
可选地,所述步骤s182、根据所述生育阶段,调整灌溉量系数,具体为:根据所述生
育阶段,预设排液比;获取所述待灌溉作物的实际排液量;根据所述实际排液量,计算实际排液比;若所述预设排液比与所述实际排液比之差大于预设阈值,则调整所述灌溉量系数。
[0019]
在本发明实施例的又一方面,提供一种基于catboost的灌溉量计算系统,数据集获取模块,根据设定的时间步长构造特征集,获取特征数据集及特征数据集所对应的目标数据;模型构建模块,用于根据特征数据集、目标数据以及catboost算法构建蒸发蒸腾量估算模型,将数据集分为训练集、测试集以及验证集,根据训练集对模型进行训练,获得训练后的模型;根据所述验证集对所述训练后的模型进行验证,根据所述测试集对所述训练后的模型精度进行检验,将以小时和天为步长的模型分别进行保存;基础参数设置模块,用于获取预设的目标灌溉参数;所述目标灌溉参数包括所述待灌溉作物的栽培模式和灌溉时段;所述栽培模式包括大田土壤栽培模式、设施土壤栽培模式以及设施无土栽培模式;图像识别模块,用于根据获取待灌溉作物的图像数据,识别作物所在生育阶段;参考蒸发蒸腾量计算模块,用于灌溉时段符合预设灌溉条件,根据栽培模式,获取相应时间步长的环境特征数据集并保存,调用模型构建模块的蒸发蒸腾量估算模型,将环境特征数据集输入,计算所述待灌溉作物的参考蒸发蒸腾量;实际蒸发蒸腾量计算模块,用于根据距离上次灌溉的时间和栽培模式,计算累积参考蒸发蒸腾量,再根据所述累积参考蒸发蒸腾量,计算实际蒸发蒸腾量;灌溉量计算模块,用于根据所述生育阶段和所述实际蒸发蒸腾量,计算所述灌溉量;其中,所述灌溉量为上次灌溉时段与当前时段之间所述待灌溉作物的耗水量。可选地,所述数据集获取模块,用于根据设定的时间步长构造特征集,获取特征数据集及特征数据集所对应的目标数据之前,还包括:数据预处理模块,获取历史环境数据,根据设定的时间步长构建环境训练数据集;对环境训练数据集进行预处理,构造设定时间步长的环境特征数据集。
[0020]
本技术提供的一种基于catboost的灌溉量计算方法及系统,步骤s110、获取设定时间步长的环境特征数据集以及环境特征数据集所对应的目标数据;步骤s120、根据环境特征数据集、目标数据以及catboost算法构建基于catboost的蒸发蒸腾量估算模型,分别以小时和天为步长部署模型;步骤s130、获取预设的目标灌溉参数;所述目标灌溉参数包括所述待灌溉作物的栽培模式和灌溉时段;所述栽培模式包括大田土壤栽培模式、设施土壤栽培模式以及设施无土栽培模式;步骤s140、获取待灌溉作物的图像数据,识别作物所在生育阶段;步骤s150、灌溉时段符合预设灌溉条件,根据所述栽培模式,获取相应时间步长的环境特征数据,输入训练好的所述基于catboost的蒸发蒸腾量估算模型,计算所述待灌溉作物的参考蒸发蒸腾量;步骤s160、根据所述参考蒸发蒸腾量,计算实际蒸发蒸腾量;步骤s170、根据所述生育阶段和所述实际蒸发蒸腾量,计算所述待灌溉作物的灌溉量;其中,所述灌溉量为上次灌溉时段与当前时段之间所述待灌溉作物的耗水量。由于基于catboost的蒸发蒸腾量估算模型所需参数少,估算精度高,因此提高了参考蒸发蒸腾量计算的效率和准确率;根据作物的不同栽培模式计算出实际蒸发蒸腾量;并且在不同生育期、不同气候条件下决策灌溉量,该方法简单易行,提高了灌溉量计算的准确率。
附图说明
[0021]
为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于
本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0022]
图1是本技术实施例提供的基于catboost的灌溉量计算方法的流程示意图;
[0023]
图2是本技术实施例提供的基于catboost的蒸发蒸腾量估算模型的结构图;
[0024]
图3是本技术实施例提供的基于catboost的灌溉量计算系统的结构示意图。
具体实施方式
[0025]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0026]
本技术实施例提供一种基于catboost的灌溉量计算方法及系统。
[0027]
其中,该基于catboost的灌溉量计算方法及系统具体可以集成在电子设备中,该电子设备可以为终端、服务器等设备。其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、或者个人电脑(personal computer,pc)等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。
[0028]
在一些实施例中,该基于catboost的灌溉量计算方法及系统还可以集成在多个电子设备中,比如,该基于catboost的灌溉量计算方法及系统可以集成在多个服务器中,由多个服务器来实现本技术的该基于catboost的灌溉量计算方法。
[0029]
可以理解的是,本实施例的该基于catboost的灌溉量计算方法及系统可以是在终端上执行的,也可以是在服务器上执行,还可以由终端和服务器共同执行的。以上举例不应理解为对本技术的限制。
[0030]
图1示出了本技术实施例提供的基于catboost的灌溉量计算方法的流程示意图,请参考图1,基于catboost的灌溉量计算方法包括如下步骤:
[0031]
步骤s110、获取设定时间步长的环境特征数据集以及环境特征数据集所对应的目标数据。
[0032]
在一种实施方式中,所述步骤s110、根据设定的时间步长构造特征集,获取特征数据集及特征数据集所对应的目标数据之前,还包括:
[0033]
步骤s100、获取历史环境数据,根据设定的时间步长构建环境训练数据集;对环境训练数据集进行预处理,构造设定时间步长的环境特征数据集。
[0034]
其中,可以通过温度传感器、湿度传感器、光辐射传感器、风速传感器、降雨传感器对环境数据采集并收集环境参数,并使用移动无线通信技术将数据上传到服务器,同时为了便于直观的感受区域点的实时环境状态图像信息,还可以应用usb camera对环境图像进行捕获并上传至服务器,服务器接收相关数据并存储,构建环境特征数据集。
[0035]
在本实施例中,环境参数可以包括环境平均温度、平均湿度、累积太阳辐射、风速、降雨等环境参数。
[0036]
需要说明的是,环境参数可以采用实时采样方式或等效时间采样方式获取,在此不做具体限定。
[0037]
步骤s120、根据环境特征数据集、目标数据以及catboost算法构建基于catboost
的蒸发蒸腾量估算模型,分别以小时和天为步长部署模型。
[0038]
在一种实施方式中,构建基于catboost的蒸发蒸腾量估算模型的具体步骤可以包括:
[0039]
步骤s121,将所述环境特征数据集分为训练集、测试集以及验证集。
[0040]
可选地,可以将环境特征数据集以2:1:1的比例划分成训练集、测试集以及验证集。
[0041]
步骤s122、对所述训练集进行预处理和向量化处理,获得特征向量。
[0042]
需要说明的是,训练集的预处理可以是剔除异常值、格式归一化等,在此不做具体限定。
[0043]
步骤s123,对所述目标数据进行预处理和向量化处理,获得目标向量。
[0044]
步骤s124、根据所述特征向量和所述目标向量对所述模型进行训练,获得训练后的模型。
[0045]
步骤s125、根据所述验证集对所述训练后的模型进行验证。
[0046]
步骤s126、根据所述测试集对所述训练后的模型的精度进行测试。
[0047]
步骤s127、保存所述模型。
[0048]
其中,catboost是一种新的梯度增强决策树(gbdt)算法,是以对称树为弱学习器,使用gbdt进行分类。梯度提升本质上是通过在特征空间中执行梯度下降来构建弱学习器,通过局部最优方式迭代加权组合弱学习器来构建强学习器。在下一实施例中将详细介绍基于catboost的蒸发蒸腾量估算模型的算法流程,这里不再赘述。
[0049]
步骤s130、获取预设的目标灌溉参数;所述目标灌溉参数包括所述待灌溉作物的栽培模式和灌溉时段;所述栽培模式包括大田土壤栽培模式、设施土壤栽培模式以及设施无土栽培模式。
[0050]
在一种实施方式中,待灌溉作物的栽培模式是设施土壤栽培模式或大田土壤栽培模式,灌溉时段可以预设为多个固定时长的时段,例如冬季每日上午9:00~11:00,下午2:00~4:00;夏季每日上午8:00~10:00,下午3:00~5:00,为允许灌溉时段,如果在此时段内,当次灌溉没有进行完毕,则可以自动顺延到下一个允许时段内继续进行灌溉。
[0051]
在另一种实施方式中,待灌溉作物的栽培模式是设施无土栽培模式,灌溉时段可以预设为多个固定时长的时段,例如日出后2个小时到日中时刻为第i阶段,称为灌饱阶段,日中到日落前2-4小时为第ii阶段,称为维持阶段,其他时刻为第iii阶段,称为控水阶段。
[0052]
步骤s140、获取待灌溉作物的图像数据,识别作物所在生育阶段。
[0053]
其中,待灌溉作物的图像数据可以是待灌溉作物的照片,例如可以通过摄像头拍摄待灌溉作物的图像数据,又例如可以利用图像采集技术,大范围采集待灌溉作物的图像数据。
[0054]
其中,可以采用alexnet、vgg或resnet深度学习模型根据作物长势识别图像数据,例如,当识别到待灌溉作物的花时,判定进入开花期,当识别到待灌溉作物的果实时,则判定进入结果期。
[0055]
在一种实施例中,上述待灌溉作物的生育阶段可以划分为初始生长期、生长发育中期以及成熟期;也可以划分为定植后至成株期前和成株期。
[0056]
步骤s150、灌溉时段符合预设灌溉条件,根据所述栽培模式,获取相应时间步长的
环境特征数据,输入训练好的所述基于catboost的蒸发蒸腾量估算模型,计算所述待灌溉作物的参考蒸发蒸腾量。
[0057]
可选地,若所述栽培模式为所述大田土壤栽培模式或所述设施土壤栽培模式,则获取相应时间步长的平均温度、平均湿度和累积太阳辐射作为所述环境特征数据集;其中,时间步长为一日。
[0058]
可选地,若所述栽培模式为设施无土栽培模式,则获取相应时间步长的平均温度、平均湿度和累积太阳辐射作为所述环境特征数据集;其中,时间步长为一小时。
[0059]
在一种实施方式中,预设灌溉条件可以是:待灌溉作物的栽培模式是大田土壤栽培模式或设施大田栽培模式,且当前时段处于允许灌溉时段。
[0060]
其中,预设灌溉条件还可以包括土壤水分含量是否达到阈值,天气是否是晴天。例如利用土壤水分传感器监测土壤水分含量变化,设置不同生育阶段灌溉开始的土壤相对含水量下限,当监测值达到下限时,下达启动灌溉命令。自动抓取气象网站天气预测数据资料,如果下达启动灌溉命令当天天气为晴天,则执行灌溉命令,如果当天天气为阴天,则灌溉命令自动顺延到次日执行。
[0061]
在又一种实施方式中,预设灌溉条件可以是:待灌溉作物的栽培模式是设施无土栽培模式,且当前时段处于允许灌溉时段。
[0062]
其中,预设灌溉条件还可以包括累积太阳辐射是否达到阈值。例如利用太阳辐射传感器监测太阳辐射,设置不同生育阶段灌溉开始的太阳辐射累积量上限,当监测值达到上限时,下达启动灌溉命令。
[0063]
需要说明的是,太阳辐射累积量上限可以预设为固定区间,例如每累积80-100j/cm2光照,灌溉1次,在此不做具体限定。
[0064]
步骤s160、根据所述参考蒸发蒸腾量,计算实际蒸发蒸腾量。
[0065]
在一种实施方式中,步骤s160具体包括以下步骤:
[0066]
步骤s161、根据所述参考蒸发蒸腾量,采用如下公式计算累积参考蒸发蒸腾量:
[0067][0068]
其中,在所述大田土壤栽培模式或所述设施土壤栽培模式下,et
0i
表示距上次灌溉期间,每日的参考蒸发蒸腾量;在所述设施无土栽培模式下,et
0i
表示距上次灌溉期间,每小时的参考蒸发蒸腾量;et0可以表示距离上次灌溉到本次灌溉启动时若干天或若干小时参考蒸发蒸腾量累积之和,即累积参考蒸发蒸腾量。
[0069]
步骤s162、通过图像识别技术识别所述作物所在生育阶段,根据作物系数数据库,获取作物系数;其中,所述作物系数数据库用于存储不同作物所在生育阶段的作物系数。
[0070]
其中,作物系数是在特定环境条件和作物下获取,不同环境条件或作物都会引起作物系数的变化。
[0071]
可选地,设施覆膜灌溉条件下,由于没有土壤蒸发,可以采用单作物系数法。单作物系数通过fao-56推荐的84种作物的标准作物系数(这块应该是建立相关数据库)查询得出。
[0072]
可选地,在大田生产中,可以采用双作物系数法。双作物系数可以在单作物系数基础上,根据以下公式计算得出:
[0073]
kc=ks×kcb
+ke[0074]
其中,ks表示水分胁迫系数,若处于有灌溉条件的正常生产区时,ks=1;k
cb
表示基础作物系数;ke表示土壤表面蒸发系数。
[0075]
可选地,可以通过下述公式计算ke值:
[0076]
ke=kr×
(k
cmax-kc)
[0077]
其中,k
cmax
表示简化为kc的上限值,取k
cini
,k
cmid
,k
cend
中的最大值,kc表示基础作物系数,kr表示土壤蒸发衰减系数。
[0078]
可选地,可以通过下述公式计算kr值:
[0079][0080]
其中,rew表示土壤表层可通过蒸发损失水分的深度,设施生产取100mm,大田生产取200mm,d表示距离最近一次灌溉的时间间隔,tew表示当前地块的土壤可以被蒸发的总水量。
[0081]
可选地,tew由下述公式计算得出:
[0082]
tew=1000
×

fc-θ
wp
)
×
rew
[0083]
θ
fc
:当前地块的田间持水量(%);θ
wp
:当前地块的萎蔫系数(%)。
[0084]
步骤s163、根据所述作物系数和所述累积参考蒸发蒸腾量,采用如下公式计算所述实际蒸腾蒸发量:
[0085]
etc=kc×
et0[0086]
其中,etc表示实际蒸腾蒸发量,kc表示作物系数,et0表示累积参考蒸发蒸腾量。
[0087]
步骤s170、根据所述生育阶段和所述实际蒸发蒸腾量,计算所述待灌溉作物的灌溉量;其中,所述灌溉量为上次灌溉时段与当前时段之间所述待灌溉作物的耗水量。
[0088]
在一种实施方式中,根据所述生育阶段和所述实际蒸发蒸腾量,采用如下公式计算所述灌溉量:
[0089][0090]
其中,w表示灌溉量,s表示实际生产面积,etc表示实际蒸腾蒸发量,η表示灌溉水利用系数,r表示降水量。
[0091]
可选地,采用下述公式计算灌溉水利用系数η值:
[0092]
η=irn/(ir
g-lr)
[0093]
其中,irg表示毛灌溉用水量;irn表示净有效灌溉水量;lr表示额外灌溉水量。
[0094]
需要说明的是,可以采用雨量器、天气雷达技术直接观测降水量;也可以采用卫星遥感观测技术间接推断降水量,在此不做具体限定。
[0095]
在又一种实施方式中,所述步骤s170、根据所述生育阶段和所述实际蒸发蒸腾量,计算所述灌溉量之后,还可以包括如下步骤:
[0096]
步骤s181、获取所述待灌溉作物的灌溉量系数;其中,首次灌溉的灌溉量系数为1。
[0097]
步骤s182、根据所述生育阶段,调整灌溉量系数。
[0098]
可选地,根据所述生育阶段,预设排液比。
[0099]
获取所述待灌溉作物的实际排液量。
[0100]
根据所述实际排液量,计算实际排液比。
[0101]
若所述预设排液比与所述实际排液比之差大于预设阈值,则调整所述灌溉量系数。
[0102]
步骤s183、根据所述调整灌溉量系数和所述灌溉量,调整所述灌溉量。
[0103]
可选地,利用如下公式调整灌溉量:
[0104]
w'=β*w
[0105]
其中,w'是调整灌溉量,w表示灌溉量,即上次灌溉时段与当前时段之间的耗水量,β为灌溉量系数,利用如下公式计算灌溉量系数:
[0106]
β=1+rfb
c-rfb0[0107]
其中,rfb0表示预设排液比,rfbc表示实际排液比。
[0108]
可选地,根据所述生育阶段,预设排液比;利用流量计获取所述待灌溉作物的实际排液量,根据监测到的灌溉量,计算出排液比(排液比=实际排液量/灌溉量);根据所述实际排液量,计算实际排液比;若所述预设排液比与所述实际排液比之差大于预设阈值,则调整灌溉量系数。例如预设阈值是10%,预设排液比是40%,实际排液比是25%,预设排液比与实际排液比之差为15%,大于预设阈值,则调整灌溉量系数。
[0109]
可选地,预设灌溉周期,根据当前灌溉周期的灌溉速率、当前灌溉周期的实际排液量比及所述预设排液比调整灌溉量系数。
[0110]
可选地,作物的适宜的实际排液比受天气、生育阶段因素影响。例如处于成株期的作物,晴天时实际排液比为25%-30%,阴天实际排液比为10%-15%。
[0111]
下面将对本技术实施例中基于catboost的蒸发蒸腾量估算模型的训练过程进行说明,通过基于catboost的蒸发蒸腾量估算模型计算待灌溉作物的参考蒸发蒸腾量,是为了减少参与计算参数的同时,提高估算精度。
[0112]
图2是本技术实施例提供的基于catboost的蒸发蒸腾量估算模型的结构图,基于catboost的蒸发蒸腾量估算模型的算法流程包括以下步骤:
[0113]
1.获取作物所在区域的历史环境参数数据,将历史环境参数数据划分为训练集、测试集以及验证集三部分,作为基于catboost的蒸发蒸腾量估算模型的输入数据;将参考蒸发蒸腾量数据作为基于catboost的蒸发蒸腾量估算模型的目标数据。
[0114]
可选地,可以根据栽培模式选用历史环境参数数据。例如栽培模式为大田栽培模式,可选用基于日均温度、日均湿度、每日累积总辐射、每日风速以及降雨量数据作为模型输入数据;当栽培模式为设施土壤栽培模式,可选用日均温度、日均湿度以及每日累积总辐射数据作为模型输入数据;当栽培模式为设施基质栽培模式,可选用小时均温、小时平均湿度以及小时累积辐射数据作为模型输入数据。
[0115]
2.对训练集进行预处理,得到特征向量;对目标数据进行预处理,获得目标向量。
[0116]
3.根据所述特征向量以及所述目标向量,构建对称的第一cart决策树(classification and regression tree)。
[0117]
4.根据所述特征向量以及所述目标向量,采用有序增强模式以及梯度提升决策树算法构建对称的第二cart决策树。
[0118]
5.根据基尼指数,迭代划分所述第一cart决策树和所述第二cart决策树的根节点;
[0119]
6.若所述第一cart决策树和所述第二cart决策树中的特征向量和目标向量的基尼指数小于预设阈值,则停止迭代,获得训练好的蒸发蒸腾量估算模型。
[0120]
可选地,模型训练过程中的损失函数可以由均方误差mse确定。
[0121]
可选地,模型训练过程中可以根据模型评价指标,调整树的深度、树的最大数量与迭代次数。
[0122]
7.将验证集输入训练好的基于catboost的蒸发蒸腾量估算模型中,对该模型进行验证。
[0123]
8.将测试集输入训练好的基于catboost的蒸发蒸腾量估算模型中,输出预测的参考作物蒸发蒸腾量数据。
[0124]
可选地,在监测气象数据比较充足条件下,可以通过该模型对测试集的预报误差进行精度检验。
[0125]
9.保存该模型。
[0126]
在一种实施方式中,可以利用tensorflow封装基于catboost的蒸发蒸腾量估算模型,并使用其中的方法tf.train.saver.save()保存该模型,同时指定输出数据的保存路径,例如可以将训练结果保存至本地数据库中。
[0127]
为实现上述方法类实施例,本实施例还提供一种基于catboost的灌溉量计算系统,图3示出了本技术实施例提供的基于catboost的灌溉量计算系统的结构示意图,所述系统包括:
[0128]
数据集获取模块310,根据设定的时间步长构造特征集,获取特征数据集及特征数据集所对应的目标数据;
[0129]
模型构建模块320,用于根据特征数据集、目标数据以及catboost算法构建蒸发蒸腾量估算模型,将数据集分为训练集、测试集以及验证集,根据训练集对模型进行训练,获得训练后的模型;根据所述验证集对所述训练后的模型进行验证,根据所述测试集对所述训练后的模型精度进行检验,,将以小时和天为步长的模型分别进行保存;
[0130]
基础参数设置模块330,用于获取预设的目标灌溉参数;所述目标灌溉参数包括所述待灌溉作物的栽培模式和灌溉时段;所述栽培模式包括大田土壤栽培模式、设施土壤栽培模式以及设施无土栽培模式;
[0131]
图像识别模块340,用于根据获取待灌溉作物的图像数据,识别作物所在生育阶段;
[0132]
参考蒸发蒸腾量计算模块350,用于灌溉时段符合预设灌溉条件,根据栽培模式,获取相应时间步长的环境特征数据集并保存,调用模型构建模块的蒸发蒸腾量估算模型,将环境特征数据集输入,计算所述待灌溉作物的参考蒸发蒸腾量;
[0133]
实际蒸发蒸腾量计算模块360,用于根据距离上次灌溉的时间和栽培模式,计算累积参考蒸发蒸腾量,再根据所述累积参考蒸发蒸腾量,计算实际蒸发蒸腾量;
[0134]
灌溉量计算模块370,用于根据所述生育阶段和所述实际蒸发蒸腾量,计算所述灌溉量;其中,所述灌溉量为上次灌溉时段与当前时段之间所述待灌溉作物的耗水量。
[0135]
可选地,所述数据集获取模块,用于根据设定的时间步长构造特征集,获取特征数据集及特征数据集所对应的目标数据之前,还包括:
[0136]
数据预处理模块300,获取历史环境数据,根据设定的时间步长构建环境训练数据
集;对环境训练数据集进行预处理,构造设定时间步长的环境特征数据集。
[0137]
在一种实施方式中,可以在web服务器端或者施肥机控制器中利用tensorflow保存基于catboost的蒸发蒸腾量估算模型的输出数据,例如使用tf.train.saver.save()方法保存模型,同时指定训练结果的保存路径,例如可以将训练结果保存至本地数据库中。
[0138]
可选地,可以通过web中或者施肥机控制器中的程序中的参考蒸发蒸腾量计算模块350计算参考蒸发蒸腾量。
[0139]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置中模块/单元/子单元/组件的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0140]
综上所述,本技术提供的一种基于catboost的灌溉量计算方法及系统,获取待灌溉作物的图像数据和当前环境参数;获取目标灌溉参数;所述目标灌溉参数包括所述待灌溉作物的栽培模式和灌溉时段;根据所述图像数据,识别所述待灌溉作物的生育阶段;若所述栽培模式和灌溉时段符合预设灌溉条件,则将所述当前环境参数输入基于catboost的蒸发蒸腾量估算模型,计算所述待灌溉作物的参考蒸发蒸腾量;根据所述参考蒸发蒸腾量,计算实际蒸发蒸腾量;根据所述生育阶段和所述实际蒸发蒸腾量,计算所述灌溉量;其中,所述灌溉量为上次灌溉时段与当前时段之间所述待灌溉作物的耗水量。由于基于catboost的蒸发蒸腾量估算模型所需参数少,估算精度高,因此提高了参考蒸发蒸腾量计算的效率和准确率;根据作物的不同栽培模式计算出实际蒸发蒸腾量;并且在不同生育期、不同气候条件下决策灌溉量,该方法简单易行,提高了灌溉量计算的准确率。
[0141]
在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0142]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0143]
另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0144]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0145]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0146]
最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的精神和范围。都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1