mac 下 basemap 安装,以及踩的一些小坑

时间:2020-05-28
本文章向大家介绍mac 下 basemap 安装,以及踩的一些小坑,主要包括mac 下 basemap 安装,以及踩的一些小坑使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

数据分析的是可视化不可或缺的,当学习到利用basemap来绘图时,环境又是恶心人的一件事。。

1.安装

我在谷歌逛了一圈,发现大多人下载必要文件基本使用pip 或者借助包管理器,‘省时省力’原则我选择了后者。

在mac下的家酿是不错的选择,我在官网https://matplotlib.org/basemap/users/installing.html,看了步骤给的十分详细。

然后我使用conda安装,建议也不要一个个文件去下载了,直接:conda install  basemap

conda会自动找需要的依赖下载

2.检测

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

plt.figure(figsize=(12,9))

m.drawcoastlines(linewidth=1.5)
m.drawmapboundary()   # 绘制边界
m.fillcontinents()   # 填充大陆,发现填充之后无法显示散点图,应该是被覆盖了
m.drawstates()        # 绘制州
m.drawcoastlines(linewidth=1.5)    # 绘制海岸线
m.drawcountries()     # 绘制国家
# m.drawcounties()      # 绘制县

plt.show()
'''关键词	描述
llcrnrlon	所需地图域的左下角经度(度)。
llcrnrlat	所需地图域的左下角纬度(度)。
urcrnrlon	所需地图域右上角的经度(度)。
urcrnrlat	所需地图域右上角的纬度(度)。
projectiont----投影关键字(map样式)'''

  

3.error出现

KeyError: 'PROJ_LIB'

refer 大佬的解决办法

查完资料,是由于python版本的问题导致的。

直接原因是:系统找不到这个叫做PROJ_LIB的环境变量,所以报错了。

根本原因:调用basemap模块的时候会调用basemap所依赖的proj4模块,所以当时在anaconda上安装basemap模块的时候细心的铁汁可以看到相应的也安装了proj4这个模块。但是最坑的是,anaconda root下安装proj4的时候不会主动给你设置proj4模块的环境变量,所以就导致的现在这样的错误。

解决方案:

方案1) :可以在anaconda下建立一个新环境(env),参考文章:https://blog.csdn.net/weixin_39278265/article/details/82982937

再进行之前的步骤1(安装)和2(验证),就可以了。

方案2):先将Anaconda安装目录下找到proj4的安装路径,我的是在:D:\software\Anaconda\pkgs\proj4-4.9.3-hfa6e2cd_8,然后打开这个文件夹,进入Library -> share 文件夹,将里面的文件全选并复制,粘贴到 D:\software\Anaconda\share\proj 这个文件夹下(如果Anaconda根目录下没有这个proj文件夹,就创建一个)。

方法二 我尝试过,但是注意路径:Library这文件夹没了,下面直接就是share,还有就是依赖版本变了,更具自己具体情况来改变

然后失败了

error原因都是一样的,我才用下面的解决办法:局部更改变量

import os
import conda


conda_file_dir = conda.__file__
conda_dir = conda_file_dir.split('lib')[0]
proj_lib = os.path.join(os.path.join(conda_dir, 'share'), 'proj')
os.environ["PROJ_LIB"] = proj_lib

#这个好使

  

然后又有error

缺少file

conda install -c conda-forge basemap-data-hires 

这下总于完成了

ps:

conda install -c conda-forge basemap
conda install -c conda-forge/label/gcc7 basemap
conda install -c conda-forge/label/broken basemap
conda install -c conda-forge/label/cf201901 basemap
conda install -c conda-forge/label/cf202003 basemap

 

2020-05-28

原文地址:https://www.cnblogs.com/cheflone/p/12983901.html