首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >横截面分析问题

横截面分析问题
EN

Stack Overflow用户
提问于 2020-10-08 04:21:27
回答 1查看 72关注 0票数 0

我正在尝试按照Metpy网站上的示例代码对网格数据集执行横截面分析。

首先,我可以使用xarray读取原始的grib2数据集,也可以在将其转换为netCDF格式之后读取它。

我成功导入了所有需要的包:

代码语言:javascript
运行
复制
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
import numpy as np
import xarray as xr

import metpy.calc as mpcalc
from metpy.interpolate import cross_section

然后,我确保可以使用以下命令读取该文件:

代码语言:javascript
运行
复制
data = xr.open_dataset('/home/rik/hrrr/gtgn/gtgn.t2215z.edr.f000.nc', False)
print(data)
<xarray.Dataset>
Dimensions:            (alt: 52, time: 1, x: 451, y: 337)
Coordinates:
  * time               (time) datetime64[ns] 2020-06-18T22:15:00
  * x                  (x) float64 0.0 1.355e+04 ... 6.082e+06 6.095e+06
  * y                  (y) float64 0.0 1.355e+04 ... 4.538e+06 4.551e+06
  * alt                (alt) float64 0.0 30.0 304.0 ... 1.494e+04 1.524e+04
Data variables:
    Lambert_Conformal  int32 ...
    param30.19.0       (time, alt, y, x) float32 ...
Attributes:
    CDI:          Climate Data Interface version 1.9.8 (https://mpimet.mpg.de...
    Conventions:  CF-1.6
    history:      Wed Oct 07 17:19:41 2020: cdo -f nc copy gtgn.t2215z.edr.f0...
    institution:  National Center for Atmospheric Research
    CDO:          Climate Data Operators version 1.9.8 (https://mpimet.mpg.de...

添加MetPy的CF解析命令会得到以下ValueError:

代码语言:javascript
运行
复制
data = xr.open_dataset('/home/rik/hrrr/gtgn/gtgn.t2215z.edr.f000.nc')
data = data.metpy.parse_cf().squeeze()
print(data)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-3-fa63435fbf07> in <module>
      1 data = xr.open_dataset('/home/rik/hrrr/gtgn/gtgn.t2215z.edr.f000.nc')
----> 2 data = data.metpy.parse_cf().squeeze()
      3 print(data)

~/miniconda3/envs/metpy/lib/python3.7/site-packages/metpy/xarray.py in parse_cf(self, varname, coordinates)
    510         """
    511         from .cbook import iterable
--> 512         from .plots.mapping import CFProjection
    513 
    514         if varname is None:

~/miniconda3/envs/metpy/lib/python3.7/site-packages/metpy/plots/__init__.py in <module>
     25                 convert_gempak_color])  # pylint: disable=undefined-variable
     26 try:
---> 27     from .cartopy_utils import USCOUNTIES, USSTATES
     28     __all__.extend([USCOUNTIES, USSTATES])
     29 except ImportError:

~/miniconda3/envs/metpy/lib/python3.7/site-packages/metpy/plots/cartopy_utils.py in <module>
     41 
     42 
---> 43 USCOUNTIES = MetPyMapFeature('us_counties', '20m', facecolor='None', edgecolor='black')
     44 
     45 USSTATES = MetPyMapFeature('us_states', '20m', facecolor='None', edgecolor='black')

~/miniconda3/envs/metpy/lib/python3.7/site-packages/metpy/plots/cartopy_utils.py in __init__(self, name, scale, **kwargs)
     14     def __init__(self, name, scale, **kwargs):
     15         """Create USCountiesFeature instance."""
---> 16         super().__init__('', name, scale, **kwargs)
     17 
     18     def geometries(self):

~/miniconda3/envs/metpy/lib/python3.7/site-packages/cartopy/feature/__init__.py in __init__(self, category, name, scale, **kwargs)
    262         self.scaler = scale
    263         # Make sure this is a valid resolution
--> 264         self._validate_scale()
    265 
    266     @property

~/miniconda3/envs/metpy/lib/python3.7/site-packages/cartopy/feature/__init__.py in _validate_scale(self)
    272             raise ValueError(
    273                 '{} is not a valid Natural Earth scale. '.format(self.scale) +
--> 274                 'Valid scales are "110m", "50m", and "10m".'
    275             )
    276 

ValueError: 20m is not a valid Natural Earth scale. Valid scales are "110m", "50m", and "10m".

我使用的是Metpy v0.12.1和xarray v0.15.1

有趣的是,当我重新运行相同的代码时,我得到另一条错误消息:NameError: name 'ctables' is not defined

请在解析数据时指出哪里出了问题。

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-08 06:35:46

get_test_data()仅在使用MetPy的内置测试数据集时使用。在使用您自己的数据时,您应该省略对此函数的调用,因此使用open_dataset的代码应该如下所示:

代码语言:javascript
运行
复制
data = xr.open_dataset('/home/rik/hrrr/gtgn/gtgn.t2215z.edr.f000.nc')
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64251761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档