地震工程现场和试验数据的信号处理

eqsig的Python项目详细描述


Testing StatusPyPi versionhttps://coveralls.io/repos/github/eng-tools/eqsig/badge.svgLicenseECP projectDOI

方程式

用于地震信号处理的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()

有用材料

贡献

如何设置?
  1. 运行pip install -r requirements.txt

包约定
  • 计算以信号作为输入的属性的函数应命名为calc\lt;property>;,如果计算有多个不同的实现,则包括作为作者和年份的引用以及calc\ult;property>;\ult;author>;\ult;year>;
  • 如果函数采用原始数组,则它应包含单词数组(或值或VAL)。

测试

使用pytest运行测试

  • 在命令行上本地运行:pytest
  • 使用travis对每次推送都运行测试,请参见.travis.yml文件

部署

要将包部署到pypi.com,您需要:

  1. 推到pypi分支。这将在circleci.com上执行测试
  2. 创建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/

对于开发模式

  1. cd to docs
  2. Run ^{tt5}$

docstring遵循numpy约定(进行中):https://numpydoc.readthedocs.io/en/latest/format.html

修复setup.py中的长描述:pip install collective.checkdocspython setup.py checkdocs

历史记录

1.0.0(2019-07-01)

  • 首次发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获取给定日期范围内的日期列表?   处理多个同名XML条目的java Apache配置   java Jersey如何确定应用程序的基本URI?   用于错误报告的java连续屏幕记录   使用字符串对象的锁进行同步的java线程并发   正则表达式从Java中的字符串文本中提取重复模式集   java可以成为Liferay V6。0.6可以使用Maven构建系统编写吗?   JavaSpring和Hibernate上的java句柄软删除   java/cplex约束的线性化   java如何在Spring+JSP中查看发送请求和获取响应之间的时间差   ArrayQue对象的2d字符数组的java维度   ssl无法使用任何java技术从internet提取数据。网SocketException:java。安全NoSuchAlgorithmException   java如何检查应用程序是否第一次启动   java使用log4j通过SMTPAppender发送电子邮件报告