我正试图用一个nc
文件创建一个降水图,类似于我在这里找到的NWS示例。
不过,就我而言,我的降水数据已经在mm
中了。如何保持相同的单位?我确实阅读了以下内容,
创建带有附加单元的
numpy.ma.MaskedArray
。这是一个薄numpy.ma.masked_array()
的包装,确保单元正确地附加到结果(否则单位将无声地丢失(。单位取自data_Units参数,或者如果这是None
,使用数据上的单位。
我遵循了给定的参数(masked_array(data, data_units=None, **kwargs)
(用于我的文件,但
- 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:UsersJocelynDesktopTRMM_daily_prcp_data3B42_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']
如果您不想在降水数据中使用MetPy计算,并且不需要进行任何单位转换,那么您应该能够完全取消masked_array
的使用。所以试试这个:
prcp = nc_data.variables['precipitation']
data = prcp[:]
lat = nc_data.variables['lat']
lon = nc_data.variables['lon']