gpt4 book ai didi

r - 从 R 中的 netCDF 中提取点 (lon, lat) 的时间序列

转载 作者:行者123 更新时间:2023-12-04 12:13:47 25 4
gpt4 key购买 nike

我对 R 比较陌生。
我正在尝试从 netCDF 文件中获取温度数据的不同点(纬度、经度)的时间序列。
我的示例数据文件是 herehere是小文件。我已经尝试过 netCDF 包和到目前为止我使用的代码

library(ncdf)
obsdata = open.ncdf("obs.nc")

print.ncdf(obsdata)

obsdatadates = obsdata$dim$time$vals
obsdatadates = as.Date(obsdatadates,origin = '1950-01-01')
obsdatadates
obsoutput = get.var.ncdf(obsdata, varid = 'tasmin', start = c(1,1,1),
count = c(1,1,22280))
dim(obsoutput)
datafinal=merge(obsdatadates,obsoutput)

任何人都可以帮助我获取时间序列的数据帧(第一列)和另一个数据的特定点(纬度,经度)的数据值。
在这种情况下,我正在寻找特定经纬度点(并重复许多兴趣点)和给定变量(在这种情况下)的时间序列(数据所在的 1950-01-01 到 2010-12-31)塔斯明)。
您的帮助将不胜感激。
谢谢,
阿塞姆

最佳答案

也许使用 raster包,这不适用于所有 NetCDF 文件,但适用于您的:

library(raster)
## brick reads all 22280 layers
r <- brick("obs.nc", varname = "tasmin")
## extract works for all time steps
vals <- extract(r, matrix(c(-120, 52.5), ncol = 2))

dim(vals)
## [1] 1 22280

请注意,给出了一个 1 行多列矩阵,因为我只给了一个点 extract() .

(提取很简单,直接从最近的单元格复制,使用 method = "bilinear"进行插值)。见 ?extract对于其他选项。

关于r - 从 R 中的 netCDF 中提取点 (lon, lat) 的时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621200/

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