¿Dibujar un mapa de un país específico con cartopy?

He intentado este ejemplo aquí, que funciona bien. Pero, ¿cómo me enfoco en otro país, es decir, solo muestro Alemania?

fuente para este ejemplo

http://scitools.org.uk/cartopy/docs/latest/examples/hurricane_katrina.html ejemplo de mapa http://sofes.miximages.com/python/hurricane_katrina_01_00.png

He intentado algunas coordenadas en el método extend (), pero no logré parecerme al mapa de los EE. UU. ¿O tengo que modificar el archivo de forma?

    Usando el conjunto de datos de Áreas Administrativas Globales en http://www.gadm.org/country , simplemente descargue el conjunto de datos de Alemania y use el shapereader de cartopy (de la misma manera que se hace en el ejemplo vinculado).

    Un ejemplo autocontenido:

    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() 

    Salida de código

    HTH

    Permítanme añadir un ejemplo utilizando los datos de naturalearthdata . Así que es posible extender esto a cualquier país.

     from cartopy.io import shapereader import numpy as np import geopandas import matplotlib.pyplot as plt import cartopy.crs as ccrs # get natural earth data (http://www.naturalearthdata.com/) # get country borders resolution = '10m' category = 'cultural' name = 'admin_0_countries' shpfilename = shapereader.natural_earth(resolution, category, name) # read the shapefile using geopandas df = geopandas.read_file(shpfilename) # read the german borders poly = df.loc[df['ADMIN'] == 'Germany']['geometry'].values[0] ax = plt.axes(projection=ccrs.PlateCarree()) ax.add_geometries(poly, crs=ccrs.PlateCarree(), facecolor='none', edgecolor='0.5') ax.set_extent([5, 16, 46.5, 56], crs=ccrs.PlateCarree()) 

    Esto produce la siguiente figura:

    Figura alemania