最近一周尝试下载CMIP6模式数据,CMIP6官网:cmip6 Data Search | cmip6 | ESGF-CoG (llnl.gov)
提供脚本下载方式【WGET Script】:
但此方法常常报错,并且很难后台运行,而数据量往往较大,因此前台运行发生卡顿或错误再重新下载将很麻烦,故根据一篇推送:(https://mp.weixin.qq.com/s/obWDJ6xJrpOL93ep0nG-FA) 借鉴其中的代码下载:
笔者将此推送中的代码方法,用于6个不同的CMIP6模式下载,但实际情况比较复杂,因为网络不稳定、不同模式名称、存储路径等不同,比如下载FGOALS-g3模式1850-2014年的historical时期日平均降水、最高气温和最低气温等变量,有好几个数据源选项:
之前笔者试验了此模式的18500101-18501231的日降水能顺利下载,在esg.lasg.ac.cn的Data Node上,结果!:
代码跑着跑着到19世纪20年代的某几年就断了,
于是换Data Node,这几年可以,但再后面几年可能又会断,
但是如果隔一段时间再试,能成功下载数据的Data Node可能就变了;
此外,不同情景或变量,Version也不一样(在第一张图Data Node的下方),也即时间不同,需要特别注意!
所以,看似可以轻易循环的代码需要很多手动的调整,有的在后期查漏补缺直接手动下载,用时好几天(可能是中途觉得有点枯燥和反复降低了写代码的效率和动力),从这次试验中,可以折射出一个我总是会思索的问题:
代码的效率真的比人工高吗?可能前期很累,但不得不承认它在海量运算时的优越和便捷。
“代码无涯苦作舟”,提高编写能力和效率,并且不能过分依赖代码,“代码+人工思考”才是计算机真正的意义,因为机器没有人类的目标和想法。