本文实例为大家分享了python地震数据可视化的具体代码,供大家参考,具体内容如下
参考源码:seisplot
准备工作:
在windows10下安装python3.7,下载参考源码到本地。
1. demo绘图测试
demo绘图指令
cmd> python seisplot.py --demo
问题1)缺少依赖包
File "D:/Desktop/python可视化/seisplot/seisplot.py", line 16, in <module> 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 <module> 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()
打印结果如下:
<_io.TextIOWrapper name='config.yml' mode='r' encoding='cp936'>
编码不对?
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 <module> 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 <module> 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)道采样值最好归一化处理。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】