python - 使用python将ascii转换为sac
问题描述
我正在尝试使用 python 将 ASCII 文件转换为 sac 文件格式。我所做的是读取 ASCII 文件并使用 numpy 将其转换为浮点数组。
定义标题后,我将浮点数组保存为 Sac 格式。当打开如此生成的带有./sac
标题的 Sac 文件并打印标题时,部分标题,即事件和站的坐标没有列出。
显然,我在定义标题时做错了,但我不知道如何以另一种方式定义标题......所以如果有人有任何想法或提示,我会很高兴!
提前致谢!:)
这是我所做的:
import numpy as np
from obspy import UTCDateTime, read, Trace, Stream
import pandas as pd
import os
x = pd.read_csv('Test', header=1, na_values='-')
x1 = x.to_numpy()
stats = {
'network': 'B',
'station': 'XXX',
'channel': 'Z',
'npts': len(x1),
'sampling_rate': 50,
'delta': '0.02',
'b': '0',
'stla': 87.0000,
'stlo': 2.000,
'evla': 16.000,
'evlo': 7.000,
'nzyear': '2017',
'nzjday': '001',
'nzhour': '00',
'nzmin': '00',
'nzsec': '00',
'nzmsec':'000',
'mseed': {'dataquality': 'D'}
}
stats['starttime']= '2017-01-01T00:00:00.000000Z'
x2 = x1[0:].reshape((len(x1),))
st = Stream([Trace(data=x2, header=stats)])
st.write("Test.sac", format='SAC')
解决方案
我认为这可能有助于解决问题:
https://lists.swapbytes.de/archives/obspy-users/2015-November/001901.html
换句话说,如果您以这种方式编写代码,作为快速更正:
import numpy as np
from obspy import UTCDateTime, read, Trace, Stream
import pandas as pd
import os
x = pd.read_csv('Test', header=1, na_values='-')
x1 = x.to_numpy()
stats = {
'network': 'B',
'station': 'XXX',
'channel': 'Z',
'npts': len(x1),
'sampling_rate': 50,
'delta': '0.02',
'b': '0',
'stla': 87.0000,
'stlo': 2.000,
'evla': 16.000,
'evlo': 7.000,
'nzyear': '2017',
'nzjday': '001',
'nzhour': '00',
'nzmin': '00',
'nzsec': '00',
'nzmsec':'000',
'mseed': {'dataquality': 'D'}
}
stats['starttime']= '2017-01-01T00:00:00.000000Z'
x2 = x1[0:].reshape((len(x1),))
st = Stream([Trace(data=x2, header=stats)])
for tr in st:
tr.stats.sac = obspy_to_sac_header(tr.stats)
tr.stats.sac.stla = 87.0000
tr.stats.sac.stlo = 2.000
tr.write("Test.sac", format='SAC')
推荐阅读
- html - 如何使用 React BootStrap 排列项目
- r - 为什么我收到在此函数中找不到的“对象”?
- c - CS50 模糊过滤器在小测试用例中给出了不正确的输出
- react-native - react native,如何通过另一个视图做出有限的视图?
- python-3.x - python3无法将字符串转换为日期时间对象
- javascript - React:如何在组件内声明路由?
- go - 如何为 Goreleaser 中的每个目标设置 `-ldflags` 值?
- javascript - 检测 Vuetify 电台重选?
- c++ - CMake 项目中的 Makefile 传递
- c++ - 我的基本计算器应用程序中的变量不起作用