Базовая карта не может найти файл .shp - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь загрузить шейп-файл и построить его с помощью базовой карты, но каждый раз, когда я пытаюсь загрузить шейп-файл базовой карты, выдается сообщение об ошибке, что он не может заблокировать файл .shp, даже если файл .shp находится в папке, которую я предоставляю это путь к. Может кто-нибудь сказать мне, что я здесь делаю не так?

Мой код:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

map = Basemap(llcrnrlon=-86.637575,llcrnrlat=41.855400,urcrnrlon=-82.946169,urcrnrlat=45.116972,
             resolution='l', projection='tmerc', lat_0 = 43.513523, lon_0 = -84.660036)

map.drawmapboundary(fill_color='aqua')
map.fillcontinents(color='#ddaa66',lake_color='aqua')
map.drawcoastlines()

# Shape file location
map.readshapefile('../Desktop/Neighborhoods-MI', 'Neighborhoods')

В папке Neighborhoods-MI находятся файлы Neighborhoods-MI.shp, Neighborhoods-MI.shx, Neighborhoods-MI.prj и Neighborhoods-MI.dbf. Я также попытался использовать 'Neighbourhoods-MI' вместо полного пути к файлу, но ничего не работает.

Примечание: я также получаю устаревшее предупреждение, но я не думаю, что это проблема

/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.py:1708: MatplotlibDeprecationWarning: The axesPatch function was deprecated in version 2.1. Use Axes.patch instead.
  limb = ax.axesPatch
/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.py:1711: MatplotlibDeprecationWarning: The axesPatch function was deprecated in version 2.1. Use Axes.patch instead.
  if limb is not ax.axesPatch:

1 Ответ

0 голосов
/ 29 июня 2018

Вы должны указать имя фактического шейп-файла, а не папку, в которой он находится, поэтому в вашем случае это будет '../Desktop/Neighborhoods-MI/Neighborhoods-MI'

На что вы в данный момент указываете, это просто папка, содержащая файл.

...