使用metpy和虹吸获取数据时未找到NetCDF属性

2024-04-26 02:43:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图以NetCDF格式绘制一些气象数据,通过Unidata虹吸包访问

我已经导入了MetPy文档建议的相关库

import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
from netCDF4 import num2date
import numpy as np
import xarray as xr
from siphon.catalog import TDSCatalog
from datetime import datetime

import metpy.calc as mpcalc
from metpy.units import units

我已经根据虹吸文档构造了一个数据查询

best_gfs = TDSCatalog('http://thredds.ucar.edu/thredds/catalog/grib/NCEP/GFS/Global_0p25deg/catalog.xml?dataset=grib/NCEP/GFS/Global_0p25deg/Best')

best_ds = best_gfs.datasets[0]
ncss = best_ds.subset()
query = ncss.query()
query.lonlat_box(north=55, south=20, east=-60, west=-90).time(datetime.utcnow())
query.accept('netcdf4')
query.variables('Vertical_velocity_pressure_isobaric','Relative_humidity_isobaric','Temperature_isobaric','u-component_of_wind_isobaric','v-component_of_wind_isobaric','Geopotential_height_isobaric')

data = ncss.get_data(query)

不幸的是,当我尝试使用Metpy文档中的代码解析数据集时

data = data.metpy.parse_cf()

我收到一个错误:“AttributeError:NetCDF:未找到属性”

在试图解决这个问题时,我遇到了another SO post似乎也有同样的问题,但解决方案表明——将我的metpy更新到最新版本——对我不起作用。我使用Conda更新了metpy,但遇到了与更新前相同的问题。关于如何解决这个问题还有其他想法吗


Tags: 数据from文档importdatadatetimeasnetcdf
1条回答
网友
1楼 · 发布于 2024-04-26 02:43:57

现在,虹吸中的以下代码

data = ncss.get_data(query)

将从netcdf4-python返回一个Dataset对象。您还需要一个额外的步骤将其交给xarray,这将使MetPy的parse_cf可用:

from xarray.backends import NetCDF4DataStore
ds = xr.open_dataset(NetCDF4DataStore(data))
data = ds.metpy.parse_cf()

相关问题 更多 >