如何解决来自 netCDF 文件的堆栈变量
我正在处理多个 netCDF 文件。每个 nc 文件有 33 个变量。我需要用这 33 个变量为每个 nc 文件创建一个堆栈来做一些计算,但我知道的唯一方法是在一个评估器中转换每个变量并将它们一个一个地堆叠......像这样:
library(raster)
library(ncdf4)
library(rgdal)
nc_data <- nc_open('./data/GCAM/RAW/93d4aa096b15491b1ba136b46d8063cdca59d253c75d59791b4d4cb6f8a1ae91/Project ID 68344/GCAM-Demeter/GCAM-Harmonized/Mean_Std/GCAM_Demeter_LU_H_ssp1_rcp26_modelmean_2030.nc')
PTF0 <- nc_data$var[[1]]
data1 <- ncvar_get( nc_data,PTF0 )
data1 <- raster(data1)
plot(data1)
任何人都可以帮助自动化吗??我提前致谢
解决方法
你现在正在做的事情可以像这样完成
f <- 'GCAM_Demeter_LU_H_ssp1_rcp26_modelmean_2030.nc'
library(raster)
r <- raster(f,"PTF0")
(假设“PTF0”是一个变量名)
但如果您想一步为多个变量创建单个对象,请改用 terra
library(terra)
r <- rast(f)
你可以指定你想要的变量
rr <- rast(f,c("PFT1","PTF2"))
你也可以创建一个 SpatRasterDataSet 然后像这样提取你想要的变量
s <-sds(f)
x <- rast(s[2:8])
,
谢谢罗伯特先生!用这几行,我解决了问题,我可以做我需要的一切。
library(raster)
library(ncdf4)
library(rgdal)
library(terra)
f <- nc_open('./data/GCAM/RAW/93d4aa096b15491b1ba136b46d8063cdca59d253c75d59791b4d4cb6f8a1ae91/Project ID 68344/GCAM-Demeter/GCAM-Harmonized/Mean_Std/GCAM_Demeter_LU_H_ssp1_rcp26_modelmean_2030.nc')
rr <- rast(f$filename)
rrr <- rr[[2:8]]
plot(rrr)
soma <- sum(rrr)
plot(soma)
现在我将花更多的时间考虑如何自动执行此操作...因为我需要为每个 NetCDF 文件执行此操作...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。