如何在matplotlib底图中绘制高分辨率的etopo背景?

时间:2013-12-25 03:29:23

标签: matplotlib matplotlib-basemap

默认情况下,etopo background pic的分辨率非常低。如何获得高分辨率背景?

3 个答案:

答案 0 :(得分:10)

我刚刚进入类似的事情!起初我想也许我应该去GMT。但最后我发现了这个:

http://basemaptutorial.readthedocs.org/en/latest/backgrounds.html

我在Basemap中使用了 arcgisimage()。一旦你确定了相应的 epsg 相关的地方数量,并设定了绘图范围,你就可能得到一个很好的画面。 (EPSG数字很重要。) 这是我的代码。 (POI:LA)

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

map = Basemap(llcrnrlon=-118.5,llcrnrlat=33.15,urcrnrlon=-117.15,urcrnrlat=34.5, epsg=4269)
#http://server.arcgisonline.com/arcgis/rest/services
#EPSG Number of America is 4269

map.arcgisimage(service='ESRI_Imagery_World_2D', xpixels = 2000, verbose= True)
plt.show()

如果你想要etopo背景,你可以使用'ESRI_Imagery_World_2D',它看起来非常相似。从剧本中你可以看到该区域的宽度小于1度(在纬度和经度上)

有很多服务可供选择! (我不是在做广告。(。·`ω'·))

我画了一些人物。 enter image description here enter image description here enter image description here

答案 1 :(得分:1)

使用功能warpimage(),您可以使用任何自定义图像作为地图背景。图像必须是全局的,从国际日期线向东和南极向北以纬度/经度坐标覆盖世界。

答案 2 :(得分:0)

您可以直接使用.etopo() method