微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PyWavelets CWT 函数的输出不正确

如何解决PyWavelets CWT 函数的输出不正确

我正在使用 PyWavelets 包对一些水平风数据(平均 1 分钟)应用小波变换。基本上,我想比较离散和连续小波变换的绘图输出;检索 dwt 的系数似乎没有问题,但 cwt 图不正确。我已经尝试为比例输入测试不同的值,但这似乎不起作用,我正在关注 https://pywavelets.readthedocs.io/en/latest/ref/cwt.html 文档中的所有其他内容。谁能解释一下我做错了什么?

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from netCDF4 import Dataset,num2date,MFDataset
import pywt

sonic = Dataset("sgpmetE13.b1.20140610.000000.cdf","r")
sondate= pd.date_range("2014-06-10 15:00:00",periods=510,freq="1min")
uspeed= sonic.variables["wspd_arith_mean"][:][900:1410]
#frequencies = pywt.scale2frequency('cmor1.5-1.0',[1,2,3,4]) / uspeed


# ###Using orthogonal pywavelets package:
###discrete wavelet transform
cA,cD = pywt.dwt(uspeed,'sym10')

###Continous wavelet transform
widths = np.arange(1,350)
coeffs,freqs = pywt.cwt(uspeed,widths,'gaus1')


# ###PLottING
fig,(ax1,ax2,ax3,ax4) =plt.subplots(4,figsize=(20,18))
ax1.plot(sondate,uspeed)
ax1.set_title("Original Horizontal Wind (m/s)",size=25)
ax1.set_ylim(-2,15)
ax1.tick_params(axis='both',which='major',labelsize=18)

ax2.plot(cA)
ax2.set_ylim(-2,15)
ax2.set_title("cA: Large-scale Flow",size=25)
ax2.tick_params(axis='both',labelsize=18)

ax3.plot(cD)
ax3.set_ylim(-2,15)
ax3.set_title("cD: Fine-scale Flow",size=25)
ax3.tick_params(axis='both',labelsize=18)

ax4.plot(coeffs)
ax4.set_title("CWT of the Horizontal Wind",size=25)
ax4.tick_params(axis='both',labelsize=18)
fig.tight_layout(pad=2.5)
plt.show()

Here's a link to the plot

另外,我对小波变换很陌生,所以我不能确定我是否正确解释了 dwt 的 cA 和 cD。如果我想把风分成两部分,一个是大尺度相干流,一个是细尺度湍流,我是否认为 cA 是大尺度,cD 是细尺度?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。