本文在『气象学家』同步推送传送门;上一期对Python绘制气象实用地图做了比较详细的介绍,尽管已经能够满足部分需求了,但是,在实际的应用需求中,可能还是别的需求,那么,今天就手把手教大家如何绘制几个省份的白化等值线contour地图。另外,对上一期进行补充,谈谈一些小技巧。最后,对于QGIS强烈安利一波,不光它是免费的,而且跨平台,也能够完美的支持Python3.7了,能够替代大部分日常使用的ArcGIS功能,用起来不算很笨重!
目标:绘制西部的几个省份,并且mask掉其它区域,地图上支持中文,绘制经纬度网格线,附带经纬度信息。
工具:Python3.6+、ArcGIS/QGIS、Shapfile、一系列相关的Python库、测试数据
第一步:制作底图
利用单独省份的Shapefile文件,制作一个shp文件包含新疆、西藏、甘肃、青海、四川,ArcGIS操作很简单不做介绍,至于QGIS我之前基本无从下手,相关的中文资料也很少,还是Google了“how to make shapefile in qgis”得到了解决方案,具体可以参考:链接,该帖子已经比较详细的做了介绍。只不过需要提醒一下,在“Merge Shapefiles”窗口中选中之前一同导入的各省份shp文件之后,窗口会奇怪的置底,需要移开当前界面才会发现其隐藏之处,不是闪退哦!再选定坐标系方案,最好和原来的shp文件一致。我在文末会提供相应的地图文件!
第二步:如何调试程序
1.使用jupyter notebook;(推荐)
直接加载如下脚本,然后运行就好,代码附上:
1 | #coding=utf-8 |
出图效果:
2.直接在终端使用python xxx.py运行;
需要注意的地方:很多人发现输出的图片是没有经纬度的坐标信息附加在网格线两端的,怎么调都还是出不来。并且若是设置为出图显示,还会发现绘制的图怎么都挪不到最顶层。这个问题怎么解决?答案是,在脚本最顶部添加两行:
1 | #代码头部 |
你会发现看图置顶的问题解决了,而且网格线两端也会正常出现经纬度信息。当然,jupyter notebook是不会出现这个问题的。至于什么原因大家可以去自行了解一下。还是那句话,遇到错误信息了,最值得信赖的还是Google大法,学会如何使用Google,绝对是对debug有极大好处的。
代码附上:
1 | #coding=utf-8 |
地图、测试数据链接
链接:https://pan.baidu.com/s/1cTIk6j0E0SMpZZkdIG-_tg 密码:9g31
参考:
有任何问题都欢迎交流探讨,共同学习进步!