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

下面这段基于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. JavaScript中的数组遍历forEach()与map()方法以及兼容写法
  2. oracle 自身连接查询,Oracle 连接查询
  3. GNU make manual 翻译(六十三)
  4. usbserialconverter驱动找不到_驱动到底是什么?别再用精灵管家无脑装驱动了
  5. IE9或以上的浏览器flash值为空时,导致domready不触发
  6. ubuntu11.04 --- 没有了上边的导航 和左边的导航 怎么办?
  7. 亿阳防火墙-命令行指令参考手册
  8. TCP协议的三次握手+四次断开
  9. NYOJ 取石子总结
  10. 创业之路 - 人脉关系 VS 人际关系
  11. eNSP模拟简单网络环境
  12. 三八节送什么礼物比较好?这四款数码好物别错过了!
  13. cad图转成shp文件并把其平面坐标投影配准成大地坐标(配准针对没有底图的情况)
  14. Android 人脸识别拍照demo
  15. 计算机游戏中屏幕上显示的,电脑在玩全屏游戏的时候显示屏老是出现无信号
  16. md文件如何编辑和转换(不依赖插件Markdown Viewer)
  17. Mac 下生成keystore以及获得数字签名
  18. 表白神器:DIY舵机版无聊小盒 3D打印
  19. #汇编语言字符串的输出(dosbox运行时输出乱码问题解决)
  20. 实例 | 分析38万条数据,用Python分析保险产品交叉销售和哪些因素有关

热门文章

  1. 见微知著:语义分割中的弱监督学习
  2. 易语言 实现程序被关闭时隐藏窗口
  3. Dreamweaver CS6 完全自学教程 (一)
  4. UNet++ 论文翻译
  5. 屏幕录像专家使用手册
  6. 计算机制图系统的组成,lesson02-计算机机地图制图系统的组成.ppt
  7. UML统一建模语言 Rational Rose 使用
  8. 计算机驱动程序属于系统还是软件,什么是VGA驱动程序?
  9. Nopcommerce kendo UI Roxy Fileman控件的汉化
  10. swfupload ajax,swfupload ajax无刷新上传图片实例代码