地震工程现场和试验数据的信号处理
eqsig的Python项目详细描述
方程式
用于地震信号处理的python包。
功能
该软件包提供了计算地震动参数和进行信号处理的通用功能。 这些函数要么在numpy数组上实现,要么在使用缓存以避免代价高昂的signal对象上实现 重新计算广泛使用的参数。
- 使用快速nigam和jennings(1968)算法计算加速度响应谱和弹性响应时间序列。
- 计算傅里叶振幅谱(使用scipy.signal.fft算法)
- 根据Konno和Ohmachi(1998)计算平滑傅里叶振幅谱
- 根据加速度时间序列计算速度和位移
- 计算地震动峰值(pga、pgv、pgd)
- 计算共同地面运动强度测量值(arias强度、cav、cav_dp5、有效持续时间、括号持续时间、优势周期)
- 计算信号特征(零交叉、全局峰值、局部峰值)
- 根据两个地震动分量计算旋转地震动或强度测量值
- 通过插值或周期重采样对地震动进行重采样
- 巴特沃斯滤波器(使用scipy),运行平均值,多项式拟合
- 在信号对象之间快速加载和保存纯文本
如何使用
[eqsig文档](https://eqsig.readthedocs.io)
示例
生成响应谱
importnumpyasnpimportmatplotlib.pyplotaspltimporteqsig.singlebf,sub_fig=plt.subplots()a=np.loadtxt("<path-to-acceleration-time-series>")dt=0.005# time step of acceleration time seriesperiods=np.linspace(0.2,5,100)# compute the response for 100 periods between T=0.2s and 5.0srecord=eqsig.AccSignal(a*9.8,dt)record.generate_response_spectrum(response_times=periods)times=record.response_timessub_fig.plot(times,record.s_a,label="eqsig")plt.show()
有用材料
贡献
如何设置?
- 运行pip install -r requirements.txt
包约定
- 计算以信号作为输入的属性的函数应命名为calc\lt;property>;,如果计算有多个不同的实现,则包括作为作者和年份的引用以及calc\ult;property>;\ult;author>;\ult;year>;
- 如果函数采用原始数组,则它应包含单词数组(或值或VAL)。
测试
使用pytest运行测试
- 在命令行上本地运行:pytest。
- 使用travis对每次推送都运行测试,请参见.travis.yml文件
部署
要将包部署到pypi.com,您需要:
- 推到pypi分支。这将在circleci.com上执行测试
- 创建git标记并推送到github,运行:trigger_deploy.py或手动:
git tag 0.5.2 -m "version 0.5.2" git push --tags origin pypi
文档
通过狮身人面像建造如下:https://codeandchaos.wordpress.com/2012/07/30/sphinx-autodoc-tutorial-for-dummies/
对于开发模式
- cd to docs
- Run ^{tt5}$
docstring遵循numpy约定(进行中):https://numpydoc.readthedocs.io/en/latest/format.html
修复setup.py中的长描述:pip install collective.checkdocs,python setup.py checkdocs
历史记录
1.0.0(2019-07-01)
- 首次发布