ValueError:应提供非空的图块列表以进行合并

问题描述

有人可以帮我找出使用 cartopy 时的错误信息吗?

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid.inset_locator import inset_axes
import cartopy.crs as ccrs
import cartopy.io.img_tiles as cimgt

import windrose

ws = np.random.random(500) * 6
wd = np.random.random(500) * 360

minlon,maxlon,minlat,maxlat = (6.5,7.0,45.85,46.05)

proj = ccrs.PlateCarree()
fig = plt.figure(figsize=(12,6))
# Draw main ax on top of which we will add windroses
main_ax = fig.add_subplot(1,1,projection=proj)
main_ax.set_extent([minlon,maxlat],crs=proj)
main_ax.gridlines(draw_labels=True)
main_ax.coastlines()

request = cimgt.OSM()
main_ax.add_image(request,12)

我收到的错误ValueError: A non-empty list of tiles should be provided to merge. 并且似乎无法弄清楚是什么问题。

解决方法

您的请求被 OSM 服务器拒绝。要绕过它,您需要使用 image_spoof() 作为演示 在这个link中。

使用 image_spoof() 后,您的相关代码应该是:-

# reformat web request for street map spoofing
cimgt.OSM.get_image = image_spoof
# continued with your code
request = cimgt.OSM() # spoofed

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...