Damavand
Introduction
Damavand is a package to simplify rotary machines vibration-based analysis, through standardizing downloading, loading and transforming processes. The main motivation behind developing it is to democratize rotary machine intelligent predictive maintenance, through the development of an end-to-end unified data processing framework, covering from downloading the raw data to data preprocessing.
Installation
Currently, Damavand is accessible through the official Github repository, as below:
Once the repository is cloned, install the dependencies as below:
Quickstart
Once the package is installed, its whole functionality is accessible; the code snippet below, demonstrate a simple usage scenario, where a dataset is downloaded, loaded and processed.
# Importings
from damavand.damavand.datasets.downloaders import read_addresses, ZipDatasetDownloader
from damavand.damavand.datasets.digestors import UoO
import pandas as pd
# Downloading the dataset
addresses = read_addresses() # reading the addresses
downloader = ZipDatasetDownloader(addresses['UoO']) # instantiating the downloader to download the UoO dataset (https://data.mendeley.com/datasets/v43hmbwxpm/1)
downloader.download_extract('UoO.zip', 'UoO/') # downloading and extracting the dataset
# Mining the dataset
dataset = UoO('UoO/', ['Channel_1', 'Channel_2'], [1]) # instantiating the dataset
mining_params = {'win_len': 10000, 'hop_len': 10000} # defining the mining parameters
dataset.mine(mining_params) # mining the dataset
# Aggregating the mined data over the first channel
df = pd.concat(dataset.data['Channel_1']).reset_index(drop = True)
# Signal/Metadata split
signals, metadata = df.iloc[:, : -3], df.iloc[:, -3 :] # last three columns are state, loading and repetition; therefore, they are excluded into metadata
Documentation
Detailed API reference of each module is accessible through the links, below:
Demonstrations and Tutorials
For each dataset available in this package, a detailed demonstration is provided that includes downloading, mining and time-domain visualization. These demonstrations can be found here.
Additionally, following tutorials are provided:
- Signal Processing 101
- How to develop a digestor for a custom dataset?
- How to develop a custom feature to extract?
- Anomaly detection (Comming soon!)
- Health state classification
License
Damavand is dual-licensed: free for non-commercial use under the PolyForm Noncommercial License 1.0.0.
Use within a commercial product or for internal business operations in a for-profit organization requires a separate commercial license. Please contact ahberenji@gmail.com for inquiries.
Check out the LICENSES/LICENSE.txt file, on the main repository, for full details.
Next steps
We highly encourage other developers to help in extending the Damavand, particularly in the following directions:
- Adding new datasets
- Adding new signal processing methods