这些年搞模型的人越来越多。与地学相关的领域的模型有陆面模式、气候模式、水文模型、作物模型等等。似乎搞点高大上的模型就比较好发文章。在十几年前,把国外的模型拿过来,自己本地化,用点点数据标定下,就可以发文章。如今门槛越来越高了,不搞点新玩意,还是比较难发文章。搞了好些年的作物模型,身边也有很多的搞模型的,发现大家似乎模型调参都比较苦恼,尤其是对刚刚接触模型不久的人,更是一件头痛的事情。鉴于经常有些人问我这方面的问题,我把自己关于作物模型参数调整的一些心得体会抛个砖。
数据为王。扩展来说,就是需要有非常精确的实验观测数据。模型离开了观测,模型就是一个数学游戏。所以,进行模型调参的前提准备就是要有一套非常精确的试验观测数据。很多初学模型的,任意拿一套观测数据就来对模型调参,调了大半天,总对不准,于是灰心丧气,怎么就这么难。殊不知自己用来调参的数据都是错的,不准确的。所以,在调参前,肯定是要对试验观测数据进行分析,例如作物模型,要对观测的气象数据各个分量,辐射,温度,降水等等是否是正确的。在看看这几年的作物的试验观测数据,例如叶面积指数,生物量,产量,是否符合常理,然后也要对气象因子与生物性参数进行分析,看看是否符合我们的常规判断。如果有土壤水分的资料,把土壤水分,和降水量,叶面积做出对比图看看,看看是否符合我们的正常判断,是否有异常。最后,还要对农业管理措施,灌溉,施肥情况,农业气象灾害情况有个了解。总之一句话,调参的试验数据一定要靠谱,否则,调准了都是耍流氓。
详细了解模型过程和参数性质。说到底,就是要把模型的每一个过程和参数意义、物理机制等等有一个非常好地理解。如果没有这个基础,就来调模型,也是瞎胡闹。很多初学者就经常犯这个毛病。虽然很多模型没有源代码,或者自己看不到源代码。但是至少要把说明文件和一些模型的基本公式理解个透彻。然后就是试对模型参数的敏感性进行分析,可以先自己手动改改参数,看看输出反应,这就是最简单的敏感性实验。
尽可能地获取实测的参数。模型中参数往往会有几十个,多的还不止。为了节省不确定性,最后的办法是自己去测。尽可能地准确测量一些反应当地情况的参数。这样减少了模型的不确定性。当然,这是非常理想的办法,很多时候,不可能去测。那只能估摸着在生理意义范围内调整了。
合理使用优化方法,但是不要迷恋。一般来讲,经过上面3步后,基本调的会大差不差了。这个时候,用一些优化方法,例如MCMC,遗传算法,SCE-UA等,可以把一些不是特别确定的,非常敏感的参数进行优化。很多人想是否有一种方法,把上面几个过程都去掉,直接输入几个观测,就出来一套参数,万事大吉了。我感觉这样的方法是不可能存在的。缺少对观测数据的分析,缺少对过程的理解,不实测一些参数,把胡乱的观测,放上去,就期待计算机优化给你一个结果。就算出来了,也是很危险的。因为作物模型现在基本是一个“多对一”的过程,也就是多套参数可以得到同一个结果。弄的不好,优化的这个参数,就是没有任何意义的,甚至是和实际不符合的参数。
https://blog.sciencenet.cn/blog-437026-1016476.html
上一篇:
Goudriaan快速三点积分计算日光合总量有误差吗?下一篇:
2017年的感受——人生要注意几个管理