Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用Google Colab时,Cartopy(0.14.2)/MetPy(0.12.2)解析(cf)错误_Python_Python 3.x_Google Colaboratory_Cartopy_Metpy - Fatal编程技术网

Python 使用Google Colab时,Cartopy(0.14.2)/MetPy(0.12.2)解析(cf)错误

Python 使用Google Colab时,Cartopy(0.14.2)/MetPy(0.12.2)解析(cf)错误,python,python-3.x,google-colaboratory,cartopy,metpy,Python,Python 3.x,Google Colaboratory,Cartopy,Metpy,我有一个学生面临的问题与其他人在使用旧版本的MetPy和Cartopy时报告的问题类似 问题是metpy下的parse_cf()命令。这是在谷歌合作实验室下进行的,对此我几乎没有经验。在其他平台(anaconda、miniconda、homebrew等)上运行良好 我之前看到的反馈是指从0.18.*回滚cartopy库的版本。我也遵循了之前发布的Shapely指南,但我们似乎无法在Google CoLab中更改cartopy或metpy版本 下面是环境和python库的版本信息,后面是代码和错误

我有一个学生面临的问题与其他人在使用旧版本的MetPy和Cartopy时报告的问题类似

问题是metpy下的parse_cf()命令。这是在谷歌合作实验室下进行的,对此我几乎没有经验。在其他平台(anaconda、miniconda、homebrew等)上运行良好

我之前看到的反馈是指从0.18.*回滚cartopy库的版本。我也遵循了之前发布的Shapely指南,但我们似乎无法在Google CoLab中更改cartopy或metpy版本

下面是环境和python库的版本信息,后面是代码和错误

我在这里不知所措,已经尽力为我的学生解决了。我们双方都将感谢您的指导

系统和软件包信息

MetPy                         0.12.2         
Cartopy                       0.14.2         
3.6.9 (default, Oct  8 2020, 12:12:24) 
[GCC 8.4.0]
Linux d8a71c5140a6 4.19.112+ #1 SMP Thu Jul 23 08:00:38 PDT 2020 x86_64 x86_64 x86_64 GNU/Linux
Linux-4.19.112+-x86_64-with-Ubuntu-18.04-bionic

python-cartopy/bionic,now 0.14.2+dfsg1-2build3 amd64 [installed]
python3-cartopy/bionic,now 0.14.2+dfsg1-2build3 amd64 [installed]
要复制的代码

import numpy as np
import cartopy as c
import metpy as metpy

file_218 = "https://www.ncei.noaa.gov/thredds/dodsC/model-nam218/202011/20201121/nam_218_20201121_0000_000.grb2"

ds218    = xr.open_dataset(file_218)
ds218    = ds218.metpy.parse_cf()

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-9-4362f5b26659> in <module>()
      9 file_218 = "https://www.ncei.noaa.gov/thredds/dodsC/model-nam218/202011/20201121/nam_218_20201121_0000_000.grb2"
     10 ds218    = xr.open_dataset(file_218)
---> 11 ds218    = ds218.metpy.parse_cf()

1 frames
/usr/local/lib/python3.6/dist-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:

/usr/local/lib/python3.6/dist-packages/metpy/plots/__init__.py in <module>()
     17 logger = logging.getLogger(__name__)
     18 
---> 19 __all__ = ctables.__all__[:]  # pylint: disable=undefined-variable
     20 __all__.extend(declarative.__all__)  # pylint: disable=undefined-variable
     21 __all__.extend(skewt.__all__)  # pylint: disable=undefined-variable

NameError: name 'ctables' is not defined
错误消息

import numpy as np
import cartopy as c
import metpy as metpy

file_218 = "https://www.ncei.noaa.gov/thredds/dodsC/model-nam218/202011/20201121/nam_218_20201121_0000_000.grb2"

ds218    = xr.open_dataset(file_218)
ds218    = ds218.metpy.parse_cf()

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-9-4362f5b26659> in <module>()
      9 file_218 = "https://www.ncei.noaa.gov/thredds/dodsC/model-nam218/202011/20201121/nam_218_20201121_0000_000.grb2"
     10 ds218    = xr.open_dataset(file_218)
---> 11 ds218    = ds218.metpy.parse_cf()

1 frames
/usr/local/lib/python3.6/dist-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:

/usr/local/lib/python3.6/dist-packages/metpy/plots/__init__.py in <module>()
     17 logger = logging.getLogger(__name__)
     18 
---> 19 __all__ = ctables.__all__[:]  # pylint: disable=undefined-variable
     20 __all__.extend(declarative.__all__)  # pylint: disable=undefined-variable
     21 __all__.extend(skewt.__all__)  # pylint: disable=undefined-variable

NameError: name 'ctables' is not defined
---------------------------------------------------------------------------
NameError回溯(最近一次呼叫上次)
在()
9文件_218=”https://www.ncei.noaa.gov/thredds/dodsC/model-nam218/202011/20201121/nam_218_20201121_0000_000.grb2"
10 ds218=xr.open_数据集(文件_218)
--->11 ds218=ds218.metpy.parse_cf()
1帧
/parse_cf(self、varname、coordinates)中的usr/local/lib/python3.6/dist-packages/metpy/xarray.py
510         """
511从.cbook导入可编辑
-->512从.plots.mapping导入CFProjection
513
514如果varname为None:
/usr/local/lib/python3.6/dist-packages/metpy/plots/___init__.py in()
17 logger=logging.getLogger(_名称__)
18
--->19 uuuuuuuuuuuuuuuu=ctables.uuuuuuuuuuuuuuuuuuui[:]#pylint:disable=未定义变量
20 _uall _uu.extend(声明性._uall _uu)#pylint:disable=未定义变量
21 uuu all uuu.extend(skewt.uuu all uuu)#pylint:disable=未定义变量
NameError:未定义名称“ctables”

这里的核心问题是,0.14.2对于MetPy来说太旧了——尽管它崩溃的事实是一个将在即将发布的1.0版本中修复的错误。要在Collab上安装更新版本的CartoPy,这个方法对我来说很有效(在单元格中键入以下命令):


谢谢你,瑞恩,这很有效。