登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 非对称 于 2023-4-18 13:43 编辑
重要提示:本帖不定期更新,请下载最新版本。
2023-04-18 适应py3.7最新版的matplotlib、pyshp
2018-03-21 修复一个在无投影下绘制shp文件的bug
2017-04-19 裁切区对流线和风矢也有效,修复1个自定义绘图区的BUG
2017-04-18 修复在投影下绘制第11类数据当纬度步长为负数时出不了图的BUG
2017-04-15 修复等值线标注在裁切区外还显示的BUG。
增加一种快捷包含shp文件中所有闭合区域作为裁切区的配置参数。
2017-04-14 增加Micaps第17类数据的绘制。
2017-04-13 增加Micaps第11类数据的绘制,修复数个小BUG,优化配置文件逻辑。
统一边界txt文件的格式为:
经度 纬度 经度 纬度 经度 纬度 ...... 或
经度 纬度 经度 纬度 经度 纬度 ......
MicapsDataDraw
一个python语言编写的超级实用生产图片工具,用matplotlib和basemap绘制micaps数据【源码共享】
利用配置文件config.xml定制参数,结合micaps具体数据,可实现一种或多种类型(in the future)的micaps数据的叠加绘制
并自动输出相应图像到指定文件。
主要功能
1、支持Micaps第3、4和11类数据的绘制
目前实现了某类数据的单独绘制,多类数据叠加在不久的将来实现。
2、支持多种投影
sall:无投影,lcc:兰波托投影,mill,ortho,stere:极射赤面投影,npstere:北半球极射赤面投影, hammer,kav7,
merc:麦卡托投影,gnom, cyl:等经纬度投影。
3、支持底图叠加
用多个shp格式或者定制的txt文件叠加到底图。
4、支持任意区域完美白化
用shp或者定制的txt文件所形成的单个或多个闭合区域切图(也叫白化),轻松实现分省绘图。
利用多个裁切边界对象的path构建复合路径作为裁切区的一个方法,代码如下
@staticmethod
def MergePaths(clipborders):
if clipborders is None or len(clipborders) < 1:
return None
path_clips = [x.path for x in filter(lambda clip: clip.using, clipborders)]
if not path_clips:
return None
else:
path = Path.make_compound_path(*path_clips)
return path
5、支持灵活配置色标
6、高度可定制化
包括但不限于标题内容、样式、位置;色标选择、位置、放置方式;
色版图、等值线、标注、格点着色的显隐等都实现了高度自定义。
程序运行
python main.py config.xml
项目参考的代码及的用到的一些库
代码
第三方库 matplotlib>=3.0.3安装方法: conda安装 conda install matplotlib==3.0.3 pip安装 pip install matplotlib==3.0.3
basemap
numpy
natgrid 安装包见.\lib\natgrid-0.2.1-cp37-cp37m-win_amd64.whl 安装方法:pip install natgrid-0.2.1-cp37-cp37m-win_amd64.whl
scipy
sympy
pyshp>=1.2.10
nclcmaps 安装包见.\lib\nclcmaps-master.zip 安装方法:解压后在当前目录运行python setup.py install
cchardet
【matplotlib,basemap,numpy,natgrid,scipy,sympy,pyshp, nclcmaps, cchardet】
版主 又是那隻貓的一个支持NCL colorbar的python库。
一并感谢2位大师!
以下是利用示例数据结合适当配置文件输出的图片
Micaps第11类数据 等经纬度和兰波托投影、自定义区域、中国区作为裁切区(流线风场也有效)
Micaps第11类数据等经纬度投影:
Micaps第11类数据ortho投影:
Micaps第四类数据ortho投影: Micaps第四类 数据无投影: Micaps第四类 数据Lambert投影: Micaps第三类数据-等经纬度投影:
以下源码和示例数据回复可见:
|