Comment résoudre l'erreur KeyError: 'PROJ_LIB' avec basemap en python ?

Essayons l'exemple suivant avec matplotlib. (Remarque: vérifiez d'abord si le fond de carte est installé en entrant "import basemap" dans l'interpréteur python. Sinon, essayez simplement conda install -c anaconda basemap ou pip install basemap)

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

fig = plt.figure()


m = Basemap(projection='cyl',llcrnrlat=-90,urcrnrlat=90, 
                llcrnrlon=-180,urcrnrlon=180,resolution='c')

m.drawcoastlines()
m.fillcontinents()
m.drawparallels(np.arange(-90,90,30),labels=[1,1,0,1], fontsize=8)
m.drawmeridians(np.arange(-180,180,30),labels=[1,1,0,1], rotation=45, fontsize=8)

plt.title('How to add a title on x and y-axis using Basemap ?', fontsize=8)

plt.xlabel('Longitude', labelpad=40, fontsize=8)
plt.ylabel('Latitude', labelpad=40, fontsize=8)

plt.savefig('plot_world_map_using_matplotlib_02.png', bbox_inches='tight')

si vous obtenez le message d'erreur

KeyError: 'PROJ_LIB'

ajoutez simplement les lignes suivantes dans votre script python (vous devez d'abord trouver le chemin complet vers "/ share / proj", par exemple ici Il était situé sous anaconda3 et installé dans un environnement appelé 'worklab'):

import os

os.environ['PROJ_LIB'] = '/Users/mb/anaconda3/envs/worklab/share/proj'

(remplacez '/ Users / mb / anaconda3 / envs / worklab / share / proj' par votre chemin vers / share / proj). Pour ce faire, vous pouvez par exemple entrer simplement la commande

which python

pour obtenir le chemin vers python, par exemple

/Users/mb/anaconda3/bin/python

Vous devriez maintenant pouvoir tracer une carte à l'aide de basemap

from mpl_toolkits.basemap import Basemap
import numpy as np

import matplotlib.pyplot as plt
import os

os.environ['PROJ_LIB'] = '/Users/mb/anaconda3/envs/worklab/share/proj'

fig = plt.figure()


m = Basemap(projection='cyl',llcrnrlat=-90,urcrnrlat=90, 
                llcrnrlon=-180,urcrnrlon=180,resolution='c')

m.drawcoastlines()
m.fillcontinents()
m.drawparallels(np.arange(-90,90,30),labels=[1,1,0,1], fontsize=8)
m.drawmeridians(np.arange(-180,180,30),labels=[1,1,0,1], rotation=45, fontsize=8)

plt.title('How to add a title on x and y-axis using Basemap ?', fontsize=8)

plt.xlabel('Longitude', labelpad=40, fontsize=8)
plt.ylabel('Latitude', labelpad=40, fontsize=8)

plt.savefig('plot_world_map_using_matplotlib_02.png', bbox_inches='tight')

Comment résoudre l'erreur KeyError: 'PROJ_LIB' avec basemap en python ?
Comment résoudre l'erreur KeyError: 'PROJ_LIB' avec basemap en python ?

Image

of