缘木求榆(碳中和与一个突然靠谱的同门)

Sep 20, 2022

2022年3月。被老板安排了一个建模比赛。

暑期学校那个打下手测试 netlogo 模型的同门,给我发消息了。

他说他想进步。

我盯着屏幕看了半天。上次听到类似的话,还是在本科毕业答辩的时候。那时候有个同学说,他选择这个课题是因为"想锻炼自己",评委老师当场问:那锻炼得怎么样了呢?

同门这次是真的想进步。

老板近年的项目全是碳中和。系统动力学、Anylogic、植物种群生活史、固碳能力估算。这些词他倒是说得头头是道,至于具体怎么建模、怎么仿真,那是另外一回事了。

我懂。我太懂了。

去年我买了 Judea Pearl 的《为什么》,结果被他撞见,就说那你研究研究吧。本质上是在替他学习。今年几次无效沟通之后,我明白了一件事:老板只是一个不负责任的水货。他只懂他懂的那一套,超过这个范围就装聋作哑。

项目内容是基于种群生活史过程的植物固碳潜力评估模型。系统动力学(System Dynamics)本质上是一种通过微分方程描述反馈回路的建模方法,把植物种群看成一系列状态变量——种子库、幼苗库、成树库——随着时间演化。榆树从种子到成熟树要经历萌发、幼苗生长、成熟结果三个阶段,每个阶段的碳固定效率差异巨大。模型的任务,就是追踪碳在这条链路里的流动。

用 Anylogic 软件做仿真,看不同降水情景对固碳能力的影响。

数据是现成的。浑善达克沙地、科尔沁沙地原生榆树疏林,Shapefile 文件里有区域降水信息。榆树疏林是沙地生态系统的顶级群落,根系深、寿命长、碳储量高。但榆树幼苗到成树的存活率差异极大——种子萌发需要充足土壤水分,幼苗期抗旱性弱,成熟后根系深扎才能利用深层地下水。这套生活史策略决定了不同阶段的固碳贡献完全不同。模型也是现成的——老板之前接过类似的项目,有一定基础。

问题是代码。

Anylogic 是个仿真软件,自带建模语言和环境。说实话,这东西比 NetLogo 复杂多了。NetLogo 至少文档的可读性很高。Anylogic 遇到问题,基本上只能靠玄学搜索。

同门说他来写代码,我以为他在开玩笑。但他确实写了。几乎全部。

我只是负责那些他解决不了的技术问题。他卡住的地方,我用英文搜索能力顶上——在 Stack Overflow 和 Anylogic Community Forum 里大海捞针,看看有没有人遇到过类似的问题。

有时候找到了,解决方案稍微改改就能用。有时候找不到,那就得自己摸索。

印象最深的是关于植物生长曲线的参数标定。模型里有个地方需要输入不同生长阶段的碳储量转换效率,文献里的数据要么单位不对,要么样本量太小,用上去之后曲线跑出来跟实际情况差得离谱。

同门试了三天,没调出来。

我去搜。也搜了半天。我们一起看,一起改代码,一起调试。

最后跑通了。

比赛结果倒是出乎意料。抱着打酱油的心态去的,结果模型作品成功入围。被迫在暑假某一个本可以睡到自然醒的上午早起,进行线上报告。

报告是同门讲的。他讲得比我想象的好。不怯场,逻辑清晰,该强调的地方强调,该略过的地方略过。

评委问了几个问题。有个问题关于模型的空间尺度效应,评委质疑我们没有考虑榆树个体之间的竞争关系。

我想反驳,但一时找不到合适的论据。

同门接话了。这一接,虽然没有答出个所以然,但成了他的研究方向。

我在旁边看着,心里想:这小子什么时候变得这么能说了?

他确实想进步。进步得还挺快。

评委最后没再追问。报告结束,线上会议室的人数已经掉到了十几个。

出来之后我问他,那个空间尺度的回答是谁想的。

他说自己想的。

妙。

生活有时候就是这样。你以为有些人永远是那个样子,结果他突然就变了。变化来得猝不及防,让你措手不及。

可能是因为遇到了合适的机会,可能是因为被谁刺激到了,也可能只是到了该进步的年纪。

总之,碳中和这个项目,意外地成了他成长的一个节点。

也成了我的。

老板在水货这件事,我大概会记很久。但在水货手下干活,也不是完全没有好处——至少自由度够大。大到可以让我和同门一起摸索一些他根本不懂的东西,然后在他面前假装这些都是基于他"英明的指导"。

成年人的世界,就是这么虚伪而务实。

同门后来又找了我几次,问了一些技术问题。有些我能回答,有些不能。不能的那些,我就说等我查查。

然后就去搜。

用英文。

在无数个深夜里。偷偷努力。