/PyMICAPS

气象数据可视化,用matplotlib和basemap绘制micaps数据

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

PyMICAPS(原名:MicapsDataDraw)更新到 Python3.7 python2.7 版见分支 v2.2-py2.7-20191119

一个超级实用生产图片工具,用 matplotlib 和 basemap 绘制 micaps 数据

利用配置文件config.xml定制参数,结合micaps具体数据,

可实现多种 micaps 数据类型的单独绘制或叠加绘制(in the future)

并自动输出相应图像到指定文件。
Author:Xianyao Liu | Version:3.0.20191120 | E-mail:flashlxy@qq.com | Language:Python3.7

更新日志

2023-04-18 升级python3.7中的matplotlib和pyshp到最新版

2019-11-20 升级到python3.7

2019-11-19 准备升级到python3.7

2018-07-09 更改工程名称为PyMicaps

2018-03-25 修复一个扩大多边形区域类PolygonEx.py中的bug

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文件的格式为:

           经度 纬度 经度 纬度 经度 纬度 ......

           或

           经度 纬度
           经度 纬度
           经度 纬度
           ......

主要功能

1、支持 Micaps 第 3、4、11、17 类数据的绘制

目前实现了某类数据的单独绘制,多类数据叠加在不久的将来实现。

2、支持多种投影

sall:无投影,lcc:兰波托投影,mill,ortho,stere:极射赤面投影,

npstere:北半球极射赤面投影,

hammer,kav7,merc:麦卡托投影,gnom, cyl:等经纬度投影。

3、支持底图叠加

用一个或多个shp格式或者定制的txt文件叠加到底图。

4、支持任意区域完美白化

用shp或者定制的txt文件所形成的单个或多个闭合区域切图(也叫白化),轻松实现分省绘图。

5、支持灵活配置色标

可以自己定义色标,同时支持

NCL 色标

6、高度可定制化

包括但不限于绘图区域、标题内容、样式、位置;色标选择、位置、放置方式;

色版图、等值线、标注、格点着色的显隐等都实现了高度自定义。

程序运行

python main.py config.xml

项目参考的代码及的用到的一些库

气象家园帖子作者的片段代码

第三方库nclcmaps

作者的一个支持NCL colorbar的python库。

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

欢迎大家star和fork,一并感谢2位作者!

示例数据结合适当配置文件输出的图片

Micaps第三类数据-等经纬度投影:

Micaps第11类数据 等经纬度和兰波托投影、自定义区域、**区作为裁切区(流线风场也有效)

Micaps第11类数据-等经纬度投影:

Micaps第11类数据-ortho投影:

Micaps第四类数据ortho投影:

Micaps第四类 数据无投影:

Micaps第四类 数据Lambert投影:

Micaps第三类数据-等经纬度投影:

Micaps第三类数据-Lambert投影: