Shapefile-Daten in Cartopy darstellen

English Deutsch

Um Shapefile-Daten in Cartopy anzuzeigen, kann zuerst das Paket cartopy.io.shapereader verwendet werden, um die Shape-Daten zu lesen, und dann die anzuzeigende Geometrie in ein cartopy.feature.ShapelyFeature umgewandelt werden.

Im folgenden Beispiel lesen wir die Natural Earth-Datei ne_110m_admin_0_countries.shp und Beachten, dass es einen einfacheren Weg gibt, Natural-Earth-Daten mit shpreader.natural_earth darzustellen – siehe Ein bestimmtes Land mit Cartopy hervorheben – und wir verwenden den Natural-Earth-Datensatz nur als Beispiel!

how-to-plot-shapefile-data-in-cartopy.py
import cartopy.io.shapereader as shpreader
# Shape-Datei lesen
reader = shpreader.Reader("ne_110m_admin_0_countries.shp")
# Nach bestimmtem Land filtern
kenya = [country for country in reader.records() if country.attributes["NAME_LONG"] == "Kenya"][0]

# Kenias Form anzeigen
shape_feature = ShapelyFeature([kenya.geometry], ccrs.PlateCarree(), facecolor="lime", edgecolor='black', lw=1)
ax.add_feature(shape_feature)

Vollständiges Codebeispiel

cartopy_shapefile_complete_example.py
import cartopy.crs as ccrs
import cartopy.feature as cf
from cartopy.feature import ShapelyFeature
from matplotlib import pyplot as plt

proj = ccrs.PlateCarree()
ax = plt.axes(projection=proj)
# Nur Afrika anzeigen
ax.set_extent([-23, 55, -35, 40])
ax.stock_img()

ax.add_feature(cf.COASTLINE, lw=2)
# Abbildung vergrößern
plt.gcf().set_size_inches(20, 10)

import cartopy.io.shapereader as shpreader
# Shape-Datei lesen
reader = shpreader.Reader("ne_110m_admin_0_countries.shp")
# Nach bestimmtem Land filtern
kenya = [country for country in reader.records() if country.attributes["NAME_LONG"] == "Kenya"][0]

# Kenias Form anzeigen
shape_feature = ShapelyFeature([kenya.geometry], ccrs.PlateCarree(), facecolor="lime", edgecolor='black', lw=1)
ax.add_feature(shape_feature)

# Abbildung als SVG speichern
plt.savefig("Africa-Highlight-Kenya.svg")

Check out similar posts by category: Cartopy, Geography, Python