本文实例为大家分享了python地震数据可视化的具体代码,供大家参考,具体内容如下

准备工作:

在windows10下安装python3.7,下载参考源码到本地。

1. demo绘图测试

demo绘图指令

cmd> python seisplot.py --demo

问题1)缺少依赖包

File "D:/Desktop/python可视化/seisplot/seisplot.py", line 16, in

import yaml

ModuleNotFoundError: No module named 'yaml'

>pip3 install yaml

Could not find a version that satisfies the requirement yaml (from versions: )

No matching distribution found for yaml

查看environment.yml:

channels:

- defaults

- conda-forge

dependencies:

- matplotlib

- numpy

- obspy

- pillow

- pyyaml

安装相关依赖包,如 obspy pillow pyyaml

cmd> pip3 install obspy

出现proxy error, 添加选项 --proxy server:port

安装ok

问题2)配置文件的编码异常

D:\Desktop\python可视化\seisplot>python seisplot.py --demo

[91m

Welcome to

┌─┐┌─┐┬┌─┐┌─┐┬ ┌─┐┌┬┐

└─┐├┤ │└─┐├─┘│ │ │ │

└─┘└─┘┴└─┘┴ ┴─┘└─┘ ┴

Good luck[0m

Traceback (most recent call last):

File "seisplot.py", line 421, in

cfg = yaml.load(f)

File "D:\ProgramFiles\Python36\lib\site-packages\yaml\__init__.py", line 70, in load

loader = Loader(stream)

File "D:\ProgramFiles\Python36\lib\site-packages\yaml\loader.py", line 34, in __init__

Reader.__init__(self, stream)

File "D:\ProgramFiles\Python36\lib\site-packages\yaml\reader.py", line 85, in __init__

self.determine_encoding()

File "D:\ProgramFiles\Python36\lib\site-packages\yaml\reader.py", line 124, in determine_encoding

self.update_raw()

File "D:\ProgramFiles\Python36\lib\site-packages\yaml\reader.py", line 178, in update_raw

data = self.stream.read(size)

UnicodeDecodeError: 'gbk' codec can't decode byte 0x99 in position 2003: illegal multibyte sequence

分析源码中参数传递情况:

def load(stream, Loader=Loader):

"""

Parse the first YAML document in a stream

and produce the corresponding Python object.

"""

print(stream) ## debug by huanying03

loader = Loader(stream)

try:

return loader.get_single_data()

finally:

loader.dispose()

打印结果如下:

编码不对?

65001  :UTF-8代码页

936 :默认的GBK

437 :是美国英语

仔细检查发现config.yml中有异常字符,更正config.yml中错误字符:ok

问题3)python调试打印语句

print ("value=%d"%value)

demo数据绘图结果

如下:

2. 本地数据绘图测试

应用指令

cmd > python seisplot.py data/my.sgy

问题1)数据道的采样值异常

filename data2/t10.sgy

seismic.py:104:dt=4000

seismic.py:104:ns=512

seismic.py:144:header=b'C 1 CLIENT'

n_traces 500

n_samples 512

dt 0.004

t_start 0

t_end 2.044

max_val inf

min_val -inf

clip_val 180462501764003194804057887685476352

Read data in 0.4 s

++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PLOTTING

plot width 17.00 in

plot height 11.00 in

Traceback (most recent call last):

File "seisplot.py", line 442, in

main(t, cfg)

File "seisplot.py", line 214, in main

cfg)

File "D:\Desktop\python可视化\seisplot\plotter.py", line 123, in plot_histogram

y, x, _ = ax.hist(np.ravel(data), bins=int(100.0 / (clip_val / largest)),

OverflowError: cannot convert float infinity to integer

解决办法:将数据做归一化处理

问题2)数据文件的卷头异常

filename data2/marmousi_vel.segy.hdrs.sgy.cdp.sgy

seismic.py:104:dt=10000

seismic.py:104:ns=350

seismic.py:144:header=b'\xc3@\xf1@\xc3\xd3\xc9\xc5\xd5\xe3'

Traceback (most recent call last):

File "seisplot.py", line 442, in

main(t, cfg)

File "seisplot.py", line 40, in main

s = Seismic.from_segy(target, params={'ndim': cfg['ndim']})

File "D:\Desktop\python可视化\seisplot\seismic.py", line 164, in from_segy

return cls.from_obspy(stream, params=params)

File "D:\Desktop\python可视化\seisplot\seismic.py", line 147, in from_obspy

x =np.array(list(stream.textual_file_header.decode()))

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continuation byte

解决办法:重写3200字节的segy卷头

marmousi相关数据绘图

速度模型绘图结果如下:

marmousi模型正演的炮集数据绘图结果如下:

测试备忘

1

cygwin执行指令,可以看到反馈信息为彩色,分析信息很方便。

相比之下,cmd终端执行指令后的反馈信息可读性较差。

2

本地数据出现异常后,通过cwp中的segyread, sushw, sugain, segywrite等程序进行修改,满足绘图程序要求。

1)3200字节的卷头必须规范

2)道头字中的cdpt取值必须规范(xline)

3)道采样值最好归一化处理。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

python 读取地震道头数据_[宜配屋]听图阁相关推荐

  1. python开发一个彩票系统_[宜配屋]听图阁

    本文为大家分享了python实现彩票系统的具体代码,供大家参考,具体内容如下 功能:1.注册  2.登录  3.充钱   4.提现  5.下注  6.开奖  7.退出 简述:彩民需要用身份证号码开户注 ...

  2. python做excel表格代码_[宜配屋]听图阁

    安装两个库:pip install xlrd.pip install xlwt 1.python读excel--xlrd 2.python写excel--xlwt 1.读excel数据,包括日期等数据 ...

  3. python的pyaudio教程入门_[宜配屋]听图阁

    ​ 0.引子 当需要使用Python处理音频数据时,使用python读取与播放声音必不可少,下面介绍一个好用的处理音频PyAudio工具包. PyAudio是Python开源工具包,由名思义,是提供对 ...

  4. python连接oracle详细教程_[宜配屋]听图阁

    1. 连接对象 操作数据库之前,首先要建立数据库连接. 有下面几个方法进行连接. >>>import cx_Oracle >>>db = cx_Oracle.con ...

  5. python计算圆的体积_[宜配屋]听图阁

    在已知DICOM和三维模型对应掩膜的情况下,计算三维模型的体积. 思路: 1.计算每个体素的体积.每个体素为长方体,x,y为PixelSpacing,z为层间距 使用pydicom.read_file ...

  6. python对数组的基本操作_[宜配屋]听图阁

    这篇文章主要介绍了简单了解python数组的基本操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一,创建列表 创建一个列表,只要把逗号分隔的不同 ...

  7. python求超级素数代码_[宜配屋]听图阁

    如果一个数字能表示成 p^q,且p是一个素数,q为大于1的正整数,则此数字就是超级素数幂. param number: 测试该数字是否是超级素数幂 return: 如果不是就返回 False,如果是就 ...

  8. 关于python格式对齐的问题_[宜配屋]听图阁 - 浅谈python str.format与制表符\t关于中文对齐的细节问题...

    写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...

  9. python怎么通过手机号定位_[宜配屋]听图阁

    python 通过手机号识别出对应的微信性别,具体代码如下所述: def getGender(self,tel): self.d(resourceId="com.tencent.mm:id/ ...

  10. python可以翻墙吗_[宜配屋]听图阁

    那堵墙着实可恨!身处IT这个圈子,经常需要用gg查资料(你也可以用来访问1024,^_^...).当然,你也可以用百度.其实也不是我不爱用百度,是有缘由的,且听我细细道来.有一次闲得蛋疼,想看看会不会 ...

最新文章

  1. AI发展格局正从“数据”演变为“知识”
  2. 为什么Redis内存不宜过大
  3. iis错误Server Application Error的解决方法(附修复工具下载)
  4. 报文加解密原理_加密系统的组成与过程
  5. 解决tomcat启动后访问页面中文乱码
  6. 360无痕浏览器_浏览器如何开启老板键?
  7. sqlserver连接和操作数据库
  8. 基于Linux系统的手机,中国最新超算操作系统揭秘:基于Linux
  9. php协程和goroutine,浅谈协程和Go语言的Goroutine
  10. 如何在Timeline中使用Cinemachine?
  11. 《A.I.爱》王力宏与人工智能谈恋爱 邀李开复来客串
  12. soft215@163.com,销售工程造价,建筑,工控,模拟分析,财务等商业版软件︻◣
  13. 使用google analytics(分析)监测百度竞价关键词效果(网址构建工具)
  14. c语言文件读写r 的作用,C语言简单读写文件
  15. 2019DTCC大会感受
  16. 在利用DXP2004软件进行PCB设计时——自制元器件封装如何添加网络(布线问题)
  17. 计算机专业保研面试备考:高等数学
  18. 基于Go语言Gin+Xorm的OA办公系统
  19. nvm 卸载详细流程
  20. AOP--Filter使用,过滤器和拦截器的区别

热门文章

  1. 用python画滑稽表情_用Python画QQ表情中的滑稽脸
  2. C#打造一个开源webgis(四)地图客户端(上)
  3. Windows10如何在文件夹打开DOS命令窗口
  4. 为什么html中图片显示不出来,网页图片显示不出来怎么办
  5. 自己的旧手机做html服务器,旧手机改座机_怎么将手机改成为座机
  6. 【C系列】结构体数组初始化方法
  7. comment hive_Hive中基本语法
  8. Django开发个人博客网站——11、通过regroup实现博客的归档
  9. osgEarth的Rex引擎原理分析(一二二)着色器程序的opengl过程
  10. html背景颜色代码格式,html常用背景颜色代码.docx