在地震波形分析时,时频图可以辅助识别信号,频谱图可以观察地震信号的频率分布范围,发现波形的优势频率,是地震类型判断和科学研究的重要工具。

下面这段基于python开发的小程序只需要给定地震数据的SAC格式文件,自动进行傅丽叶变换,画出原始波形、时频图、频谱图,非常方便地实现了地震信号分析。

import struct

import pylab

import numpy as np

from scipy.fftpack import fft,ifft

class sacfile_wave:

def read(self, sFile):

# sFile='e:\\10.sac'

f = open(sFile, 'rb')

hdrBin = f.read(632)

sfmt = 'f' * 70 + 'I ' * 40 + '8s ' * 22 + '16s';

hdrFmt = struct.Struct(sfmt)

self.m_header = hdrFmt.unpack(hdrBin)

self.dt = self.m_header[0]

npts = int(self.m_header[79])

fmt_data = 'f' * npts

dataFmt = struct.Struct(fmt_data)

dataBin = f.read(4 * npts)

f.close()

self.m_data = dataFmt.unpack(dataBin)

def draw(self, sImageFile):

npts = len(self.m_data)

xd = range(1, npts + 1)

dt = self.dt

NFFT = 250

Fs = int(1.0 / dt)

x0 = np.arange(0, npts/Fs, np.round(dt,2))

pylab.subplot(311)

pylab.plot(x0, self.m_data, linewidth=.6)

# pylab.xlabel('Time / second')

# pylab.xlabel('时间 / 秒', fontproperties = 'FangSong', fontsize = 20)

pylab.subplot(312)

Pxx, freqs, bins, imm = pylab.specgram(self.m_data, NFFT=NFFT, Fs=Fs,

noverlap=NFFT * 19 / 20,cmap=pylab.get_cmap('jet'))

pylab.subplot(313) # FFT快速傅丽叶变换,显示频谱曲线

n = len(self.m_data)

k = np.arange(n)

T = n / Fs

frq = k / T

frq1 = frq[range(int(n / 2))]

YY = np.fft.fft(self.m_data)

Y = np.fft.fft(self.m_data) / n

Y1 = Y[range(int(n / 2))]

Y1[0] = Y1[1]

pylab.plot(frq1, abs(Y1))

pylab.savefig(sImageFile, dpi = 1200)

pylab.show()

def exportAsc(self, sAscFile):

f2 = open(sAscFile, "wt")

sdataAsc = [str(x) for x in self.m_data]

sDataAsc = '\n'.join(sdataAsc)

f2.writelines(sDataAsc)

f2.close()

if __name__ == "__main__":

print('输入文件名必须为1.sac')

print('输出文件名为1.png')

sacfile = '1.sac'

sac = sacfile_wave()

sac.read(sacfile)

sac.draw("1.png")

python 时频图_python,地震波形、时频图、频谱图计算和显示软件相关推荐

  1. python csv 中文乱码_python读写csv时中文乱码问题解决办法

    CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 "," 分隔的一列列的数据构成的,可以使用excel和文本编辑器等打开.CSV ...

  2. python io密集 多线程_Python进阶:聊聊IO密集型任务、计算密集型任务,以及多线程、多进程...

    IO密集型任务 VS 计算密集型任务所谓IO密集型任务,是指磁盘IO.网络IO占主要的任务,计算量很小.比如请求网页.读写文件等.当然我们在Python中可以利用sleep达到IO密集型任务的目的. ...

  3. python与办公结合_python在办公时能给我们带来什么?

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:谦睿科技教育 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

  4. python字典功能默写_Python 内存分配时的小秘密

    Python 中的sys模块极为基础而重要,它主要提供了一些给解释器使用(或由它维护)的变量,以及一些与解释器强交互的函数. 本文将会频繁地使用该模块的getsizeof()方法,因此,我先简要介绍一 ...

  5. python改变背景颜色_python中绘图时怎么改背景颜色?

    python中一般使用matplotlib库进行绘图,下面我们就来看一下python中绘图时修改背景颜色的方法: 子图可以对plt.subplot的参数做修改,下面是对子图的背景颜色修改代码:impo ...

  6. python导入模块失败_Python导入模块时遇到的错误分析

    当遇到无法导入某个python模块时,可能会是没有安装某个模块,也有可能是某模块在加载过程中失败,也有可能是陷入了循环导入的问题.本文详细解释了这个问题. 1. 模块未安装或者路径不对 ImportE ...

  7. python导入模块错误_Python导入模块时遇到的错误分析

    导读热词 当遇到无法导入某个python模块时,可能会是没有安装某个模块,也有可能是某模块在加载过程中失败,也有可能是陷入了循环导入的问题.本文详细解释了这个问题. 1. 模块未安装或者路径不对 Im ...

  8. python keyerror5种方法_Python操作dict时避免出现KeyError的几种解决方法

    在读取dict的key和value时,如果key不存在,就会触发KeyError错误,如: t = { "a": "1", "b": &qu ...

  9. python 写文件 编码_Python文件写入时的编码问题解决

    如下代码: import sys import os import django root_dir = os.path.join(os.path.dirname(os.path.abspath(__f ...

  10. python slice函数画高维图_Python 绘制 3 维以上的高维图

    实用技巧. 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面.不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 plo ...

最新文章

  1. referenced from 异常
  2. 区块链BaaS云服务(14)华大BGI区块链“碎片分布式存储“
  3. jQuery的Ajax方法
  4. react追加html元素,React给添加元素增加样式
  5. 【数据结构与算法】之深入解析“水壶问题”的求解思路与算法示例
  6. ASP.NET连接ACCESS数据库web.config内路径最优写法
  7. scala 构造_Scala咖喱和自动类型依赖的封闭构造
  8. python划分train val test
  9. mac上virtualbox创建vm需要注意启动顺序
  10. React Router 全部
  11. C# Lock的基本使用和声明
  12. 设计师工资低?10大网站助你快速涨1万身价
  13. 微服务学习第四十七节 Nacos一致性协议:Distro协议
  14. VS Code设置缩进两个字符
  15. 一、jsp和Servlet基础理论及jstl和EL表达式用法
  16. 连版《三十六英雄》整理
  17. 关于电脑QQ能上网,但是浏览器不能上网的问题的详细图文解决方法
  18. RecyclerView超级万能适配器(多布局、head、foot、下拉刷新、上拉自动更多、滑动删除)
  19. 彻底清除朋友圈内的推荐广告
  20. 《数据结构》专题9--图的遍历DFSBFS

热门文章

  1. 向量叉乘的几何意义及其模的计算
  2. 2048小游戏(Java)源码解析及源代码打包
  3. spring quartz 表达式在线生成器
  4. mht2html百度云,强烈推荐国内最好的网盘–115网盘
  5. 三维扫描仪[10]——如何设计一台云台式扫描仪(代码详解)
  6. 屏幕录像专家----百度百科
  7. 平衡车 两轮平衡车扭扭车程序漂移车主板方案原理图pcb图程 两轮平衡车扭扭车程序体感车
  8. MCU设计电路的总结
  9. APISpace 全国行政区查询API 方便好用
  10. 某智能化小区网络规划及设计