登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 不想去气象局 于 2020-7-3 16:21 编辑
写在前面:虽然关于Cartopy的安装已经有不少介绍了,但是因为某些原因所以自己写了一份Cartopy的下载手册,本文针对的是Python零基础群体,并且不介绍Python以及Cartopy具体的使用,仅帮助你在电脑上安装Cartopy,尤其针对Cartopy将是下载Python后第一个手动安装的库的气象同行们。不知道在这么多分享资料的气象家园里这份文档会不会太多余。
先简单介绍一下Cartopy,不了不了也没啥好介绍的,总之学气象的如果要用Python出图,安装Cartopy就完事了。这里简单提一句,对于新接触Python气象绘图的看官来说,以后如果看见有关Basemap的介绍直接跳过即可,因为Basemap跟NCL一样也不再更新,所有的开发都转移到Cartopy上面来了。想来想去,唯一可能需要介绍的可能是这个库的读音?来跟我念,Car to py。这是我第一次见到这几个字母时候的发音,后来上油管看教程的时候发现人家读的是/ka:rəpaɪ/。但是Car to py 读习惯了现在也不好改了,而且跟大家交流的时候也许念Car to py别人反而能知道你在说啥。
好了,下面进入正题! 如果你此前已经安装过Anaconda,可以跳过步骤一,直接进入步骤二,但是如果在后续的安装过程中出现了一些问题,可能是因为你安装的版本太老了,如果是版本原因,建议卸载后重新根据本文步骤进行安装。 步骤一: 安装完之后你可以选择打开Anaconda,也可以不打开,因为后面基本用不着,但是装都装完了,还是满足一下好奇心看一看吧。打开后就是这样的一个界面,除了Jupyter和Spyder之外,其他我也不清楚是啥,反正Jupyter和Spyder任选一个吧。我用的是Spyder,因为他跟Matlab的窗口很像,交互界面比较友好,可以双击查看数据啊等等,用print查看数据有时候真的不如这种窗口显示来得直观。但是有些大神好像不那么推荐Spyder,反正对我来说Spyder够用了也挺好用,适合自己就好了嘛。之后要启动Spyder就不需要进入Anaconda了,开始菜单里直接进入Spyder即可。左边的Environments是用来安装库的,但是并不建议这样安装,因为很多库的没有,比如我们需要的Cartopy就是没有的。所以接下来就是讲解如何通过命令行安装Cartopy。 步骤二: 接下来我们先在开始菜单里找到AncondaPrompt,点击进入。其实和cmd一样啦,但是为了避免出错,建议所有的安装库的操作都在AncondaPrompt里进行,相当于conda就是管理各种库的一个工具吧。 各系统都可以通过修改用户目录下的 .condarc 文件。Windows 用户无法直接创建名为.condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改 所以你可以根据链接直接去官网复制这些到.condarc文件中,或者我也会把更改完的.condarc文件放在底下,直接复制到你的用户目录下即可。 步骤三: 好了,终于开始安装Cartopy了,重新打开Anaconda Prompt,输入 - conda install -c conda-forge cartopy
复制代码然后就是慢慢等,等啊等,等到需要你输入y或者yes,输入之后又等啊等,然后就安装完了,是不是特别简单。如果安装失败的建议重新输一遍下载命令,有可能是网络的原因,如果还是不行建议回到第一步或者第二步,看看是不是你的Anaconda版本太老了或者清华源没有换成功。下图是安装完了的样子。
接下来我们就进入Spyder来看有没有安装成功。输入 import cartopy print(cartopy.config['data_dir']) 然后Ctrl+Enter运行 如果没有报错并且出现类似上面的内容那就是安装成功了!安装步骤其实已经结束了,但是目前你的Cartopy里并没有地图的信息,所以会导致你第一次运行画图的时候需要联网下载shapefile的信息,而且由于数据源不在国内,所以会很慢很慢,接下来我们需要把地图文件手动添加到Cartopy的路径里去,文件我统一放在文末链接里。刚刚的运行结果其实就是Cartopy 存放shapefile的路径,我们只需要进入这个路径,然后把我打包好的shapefile文件复制进路径即可。 最后检验一下有没有成功,在Spyder里输入 - import matplotlib.pyplot as plt
- import cartopy.crs as ccrs
- plt.figure()
- ax = plt.axes(projection=ccrs.PlateCarree(central_longitude=180))
- ax.coastlines(resolution='50m')
复制代码
如果出现上面这幅图,那么恭喜彻底完成了! 后续也会慢慢的更新一些东西,家园里的东西都很多,以后尽量写一些没人发过的东西吧。 附件放在下面了
两小时后更新。。。没想到居然被推送到气象家园的公众号上去了,属实太惊喜了。那我只能给自己打一个广告啦!虽然自己的公众刚刚开始做,也不会更新得很频繁,但是会时不时整理一些干货的啦!
|