我刚刚注意到,当我尝试在NCAR的Cheyenne超级计算机上导入metpy.plots时,在使用metpy 0.10.0(与Cartopy 0.17.0一起使用)时,它会加载并正常运行,但是metpy 0.12.0或0.12.1(使用Cartopy 0.18.0b2)。这是我得到的错误:
(NPL) jaredlee@cheyenne3:~> python3
Python 3.6.8 (default,Jun 27 2019,20:02:05)
[GCC 8.3.0] on linux
Type "help","copyright","credits" or "license" for more information.
>>> import metpy
>>> metpy.__version__
'0.12.1'
>>> import metpy.plots as mpplots
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/glade/work/jaredlee/python/my_npl_clone_20200417/lib/python3.6/site-packages/metpy/plots/__init__.py",line 27,in <module>
from .cartopy_utils import USCOUNTIES,USSTATES
File "/glade/work/jaredlee/python/my_npl_clone_20200417/lib/python3.6/site-packages/metpy/plots/cartopy_utils.py",line 43,in <module>
USCOUNTIES = MetPyMapFeature('us_counties','20m',facecolor='None',edgecolor='black')
File "/glade/work/jaredlee/python/my_npl_clone_20200417/lib/python3.6/site-packages/metpy/plots/cartopy_utils.py",line 16,in __init__
super().__init__('',name,scale,**kwargs)
File "/glade/work/jaredlee/python/my_npl_clone_20200417/lib/python3.6/site-packages/cartopy/feature/__init__.py",line 264,in __init__
self._validate_scale()
File "/glade/work/jaredlee/python/my_npl_clone_20200417/lib/python3.6/site-packages/cartopy/feature/__init__.py",line 274,in _validate_scale
'Valid scales are "110m","50m",and "10m".'
ValueError: 20m is not a valid Natural Earth scale. Valid scales are "110m",and "10m".
>>>
如果我在metpy的本地副本中手动更改cartopy_utils.py,以便对MetPyMapFeature的USCOUNTIES和USSTATES函数调用使用“ 10m”而不是“ 20m”,则错误消失了。这是“ 20m”是cartopy_utils.py中的错误吗? Natural Earth的网页广告宣传它以1:10m,1:50m和1:110m的比例提供数据。