【问题标题】:Always yield a masked array with netCDF4始终使用 netCDF4 生成掩码数组
【发布时间】:2015-11-09 20:23:45
【问题描述】:

问题:

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

【问题讨论】:

    标签: python numpy netcdf masked-array


    【解决方案1】:

    我不认为这是直接可行的,但如果需要,您可以通过创建 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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 2019-07-15
      • 2015-01-20
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      相关资源
      最近更新 更多