HiMAP: Hidden Markov models for Advanced Prognostics
HiMAP is a Python package for implementing hidden Markov Models (HMMs) and hidden semi-Markov Models (HSMMs) tailored for prognostic applications. It provides a probabilistic framework for predicting Remaining Useful Life (RUL) and modeling complex degradation processes without requiring labeled datasets.
If you use HiMAP, please cite the software using the DOI for the release you used (recommended for reproducibility). Zenodo also provides a concept DOI that represents all versions.
- Version DOI (recommended): https://doi.org/10.5281/zenodo.18418216
- Concept DOI (all versions): https://doi.org/10.5281/zenodo.18418215
You can also use the citation information provided by GitHub via the “Cite this repository” button (generated from CITATION.cff).
Warning
A C++ compiler is required to build the .pyx files.
Microsoft Visual C/C++ (MSVC) 14.0 or higher is required to build the .pyx files.
https://visualstudio.microsoft.com/visual-cpp-build-tools/
(Download Build Tool - After Visual Studio Installer is ready, choose Desktop development with C++)
The GNU C Compiler (gcc) is usually present. Next to a C compiler, Cython requires the Python header files. On Ubuntu or Debian run the following command:
sudo apt-get install build-essential python3-dev
Note
For more information refer to the Cython package documentation:
https://cython.readthedocs.io/en/latest/src/quickstart/install.html
You can install HiMAP in two ways:
The easiest way to install HiMAP is through pip. Simply run the following command:
pip install himapNote
To install the package, you need Python>=3.9
If you prefer to install HiMAP directly from the source, follow these steps:
- Create a virtual environment and activate it. (This example will be demonstrated with Anaconda, but it is not required.)
Step 1a
conda create -n himap_env python=3.12
Step 1b
conda activate himap_env
- This repository can be directly pulled through GitHub by the following commands:
Step 2a
conda install git
Step 2b
git clone https://github.com/GroupiSP/himap.git
Step 2c
cd himap
- The dependencies can be installed using the requirements.txt file
pip install -r requirements.txt
- To compile the Cython code, run the following commands:
python setup_cython.py build_ext --inplace
Note
For detailed usage instructions, guides, and API references, please visit our comprehensive documentation: Read the docs
../root/
└── LICENSE
└── README.md
└── requirements.txt
└── ...
├── himap/ -- Required
└── ab.py -- Required
└── base.py -- Required
└── main.py -- Required
└── plot.py -- Required
└── smoothed.pyd -- Required
└── utils.py -- Required
├── cython_build/ -- Required
└── __init__.py -- Required
└── fwd_bwd.pyx -- Required
└── setup.py -- Required
├── example_data/ -- Required
└── test_FD001_disc_20_mod.csv -- Required
└── train_FD001_disc_20_mod.csv -- Required
├── results/ -- Automatically generated
├── dictionaries -- Automatically generated
├── figures/ -- Automatically generated
├── models/ -- Automatically generated
To describe how to train and use the HMM and HSMM models, we show an example below. To run the code from the terminal with default values, use the following command from the root directory of the repository:
python -m himap.main
This runs the HMM model for the C-MAPSS dataset by default and fits the best model utilizing the Bayesian Information Criterion.
If you want to fit the HSMM model to the C-MAPSS data run the command:
python -m himap.main --hsmm True
If you want to run the example utilizing Monte Carlo Sampling generated data run the command:
python -m himap.main --mc_sampling True
See the main.py file for different existing variables and options.
The example can be also run via the distribution. After installing the package in the virtual environment you can run
python -m himap.main
and use the same arguments as previously for the different example options.
Note
The CLI is used only for demonstration purposes. For more control and customization, you can directly import
the relevant functions and classes from the himap package in your own scripts or Jupyter notebooks.
The results are saved inside the directory root/himap/results/
As of v1.1.0 (2025-08-25), HiMAP is licensed under the Apache License 2.0. Prior releases remain under their original licenses.