告别手动整理!用Python脚本一键处理PEER地震波数据(含txt提取与反应谱生成)
地震工程研究中,处理PEER数据库下载的地震波数据是一项基础但繁琐的工作。每次下载后,工程师们需要手动解压文件、转换格式、提取关键参数、计算反应谱——这些重复性操作不仅耗时,还容易出错。本文将分享一套完整的Python自动化解决方案,从原始数据到结构化输出一气呵成。
1. 工作流设计与环境准备
1.1 核心需求分析
典型的地震波处理流程包含四个关键环节:
- 文件解压与路径管理:处理嵌套文件夹中的压缩文件
- 元数据提取:获取时间步长(dt)、数据点数(npts)等基础参数
- 加速度时程导出:将二进制/特殊格式转为标准txt
- 反应谱计算:生成工程所需的谱曲线
python复制# 基础依赖库
import os
import glob
import numpy as np
from scipy.integrate import odeint
import pandas as pd
1.2 文件夹结构设计
建议采用以下目录体系保持数据整洁:
code复制project_root/
├── raw_data/ # 存放原始下载文件
├── processed/
│ ├── time_history/ # 存储提取的时程数据
│ └── spectra/ # 存储生成的反应谱
└── outputs/ # 最终汇总文件
提示:使用相对路径可增强脚本可移植性,避免硬编码绝对路径
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 智能文件遍历与格式转换
2.1 递归文件搜索
开发多级目录扫描函数,自动识别PEER典型的文件分布模式:
python复制def find_peer_files(root_dir):
"""递归查找所有PEER数据文件"""
file_types = ('*.AT2', '*.V2', '*.DT2') # PEER常见格式
return [f for ext in file_types
for f in glob.glob(f"{root_dir}/**/{ext}", recu
