我正在尝试通过Python的底图以静态方式绘制NY地图
west, south, east, north = -74.26, 40.50, -73.70, 40.92
# fig = plt.figure(figsize=(18,14))
m = Basemap(projection='merc', llcrnrlat=south, urcrnrlat=north,
llcrnrlon=west, urcrnrlon=east, lat_ts=south, resolution='i')
m.etopo(scale=0.5, alpha=0.5)
但是我得到only this
我可以通过folium
绘制它,但它不是静态的,而是可以缩放的。
是否可以使用Basemap绘制NY的静态地图
答案 0 :(得分:0)
根据底图documentation,etopo
使用来自NOAA page的数据(提供1弧分的分辨率)来显示浮雕。使用您在代码中提供的坐标,我希望最大分辨率约为33x25像素。
现在,再次根据底图文档,etopo接受scale
关键字以缩小数据,默认为None
,但它们并没有真正说明接受的值范围。我开始尝试使用此方法,并使用scale=5
在您的(略有改编的)代码中进行操作:
from matplotlib import pyplot as plt
from mpl_toolkits.basemap import Basemap
west, south, east, north = -74.26, 40.50, -73.70, 40.92
m = Basemap(projection='merc', llcrnrlat=south, urcrnrlat=north,
llcrnrlon=west, urcrnrlon=east, lat_ts=south, resolution='i')
result = m.etopo(scale=5)
print(result.get_size())
plt.show()
我得到以下图像(警告:这需要一些时间):
print
命令的输出(即图像的像素大小)为
(32, 32)
这使我感到困惑,因为我没想到分辨率会在纬度方向上变得如此高。我猜想正在进行某种插值操作,但是要确定一个插值操作必须经过代码才能查看scale
关键字的实际作用。