提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
    • 在学习了气象家园平流层的萝卜首发、晋陵小生优化的 maskout 模块白化功能之后。利用九大流域的shp文件,我对九大流域中黄河流域的降水分布进行了绘制。
  • 一、使用maskout程序包的要点?
  • 二、使用步骤
    • 1.引入库
    • 2.绘制黄河流域降水分布图
  • 总结

前言

在学习了气象家园平流层的萝卜首发、晋陵小生优化的 maskout 模块白化功能之后。利用九大流域的shp文件,我对九大流域中黄河流域的降水分布进行了绘制。

一、使用maskout程序包的要点?

maskout是比较python+cartopy实现白化功能的一个比较好用的子程序。(1)在应用的过程中要注意相关的shp文件应该是地理坐标系,如果不是的话要转化坐标系。(详情参考:如何使用arcmap转换shp文件坐标系)(2)注意选择合适的region,尽量选择具有代表性的record。
相应的maskout_hhriver里应该修改为下图所示:

二、使用步骤

1.引入库

代码如下(示例):

import os
import shapefile as shp
SHP = r'F:\mapshp\china_shp'
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import xarray as xr
import cartopy.crs as ccrs
import cartopy.feature as cfeature
from cartopy.io.shapereader import Reader
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import numpy
import pandas as pd
import mask_hhriver
#设定新字体

2.绘制黄河流域降水分布图

代码如下(示例):

#设定新字体
from matplotlib.font_manager import FontProperties
lpfont = matplotlib.font_manager.FontProperties(fname='F:\python可视化\font\SimSun.ttf')
plt.rcParams.update({'font.size':16})region=[95,120,32,42]
df=xr.open_dataset(r'E:\testdataset\precip.mon.mean.nc')
lat = df.lat
lon = df.lon
# lat = df['lat']
# lon = df['lon']
pre0 = df['precip'] #含缺测值
pre1 = np.array(pre0)
pre_clim=np.nanmean(pre1,axis=0)
fig=plt.figure(dpi=600,figsize=(12,6))
proj=ccrs.PlateCarree()
ax = plt.axes(projection = proj)
ax.set_extent(region, crs = proj)
ax.set_xticks(np.arange(region[0], region[1] + 1, 5), crs = proj)
ax.set_yticks(np.arange(region[-2], region[-1] + 1, 2), crs = proj)
ax.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label=False))
ax.yaxis.set_major_formatter(LatitudeFormatter())
# Add 黄河流域&干流shp
c11=ax.contourf(lon,lat,pre_clim,np.arange(0,3,0.01),extend='both',transform=ccrs.PlateCarree(),cmap='gist_rainbow')
ax.add_geometries(Reader(r'F:/mapshp/hhriver/jichu/黄河干流epsg4324.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='k',linewidth=0.5)
clip=mask_hhriver.shp2clip(c11,ax,shpfile=os.path.join(SHP, 'China_nine_basinepsg4324.shp'),region=['Yellow River Basin'],proj= proj)
cbar=plt.colorbar(c11,shrink=0.75,aspect=20,fraction=.03,pad=0.02)   #aspect控制bar宽度,fraction控制大小比例,pad控制与图的距离
cbar.set_ticks(np.arange(0,3,0.3))            #设置colorbar范围和刻度标记间隔
cbar.ax.tick_params(labelsize=12, direction='in', right=False)
#出图
plt.savefig('prehh.png',dpi=600)
plt.show()


总结

最后还可以对图片进行润色,例如添加标题等等。参考气象水文科研猫发布的Python可视化中国区域地面气象要素驱动数据集—以黄河流域为例。基本实现了黄河流域的白化功能。

j

python气象可视化第二弹-黄河流域白化相关推荐

  1. 02.Python网络爬虫第二弹(http和https协议)

    02.Python网络爬虫第二弹<http和https协议> 一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩 ...

  2. python可视化水平双向箭头_python数据可视化第二弹

    代码模板: 最前面 importpandas as pd pd.plotting.register_matplotlib_converters()importmatplotlib.pyplot as ...

  3. 02.Python网络爬虫第二弹《http和https协议》

    一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...

  4. Python网络爬虫第二弹《http和https协议》

    一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...

  5. 02,Python网络爬虫第二弹《http和https协议》

    一.HTTP协议 1.官方概念: HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文 ...

  6. python气象数据可视化学习笔记6——利用python地图库cnmaps绘制地图填色图并白化

    文章目录 1. 效果图 2. cnmaps简介及安装 2.1 写在前面 2.2 cnmaps简介和安装 3. 导入库 4. 定义绘图函数 4.1 使用get_adm_maps返回地图边界 4.2 ax ...

  7. python气象处理第三弹-绘制气象站点分布

    python气象处理第三弹-绘制气象站点分布 python气象处理第三弹-绘制气象站点分布 python气象处理第三弹-绘制气象站点分布 前言 一.下载并转换中国气象站点数据? 二.使用步骤 1.引入 ...

  8. 第二弹:超全Python学习资源整理(进阶系列)

    造一个草原要一株三叶草加一只蜜蜂.一株三叶草,一只蜂,再加一个梦.要是蜜蜂少,光靠梦也行. - 狄金森 "成为编程大牛要一门好语言加一点点天分.一门好语言,一点点天分,再加一份坚持.要是天分 ...

  9. python气象绘图速成_基于Python气象数据处理与可视化分析

    基于 Python 气象数据处理与可视化分析 张鑫 ; 曹蕾 ; 韩基良 [期刊名称] <气象灾害防御> [年 ( 卷 ), 期] 2020(027)001 [摘要] 全国综合气象信息共享 ...

最新文章

  1. Centos7更改root密码
  2. python控制excel宏复制,将列从一个excel复制到另一个excel并从python运行宏
  3. java else if和switch_如何优雅地优化代码中的的if else和switch
  4. 学习Spring Boot:(九)统一异常处理
  5. Android 8.0学习 (36)---Android 8.0 WebView 拍照、简易预览、二维码扫描 各种问题解决
  6. opencv Scharr、Canny、LOG边缘提取效果对比
  7. 电子科技大学《图论及其应用》复习总结--第六章 平面图
  8. 2016考试计算机知识基础题库,2016考试计算机基础知识题库.pdf
  9. Js实现继承的6种方式
  10. IPMI 服务器远程管理方法
  11. 用pc抓取vlan tag数据包
  12. 在官网下载linux版本的tomcat
  13. 当我们与某远程网络连接不上时,就需要跟踪路由查看,以便 了解在网络的什么位置出现了问题,满足该目的的命令是
  14. Mac M1 使用conda安装jupyter notebook
  15. getClass().getResourceAsStream()
  16. org.springframework.context.annotation.ConflictingBeanDefinitionException异常处理
  17. ap导入 ebs oracle_Oracle EBS AP发票接口导入
  18. Unity3D之AssetBundle资源加载封装
  19. webpack配置排除打包
  20. Java的安装和环境的搭建

热门文章

  1. Java8的 Stream 流的各种用法
  2. Eplan P8 Pro Panel 2.4 Win32_64-ISO 1DVD电气制图软件
  3. 使用IQmath定点运算调试TI官方的软件锁相环
  4. 电脑显示WiFi已连接,但无法访问internet怎么解决?
  5. 创新工厂面试题详解:共打了多少鱼
  6. 软件开发之我剑-----立项报告和需求分析,初出江湖
  7. 微信小程序开发之https
  8. STM32 模拟IIC完整代码
  9. 一点资讯王元元:追着效率跑的算法,如何把好内容关?
  10. Java程序员常用英语词汇