始终使用netCDF4生成一个掩码数组

时间:2015-08-17 08:56:08

标签: python numpy netcdf masked-array

问题:

是否有一种方法可以强制netCDF4 总是输出一个屏蔽数组,无论它是否包含任何填充值?

背景

我在网格上有一个netCDF数据集,随着时间的推移我使用netCDF4包读取。

nc_data = netCDF4.Dataset('file.nc', 'r')

初始时间步长产生蒙面数组:

var1_t0 = nc_data.variables['var1'][0][:]
var1_t0
masked_array(...)

后来的时间步长产生标准ndarrays

var1_t200 = nc_data.variables['var1'][200][:]
var1_t200
ndarray(...)

期望的结果:

我想为后者设置掩码数组,其掩码为全False,而不是标准的ndarray。

1 个答案:

答案 0 :(得分:4)

我认为这不是直接可行的,但您可以根据需要创建masked_array来解决这个问题:

var1_t0 = nc_data.variables['var1'][0][:]
if type(var1_t0) is numpy.ma.core.MaskedArray:
    var1_t0 = numpy.ma.core.MaskedArray(var1_t0, numpy.zeros(var1_t0.shape, dtype = bool))