从逐日气象数据生成生物气候变量
生物气候变量可以用于最大熵模型(Maxent,Maximum Entropy Model)中的生物信息学,用于物种分布预测,通过分析物种已知分布数据和环境变量,推断物种在未知区域的分布概率。一般来说,所使用的环境变量采用的世界气候数据库中的数据(http://www.worldclim.org),但是WorldClim里的数据并不是最新的,历史数据只包含1970-2000年,2000年以后的数据都是预测数据,用来做当年的分析多多少少不够准确
怎样才能自己用数据创建生物气候变量 ?WorldClim的原话是这样的:
To create these values yourself, you can use the ‘biovars’ function in the R package dismo
也就是说,我们需要使用R语言进行计算,函数具体信息如下:
1 | # Function to create 'bioclimatic variables' from monthly climate data. |
从文档得知,要使用这个函数,需要准备12个月每月的平均降水、平均最低温和平均最高温数据。数据哪里来?可以参看这篇文章《中国气象站点数据获取的几种方式 》。我选择了难度最低的方法,在NCEI获取数据,下面就以2024年的逐日数据为例,逐步处理最后得到生物气候变量
站点气候数据获取与粗处理
我下载的是2024年逐日数据的归档数据,范围为全球,所以首先要将中国站点的数据找到,中国目前被收录的站点编号为50136099999-59997099999,每一个文件内的格式如下:
1 | "STATION","DATE","LATITUDE","LONGITUDE","ELEVATION","NAME","TEMP","TEMP_ATTRIBUTES","DEWP","DEWP_ATTRIBUTES","SLP","SLP_ATTRIBUTES","STP","STP_ATTRIBUTES","VISIB","VISIB_ATTRIBUTES","WDSP","WDSP_ATTRIBUTES","MXSPD","GUST","MAX","MAX_ATTRIBUTES","MIN","MIN_ATTRIBUTES","PRCP","PRCP_ATTRIBUTES","SNDP","FRSHTT" |
将所有国内站点的数据放到新的文件夹,我这里命名为“2024中国气象站逐日数据”,然后将所有文件进行合并,以便后续分析,这里我使用Python进行处理:
1 | import pandas as pd |
随后对合并后的数据进行清洗和计算月均值,同样使用Python:
1 | import pandas as pd |
此时得到的 2024中国气象站逐日数据-合并后.csv
结构应该是这样的:
1 | STATION,MONTH,MAX,MIN,PRCP,LATITUDE,LONGITUDE,ELEVATION,NAME |
再将这个文件按月拆分开,同样使用Python:
1 | import pandas as pd |
这个时候我们的工作目录结构应该是这样的:
1 | . |
月度气候数据插值
现在得到的数据都是点类型的数据,并没有对国内进行覆盖,没有数据的坐标点就需要进行插值计算获取。这里我们使用R语言进行普通克里金法插值:
为什么要插值?插值是由有限数量的采样点数据估计栅格中的单元的值。它可以用来估计任何地理点数据的未知值:高程、降雨、化学污染程度、噪声等级等等。在研究区域内,测量某种现象每个点的高度、等级或集聚程度一般是非常困难,同时也是很昂贵的。相反,用户可以选择一些离散的样本点进行测量,通过插值得出采样点的值。采样点可以是随机的、分层的或者规则的格网点,包含高度、污染程度或者等级等信息。具体概念和实现可以看这个论坛:Python气象数据空间插值与绘图
1 | # 加载必要的包 |
运行后得到全国的逐月三种气候数据:
1 | . |
计算生物气候变量
现在使用R语言dismo包中的biovars方法计算生物气候变量:
1 | # 加载必要的包 |
到此,我们就得到了2024年的19个生物气候变量的数据:
1 | . |
- 标题: 从逐日气象数据生成生物气候变量
- 作者: Riceneeder
- 创建于 : 2025-04-15 08:28:21
- 更新于 : 2025-10-08 19:05:33
- 链接: https://gankun.cn.ma/posts/2025-04-15/
- 版权声明: 版权所有 © Riceneeder,禁止转载。