91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python地震數據可視化的示例分析

發布時間:2021-08-25 11:02:39 來源:億速云 閱讀:367 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python地震數據可視化的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

準備工作:

在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數據繪圖結果

如下:

python地震數據可視化的示例分析

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相關數據繪圖

速度模型繪圖結果如下:

python地震數據可視化的示例分析

marmousi模型正演的炮集數據繪圖結果如下:

python地震數據可視化的示例分析

測試備忘

1

cygwin執行指令,可以看到反饋信息為彩色,分析信息很方便。

相比之下,cmd終端執行指令后的反饋信息可讀性較差。

2

本地數據出現異常后,通過cwp中的segyread, sushw, sugain, segywrite等程序進行修改,滿足繪圖程序要求。

1)3200字節的卷頭必須規范

2)道頭字中的cdpt取值必須規范(xline)

3)道采樣值最好歸一化處理。

感謝各位的閱讀!關于“python地震數據可視化的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

紫阳县| 宜兴市| 孟州市| 大姚县| 兴城市| 远安县| 巩留县| 博爱县| 鹰潭市| 香格里拉县| 万盛区| 潼南县| 莱州市| 淅川县| 厦门市| 浮山县| 河间市| 武川县| 教育| 东宁县| 共和县| 佛山市| 瓦房店市| 镇坪县| 井陉县| 宁德市| 兰西县| 平潭县| 利辛县| 万荣县| 金山区| 平山县| 定西市| 巫山县| 溧水县| 西青区| 曲靖市| 都匀市| 江川县| 庆安县| 六盘水市|