ObsPy 是面向地震学工作流的 Python 库,用于读取、获取、处理与写出地震波形数据。
主要能力:
- 数据读取与写出:read() 可自动识别 MiniSEED、SAC 等格式,结果封装为 Stream(多个 Trace 的容器),单个 Trace 包含波形数据与元数据(如台站、通道、采样率)。支持写出 MSEED、SAC 格式。
- 时间处理:UTCDateTime 接收 ISO 字符串、时间戳、datetime 对象,用于精确时间范围操作。
- 预处理:可对 Stream 执行 detrend(去均值或去线性趋势)、taper(边缘加窗)、filter(如带通滤波)等操作。
- FDSN 数据获取:通过 Client(如 IRIS、USGS)调用 get_waveforms 获取波形、get_stations 获取台站元数据(level="response" 用于仪器响应校正)、get_events 按时间与震级检索地震事件目录。
- 响应去除:remove_response 可输出 VEL、DISP 或 ACC。
- 数据整理:trim 截取时间窗,select 按通道选择(支持通配符如 channel="BH*"),print_gaps 检查数据缺口,merge 合并并可用 fill_value="interpolate" 插值填补。
- 异常处理:可捕获 FDSNNoDataException 处理无数据情况。
典型用法:初始化 Client,按需检索事件或获取波形与台站元数据,随后去趋势、加窗、去仪器响应、滤波,再截取分析窗口并导出或绘图。常见工作流可参见 fetch_earthquake.py 与 batch_process.py 脚本。
适用场景:需要地震学上下文的任务,包括 FDSN 数据访问、仪器响应去除、地震目录查询与标准地震格式处理。若仅处理反射地震 SEG-Y 文件,segyio 更合适;若只需通用滤波或频谱分析,可用 scipy.signal。使用建议:滤波前先去趋势并加窗以避免伪影;获取台站元数据用于仪器校正时应使用 level="response";处理前检查数据缺口;查询支持通配符。
限制:资料未提供安装命令、许可证、价格或性能指标,暂未提供。