python - 尝试使用 Cartopy 但出现此错误: URLError:
问题描述
很长一段时间以来,我一直在使用底图进行 .nc 文件的空间映射,但我看到现在建议使用 cartopy。我进行了过渡,最初一切顺利,但过了一段时间它不再起作用了,而且这个错误一遍又一遍地发送垃圾邮件,我试图重塑代码,更改投影,但它总是这个 URLError:<urlopen 错误 [Errno -3] 名称解析暂时失败>。
下面是代码,大家看看
import cartopy.feature as cfeature
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LATITUDE_FORMATTER, LONGITUDE_FORMATTER
import xarray as xr
import matplotlib.pyplot as plt
import matplotlib
import matplotlib.colors as colors
import numpy as np
ds = xr.open_mfdataset('/content/pr_SAM-22_ECMWF-ERAINT_evaluation_r1i1p1_ICTP-RegCM4-svn_v0_day_*_remap.nc')
prec = ds['pr']*86400
prec_sel = prec.sel(lon=slice(-80, -30), lat=slice(-60, 8),time='2017-12-01T12:00:00')
colors = ["#b4f0f0", "#96d2fa", "#78b9fa", "#3c95f5", "#1e6deb", "#1463d2", "#0fa00f", "#28be28", "#50f050", "#72f06e", "#b3faaa", "#fff9aa", "#ffe978", "#ffc13c", "#ffa200", "#ff6200", "#ff3300", "#ff1500", "#c00100", "#a50200", "#870000", "#653b32"]
cmap = matplotlib.colors.ListedColormap(colors)
cmap.set_over('#000000')
cmap.set_under('#aaaaaa')
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection=ccrs.PlateCarree())
ax.set_extent([-80, -30, 8, -60])
lon, lat = np.meshgrid(prec_as.lon, prec_as.lat)
min = np.min(prec_as)
max = np.max(prec_as)
interval = 10
#levels = np.arange(min,max,interval)
S1 = plt.contourf(lon, lat, prec_as, linewidths = 1.5, extend='both')
plt.colorbar(S1,ticks=np.arange(min,200,interval),format='%.1f')
ax.add_feature(cfeature.COASTLINE)
ax.add_feature(cfeature.BORDERS)
states = cfeature.NaturalEarthFeature(category='cultural',
name='admin_1_states_provinces_shp',
scale='50m',
facecolor='none')
ax.add_feature(states, edgecolor='k', linestyle='--')
ax.set_title('Test', fontsize=14, y=1.02)
g1 = ax.gridlines(crs=ccrs.PlateCarree(), linestyle='--', color='gray', draw_labels=True)
g1.ylabels_right = False
g1.xlabels_top = False
g1.yformatter = LATITUDE_FORMATTER
g1.xformatter = LONGITUDE_FORMATTER
g1.xlabel_style = {'size': 14}
g1.ylabel_style = {'size': 14}
plt.savefig('Mapa_streamlines_AS.png', dpi=300, bbox_inches='tight')
这是错误:
/usr/local/lib/python3.7/dist-packages/cartopy/mpl/geoaxes.py:1586:用户警告:contourf 忽略线宽结果 = matplotlib.axes.Axes.contourf(self, *args, **kwargs ) /usr/local/lib/python3.7/dist-packages/cartopy/mpl/gridliner.py:360: UserWarning: .ylabels_right 属性已弃用。请改用 .right_labels 来切换可见性。warnings.warn('.ylabels_right 属性已弃用。请' /usr/local/lib/python3.7/dist-packages/cartopy/mpl/gridliner.py:324: UserWarning: .xlabels_top 属性已弃用。请使用.top_labels 改为切换可见性。warnings.warn('不推荐使用 .xlabels_top 属性。请 ' /usr/local/lib/python3.7/dist-packages/cartopy/io/init .py :241: DownloadWarning: Downloading: https://naciscdn.org/naturalearth/110m/physical/ne_110m_coastline.zip warnings.warn('Downloading: {}'.format(url), DownloadWarning) --------------- -------------------------------------------------- ---------- gaierror Traceback(最近一次调用最后)/usr/lib/python3.7/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1349
h.request( req.get_method(), req.selector, req.data, headers, -> 1350 encode_chunked=req.has_header('Transfer-encoding')) 1351
除了 OSError as err: # timeout error35 帧 gaierror:[Errno -3] 名称解析暂时失败
在处理上述异常的过程中,又出现了一个异常:
URLError Traceback(最近一次调用最后)/usr/lib/python3.7/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1350 encode_chunked
=req.has_header('Transfer-encoding')) 1351
除了 OSError as err: # timeout error -> 1352 raise URLError(err) 1353 r = h.getresponse() 1354 除了:URLError: <urlopen error [Errno -3] Temporary failure in name resolution> 回调错误 <function install_repl_displayhook..post_execute at 0x7f10349a6cb0> (for post_execute): ----------------- -------------------------------------------------- -------- gaierror Traceback(最近一次调用最后)/usr/lib/python3.7/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1349
h.request(req. get_method(), req.selector, req.data, headers, -> 1350 encode_chunked=req.has_header('Transfer-encoding')) 1351
除了 OSError as err: # timeout error35 帧 gaierror:[Errno -3] 名称解析暂时失败
在处理上述异常的过程中,又出现了一个异常:
URLError Traceback(最近一次调用最后)/usr/lib/python3.7/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1350 encode_chunked
=req.has_header('Transfer-encoding')) 1351
除了 OSError as err: # timeout error -> 1352 raise URLError(err) 1353 r = h.getresponse() 1354 除了:URLError: <urlopen 错误 [Errno -3] 名称解析暂时失败> ---------------------------------- ----------------------------------------- gaierror Traceback(最近一次调用最后)/ usr/lib/python3.7/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1349
h.request(req.get_method(), req.selector, req.data, headers, -> 1350 encode_chunked=req.has_header('Transfer-encoding')) 1351
除了 OSError as err: # timeout error35 帧 gaierror:[Errno -3] 名称解析暂时失败
在处理上述异常的过程中,又出现了一个异常:
URLError Traceback(最近一次调用最后)/usr/lib/python3.7/urllib/request.py in do_open(self, http_class, req, **http_conn_args) 1350 encode_chunked
=req.has_header('Transfer-encoding')) 1351
除了 OSError as err: # timeout error -> 1352 raise URLError(err) 1353 r = h.getresponse() 1354 除了:URLError: <urlopen 错误 [Errno -3] 名称解析暂时失败>
正如我所说,我尝试更改与 cartopy 对应的每个块,甚至将 .shp 更改为仅包含国家/地区的块,但没有任何效果。
解决方案
推荐阅读
- javascript - 这个增加/减少数字的 JavaScript 函数有哪些替代方法?
- android - 将分页库与 RecyclerView 以外的东西一起使用
- c++ - 对象的破坏是否正确发生?
- python-3.x - 在 k 表示肘法中,我们如何从数据集中定义轴的平方和?
- search - SphinxSearch:无法从(远程)代理获取结果
- jenkins - 在 Jenkinsfile 中设置环境变量
- spring-cloud-config - 带有 git 后端的 Spring Cloud Config Server 使用 github 访问令牌
- python - 如何在浏览器列表上运行所有测试?
- azure-active-directory - 无法将 OIDC 应用与 Azure Active Directory 集成
- android - 如何使用带有 react-native-drive-api-wrapper 的 react native 将图像上传到谷歌驱动器?