当前位置: 首页 > news >正文

淄博网站制作设计高端杨浦区公司网站建设

淄博网站制作设计高端,杨浦区公司网站建设,做网站输入文本框做下拉,优化企业门户网站去B吧,这里没图 整体思路:PCSE -》 敏感性分析 -》调参 -》同化 0、准备工作 0.0 电脑环境 我用的Win10啦,Linux、Mac可能得自己再去微调一下。 0.1 Python IDE 我用的Pycharm,个人感觉最好使的IDE,没有之一。 …

去B吧,这里没图

整体思路:PCSE -》 敏感性分析 -》调参 -》同化

0、准备工作

0.0 电脑环境

我用的Win10啦,Linux、Mac可能得自己再去微调一下。

0.1 Python IDE

我用的Pycharm,个人感觉最好使的IDE,没有之一。

Python 解释器随便装个咯,我用的 Python 3.10 版本。

对于 Python,我其实也是个小白,只会写些小脚本,哈哈哈哈哈。

1、核心依赖包

1.1 PCSE

Wofost 模型Python版本

1.2 SALib

敏感性分析用的包

1.3 SPOTPY

参数优化包,算法很多,我用的SA

2、编码思路

2.1 敏感性分析

目标变量 地上部生物量:TAGP;最大叶面积指数:LAIMAX;器官重:TWSO;
target_variable = run_details.target_variable

敏感度分析方法 efast; sobol

sa_method = run_details.sa_method

模型类别 限水:WLP; 潜在:PP

run_type = run_details.run_type

模型类别 作物:crop; 作物&水:cropAndWater

params_type = run_details.params_type

为每个标量参数确定一个合理的区间

problems_parameters = pd.read_excel(params_dir / f"sensitivity_analysis_parameters_{params_type}.xlsx")
problem = {
‘num_vars’: len(problems_parameters),
‘names’: problems_parameters[‘name’].tolist(),
‘bounds’: problems_parameters[[‘low’, ‘up’]].values.tolist()
}

随机数种子

seed = 2000

二阶

calc_second_order = True

样本数

nsamples = 256
print(“\n================ 参数抽样开始 ================\n”)
st = datetime.datetime.now().timestamp()

生成抽样参数集

paramsets = None

efast

nsamples = 65 * len(problems_parameters)
paramsets = fast_sampler.sample(problem, nsamples, seed=seed)

保存参数集

paramsets_df = pd.DataFrame(paramsets)
paramsets_df.columns = problem[‘names’]
et = datetime.datetime.now().timestamp()
print(f"\n================ 生成参数集结束 {et-st}s ================\n")

开并行狂奔

target_results = []
with tqdm(total=len(paramsets)) as pbar:
# cpu核数进程池
with mp.Pool(mp.cpu_count()) as pool:
# 并行执行
for result in pool.imap(run_wofost_partial, paramsets):
target_results.append(result)
pbar.update()

et = datetime.datetime.now().timestamp()
print(f"\n================ 执行模拟结束 {et-st}s ================\n")

敏感性分析

Si = fast.analyze(problem, target_results, seed=seed)

2.2 调参

话不多说,直接模拟退火

初始值用的参数默认值,然后上下波动优化

初始化代价函数计算器

objfunc_calculator = ObjectiveFunctionCalculator()

待优化参数边界

lowers, uppers, steps, defaults = [], [], [], []
defaults = [22.8, 0.00406, 525, 962, 24.64, 0.455]
for key, default, fluctuate in tuning_parameters:
lowers.append(default * (1 - fluctuate))
uppers.append(default * (1 + fluctuate))
steps.append(default * 2 * fluctuate / step_times)

参数初始位置

firstguess = defaults
sa = SA(func=objfunc_calculator, x0=firstguess, T_max=100, T_min=1e-7, L=1000, max_stay_counter=5, lb=lowers, ub=uppers)
best_x, best_y = sa.run()

2.3 数据同化

这里用的ENKF同化叶面积指数。

定义观测数据集变量

observations_for_DA = [(row[‘day’].date(), {‘LAI’: (row[‘LAI’], std_lai[index])}) for index, row in df_observation_LAI.iterrows()]

初始化了 WOFOST 模型的集合。

for i in range(ensemble_size):
for par, distr in override_parameters.items():
p.set_override(par, distr[i])
member = Wofost72_WLP_FD(p, weatherdataprovider, agromanagement)
ensemble.append(member)

每个可用的观测值重复同化步骤

for i in range(0, len(observations_for_DA)):
# 模型狂奔
da_enkf_single(i)

最后,我们可以使用 run_till_terminate() 调用运行 WOFOST 集合直到生长季节结束。

for member in ensemble:
member.run_till_terminate()

欢迎各位道友关注、留言、私聊、交流病情。

去B站讨论吧,平常不登录CSDN

挂个小广告不会太过份吧~

需要指导的话,那就得让我挣点零花咯,嘿嘿。PS:不说虚的,程序狂奔才是最重要的。

【闲鱼】https://m.tb.cn/h.5ttgPfa?tk=ue5dW9B3RMm HU9046 「我在闲鱼发布了【wofost python版本 pcse代码 指导】」

http://www.yayakq.cn/news/920759/

相关文章:

  • 广东东信润建设有限公司网站网站备案负责人幕布照
  • 邵阳网站建设推广图像编辑器
  • 会做网站的公司网站商城建设基本流程
  • 义乌 网站建设推广营销文章类型的网站模版
  • 石家庄 网站建设 15369356722做网站用dw的多吗
  • 吉林市市政建设集团网站百度网页翻译功能在哪
  • 网站建设兼容性网站响应是什么问题吗
  • 网站开发淄博长春建设
  • 做网站买域名就行了吗做外贸网站市场
  • 陕西省住房城乡建设部门户网站龙岗建站费用
  • 广州网站建设网络推广公司什么游戏不用登录直接玩
  • 餐饮 公司 网站建设网络营销的起源
  • 计算机网站建设论文古典asp网站源码
  • 浏览网址大全佛山seo管理
  • 万网可以花钱做网站吗网站建设公司易下拉软件
  • 吉林网站建设哪家好北京360建筑网
  • 怎么做网站盗号泉州厦门网站建设公司
  • 贵州网站建设软件市场下载
  • html做的图片网站科技部网站
  • aitt网站建设中网站制作时间
  • 内蒙网站建设赫伟创意星空科技重庆公众通
  • 如何做网络营销推广ppt如何进行seo搜索引擎优化
  • 襄阳市住房城乡建设部网站网站项目计划书范文
  • 单页网站怎么制作教程seo技术是干什么的
  • 延吉有没有做网站的建设小学网站
  • 西安中交建设集团网站负面网页升级访问
  • 手机微信网站模板实体店铺引流推广方法
  • 做门户网站难吗做牛津布面料在哪个网站找客户
  • 游戏app平台排行榜seo做的最好的十个网站
  • 青岛商网站建设整容医院网络建设公司