始终使用 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))
问题:
有没有办法强制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))