Can someone help me figure out the error message while using 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, 1, projection=proj)
main_ax.set_extent([minlon, maxlon, minlat, maxlat], crs=proj)
main_ax.gridlines(draw_labels=True)
main_ax.coastlines()
request = cimgt.OSM()
main_ax.add_image(request, 12)
The error I receive is ValueError: A non-empty list of tiles should be provided to merge.
and can't seem to figure out what's the issue.
Your request is rejected by OSM server. To get around it, you need to use image_spoof()
as demonstrated
in this link.
With image_spoof()
in place, your relevant code should be:-
# reformat web request for street map spoofing
cimgt.OSM.get_image = image_spoof
# continued with your code
request = cimgt.OSM() # spoofed