Basemap avec Python 3.5 Anaconda sur Windows
J'utilise Python 3.5 avec la dernière version D'Anaconda sur Windows (64 bits). Je voulais installer Basemap en utilisant conda install basemap
. Apparemment il y a un conflit entre Python 3 et basemap. Après quelques recherches sur Google, j'ai découvert que basemap n'est pas supporté sur Python 3 pour les utilisateurs Windows (ex: https://groups.google.com/a/continuum.io/forum/#!topic/anaconda / TjAwi3ilQaU ).
pour des raisons évidentes, Je ne veux pas rétrograder en Python 2. Ce serait alors être la solution alternative la plus simple?
- Existe-t-il un paquet alternatif similaire à basemap pour les cartes d'enracinement, etc.?
- devrais-je utiliser un second environnement qui utilise Python 2 et basemap? Je n'ai jamais fait cela mais cela semble possible ( http://conda.pydata.org/docs/py2or3.html ). Est-ce"sans danger"? Si j'installe à nouveau tous les autres paquets (matplotlib, numpy, etc.) sur le deuxième environnement?
Merci d'avance pour l'aide et les conseils.
5 réponses
j'ai résolu ce plusieurs fois (la dernière fois à l'instant) en le téléchargeant à partir http://www.lfd.uci.edu / ~gohlke /pythonlibs et suivez les instructions pour installer. De la commande Anaconda prompt
pip install full_path_to_package
par exemple, si vous avez téléchargé basemap-1.1.0-cp36-cp36m-win_amd64.whl, vous courriez
pip install C:\path\to\file\basemap-1.1.0-cp36-cp36m-win_amd64.whl
notez que la version python du .le fichier whl doit correspondre à votre version python . Par exemple, ...-cp36-....
indique Python 3.6. Vous pouvez trouver votre version python en exécutant la commande python --version
.
se référant à la réponse de Solly, j'ai Windows 10, python 3.5.3, Anaconda 64bit, dans L'invite Anaconda j'ai entré:
conda install -c conda-forge basemap=1.0.8.dev0
conda install -c conda-forge basemap-data-hires
puis le code, pris de Python pour les Données de la Science pour les Nuls , page 193 (Traçage des données géographiques a très bien fonctionné. Je voulais juste ajouter un commentaire à la Solly réponse, mais je n'ai pas assez de crédits pour le faire. Le code est:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
austin = (-97.75, 30.25)
hawaii = (-157.8, 21.3)
washington = (-77.01, 38.90)
chicago = (-87.68, 41.83)
losangeles = (-118.25, 34.05)
m = Basemap(projection = 'merc', llcrnrlat=10, urcrnrlat=50,
llcrnrlon=-160, urcrnrlon=-60)
m.drawcoastlines()
m.fillcontinents (color='lightgray', lake_color='lightblue')
m.drawparallels(np.arange(-90.,91.,30.))
m.drawmeridians(np.arange(-180.,181.,60.))
m.drawmapboundary(fill_color='aqua')
m.drawcounties()
x, y = m(*zip(*[hawaii, austin, washington, chicago, losangeles]))
m.plot(x,y, marker ='o', markersize=6, markerfacecolor='red', linewidth=0)
plt.title('Mercator Projection')
plt.show()
Cartopy est une alternative au Basemap, et il est activement développé.
il y a une belle galerie ici: http://scitools.org.uk/cartopy/docs/latest/gallery.html
à vrai dire, j'ai eu le même problème et j'ai essayé de le résoudre pour waaay to long et j'ai même essayé un environnement python 2 sans succès.
personnellement, le simple fait d'utiliser une installation python 2 était beaucoup plus facile et prenait moins de temps. Désolé pour la non réponse.