2

问题:

有没有办法强制netCDF4总是输出一个掩码数组,不管它切片是否包含任何填充值?

背景:

随着时间的推移,我使用netCDF4包读取了网格上的值的 netCDF 数据集。

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(...)

期望的结果:

我希望后者使用掩码为 all 的掩码数组False,而不是标准的 ndarray。

4

1 回答 1

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))
于 2015-08-17T12:06:36.883 回答