我遵循了这里的示例(https://unidata.github.io/python-gallery/examples/Precipitation_Map.html),但在尝试访问单位时,我得到了一个维度错误。我假设这与pint和它解析单元的方式有关,而事实上沉淀是一个速率。任何帮助都将不胜感激
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import metpy
import datetime
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from xarray.backends import NetCDF4DataStore
import xarray as xr
import numpy as np
from metpy.units import masked_array, units
from siphon.catalog import TDSCatalog
best_gfs = TDSCatalog('http://thredds.ucar.edu/thredds/catalog/grib/NCEP/GFS/'
'Global_0p25deg/catalog.xml?dataset=grib/NCEP/GFS/Global_0p25deg/Best')
best_gfs.datasets
best_ds = list(best_gfs.datasets.values())[0]
ncss = best_ds.subset()
query = ncss.query()
query.lonlat_box(-66.243114,-25.762908,-28.708933, -2.191886).time_range(datetime.datetime.utcnow(), datetime.datetime.utcnow() + datetime.timedelta(days=10))
query.accept('netcdf4')
query.variables('Precipitation_rate_surface')
data = ncss.get_data(query)
data = xr.open_dataset(NetCDF4DataStore(data))
lon_2d, lat_2d = np.meshgrid(data['lon'], data['lat'])
precip = data['Precipitation_rate_surface']
precip.metpy.units发布于 2020-10-20 01:20:54
这是因为该变量的单位字符串是kg.m-2.s-1,这是一个与UDUnit兼容的字符串,但不能与MetPy用于单元支持的Pint中的默认单元解析器一起工作。
在MetPy 1.0中已修复此问题。您可以使用conda安装MetPy 1.0的第二个候选版本:
conda install -c conda-forge/label/metpy_rc metpy=1.0或者使用pip:
pip install --pre metpy=1.0MetPy < 1.0的解决方法是在调用precip.metpy.units之前覆盖单元元数据
precip.attrs['units'] = 'kg m^-2 s^-1'https://stackoverflow.com/questions/64430383
复制相似问题