用cartopy绘制特定国家的地图?

时间:2014-08-21 14:07:34

标签: python geo cartopy

我在这里试过这个例子,效果很好。但我如何专注于另一个国家,即只展示德国?

此示例的来源

http://scitools.org.uk/cartopy/docs/latest/examples/hurricane_katrina.html exampl of us map http://scitools.org.uk/cartopy/docs/latest/_images/hurricane_katrina_01_00.png

我已经在extend()方法上尝试了一些坐标,但我没有设法像美国地图一样。或者我是否必须修改形状文件?

2 个答案:

答案 0 :(得分:23)

使用http://www.gadm.org/country处的全球管理区域数据集,只需下载德国数据集并使用cartopy的shapereader(与链接示例中的方式相同)。

一个简短的自我包含的例子:

import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import matplotlib.pyplot as plt

# Downloaded from http://biogeo.ucdavis.edu/data/gadm2/shp/DEU_adm.zip
fname = '/downloads/DEU/DEU_adm1.shp'

adm1_shapes = list(shpreader.Reader(fname).geometries())

ax = plt.axes(projection=ccrs.PlateCarree())

plt.title('Deutschland')
ax.coastlines(resolution='10m')

ax.add_geometries(adm1_shapes, ccrs.PlateCarree(),
                  edgecolor='black', facecolor='gray', alpha=0.5)

ax.set_extent([4, 16, 47, 56], ccrs.PlateCarree())

plt.show()

Output from code

HTH

答案 1 :(得分:5)

让我举一个使用naturalearthdata数据的示例。因此可以将其扩展到任何国家。

ConstructURL()

这产生了下图:

Figure Germany