当前位置: 首页 > 知识库问答 >
问题:

我想从多个netcdf文件中提取数据

林鸿飞
2023-03-14

我有一个R代码,它从单个. nc4文件中提取每个月的每日值。我有49个netcdf文件。我想使用循环从所有这些文件中提取数据并将它们写入唯一的csv文件中。

我有一个文件的代码,但我需要多个文件的帮助。

    flux1701 <- nc_open(list[14])
GPP.array1701 <- ncvar_get(flux1701, "GPP")
fillvalue1701 <- ncatt_get(flux1701, "GPP", "_FillValue")
nc_close(flux1612)
GPP.array1701[GPP.array1701 == fillvalue$value] <- NA
rbrick1701 <- brick(GPP.array1701, xmn=min(lat), xmx=max(lat), ymn=min(lon), ymx=max(lon), crs=CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs+ towgs84=0,0,0")) ##to convert the entire 3d array of data to a raster brick
rbrick1701 <- flip(t(rbrick1701), direction='y')
qro_lon <- -99.941
qro_lat <-  20.717
qro_series1701 <- extract(rbrick1701, SpatialPoints(cbind(qro_lon,qro_lat)), method='simple')
qro_df1701 <- data.frame(day= seq(from=1, to=31, by=1), GPP=t(qro_series1612))
write.csv(qro_df1701, file="qro201701.csv")

共有1个答案

公羊晟
2023-03-14

我不认为你的代码给你正确的程度.我建议做

library(raster)
rbrick1701 <- brick(list[14], "GPP")

这里是关于如何编写循环的许多示例/答案之一

 类似资料:
  • 我有海洋pH、o2等的全球4D NetCDF文件。每个文件有1个变量和4个维度(时间、经度、纬度和深度)。我希望从不包含NA的每个单元格的最底部深度提取数据。我尝试使用带有负超实验室的NCO的nks: 但是,这只为我提供了最深的箱(即-5700米深度箱)的数据,输出了海洋中所有较浅区域的NaN。有没有办法以类似的方式提取数据,但指定我想要每个单元格最深的非 NaN 值? 我能够使用 R、CDO 或

  • 我需要从全球网格中提取特定节点集的数据,这些节点由纬度/经度坐标给出(大约5000-10000)。这些数据是水力参数的时间序列,例如波高。 全球数据集是巨大的,所以它被分成许多NetCDF文件。每个NetCDF文件大约5GB,包含整个全球网格的数据,但只针对一个变量(例如波高)和一年(例如2020年)。假设我想在某个位置提取6个变量的完整时间序列(42年),我需要提取数据形式为6x42=252个N

  • 我有许多坐标(大约20000),我需要从许多NetCDF文件中提取数据,每个文件大约有30000个时间步(未来的气候场景)。使用这里的解决方案效率不高,原因是每个i,j将“dsloc”转换为“dataframe”所花费的时间(请看下面的代码)。**可以从这里下载NetCDF文件示例** 结果是: 这意味着每个i、j需要大约9秒来处理。考虑到大量的坐标和netcdf文件以及大量的时间步长,我想知道是

  • 问题: 我在R中有一个代码,可以从单个Aqua Modis网络CDF文件中提取每月海面温度(SST)值(见下文)。但是,我在一个文件夹中有一批 59 个 Aqua Modis netCDF 文件。 目的: 我的目标是从所有59个netCDF文件的每个netCDF中提取变量的经度、纬度和SST,使用函数stack::raster()将它们转换为光栅文件,然后处理这些文件。 我的数据框有 650 行,

  • 我有一个海洋温度的 NetCDF 文件。它有 1 个变量(“temp”)和 4 个维度(时间、纬度、纬度和深度)。我想只提取每次最大深度的温度,lon和lat,以获得海底温度光栅砖。我愿意使用 R 或在终端中使用气候数据运算符。 NetCDF 文件的属性 提前感谢!

  • 我有以下形状文件和 netcdf 文件。 我想从netcdf文件中提取包含在shapefile边界内的数据。 你对我如何做到这一点有什么建议吗? 形状文件对应于SREX区域11北欧(NEU),netcdf文件是CMIP6气候模型数据输出(UA变量)的示例。我想要的输出必须是 netcdf 格式。 更新 到目前为止,我尝试使用NCL和数位长创建一个netcdf掩码,并将此掩码应用于原始netcdf数