问题:
是否有一种方法可以强制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。
答案 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))