gpt4 book ai didi

R通过时间维度堆叠栅格数据

转载 作者:行者123 更新时间:2023-12-05 07:39:07 26 4
gpt4 key购买 nike

我想知道如何在 R 中通过时间维度堆叠不同的栅格数据集。

具体来说:

我有一组包含每月降雨数据的 ncdf 文件。我想通过时间维度合并这些数据集,以便我拥有一个唯一的数据集,但具有时间维度。为此,我堆叠了这些数据集,所以我的 nlayers 是不同的时间段。我想将这个 nlayers 传递给时间维度,所以如果现在我有 3 个 nlayers,我想有 3 个时间段。

   nc0298<- stack("3a12.19980201.7.nc", varname="sfcr")  #Rain in 02/1998
nc0398<- stack("3a12.19980301.7.nc", varname="sfcr") #Rain in 03/1998
nc0498<- stack("3a12.19980401.7.nc", varname="sfcr")

data <- raster::stack(nc0298, nc0398, nc0498)
print(data)

Output: class : RasterStack dimensions : 22, 27, 594, 3 (nrow, ncol, ncell, nlayers) resolution : 0.5, 0.5 (x, y) extent : 2, 15.5, 3.5, 14.5 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 names : surface.rain..mm.hr..1, surface.rain..mm.hr..2, surface.rain..mm.hr..3

但我不想在 nlayers 中使用它,而是希望在时间维度中使用它: 数据@层

Output: 3 dimensions: time Size:1 * is unlimited * units: hours since 1998-4-1 0 longitude Size:27 units: degrees_east long_name: Longitude latitude Size:22 units: degrees_north long_name: Latitude

在这里我们可以看到我的时间维度仍然是大小 1。

我既有概念问题也有代码问题,所以任何建议解释都会有所帮助。

数据文件可在以下网址获得: link

非常感谢,

个人资料:我是经济学专业的学生,​​所以我对空间分析和地理一无所知。我有 R 的中级知识,也有 Matlab 和 Python 的知识。如果有人对这些程序有答案,它也可以帮助我。

这是我在社区中的第一个问题,对于我的错误深表歉意。

最佳答案

不幸的是,你的数据文件的链接已经失效,所以我无法自己测试,但使用 Python 的一种解决方案可能是:

from netCDF4 import MFDataset
import glob

ncfiles = glob.glob('*.nc', recursive=True)
data = MFDataset(ncfiles, aggdim='time')

aggdim 参数设置为您的时间变量,它应该会创建您正在寻找的额外维度。 glob 仅用于读取文件夹中的多个 ncdf 文件,确保将其设置为文件所在的目录。

关于R通过时间维度堆叠栅格数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47333850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com