在netCDF文件中更改_FillValue

时间:2016-10-10 17:05:11

标签: python netcdf netcdf4

是否有一个python netCDF4命令/示例来更改netCDF文件中的全局元数据_FillValue?我已经尝试替换netCDF文件中的所有-ve值,但是直到_FillValue属性设置为止,这不起作用

3 个答案:

答案 0 :(得分:3)

我不相信python netCDF4对此有特定的功能,但NCO's ncatted是完成此任务的理想工具。

来自文档:

将缺失值从IEEE NaN值更改为正常的IEEE编号,例如1.0e36:

ncatted -a _FillValue,,m,f,1.0e36 in.nc

答案 1 :(得分:0)

您还可以使用cdo将缺少的条目设置为其他值,例如999.0

cdo setmisstoc,999.0 in.nc out.nc

答案 2 :(得分:-1)

_FillValue特定于变量。使用Python NetCDF4库,我知道只能在创建变量时指定它。可以通过CDO更改_FillValue。这就是我自己更改_FillValue的方式: SELECT a.id, uar.* FROM account a JOIN user_account_ref uar ON uar.account_id=a.id AND uar.status=0 WHERE uar.user_id IN (xxx) UNION SELECT a.id, uar.* FROM account a, ( SELECT DISTINCT ra.id, ra.group_id FROM account ra JOIN user_account_ref uar ON ra.id=uar.account_id and ra.app_id=0 WHERE uar.user_id in (xxx) AND ra.group_id>0 ) ra JOIN user_account_ref uar ON uar.role>0 WHERE a.group_id=ra.group_id AND uar.account_id=ra.id AND uar.user_id IN (xxx);