ERA5月气温和下行长波辐射格网相关系数和P值计算

本文介绍了如何使用R语言中的ncdf4库从NetCDF文件中提取气候数据,包括计算温度(t2m)和降水量(msdwlwrf)的年均值,并通过Pearson相关性方法分析两者之间的关系,最终将结果保存到新的NetCDF文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 导入库
rm(list = ls())
library(ncdf4)

library(ncdf4.helpers)

library(data.table)

library(pracma)

path <- "I:/jiang/第二章/plot/lin_ta.nc"

nc <- nc_open(path)


lat = ncvar_get(nc,"latitude")

lon = ncvar_get(nc,"longitude")

time = ncvar_get(nc,"time")


time <- nc.get.time.series(nc)

ta <- ncvar_get(nc,"t2m")

lin <- ncvar_get(nc,"msdwlwrf")


# 计算年均值
year <- seq(1980,2023)
ta_result <- array(NA,dim = c(length(lon),length(lat),length(year)))

lin_result <- array(NA,dim = c(length(lon),length(lat),length(year)))

for (i in 1:length(year)) {
  print(i)
  start <- grep(paste0(year[i],"-06","-01"),time)
  
  end <- grep(paste0(year[i],"-09","-01"),time)
  
  bb = ta[,,start:end]
  
  dd <- lin[,,start:end]
  
  ta_result[,,i] <- apply(bb, c(1,2), mean)
  
  lin_result[,,i] <- apply(dd, c(1,2), mean)
  
  
}

dim(ta_result)
# 计算相关性

r <- array(dim = c(length(lon),length(lat)))

p <- array(dim = c(length(lon),length(lat)))


for (i in 1:length(lon)) {
  
  for (j in 1:length(lat)) {
    test_result <- cor.test(detrend(ta_result[i,j,]),detrend(lin_result[i,j,]), method = "pearson")
    r[i,j] <- test_result$estimate
    p[i,j] <- test_result$p.value
  }
  
}

# 写出NC文件

nc_file <- "d:/correlation.nc"

# 创建NetCDF文件写出,用作python绘图

londim <- ncdim_def("lon","degrees_east",as.double(lon))

latdim <- ncdim_def("lat","degrees_north",as.double(lat)) 


tmp_def <- ncvar_def("r","%",list(londim,latdim),prec="double")

p_def <- ncvar_def("p","%",list(londim,latdim),prec="double")

ncout <- nc_create(nc_file,list(tmp_def,p_def),force_v4=TRUE)

ncvar_put(ncout,tmp_def,r)

ncvar_put(ncout,p_def,p)

nc_close(ncout)

有问题请咨询!!!!!!!
zhufei17@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值