【问题标题】:How to write data from netcdf file to an excel or text file?如何将数据从 netcdf 文件写入 excel 或文本文件?
【发布时间】:2012-10-03 00:04:49
【问题描述】:

我有一个有 6 个维度的 netcdf 文件:

f=open.ncdf("C:\\BR_Ban.nc")

我读了变量date

A = get.var.ncdf(nc=f,varid="date",verbose=TRUE)

然后我读取变量Tair,就像读取date 一样。 我将这两个变量写入两个文本文件。谁能帮我把它们都写到一个文本文件或excel中?这段代码只会写一个变量:

write.table(as.double(A),"C:\\folder\\shwon_Br_Ban_flux net.txt")

这个变量date 的问题是我得到了一个看起来像这样的文本文件:

"x"
"1"  2004
"2"   1
"3"  0.5
"4"  2004
"5"    1
"6"    1

最多

"157675" 2006
"157676" 365
"157677" 23.5
"157678" 2007
"157679" 366
"157680" 0

如您所见,全部在“年、时和日”列中。有没有办法在一个列中写“半小时一次”的时间步长,在另一列中写年份,并且一天一样?

【问题讨论】:

  • 为什么是as.double(A)?考虑到A 最初是一个矩阵,write.table(A,"C:\\...") 应该将其复制为一个矩阵:使用as.double,您强制将A 复制为一个向量。
  • 否则由于Tairdate 都将time_counter 作为维度2,您应该能够通过“绑定”它们将它们作为一个文本文件一起写入:write.table(rbind(A,Tair),file="C:\\...")。跨度>
  • 那么你只需要在写之前转置:write.table(t(rbind(A,Tair)),file="C:\\...").

标签: r netcdf


【解决方案1】:
f <- open.ncdf("C:\\BR_Ban.nc")
A <- get.var.ncdf(nc=f,varid="date")
B <- get.var.ncdf(nc=f,varid="Tair")
write.table(t(rbind(A,B)),file="output.txt")

正如 netCDF 文件摘要中提到的,date 有 2 个维度,维度 1(行)为 datedim,维度 2(列)time_counter,而Tair 也有 2 个维度land 作为维度 1,time_counter 作为维度 2。因此,要将它们一起输出,您需要首先将它们输出到 rbind,因为它们的共享维度是列 (time_counter),然后转置。

【讨论】:

    猜你喜欢
    • 2013-05-08
    • 2019-12-31
    • 2011-03-09
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多