Границы округа в Картопи - PullRequest
0 голосов
/ 29 июня 2018

Как вы определяете границы округа США в Картопи?

Очень просто построить границы штата и страны

ax.add_feature(cfeature.BORDERS.with_scale('50m'))
ax.add_feature(cfeature.STATES.with_scale('50m'))

Но я не могу найти похожий метод для добавления границ округа. Это была одна из приятных вещей в Basemap.

1 Ответ

0 голосов
/ 02 июля 2018

Учитывая способность картопий рисовать шейп-файлы, этот вопрос сводится к тому, «где я могу найти контуры округа США?».

Аналогичный вопрос задавался на форуме Natural Earth по адресу http://www.naturalearthdata.com/forums/topic/u-s-county-shape-file/.. Он указывал на местоположение в http://nationalatlas.gov/mld/countyp.html,, которое, к сожалению, имело небольшую порцию гниения. Быстрый Google предлагает это теперь можно найти по адресу:

https://nationalmap.gov/small_scale/atlasftp.html?openChapters=chpbound#chpbound

Я решил скачать один из этих шейп-файлов округа:

https://prd -tnm.s3.amazonaws.com / StagedProducts / Мелкая / данные / Границы / countyl010g_shp_nt00964.tar.gz

Имея это в виду, я использовал средство чтения форм cartopy, чтобы вывести геометрию, и создал специальную функцию, которую затем можно добавить к осям:

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


reader = shpreader.Reader('countyl010g.shp')

counties = list(reader.geometries())

COUNTIES = cfeature.ShapelyFeature(counties, ccrs.PlateCarree())

plt.figure(figsize=(10, 6))
ax = plt.axes(projection=ccrs.PlateCarree())

ax.add_feature(cfeature.LAND.with_scale('50m'))
ax.add_feature(cfeature.OCEAN.with_scale('50m'))
ax.add_feature(cfeature.LAKES.with_scale('50m'))
ax.add_feature(COUNTIES, facecolor='none', edgecolor='gray')

ax.coastlines('50m')

ax.set_extent([-83, -65, 33, 44])
plt.show()

US counties

Это получено из примера на https://scitools.org.uk/cartopy/docs/v0.14/examples/feature_creation.html, который строит NaturalEarthFeature, а не ShapelyFeature, но в остальном принцип почти такой же.

Надеюсь, что это полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...