始终使用 netCDF4 生成屏蔽数组

Always yield a masked array with netCDF4

问题:

有没有办法强制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。

我认为这不可能直接实现,但您可以根据需要创建 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))