bibmon

Python package that provides predictive models for fault detection, soft sensing, and process condition monitoring.

https://github.com/petrobras/bibmon

Science Score: 41.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: sciencedirect.com
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

echo-state-network fault-detection fault-diagnosis machine-learning neural-networks pca process-monitoring process-systems-engineering scikit-learn soft-sensor time-series
Last synced: 6 months ago · JSON representation ·

Repository

Python package that provides predictive models for fault detection, soft sensing, and process condition monitoring.

Basic Info
Statistics
  • Stars: 88
  • Watchers: 5
  • Forks: 45
  • Open Issues: 22
  • Releases: 11
Topics
echo-state-network fault-detection fault-diagnosis machine-learning neural-networks pca process-monitoring process-systems-engineering scikit-learn soft-sensor time-series
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

Binder Apache 2.0 CC BY 4.0

BibMon

BibMon (from the Portuguese **Biblioteca de *Mon*itoramento de Processos, or Process Monitoring Library) is a Python package that provides deviation-based predictive models for fault detection, soft sensing, and process condition monitoring.

For further information, please refer to the documentation or to the scientific publication detailing BibMon.

Installation

BibMon can be installed using pip:

pip install bibmon

Or conda:

conda install conda-forge::bibmon

Available Models

  • PCA (Principal Component Analysis);
  • ESN (Echo State Network);
  • SBM (Similarity-Based Method);
  • Autoencoders;
  • any regressor that uses the scikit-learn interface.

Usage

Essentially, the library is used in two steps:

  1. In the training step, a model is generated that captures the relationships between variables in the normal process condition;
  2. In the prediction step, process data is compared to the model's predictions, resulting in deviations; if these deviations exceed a predefined limit, alarms are triggered.

Specifically, the implemented control charts are based on squared prediction error (SPE).

For more details, please refer to the tutorials available in the documentation to learn about the main functionalities of BibMon. You can find the corresponding Jupyter Notebooks for these tutorials in the docs/source/ directory.

Features

The resources offered by BibMon are:

  • Application in online systems: a trained BibMon model can be used for online analysis with both individual samples and data windows. For each sample or window, a prediction is made, the model state is updated, and alarms are calculated.
  • Compatibility, within the same architecture, of regression models (i.e., virtual sensors, containing separate X and Y data, such as RandomForest) and reconstruction models (containing only X data, such as PCA).
  • Preprocessing pipelines that take into account the differences between X and Y data and between training and testing stages.
  • Possibility of programming different alarm logics.
  • Easy extensibility through inheritance (there is a class called GenericModel that implements all the common functionality for various models and can be used as a base for implementing new models). For details, consult the CONTRIBUTING.md file.
  • Convenience functions for performing automatic offline analysis and plotting control charts.
  • Real and simulated process datasets available for importing.
  • Comparative tables to automate the performance analysis of different models.
  • Automatic hyperparameter tuning.

Contributing

BibMon is an open-source project driven by the community. If you would like to contribute to the project, please refer to the CONTRIBUTING.md file.

The package originated from research projects conducted in collaboration between the Chemical Engineering Program at COPPE/UFRJ and the Leopoldo Américo Miguez de Mello Research Center (CENPES/Petrobras).

Owner

  • Name: Petróleo Brasileiro S.A.
  • Login: petrobras
  • Kind: organization

Citation (CITATION.bib)

@article{melo_bibmon_2024,
	title = {{BibMon}: {An} open source {Python} package for process monitoring, soft sensing, and fault diagnosis},
	issn = {2772-5081},
	shorttitle = {{BibMon}},
	url = {https://www.sciencedirect.com/science/article/pii/S2772508124000449},
	doi = {10.1016/j.dche.2024.100182},
	journal = {Digital Chemical Engineering},
	author = {Melo, Afrânio and Lemos, Tiago S. M. and Soares, Rafael M. and Spina, Deris and Clavijo, Nayher and Campos, Luiz Felipe de O. and Câmara, Maurício Melo and Feital, Thiago and Anzai, Thiago K. and Thompson, Pedro H. and Diehl, Fábio C. and Pinto, José Carlos},
	month = sep,
	year = {2024},
	keywords = {Fault detection and diagnosis, Machine learning, Open source, Process monitoring, Soft sensor},
	pages = {100182},
}

GitHub Events

Total
  • Create event: 2
  • Release event: 1
  • Issues event: 1
  • Watch event: 25
  • Issue comment event: 6
  • Push event: 6
  • Pull request event: 33
  • Fork event: 16
Last Year
  • Create event: 2
  • Release event: 1
  • Issues event: 1
  • Watch event: 25
  • Issue comment event: 6
  • Push event: 6
  • Pull request event: 33
  • Fork event: 16

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 74
  • Total Committers: 9
  • Avg Commits per committer: 8.222
  • Development Distribution Score (DDS): 0.311
Past Year
  • Commits: 74
  • Committers: 9
  • Avg Commits per committer: 8.222
  • Development Distribution Score (DDS): 0.311
Top Committers
Name Email Commits
Afrânio Melo 4****o 51
Leonardo Voltolini v****i@e****r 9
Tiago Lemos t****s@h****m 5
Igor Infingardi i****i@g****m 3
Deris Spina 4****s 2
Yelken Gonzales y****n@g****m 1
Mauricio 8****m 1
Laura l****i@g****m 1
Kelly Castro k****y@d****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 68
  • Average time to close issues: 2 months
  • Average time to close pull requests: 10 days
  • Total issue authors: 4
  • Total pull request authors: 15
  • Average comments per issue: 0.18
  • Average comments per pull request: 0.1
  • Merged pull requests: 52
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 10
  • Pull requests: 41
  • Average time to close issues: N/A
  • Average time to close pull requests: 18 days
  • Issue authors: 3
  • Pull request authors: 11
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.17
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • afraniomelo (8)
  • camaramm (2)
  • zRafaF (1)
  • yantavares (1)
  • sebazac332 (1)
Pull Request Authors
  • afraniomelo (74)
  • Reinaldo-Kn (8)
  • infingardi (4)
  • WladRamos (4)
  • zRafaF (4)
  • castrokelly (2)
  • camaramm (2)
  • yelken (2)
  • Alysson-Alves23 (2)
  • tsmlemos (2)
  • Deriss (2)
  • trevisharp (2)
  • LeoVoltolini (2)
  • yantavares (1)
  • xzxjesse (1)
Top Labels
Issue Labels
enhancement (6) good first issue (3)
Pull Request Labels

Dependencies

requirements.txt pypi
  • matplotlib >=3.3.4
  • numpy >=1.19.2
  • optuna >=2.8.0
  • pandas >=1.1.3
  • scikit-learn >=0.24.1
  • scipy >=1.6.2
  • seaborn >=0.11.1
  • statsmodels >=0.12.0
setup.py pypi