2.6 KiB
2.6 KiB
name, description
| name | description |
|---|---|
| hydro-forecast |
1 运行环境说明
-
在Julia中运行
-
在julia中首先加载包,
using HydroTools -
若没有包加载出错,则安装之,
using Pkg; Pkg.add("HydroTools")
说明
先不要立即执行该skills,提醒用户输入的数据的格式。用户需要整理好的数据路径即可。
model模型选择
- MarrMot
- XAJ
- TCN
- LSTM
- KAN
如果复杂、参数比较多的模型:要求用户输入模型参数json文件。
按照如下示例
{
"clumping_index": 0.62,
"LAI_max_o": 4.5,
"LAI_max_u": 2.4,
"z00": 1.33,
"mass_overstory": 35,
"mass_understory": 10,
"root_depth": 0.6,
"α_canopy_vis": 0.035,
"α_canopy_nir": 0.23,
"r_root_decay": 0.95,
"minimum_stomatal_resistance": 150,
"z_canopy_o": 20,
"z_canopy_u": 3,
"g1_w": 8,
"VCmax25": 62.5,
"leaf_resp_co": 0.0015,
"stem_resp_co": 0.0020,
"root_resp_co": 0.0020,
"fine_root_resp_co": 0.003,
"N_leaf": 4.45,
"slope_Vc": 0.33152
}
1.1 任务说明
1.1.1 framework:
function hydro_forecast(f; model, outdir)
res = ...
fwrite(res.output, ...)
fwrite(res.gof, ...)
fwrite(res.info_flood, ...)
fwrite(res.dat_flood, ...)
fwrite(res.evaluation, ...)
end
function hydro_forecast(X::AbstractArray, Y::AbstractArray; model::Function, outdir = "OUTPUT")
mkpath(outdir)
res; # return a NamedTuple
end
输入:X, Y, model
输出:Qsim, GOF, Pass_rate
output: 三类数据集的输出,A DataFrame with columns ofdate,Qsim,gof: 三类数据的拟合优度info_flood: 洪水场次信息,id,time_beg,time_end,duration,Q_peak,Q_mindat_flood:洪水场次的驱动数据,evaluation: 每个洪水场次上的模拟优度, csv
绘图:
- 交给他绘图的函数,数据
总结:
evaluation总结模型预报精度 (AI执行)
内部模块设计:
-
flood_division: 采用R语言,划分洪水场次 -
划分数据集:train, test, valid -
loss: 根据拟合优度指标去设计loss,例如KGE, NSE, RMSE,注意loss越小越优。根据loss去优选模型参数。 -
evaluation: 在三种数据集,train, test, valid。每个洪水场次的洪峰、峰现时间合格率。
1.1.2 model:水文模型、LSTM、TCN、KAN
Ysim = Model(X, Y; params, state) # Lux的设计哲学
1.1.3 文件保存
文件保存采用Julia包DataFrames,RTableTools
using RTableTools
fwrite(df, "out.csv") # df is a DataFrame