0

我正在尝试使用一个nc文件创建降水图,类似于我在此处找到的 NWS 示例。

不过,就我而言,我的降水数据已经在mm. 如何保持相同的单位?我确实阅读了以下内容,

创建一个numpy.ma.MaskedArray附加单位。这是一个薄包装器numpy.ma.masked_array(),可确保单元正确附加到结果(否则单元会默默丢失)。单位取自 data_units 参数,或者如果是None,则使用数据上的单位。

我为我的文件遵循了给定的参数(masked_array(data, data_units=None, **kwargs)),但是

  1. kwargs 没有定义,并且
  2. 当我不包括 kwargs 时,我得到

“AttributeError:‘MaskedArray’对象没有属性‘units’”。

我是初学者,所以请温柔。感谢您的指导!这是我的代码...

from netCDF4 import Dataset as NetCDFFile
import matplotlib.pyplot as plt
import numpy as np
import cartopy
import cartopy.crs as ccrs
import cartopy.feature as cf
import matplotlib.colors as mcolors
from metpy.units import masked_array, units

nc_data = NetCDFFile(r'C:\Users\Jocelyn\Desktop\TRMM_daily_prcp_data\3B42_Daily.19980601.7.nc4', 'r')

print (nc_data)
print(nc_data.variables.keys()) 

prcp = nc_data.variables['precipitation']
data = masked_array(prcp[:], prcp_units=None, **kwargs)
lat = nc_data.variables['lat']
lon = nc_data.variables['lon']
4

1 回答 1

0

如果您不尝试对降水数据使用 MetPy 计算并且不需要进行任何单位转换,那么您应该能够masked_array完全消除使用。所以试试这个:

prcp = nc_data.variables['precipitation']
data = prcp[:]
lat = nc_data.variables['lat']
lon = nc_data.variables['lon']
于 2020-05-01T20:41:15.197 回答