|
在宏观生态学中,常常涉及物种的生态位问题。对于很多新手不熟悉这一块的,很难快速掌握其基本流程。此博文通过对自己写的代码进行整合并优化,帮助初学者快速掌握提取方法。
基本介绍:通过基于目前已有的环境图层数据,并结合空间属性值提取方法,获取每个物种分布点的环境信息。此结果可用于宏观生态 中的物种生态位计算、空间居群遗传结构分析中的环境差异性比较分析及生态位模拟中栖息地偏好的分析中。
#加载软件包
library(rgdal)
library(raster)
#这两个包是R语言在空间分析中最常用的软件包,安装方法install.packages(c("rgdal","raster"))
#提前设置好工作路径一般是环境图层所在的文件夹。
lst <- list.files(path=getwd(),pattern='tif$',full.names = T) # 这里用的是tiff格式图层,可根据自己的需要修改,例如# bil、asc 等。
lst #查看这个文件夹下所有文件
#读取物种分布点
data<-read.csv("rawdata.csv",head=T,row.names=1)
## note that decimals are as "commas"
attach(data)
dim(data)
#设置坐标系
coordinates(data)<-c("Lon","Lat") #Lon 为经度,Lat为纬度
#建立矩阵,用于后期存储数据结果
result<-matrix(rep(0,146*19),ncol=19) #146为分布点个数,19为环境因子个数
bio_number<-vector()
#运行核心代码,提取每个点的气候信息
for(i in 1:length(lst)){
BIO <- raster(lst[[i]]) #读取第i个气候图层
BIO_centroid <- extract(BIO, data, method='simple', buffer=1000, fun=mean, df=TRUE) ## 提取每个点的候
#信息,第i个气候图层,其中用的是均值,同时也可选择其他计算方法。
bio_number[i]<-strsplit(strsplit(lst[[i]],split="/")[[1]][6],split=".tif")[[1]]#获取气候图层名
#注意其中的6是指当前图层在第几级文件中。
#"E:/Worldclim/30 seconds/version (1.0)/bio1-19_30s_bil/bio_1.bil" 其中的设置应为6
result[,i]<-BIO_centroid[,2]
}
colnames(result)<-bio_number
write.csv(result,"Tmean.csv")
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-5 11:32
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社