WOFOST模型经典输入与替换
2026/5/8 8:50:24 网站建设 项目流程

“参数 + 天气 + 农事 → 交给 ParameterProvider → 选模型 → run_till_terminate() → get_output() → DataFrame”

四类数据分别怎么来

类别代码里变量名文件格式 / 来源读取类一句话备注
作物参数cropd.crop(CABO) 或.yml(YAML)CABOFileReaderYAMLCropDataProvider官方.crop在 WOFOST Control Centre;YAML 例程见 ajwdewit/WOFOST_crop_parameters
土壤参数soild.soil(CABO) 或.jsonCABOFileReader同一下载包,ec3.soil = “medium fine sand”
站点sited代码字典WOFOST72SiteDataProvider(WAV=10, CO2=360, LAT=..., LON=...)WAV 是最关键字段:初始土壤含水量 mm
农事管理agromanagement.agro(YAML)YAMLAgroManagementReader指定播/收日期、最大持续天数、灌溉事件等
逐日天气weatherdataprovider.xlsx/.csv/ NASA-POWER 在线ExcelWeatherDataProvider/CSVWeatherDataProvider/NASAPowerWeatherDataProvider列名必须含 DAY、IRRAD、TMIN、TMAX、VAP、WIND、RAIN

模型怎么选(import 哪一行)

生产级别对应类说明
潜在生产 PotentialWofost72_PP不缺水、不缺氧、无病虫害,上限产量
水分限制 Water-limitedWofost72_WLP_CWB加入土壤水平衡,可配灌溉,最常用的“实际产量”
氮素限制 Nutrient-limitedWofost72_WLP_NWB需要土壤氮素参数文件,再做施肥情景

最小可运行模板
from pathlib import Path
from pcse.input import CABOFileReader, YAMLAgroManagementReader
from pcse.util import WOFOST72SiteDataProvider
from pcse.base import ParameterProvider
from pcse.models import Wofost72_WLP_CWB # 水分限制
from pcse.db import NASAPowerWeatherDataProvider
import pandas as pd

d = Path(“data”) # 1. 改这里
cropd = CABOFileReader(d / “crop” / “SUG0601.crop”)
soild = CABOFileReader(d / “soil” / “ec3.soil”)
sited = WOFOST72SiteDataProvider(WAV=10, CO2=360, LAT=52.0, LON=5.2)
params = ParameterProvider(cropdata=cropd, soildata=soild, sitedata=sited)

agro = YAMLAgroManagementReader(d / “agro” / “sugarbeet_calendar.agro”)
weather = NASAPowerWeatherDataProvider(latitude=52.0, longitude=5.2, year=2020)

wofost = Wofost72_WLP_CWB(params, weather, agro)
wofost.run_till_terminate()
df = pd.DataFrame(wofost.get_output()).set_index(“day”)
df.to_csv(“sugarbeet_wlp.csv”)

快速换自己的数据
**换作物:**把 SUG0601.crop 换成你自己的 .crop 或 .yml,并在 YAML 管理文件里同步 crop_name
**换土壤:**换 ec3.soil 即可,WAV 初始值可在 sited 里再微调
换气象:
– 本地 Excel → ExcelWeatherDataProvider(“nl1.xlsx”)
– 本地 CSV → CSVWeatherDataProvider(“meteo.csv”)
– 在线 NASA → NASAPowerWeatherDataProvider(lat, lon, year)
**换播期:**直接改 .agro 文件里的 crop_start_date / emergence_date / harvest_date

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询