自学Python:绘制引力波

作者: 小强聊成长 | 来源:发表于2021-08-21 10:51 被阅读0次

先到下面的网址下载引力波的声音文件

https://python123.io/dv/grawave.html

输入下面的代码:

import numpy as np

import matplotlib.pyplot as plt

from scipy.io import wavfile

rate_h, hstrain= wavfile.read(r"H1_Strain.wav","rb") #打开下载好的引力波文件

rate_l, lstrain= wavfile.read(r"L1_Strain.wav","rb")

#reftime, ref_H1 = np.genfromtxt('GW150914_4_NR_waveform_template.txt').transpose()

reftime, ref_H1 = np.genfromtxt('wf_template.txt').transpose()

htime_interval = 1/rate_h

ltime_interval = 1/rate_l

fig = plt.figure(figsize=(12, 6))

# 丢失信号起始点

htime_len = hstrain.shape[0]/rate_h

htime = np.arange(-htime_len/2, htime_len/2 , htime_interval)

plth = fig.add_subplot(221)

plth.plot(htime, hstrain, 'y')

plth.set_xlabel('Time (seconds)')

plth.set_ylabel('H1 Strain')

plth.set_title('H1 Strain')

ltime_len = lstrain.shape[0]/rate_l

ltime = np.arange(-ltime_len/2, ltime_len/2 , ltime_interval)

pltl = fig.add_subplot(222)

pltl.plot(ltime, lstrain, 'g')

pltl.set_xlabel('Time (seconds)')

pltl.set_ylabel('L1 Strain')

pltl.set_title('L1 Strain')

pltref = fig.add_subplot(212)

pltref.plot(reftime, ref_H1)

pltref.set_xlabel('Time (seconds)')

pltref.set_ylabel('Template Strain')

pltref.set_title('Template')

fig.tight_layout()

plt.savefig("Gravitational_Waves_Original.png")

plt.show()

plt.close(fig)

执行结果如下图:

_______________END______________

相关文章

网友评论

    本文标题:自学Python:绘制引力波

    本文链接:https://www.haomeiwen.com/subject/ubkabltx.html