ncdf4 | netCDF数据格式处理工具包(3):其他函数


专注系列化高质量的R语言教程

推文索引 | 联系小编 | 付费合集


前面两篇推文已经介绍了netCDF文件在R语言中的读入、查询、添加变量、创建新文件等操作,本篇来介绍ncdf4工具包其他几个比较重要的函数。目录如下:

  • 3 其他函数

    • 3.1 ncvar_rename函数

    • 3.2 ncvar_change_missval函数

    • 3.3 nc_close函数

3 其他函数

本篇示例数据为上篇推文新创建的PM25_total数据(也可在公众号后台发送关键词示例数据获取):

library(ncdf4)
PM25_total <- nc_open("183.PM25_total.nc", write = T)
  • 注意:后文会对数据进行修改,请提前做好示例数据的备份,以免重复下载。

3.1 ncvar_rename函数

该函数用于修改netCDF文件的变量名称,示例如下:

ncvar_rename(nc = PM25_total, 
             old_varname = "total_emission", 
             new_varname = "total") -> PM25_total

## 使用更改后的变量名查询
a <- ncvar_get(PM25_total, "total")
  • 注意:本段代码只能运行一次,因为名称修改后原名称无法再作为old_varname参数。

3.2 ncvar_change_missval函数

该函数用于更改变量中缺失值的数值。例如,假设变量原本使用1e+30表示缺失值,下列代码可将变量中的1e+30全部更改为10000

ncvar_change_missval(PM25_total, varid = "total",
                     missval = 10000)

PM25_total$var$total_emission$missval
## [1] 1e+30
  • 使用ncvar_change_missval()函数无需使用赋值符号=<-

  • 注意,此时变量名和缺失值均未更新。

3.3 nc_close函数

读者可能注意到,虽然前面已经将变量名total_emission改成了total,但是上节代码PM25_total$var$total_emission$missval仍然使用变量名total_emission查询缺失值,并且缺失值仍然为1e+30

这是因为此时修改信息并未写入到本地文件,需要先使用nc_close()函数关闭文件后再重新读入。需要注意的是,当文件关闭后,尽管文件仍然显示在R语言的全局环境中,但已不可用。

nc_close(PM25_total)

关闭后数据不可用:

PM25_total

## 以下为报错信息
File 183.PM25_total.nc (NC_FORMAT_CLASSIC):

     1 variables (excluding dimension variables):
        float total[lon,lat,time]   
Error in R_nc4_inq_varndims: NetCDF: Not a valid ID
Error in ncvar_ndims(nc, varid) : error returned from C call

重新读入后,变量名和缺失值均已更新:

PM25_total <- nc_open("183.PM25_total.nc", write = T)

PM25_total$var$total$missval
## [1] 10000
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值