前言

2022.9学习绘图
利用python进行气象绘图,本文为学习绘制期间记录笔记,分为上、下两部分:处理数据和图像绘制。处理数据流程:读入olr资料,截取夏季/冬季数据,进行10-30dButterWorth带通滤波,计算方差,输出nc资料。
绘制用到资料orl.day.mean.nc

参考文献
[1] Qian Y , Hsu P C , Kazuyoshi K . New real-time indices for the quasi-biweekly oscillation over the Asian summer monsoon region[J]. Climate Dynamics, 2019.
->图1 Variance of 10–30-day BP-filtered OLR (shading; units:W2m-4) and propagation vectors of 10–30-day-filtered OLR for a the annual-mean state, b boreal summer (May– Oct.) and c boreal winter (Nov.– Apr.) during 1980–2012.


代码

滤波原文用的是30年数据,考虑到内存和计算时长本文仅用了1999年1年的数据计算,大概分布也是一致的,如果感兴趣也可以用30年算算,会更趋近于原文。


import time
time_start = time.process_time()
import numpy as np
import xarray as xr
import datetime as dt #处理datetime64格式数据使用,可以解析时间格式
from scipy import signal
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature
import cartopy.mpl.ticker as cticker
#######################################################
##                读取olr数据
#######################################################
f = xr.open_dataset('E:/LACS/learn/python/replot/data/olr.day.mean.nc')
# print(f) #xarray.Dataset 对象
twStrt, twLast = 1999,1999
LatS, LatN, LonL, LonR= -45.0, 45.0, 0.0, 360.0
olr = f['olr'].loc['%s-01-01'%twStrt:'%s-12-31'%twLast].loc[:,LatS:LatN,LonL:LonR]
# olr.shape>>>(365, 21, 360)#######################################################
##            10–30-day BP-filter
#######################################################
# 去线性趋势;设置为'constant',则为去平均值,即为求距平
olr_1030 = signal.detrend(olr, axis=0, type='linear')#设置为'constant',则为去平均值,即为求距平# ButterWorth带通滤波
b, a = signal.butter(6, [1/30.,1/10.], 'bandpass')
olr_1030 = signal.filtfilt(b, a, olr_1030,axis = 0)  #######################################################
##               计算方差Varizances
#######################################################
olr_1030 = xr.DataArray(data=olr_1030,   #转为数据数组DataArraydims=["time", "lat", "lon"],coords=[olr.time,olr.lat,olr.lon],attrs=dict(description="olr_10-30filtered",units="W2/m4"))
## 全年 ##
var_all = np.var(olr_1030,axis=0)
## 夏季5-10月 ##
# 索引1999-1999年之间5-10月 经度0-360 纬度0-20N的数据
olr_sum = olr_1030.loc[olr_1030.time.dt.month.isin([5,6,7,8,9,10])] #.shape>>>(184, 21, 360)
var_sum = np.var(olr_sum,axis=0)
# ## 冬季11-4月 ##
# # 索引1999-1999年之间11-次年4月 经度0-360 纬度0-20N的数据
olr_win = olr_1030.loc[olr_1030.time.dt.month.isin([11,12,1,2,3,4])]#.shape>>>(182 184, 181, 360)
var_win = np.var(olr_win,axis=0)
print(var_sum)
print(olr)#######################################################
##                 输出成nc文件
#######################################################
ds = xr.Dataset({'var_all':var_all, 'var_sum':var_sum, 'var_win':var_win})# 将数据数组转为数据集
ds.to_netcdf('./var_all_sum_win.nc', mode='w') # 使用相对路径也可以time_end = time.process_time()
print('\nRunning time: %s Seconds'%(time_end-time_start))

【Python气象绘图临摹】处理数据(上):读入输出nc数据、截取夏季/冬季数据、ButterWorth带通滤波、计算方差相关推荐

  1. 【Python气象绘图临摹】图像绘制(下):地理子图GeoAxes、xy轴设置、应用ncl色阶colormap、各标题、海岸线、添加文本、添加矩形框

    文章目录 前言 plt.fig.ax.三者绘制区别: GeoAxes地图投影:绘图投影和数据投影 x轴.y轴设置: 多个子图之间的间距调节: 图上添加文本.矩形框: python中ncl色阶color ...

  2. python气象绘图速成_Python气象绘图Day-By-Day

    登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 edwardli 于 2017-6-13 10:02 编辑 工作繁事多,先上结果供交流,回头不断细化. 我 ...

  3. python气象绘图技巧之箱线图

    python气象绘图技巧–seaborn catplot python气象绘图技巧--seaborn 前言 一.构建dataframe和seaborn分类? 二.使用步骤 1.引入库 2.数据分析 总 ...

  4. python 气象绘图 计算多年一月的nino指数和站点降水相关图

    python 气象绘图 计算多年一月的nino指数和站点降水相关图 效果图 代码实现 导入包 import cartopy.crs as ccrs import cartopy.io.shaperea ...

  5. python源码 高通滤波、低通滤波、带通滤波

    创作不易,如果此文使您有收获,记得点赞哦! 一. 傅里叶变化原理: https://www.cnblogs.com/wojianxin/p/12529809.html 二. 高通滤波.低通滤波.带通滤 ...

  6. 利用python的强大函数库,实现波形的小波降噪、带通滤波、时阈分析、FFT波形转换

    import math import matplotlib.pyplot as plt import pywt import pandas as pd import numpy as np impor ...

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

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

  8. python气象绘图相关链接

    一页4图,绘制500风场及高度场.700的风场和相对湿度.850hpa的风场及高度场.海平面气压场.(3条消息) python学习记录-- 利用再分析数据绘制天气图_wdd_1992的博客-CSDN博 ...

  9. Python气象绘图笔记——常用气象绘图函数脚本封装与使用记录

    由于工作需要,将对我常用的python绘图脚本进行封装,为了防止代码丢失.忘记使用流程等,写个博客记录下. 要加载的包 import os import matplotlib.ticker as mt ...

最新文章

  1. 南昌大学计算机专业高数课本,南昌大学高等数学期末考试.pdf
  2. apply筛选 pandas_更快的pandas.apply搜索方法
  3. 通过Web.config实现301重定向
  4. npm的插件如何直接在html中使用,webpack插件之htmlWebpackPlugin
  5. 基于Web Services建立Asp与Asp.Net之间Session数据桥的应用研究
  6. PE文件RV转FOA及FOA转RVA
  7. c调用java jar_C#调用java类、jar包方法。
  8. k3 cloud 文件服务器搭建,k3cloud服务器推荐配置
  9. android camera(6)---camera2 拍照流程
  10. java两年需要,Java 两年总结
  11. const 和 非const函数重载
  12. SSM 实现 RESTful 风格
  13. PHP+MySQL制作简单动态网站(附详细注释+源码)
  14. uniapp 电商小程序 置顶特效/分享特效/红包特效 简单实现效果
  15. 禾赛科技2022数字芯片提前批笔试
  16. 单目标跟踪——常用数据集和指标
  17. 互联网思维的营销解读
  18. Flutter 快速上手定时器/倒计时及实战讲解
  19. Kubernetes:dashboard 搭建(k8s -web端管理)
  20. C语言strcpy()函数,字符数组复制

热门文章

  1. 学校计算机教室运行情况汇报,电脑教室管理总结
  2. 大数据属于人工智能吗?什么是大数据?
  3. 大数据怎样入行,年薪60万大数据架构师教你如何入门
  4. 分享两个比较好的APP模型设计工具
  5. DebitCredit for Mac(个人财务管理软件) v5.2.1免费版
  6. linux系统可以用pr吗,linux – 关于pr命令的一些问题
  7. 利用手机绘制标准曲线并且计算相关系数
  8. 工厂设备维修管理软件系统
  9. python的设计哲学是什么意思_哲学是什么意思
  10. 如何利用CAD快速生成断面图