Skip to content
This repository has been archived by the owner on Nov 25, 2021. It is now read-only.

MideTechnology/endaq-python-calc

Repository files navigation

NOTE This package is now part of the main endaq repo, and can be found at https://github.com/MideTechnology/endaq-python/tree/development/endaq/calc This repo is Archived

endaq-calc - a computational backend for vibration analysis

endaq-calc is a package comprising a collection of common calculations for vibration analysis. It leverages the standard Python scientific stack (NumPy, SciPy, Pandas) in order to enable engineers to perform domain-specific calculations in a few lines of code, without having to first master Python and its scientific stack in their entireties.

endaq-calc is a sub-package of the larger enDAQ ecosystem. See the endaq package for more details.

Installation

endaq-calc is available on PYPI via pip:

pip install endaq-calc

For the most recent features that are still under development, you can also use pip to install endaq-calc directly from GitHub:

pip install git+https://github.com/MideTechnology/endaq-python-calc.git@development

Usage Examples

import endaq.calc.filters
import endaq.calc.integrate
import endaq.calc.psd
import endaq.calc.shock

Filters

df_accel_highpass = endaq.calc.filters.butterworth(df_accel, low_cutoff=1, high_cutoff=None)
df_accel_lowpass = endaq.calc.filters.butterworth(df_accel, low_cutoff=None, high_cutoff=100)

Integration

dfs_integrate = endaq.calc.integrate.integrals(df_accel, n=2, highpass_cutoff=1.0, tukey_percent=0.05)

PSD

Linearly-spaced

df_accel_psd = endaq.calc.psd.welch(df_accel, bin_width=1/11)

Octave-spaced

df_accel_psd_oct = endaq.calc.psd.to_octave(df_accel_psd, fstart=1, octave_bins=3)

Derivatives & Integrals {#derivatives--integrals}

df_vel_psd = endaq.calc.psd.differentiate(df_accel_psd, n=-1)
df_jerk_psd = endaq.calc.psd.differentiate(df_accel_psd, n=1)

Vibration Criterion (VC) Curves

df_accel_vc = endaq.calc.psd.vc_curves(df_accel_psd, fstart=1, octave_bins=3)

Shock Analysis

df_accel_pvss = endaq.calc.shock.shock_spectrum(df_accel, freqs=2 ** np.arange(-10, 13, 0.25), damp=0.05, mode="pvss")
df_accel_srs = endaq.calc.shock.shock_spectrum(df_accel, freqs=[1, 10, 100, 1000], damp=0.05, mode="srs")

Shock Characterization: Half-Sine-Wave Pulse

half_sine_params = endaq.calc.shock.enveloping_half_sine(df_accel_pvss, damp=0.05)

Other Links

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages