学习笔记之 R语言长时间序列栅格数据之逐像素线性回归

转载自http://jianshu.com/p/5f7c9353f6ab

 

问题引入

假设有两组栅格数据,一组代表2019年中国每月降雨量,一组代表2019年中国每月植被叶面积指数(LAI)。想要得到中国月降水量与LAI的相关性分布,那么需要对两组栅格数据对应的栅格点进行逐栅格的相关性分析。

R包加载

raster、rgdal包用于栅格数据的输入输出,broom包可以方便的得到线性回归的各种参数

library(raster)
library(broom)
library(rgdal)

数据导入

setwd("D:/1data/rain")                                    #数据所在文件夹
raster1<-stack(list.files(pattern='*.tif$'))         #堆栈所有栅格数据
time<-1:nlayers(raster1)

编写函数

线性回归系数可以直接提取,而显著性p和r^2借助broom包的glance()函数才能提取,缺点是效率很低,运行时间可能是直接提取的5~10倍。

#提取线性回归系数
fun1 <- function(x) { if (is.na(x[1])){ NA } else lm(x ~ time)$coefficients[2] }      
##提取线性回归的显著性
fun2 <- function(x) { if (is.na(x[1])){ NA } else glance(lm(x ~ time))$p.value }
##提取线性趋势r^2
fun3<-f

猜你喜欢

转载自blog.csdn.net/weixin_44913294/article/details/114023388