Cartopy是一个为地理空间数据处理设计的Python包,目的是生成地图和其他地理空间数据分析。
Cartopy利用了功能强大的PROJ、NumPy和Shapely库,并包括一个构建在Matplotlib之上的编程接口,用于创建发布质量地图。
cartopy的主要特征是其面向对象的投影定义,以及在这些投影之间转换点、线、向量、多边形和图像的能力。
总的来说,cartopy是一个强大的绘图工具。
1.安装后遇到可能会遇到的错误
ImportError: DLL load failed while importing trace: 找不到指定的模块。
去网上一查是cartopy的依赖出现错误,于是把以下几个包卸载重新安装
2 安装新的wheel
在https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载win10下二进制安装文件
从上述链接下载所需要的wheel
找不到的wheel, pyshp下载地址
重新安装Pillow、pyshp、Shapely、pyproj
3运行
好家伙,又报错,这次是因为网络的错误,因为数据在国外,要把数据下载到本地才能显示。
出现这个错误是因为request.py导致的,什么原因呢?是因为你在开着科学上网的东西,当你用着科学上网,request.py铁定会报错。同理,你用pip安装新的包时,也不要开着猫猫软件。
好的,现在完成了cartopy的显示。
一旦你创建一个plt。坐标轴对象,你可以向它添加东西。最基本的是由海岸线函数给出的大陆的实际轮廓。分辨率有三种可能:110米,50米和10米,从最粗到最好。还有其他获得更多细节的方法,如国家边界等,我将在下次讨论。
然后,使用matplotlib保存和显示地图。你最终会在屏幕上看到一个交互式地图,这个地图被保存到一个文件中。它看起来是这样的:
要绘制的区域由四个数字给出:前两个表示经度间隔,后两个表示纬度间隔。要获得这些数字,只需使用运行第一个示例时得到的交互式地图。ax.set_extent设置一个显示范围(起止的经纬度)。将鼠标悬停在地图上将显示点的坐标。现在我们得到:
最后你需要知道的是如何绘制点。结合matplotlib,使用plt.plot。因为我们已经使用了Cartopy中的坐标系统,所以我们用(经度、纬度)来指定这些点的坐标。下面是完整的例子:
根据海南的经纬度,在cartopy上把它标记为红色。
对地图上色,使用ax.stock_img()语句,完整代码如下:
当然,你可能还想对地图做更多的事情,比如更花哨的图形,这将在以后的教程中介绍!