【发布时间】:2013-02-19 23:00:05
【问题描述】:
我有几个 netcdf 文件。每个 nc 文件都有几个变量。我只对两个变量“Soil_Moisture”和“Soil_Moisture_Dqx”感兴趣。
我想根据“Soil_Moisture_Dqx”过滤“Soil_Moisture”。只要相应的“Soil_Moisture_Dqx”像素的值大于 0.04,我就想用 NA 替换“Soil_Moisture”中的值。
:这里是要下载的文件:
1- 我尝试了这个循环,但是当我输入 f[1] 或 f[2] 时,我得到了一些奇怪的东西,这意味着我的循环不正确。我很感谢任何帮助来纠正我的循环。
a<-list.files("C:\\3 nc files", "*.DBL", full.names = TRUE)
for(i in 1:length(a)){
f=open.ncdf(a[i])
A1 = get.var.ncdf(nc=f,varid="Soil_Moisture",verbose=TRUE)
A1* -0.000030518509475997 ## scale factor
A2 = get.var.ncdf(nc=f,varid="Soil_Moisture_Dqx",verbose=TRUE)
A2*-0.0000152592547379985## scale factor
A1[A2>0.04]=NA ## here is main calculation I need
}
2- 谁能告诉我再写一遍?
【问题讨论】:
-
比例因子看起来很难看!你是怎么得到这个的?
-
来自变量(A)元数据
[1] "var has BOTH add_offset ( 0 ) and scale_fact ( 3.05185094759971e-05 )" -
更新 A1 后,您需要使用 NA 值再次保存文件,不是吗?
-
是的,正是我需要的。根据条件更新它
A1[A2>0.04]=NA -
我问是因为我在您的代码中没有看到任何 save ,例如 put.var.ncdf 和 close(f)..
标签: r netcdf cdo-climate