Draw a map of a specific country with potatoes?

I tried this example here, which works great. But how can I focus on another country, that is, show only Germany?

Source for this example

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

I tried some coordinates in the extend () method, but I didn’t succeed in looking like a map of the USA. Or do I need to change the form file?

+9
source share
2 answers

Using the global administrative area dataset at http://www.gadm.org/country , simply download the dataset from Germany and use the map shaper (in the same way as in the linked example).

Short core example:

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

NTN

+26
source

Let me just give an example using data from naturalearthdata . So it can be extended to any country.

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

This gives the following figure:

Figure Germany

+6
source

Source: https://habr.com/ru/post/1200840/


All Articles