sunlu123的个人博客分享 http://blog.sciencenet.cn/u/sunlu123

博文

根据物种分布GPS点快速提取环境属性值

已有 3615 次阅读 2019-9-9 00:02 |系统分类:科研笔记


在宏观生态学中,常常涉及物种的生态位问题。对于很多新手不熟悉这一块的,很难快速掌握其基本流程。此博文通过对自己写的代码进行整合并优化,帮助初学者快速掌握提取方法。

基本介绍:通过基于目前已有的环境图层数据,并结合空间属性值提取方法,获取每个物种分布点的环境信息。此结果可用于宏观生态 中的物种生态位计算、空间居群遗传结构分析中的环境差异性比较分析及生态位模拟中栖息地偏好的分析中。


#加载软件包

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")




https://blog.sciencenet.cn/blog-3416345-1197186.html


下一篇:根据参考图层属性参数值对目标图层进行空间重采样(spatial resample)。
收藏 IP: 210.72.88.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-24 23:51

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部