Full text
SoftwareX 29 (2025) 102039 Available online 22 January 2025 2352-7110/© 2025 The Authors. Published by Elsevier B.V. This is an open access article under the CC BY-NC license (http://creativecommons.org/licenses/bync/4.0/). Contents lists available at ScienceDirect SoftwareX journal homepage: www.elsevier.com/locate/softx Original software publication PHMD: An easy data access tool for prognosis and health management datasets David Solís-Martína,b,∗ , Juan Galán-Páeza,b, Joaquín Borrego-Díaza aDepartment of Computer Science and Artificial Intelligence, Universidad de Sevilla, Seville, Spain bDatrik Intelligence S.A., Seville, Spain A R T I C L E I N F O Keywords: Dataset management Prognostics and health management Predictive maintenance Condition monitoring A B S T R A C T This work introduces a comprehensive open-source Python library designed for seamless access and handling of Prognostics and Health Management (PHM) datasets. The library currently supports 59 datasets from diverse domains, and has been developed to simplify, datasets search, retrieval, load, and preprocessing while standardizing data formats for easy integration in machine learning workflows. With built-in metadata handling and task-specific experiment settings for diagnosis, prognosis, and detection, users can efficiently prepare and analyze data without needing to manage raw file formats or directories. Available through GitHub and PyPI, the library provides a robust foundation for PHM research and application, offering useful resources to boost the projects of practitioners and researchers alike. Code metadata Current code version 2024.0.01 Permanent link to code/repository used for this code version For example: https://github.com/ElsevierSoftwareX/SOFTX-D-24-00587 Permanent link to Reproducible Capsule Legal Code License GNU General Public License (GPL) Code versioning system used git Software code languages, tools, and services used python Compilation requirements, operating environments & dependencies Python 3 on Linux, OSX or Windows. Dependencies listed in setup.py and requirements.txt in code repository. If available Link to developer documentation/manual – Support email for questions [email protected] 1. Motivation and significance Proper maintenance of equipment and machinery in the industry is essential to ensure operational efficiency and extend their lifespan. Thus, reducing replacement and repair costs, results in a long-term positive economic impact. The implementation of predictive maintenance strategies in the industry not only reduces costs associated with breakdowns and unexpected shutdowns but also improves resource planning, enhances productivity and product quality, and strengthens market competitiveness, generating a favorable economic impact. The general aim of predictive maintenance is to identify and address, through the use of data analysis, potential problems in the equipment before they become critical. In the realm of machine learning, historical data holds paramount importance as it serves as the foundation upon which machine learning models acquire knowledge. However, it is commonly observed that data scarcity and sparse labeling pose significant challenges across multiple domains. This challenge is particularly pronounced in predictive maintenance, where detecting real faults in industrial settings, despite their costly implications, is exceedingly rare, especially in the case of Original Equipment Manufacturers (OEMs). Consequently, datasets pertaining to such scenarios hold immense value. However, they are often inaccessible to the public due to a multitude of concerns and constraints. For instance, real ∗Corresponding author at: Department of Computer Science and Artificial Intelligence, Universidad de Sevilla, Seville, Spain. E-mail addresses: [email protected] (David Solís-Martín), [email protected] (Juan Galán-Páez), [email protected] (Joaquín Borrego-Díaz). https://doi.org/10.1016/j.softx.2025.102039 Received 3 November 2024; Received in revised form 3 January 2025; Accepted 6 January 2025
SoftwareX 29 (2025) 102039 2 David Solís-Martín et al. Table 1 TL: Transfer Learning, DL: Deep Learning, CV: Cross-Validation, Well-Known: Indicates whether the tool includes well-known datasets, Multi-task: Specifies if the tool defines multiple tasks per dataset, Metadata: Indicates whether the tool includes metadata associated with each dataset. Dataset git [8] git [9] pyPHM [3] ProgPy [10] git [7] phmd (ours) Search No No No No No Yes Download No No Yes Yes No Yes Load Yes Yes Yes Yes Yes Yes CV No No No No No Yes #Datasets 6 3 4 2 3 59 Well-Known Yes Yes Yes Yes No Yes Metadata No No No No No Yes Multi-task No No No No No Yes Focus TL DL Reproducibility Prognosis Paper Reproducibility Discontinued No Yes Yes No Yes No datasets could contain sensitive information such as failure frequencies and the types of sensors installed [1]. Therefore, most studies demonstrating successful applications of machine learning in manufacturing withhold their training and testing datasets from public access. This practice hinders effective comparison between different approaches and reproducibility of such studies. Conversely, over the past decade, researchers and industry stakeholders have begun crafting datasets specifically designed for tasks like fault prediction and diagnosis, remaining useful life estimation, or assessing wear in components, within the realm of predictive maintenance. These datasets circulate within the research community to propel advancements in the field. However, they frequently present diverse formats (such as CSV, HDF5, TXT, MAT, etc.), may be split across various files that require consolidation, and, in certain cases, lack information such as, how the data is organized within the file (this is the case of the MAT format), thereby limiting its reuse in other works. It is a fact that many scientific studies are difficult or impossible to reproduce [2,3]. Despite the existence of multiple public datasets for predictive maintenance, the process of locating and managing them remains time-consuming due to their diverse formats. This is likely one of the reasons why most published works only validate their results with one or two datasets, despite the public availability of many more. Providing a tool that simplifies the gathering and processing of public datasets could significantly benefit the research community, in advancing technology. Collecting multiple datasets to carry out a research work can be time-consuming and include tasks such as locating the data source, gathering descriptive information (such as metadata, feature descriptions, and data organization), downloading, and loading into a well-known and standardized in-memory data structure format, obtaining related bibliography, etc. Additionally, such a tool would facilitate benchmarking with more than just two datasets, enabling researchers to evaluate their work against a broader range of scenarios. Moreover, validating research hypothesis on the same datasets (and same versions) would facilitate result comparison between studies. Existing works, such as [4,5], and [6], provide surveys of publicly available datasets in PHM, but none offer a practical tool for seamless dataset access. While [7] addresses this gap by providing a tool to download, load, and split datasets, its functionality is limited to three datasets created by the authors for a published paper. The tool most similar to ours is pyPHM [3], which focuses on the reproducibility of research. However, this tool only provides access to four datasets, and the repository suggests that maintenance could be discontinued. The Table 1provides a comparison of these tools and others with ours. The most remarkable feature of our tool is the large number of datasets— 59 at the time of writing—that it provides access to. The search capability is another differentiating feature, though it is not as necessary when the number of datasets is very low, as in the case of the other works. All the metadata information associated with each dataset is another important feature, ensuring that users can fully understand the context and characteristics of the data. Additionally, the cross-validation capabilities, together with other elements that will be reviewed later, make this tool particularly valuable for reproducible research. By facilitating easy comparison of models, these features contribute significantly to advancing the state of the art in PHM, enabling researchers to quickly test and validate new approaches with multiple datasets. The rest of the paper is structured as follows. Section 2provides a detailed description of the tool, including an enumeration of its functionalities and the architecture of the published software package. Section 3presents various source code examples to showcase the software’s functionalities, such as dataset search, dataset information and metadata retrieval, and data loading. Additionally, this section includes two examples that demonstrate the training of neural networks for diagnosis and prognosis tasks. Finally, Section 4outlines conclusions and suggests directions for future research. 2. Software description This work is accompanied by a free, open-source software library designed to facilitate access to datasets in the field of PHM. The primary goal is to streamline automated processing, allowing researchers and practitioners to easily obtain, manipulate, and analyze data relevant to their work. This library provides tools for data search, downloading, and loading without concerns about dataset locations or source formats. In summary, the library offers a unified interface for accessing PHM datasets (59 at the time of writing) from diverse sources and heterogeneous formats, significantly reducing the time and effort needed to prepare datasets for machine learning projects and other analytical tasks. Regarding the origin of the 59 datasets that have been gathered, 10 are provided by NASA [11–20], while 8 are offered by the PHM Society through their American, European, and Asian challenges [21–28]. Universities worldwide have contributed 19 datasets [29–47], and 7 more were produced by other research institutions [48–54]. The one dataset belongs to the Society for Machinery Failure Prevention Technology (MFPT) [27], and the remaining were published by various companies. Regarding the available tasks, 31 datasets support diagnosis tasks, 35 can be used for prognosis tasks, and 6 are configured for detection tasks.
SoftwareX 29 (2025) 102039 3 David Solís-Martín et al. Fig. 1. The download package retrieves the dataset from the internet, if it has not been downloaded yet, and stores it in a local directory. The reader package contains source code specific to reading each dataset format, while the metadata directory holds JSON files with the dataset metadata. The main functionality is provided by the datasets package allowing to search, display dataset information, and load datasets. The Dataset and Task classes encapsulate such functionality, enhancing the usability of the library. 2.1. Software functionalities The main features of the developed library can be summarized as follows: •Listing and search. The library allows users to search for datasets tailored to specific purposes. Each dataset is associated with a set of meta-attributes facilitating the selection of the most suitable dataset for a particular research task. •Automatic download. The download process is automatically triggered when a dataset is required to load only if it has not been previously downloaded. The dataset integrity is controlled through a hash code to ensure that the dataset has not been corrupted during the download process. •Loading. One of the most important features of this library is its dataset loading capability. The loading function abstracts away the original source format of the dataset, making it format-agnostic for the user and allowing them to focus directly on data analysis after loading. The loading function accepts the dataset name and task type as parameters. Based on the specified task, the target variable is automatically computed, and relevant features are filtered accordingly. When the dataset is read it is also partitioned, providing cross-validation folds and a reserved test set. To facilitate experiment reproducibility, a random seed can be set to control the split. This will make results of different research studies easily reproducible and comparable by just annotating the seed used in each experiment. 2.2. Software architecture The structure of the library is outlined in Fig. 1. Each dataset is defined by two files: a JSON file containing all metadata, and a source code file responsible for the loading logic of the dataset. JSON files are stored in the metadata directory, while the loading code resides in the readers package. The download package includes the code dedicated to downloading functionalities. The end-user functionality is provided by the datasets package, which provides functions and classes for reading metadata, loading datasets, and utilities for describing and listing available datasets. All functionalities can be accessed through both the Dataset and Task classes. The Dataset class includes the static method search, which provides the search functionality. This functionality allows users to list all available datasets or filter them based on various attributes, such as the dataset’s name or code-name, task name (e.g., diagnosis, prognosis, wear), target task name (e.g., fault, rul, stage), application and domain of application, type of features, publisher, and the nature of the data. An instance of the Dataset class represents a specific dataset and requires only the code-name of the dataset to be specified in the constructor. Additionally, the user can optionally specify a cache directory, where the dataset files will be stored. The download method allows users to manually download the dataset, providing full control over the downloading process, which may be necessary in scenarios such as multiprocessing environments. However, the loading process automatically verifies whether the dataset has already been downloaded and downloads it if needed. The describe method generates a detailed description of the dataset. Additionally, users can directly access the tasks defined within the dataset using indexing. The Task instances, obtained by indexing the dataset, allow users to configure various attributes for reading fold sets: •folds (Int): Defaults to 5 or to the maximum number of folds depending on the number of units present in the dataset. •preprocess (Object): Defaults to None. This attribute can be set to a valid Scikit-learn transformer, or any other object that implements both the fit and transform methods. •normalize_output (Bool): Defaults to False. In tasks with continuous targets, such as RUL, normalizing the output is common. When set to True, the target column will be normalized. •test_pct (Float): Defaults to 0.3, specifying the percentage of data used for the test set.
SoftwareX 29 (2025) 102039 4 David Solís-Martín et al. •return_test (Bool): Defaults to True. If set to False, only the validation and training sets are returned. •random_state (Int): Sets the random seed used to split the data. Changing this value results in a different data split. Once these attributes have been set, each cross-validation fold can be accessed through indexing. This returns Pandas DataFrames containing the training, validation, and, if specified, test sets. The reproducibility of experiments is ensured thanks to the folds,test_pct, and random_state attributes, which control the cross-validation split. Note that, currently, this tool does not provide automatic preprocessing pipelines, except for target normalization in RUL tasks. However, users can provide a custom preprocessing pipeline by setting the preprocess attribute of the Task class. 3. Illustrative examples To provide a better idea of the contributions of this work, this section provides examples to illustrate the library use and its main features. 3.0.1. Search datasets The dataset Search module allows listing datasets matching certain criteria. For example searching for datasets that contain vibration data, users can identify various datasets across different domains and applications, such as mechanical or manufacturing contexts. The Example 1illustrates how to perform a dataset search using the phmd library, showcasing the relevant details, including dataset names, domains, application areas, task names, and the nature of the data and features provided. Example 1 Dataset search example 1>>> import phmd 2>>> datasets . Dataset . search ( features=’ vibra ’ ) 3 4name domain nature app task name [ target ] data nature features 5−−−−−−− −−−−−−−−−−−−− −−−−−−−−−−− −−−−−−− −−−−−−−−−−−−−−−−−− −−−−−−−−−−−− −−−−−−−− 6CWRU Mechanical time−series Bearing Diagnosis [ fault ] time−se ries vibration 7DFD15 Manufacturing time−se ries Drill Diagnosis [ fault ] time−series vibration 8DFD15 Manufacturing time−se ries Drill Stage [ stage ] time−series vibration 9. . . 10 . . . 11 . . . 12 UPM23 Mechanical time−serie s Bearing Diagnosis [ fault ] time−series vibration 13 XJTU−SY Mechanical time−seri e s Bearing Prognosis [ rul ] time−se r ies vibration 14 XJTU−SY Mechanical time−seri e s Bearing Diagnosis [ fault ] time−se r ies vibration While diagnosis and prognosis are the most common tasks, some datasets allows configuring secondary tasks. For example, the DF15 dataset includes a ‘‘Stage’’ task, in which the goal is to classify the stage of the drilling process based on vibration signals. Although the stage of the drilling process is known and, in practice, it may not be needed to be detected by an artificial intelligence model, this kind of task could be particularly interesting in contexts such as multi-task learning. More details about the search capabilities can be found in the documentation within the code repository. 3.0.2. Describe dataset Understanding the specifics of a dataset is vital for effective analysis and model development. The phmd library simplifies this process by providing a straightforward way to retrieve detailed information of each o dataset within the collection. The Dataset module allows users obtaining comprehensive descriptions, system information, features, tasks, resources, and references associated with a particular dataset. In Example 2, we demonstrate how to access detailed information for the well-known CWRU (Case Western Reserve University) dataset, which focuses on bearing fault diagnosis. The output includes essential details such as the description of the dataset, the types of sensors used, the nature of the data, and storage requirements of the dataset. This allows users to evaluate the suitability of the dataset for their specific applications and research needs. Moreover, it provides information useful when writing reports or papers such as citation reference, license and related works using the dataset. Example 2 Dataset description example 1>>> from phmd import datasets 2>>> ds = datasets . Dataset ("CWRU" ) 3>>> print( ds . describe ()) 4 5Description 6=========== 7In this renowned dataset , experiments were conducted utilizing a 2 HP Reliance Electric 8motor , where acceleration data was measured at locations both near to and remote from the 9motor . . . 10 11 Designation : Bearing Fault Diagnostic 12 Publisher : Case Western Reserve University 13 Domain: Mechanical component 14 Application : Bearing 15 License : CC BY−SA 4.0 16 17 System info 18 =========== 19 1. type : Rotatory machine : bearing 20 2. sensors : Voltmeter , ammeter and thermocouple sensor suite 21 3. bearing : 6205−2RSL JEM SKF deep−groove ball bearing (and NTN equivalent ) 22
SoftwareX 29 (2025) 102039 5 David Solís-Martín et al. 23 Features 24 ======== 25 BA : description : base accelerometer data (not available in al l experiments ) 26 type : vibration 27 DE : description : drive end accelerometer data 28 type : vibration 29 FE : description : fan end accelerometer data (not available in a l l experiments ) 30 type : vibration 31 32 Tasks 33 ===== 34 Diagnosis : 35 features : DE 36 identifier : unit 37 min_ts_len : 63788 38 nature : time−series 39 num_units : 161 40 target : fault 41 target_distribution : 0.24 ,0.51 ,0.23 ,0.021 42 target_labels : IR ,OR,BA,NO 43 type : classification : multiclass 44 45 Resources 46 ========= 47 1. storage : 48 a) zipped : 246MB 49 b) unzipped : 689MB 50 c ) RAM : 51 Data set ( f u l l ) : 5.2GB 52 2. load time (SSD disk ) : 53 a) unzipped : 54 Data set ( f u l l ) : 3s 55 a) zipped : 56 Data set ( f u l l ) : 7s 57 58 References 59 ========== 60 citation : K.A. Loparo , Bearings vibration data set. The Case Western Reserve 61 University Bearing Data Center . https :// engineering . case . edu 62 manual download : https :// engineering . case . edu/bearingdatacenter 3.0.3. Load dataset In Example 3, we demonstrate how to load the CWRU dataset. By initializing the Dataset class with the dataset name, users can retrieve specific tasks associated with the dataset. The tasks available for each dataset are specified in its description. In this case, the dataset is loaded to work in the fault task. The subsequent command loads the subsets associated with this task, where the index 0 refers to the first fold of the dataset splits for cross-validation. Example 3 Dataset load example 1>>> ds = datasets . Dataset ("CWRU" ) 2>>> task = ds [ ’ fault ’ ] 3>>> sets = task [0] 4 5Dataset CWRU already downloaded and extracted 6Please remember to ci t e the original dataset publisher : 7@misc{caseBearingData , 8author = {} , 9t i t l e = {{B}earing {D} ata {C} enter | {C}ase {S}chool of {E} ngineering 10 {C}ase {W}estern {R}eserve {U} niversity −−− engineering . case . edu} , 11 howpublished = {\ u rl { htt ps :// engineering . case . edu/bearingdatacenter }} , 12 year = {} , 13 note = {[Accessed 08−04−2024]}, 14 } 15 You can download the dataset manually from : https :// engineering . case . edu/bearingdatacenter 16 17 ∗∗ I f you find this tool useful , please cit e our SoftwareX paper . 18 19 Reading data : 100%||||||||||||||||| 161/161 [00:03<00:00, 47.43 i t /s ] 20 INFO : root : Read in 5.96511435508728 seconds 21 INFO : root : I t is possible stratified split ? True 22 INFO : root : Read 3 sets : train , val , te s t 23 INFO : root : Columns : DE, fault , unit 24 INFO : root : Train shape : (28567988, 3) 25 INFO : root : Val shape : (7804030, 3) 26 INFO : root : Test shape : (979629, 3) Note that the loading functionality reads the dataset structured to be used in cross-validation, and reserving part of the data as test set. 3.1. Benchmarking example The Example 4demonstrates the process of benchmarking a predictive model using the library and multiple datasets. For each dataset, the RUL task is configured using a 3-fold cross-validation setup. Key preprocessing steps include normalizing the target values and applying aMinMaxScaler
SoftwareX 29 (2025) 102039 6 David Solís-Martín et al. to the input features. A convolutional neural network (CNN) is trained on time-series data generated by splitting the signals into non-overlapping windows. Early stopping is employed to optimize training time. After completing the cross-validation, a final model is trained on the combined training and validation data, and evaluated using the test set. Example 4 Benchmarking example 1# List of datasets to process 2DATASETS = [’ARAMIS20 ’ ,’PRONOSTIA ’ ,’PHME20 ’ ] 3 4# Iterat e over each dataset in the l i s t 5for dataset in DATASETS: 6# Load the dataset object using the Dataset cl ass 7ds = datasets . Dataset ( dataset ) 8 9# Access the RUL task within the dataset 10 task = ds [ ’ rul ’ ] 11 12 # Configure the task : number of folds , normalization , and preprocessing 13 task . folds = 3# Use 3−fold cross−validation 14 task . normalize_output = True # Normalize the target (RUL) values 15 task . preprocess = MinMaxScaler () # Apply MinMaxScaler for feature scaling 16 17 # Define the time se r ies window size based on dataset metadata 18 TS =min(1024 , ds [ ’ rul ’ ] . meta[ ’min_ts_len ’] // 20) # Ensure TS is reasonable 19 20 # List to store the number of epochs for early stopping in each fold 21 ea_epochs = [] 22 23 # Extract the unit iden t i fi e r for grouping s ignal s 24 unit_id = ds [ ’ rul ’ ] . meta[ ’ i de nt i fi er ’ ] 25 EPOCHS = 100 # Maximum number of training epochs 26 27 # Loop through each fold in the cross−validation setup 28 for iin range ( task . folds ) : 29 # Access the data for the current fold 30 data = task [ i ] 31 32 # Split the data into training , validation , and t e s t sets 33 X_train , X_val , X_test = data [ ’ train ’ ] , data [ ’ val ’ ] , data [ ’ test ’ ] 34 35 # Determine the minimum signal size across train , validation , and te s t sets 36 sig n a l _ s i zes = [ X_train . groupby( unit_id ) . size ().min() , 37 X_val . groupby( unit_id ) . size ().min() , 38 X_test . groupby( unit_id ) . size ().min()] 39 40 # Set a maximum allowable s ign al length f or s p l it t i n g 41 signal_max_length =min(np . min( s ignal _ s i z e s ) , 20000000) 42 43 # Prepare the data for the model by creating overlapping windows 44 X_train , Y_train = window_split ( X_train , unit_id , ds[ ’ rul ’ ] . meta[ ’features ’] , 45 ’ rul ’ , TS , signal_max_length ) 46 X_val , Y_val = window_split ( X_val , unit_id , ds [ ’ rul ’ ] . meta[ ’features ’] , 47 ’ rul ’ , TS , signal_max_length ) 48 49 # Create a 1D convolutional neural network for time−se ries processing 50 model = create_conv_1d_network ( X_train . shape [1:]) 51 52 # Compile the model 53 model .compile ( optimizer= t f . keras . optimizers .Adam( l r =0.0001), 54 metrics=[’mae ’ ] , lo ss= ’mse ’ ) 55 56 # Set up early stopping to prevent o verfit t i ng 57 es = t f . keras . callbacks . EarlyStopping ( monitor= ’val_loss ’ , patience =8) 58 59 # Train the model on the current fold 60 results = model . f i t ( X_train , Y_train , 61 epochs=EPOCHS, 62 batch _size =128, 63 verbose=1, 64 va lida tio n_d ata =(X_val , Y_val ) , 65 callbacks=[es ]) 66 67 # Record the number of epochs before early stopping 68 ea_epochs . append( len ( results . history [’ loss ’ ] )) 69 70 # Train the f i n a l model using a l l training data ( train + validation ) 71 model = create_conv_1d_network ( X_train . shape [1:]) 72 model .compile( optimizer=t f . keras . optimizers .Adam( l r =0.0001), 73 metrics=[’mae ’ ] , lo ss= ’mse ’ ) 74 results = model . f i t (np . concatenate (( X_train , X_val )) , 75 np . concatenate (( Y_train , Y_val )) , 76 epochs=int (np . mean( ea_epochs )) , 77 batch _size =128, 78 verbose=1) 79
SoftwareX 29 (2025) 102039 7 David Solís-Martín et al. 80 # Make predictions on a single te s t unit 81 X_test , Y_test = window_split ( X_test , unit_id , ds[ ’ rul ’ ] . meta[ ’features ’] , 82 ’ rul ’ , TS , signal_max_length ) 83 test_results = model . evaluate ( X_test , Y_test ) 84 85 print( dataset , test_results ) The implementation of the functions window_split and create_conv_1d_network can be consulted in the full notebook examples in the data source repository. 4. Conclusions and future work This paper describes the functionalities of the Python package phmd, which aims to facilitate the search, downloading and loading of different (currently 59) PHM datasets. To our knowledge, this is the only Python package that manages such a large collection of publicly available datasets within this field. The package is freely accessible for download from its GitHub repository. We provide a set of examples demonstrating how to search for datasets, retrieve information on a specific dataset, and download and load it seamlessly. Since the development version is hosted on GitHub, users can report any functionality issues, request new features by opening an issue in the repository or include new datasets. While we believe this tool is a valuable contribution to the PHM research community, it has significant potential for enhancement. The number of datasets can be expanded, including those related to maintenance interventions, which are not currently included in the tool. Additionally, future work could focus on incorporating advanced features such as automated preprocessing pipelines tailored to specific machine learning models, such as feature extraction and selection for non-neural network machine learning models. Furthermore, extending the tool to include more advanced benchmarking capabilities could broaden its applicability and usability. CRediT authorship contribution statement David Solís-Martín: Writing – review & editing, Writing – original draft, Supervision, Software, Methodology, Formal analysis, Conceptualization. Juan Galán-Páez: Writing – review & editing, Resources, Methodology, Funding acquisition, Conceptualization. Joaquín Borrego-Díaz: Writing – review & editing, Resources, Project administration, Methodology, Funding acquisition. Declaration of competing interest The authors declare the following financial interests/personal relationships which may be considered as potential competing interests: David Solis-Martin reports financial support was provided by University of Seville. Juan Galan-Paez reports financial support was provided by University of Seville. Joaquin Borrego-Diaz reports financial support was provided by University of Seville. If there are other authors, they declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper. Acknowledgments This work has been supported by Grant PID2023-147198NB-I00 funded by MICIU/AEI/10.13039/501100011033 (Agencia Estatal de Investigación) and by FEDER, UE, and by the Ministry of Science and Education of Spain through the national program ‘‘Ayudas para contratos para la formación de investigadores en empresas (DIN2019-010887/AEI / 10.13039/50110001103)’’, of State Programme of Science Research and Innovations 2017–2020. References [1] Kharazian Z, Lindgren T, Magnússon S, Steinert O, Reyna OA. SCANIA component x dataset: A real-world multivariate time series dataset for predictive maintenance. 2024, arXiv preprint arXiv:2401.15199. [2] Rauber TW, da Silva Loca AL, de Assis Boldt F, Rodrigues AL, Varejão FM. An experimental methodology to evaluate machine learning methods for fault diagnosis based on vibration signals. Expert Syst Appl 2021;167:114022. [3] von Hahn T, Mechefske CK. Computational reproducibility within prognostics and health management. 2022, arXiv preprint arXiv:2205.15489. [4] Jovicic E, Primorac D, Cupic M, Jovic A. Publicly available datasets for predictive maintenance in the energy sector: A review. IEEE Access 2023. [5] Hbiche O, Boudnaya J, Sallak M, Mkhida A, Inouss H. Datasets analysis in predictive maintenance: prognostics and health management. In: 2022 2nd international conference on innovative research in applied science, engineering and technology. IEEE; 2022, p. 1–7. [6] Mauthe F, Braun C, Raible J, Zeiler P, Huber MF. Overview of publicly available degradation data sets for tasks within prognostics and health management. 2024, arXiv preprint arXiv:2403.13694. [7] Soualhi M, Soualhi A, Nguyen KT, Medjaher K, Clerc G, Razik H. Open heterogeneous data for condition monitoring of multi faults in rotating machines used in different operating conditions. Int J Progn Heal Manag 2023;14(2). [8] Zhang J. TL fault diagnosis library. 2022, https://github.com/Feaxure-fresh/TL-Fault-Diagnosis-Library. [9] Fangzheng X. Bearing fault diagnosis datasets. 2023, https://github.com/fonderxu/Bearing-fault-diagnosis-datasets. [10] Teubert C, Griffith KJ, Corbetta M, Kulkarni C, Banerjee P, Daigle M. Progpy python prognostics packages. 2024, URL https://nasa.github.io/progpy. [11] B. De B, Kulkarni C, Daigle M. Randomized battery usage dataset. 70, 2014, NASA AMES prognostics data repository. [12] Saha B, Goebel K. Battery data set. 2007, NASA AMES prognostics data repository. [13] Capacitor electrical stress-2 - catalog — catalog.data.gov. 2024, https://catalog.data.gov/dataset/capacitor-electrical-stress-2. (Accessed 3 January 2025). [14] Celaya JR, Saxena A, Saha S, Goebel KF. Prognostics of power MOSFETs under thermal stress accelerated aging using data-driven and model-based methodologies. In: Annual conference of the PHM society, vol. 3, 2011, p. 0–10. [15] Fricke K, Nascimento R, Corbetta M, Kulkarni C, Viana F. Prognosis of li-ion batteries under large load variations using hybrid physics-informed neural networks. In: Annual conference of the PHM society, vol. 15, 2023, p. 0–12. [16] Saxena A, Goebel K, Simon D, Eklund N. Damage propagation modeling for aircraft engine run-to-failure simulation. In: 2008 international conference on prognostics and health management. IEEE; 2008, p. 1–9. [17] Prognostics center of excellence data set repository - NASA — nasa.gov. 2024, https://www.nasa.gov/intelligent-systems-division/discovery-and-systems-health/pcoe/pcoedata-set-repository/. (Accessed 3 January 2025).
SoftwareX 29 (2025) 102039 8 David Solís-Martín et al. [18] Kulkarni CS, Guarneros Luna A. Description of simulated small satellite operation data sets. Tech. rep., NASA; 2018. [19] Kulkarni C, Hogge E, Quach C, Goebel K. HIRF battery data set. 2025, NASA Ames Prognostics Data Repository, https://www.nasa.gov/intelligent-systems-division/discoveryand-systems-health/pcoe/pcoe-data-set-repository/. (Accessed 3 January 2025), http://ti.arc.nasa.gov/project/prognostic-data-repository. [20] Arias Chao M, Kulkarni C, Goebel K, Fink O. Aircraft engine run-to-failure dataset under real flight conditions for prognostics and diagnostics. Data 2021;6(1):5. [21] Seijun Chung S. Data challenge at PHM Asia Pacific 2021. Kaggle. 2021, https://kaggle.com/competitions/phmap21-classification-task. [22] Danilo Giordano MS. PHME data challenge. 2024, https://github.com/PHME-Datachallenge/Data-Challenge-2024, European conference of the prognostics and health management society. [23] 2010 PHM society conference data challenge - phm society — phmsociety.org. 2024, http://www.phmsociety.org/competition/phm/10. (Accessed 3 January 2025). [24] 2023 PAP. Data challenge at PHM Asia Pacific 2023. 2023, https://phmap.jp/program-data/. [25] Annual conference of the prognostics and health management society 2018 - PHM society — phmsociety.org. 2024, http://www.phmsociety.org/competition/phm/18. (Accessed 3 January 2025). [26] İnce K, Sirkeci E, Genç Y. Remaining useful life prediction for experimental filtration system: A data challenge. In: Medjaher ABK, editor. Proceedings of the European conference of the PHM society 2020. PHM Society; 2020, p. 0–10, Available at https://phmpapers.org/index.php/phme/article/view/1317. [27] Fault data sets - society for machinery failure prevention technology — mfpt.org. 2024, https://www.mfpt.org/fault-data-sets/. (Accessed 3 January 2025). [28] He J, Guan X, Peng T, Liu Y, Saxena A, Celaya J, et al. A multi-feature integration method for fatigue crack detection and crack length estimation in riveted lap joints using lamb waves. Smart Mater Struct 2013;22(10):105007. [29] Bosello M, Falcomer C, Rossi C, Pau G. To charge or to sell? EV pack useful life estimation via LSTMs, CNNs, and autoencoders. Energies 2023;16(6). http://dx.doi.org/10. 3390/en16062837, URL https://www.mdpi.com/1996-1073/16/6/2837. [30] Cao P, Zhang S, Tang J. Preprocessing-free gear fault diagnosis using small datasets with deep convolutional neural network-based transfer learning. Ieee Access 2018;6:26241–53. [31] Lu C, Wang Y, Ragulskis M, Cheng Y. Fault diagnosis for rotating machinery: A method based on image processing. PLoS One 2016;11(10):e0164111. [32] Kollmeyer P, Carlos V, Naguib M, Skells M. LG 18650HG2 Li-ion battery data and example deep neural network xEV SOC estimator script. 2020, URL https://data.mendeley. com/datasets/cp3473x7xv/3. [33] Gear datasets. 2024, https://www.kau-sdol.com/kaug. (Accessed 3 January 2025). [34] Wang B, Lei Y, Li N, Li N. A hybrid prognostics approach for estimating remaining useful life of rolling element bearings. IEEE Trans Reliab 2018;69(1):401–12. [35] Bearing data center | case school of engineering | case western reserve university — engineering.case.edu. 2024, https://engineering.case.edu/bearingdatacenter. (Accessed 3 January 2025). [36] Soto-Ocampo CR, Maroto J, Cano-Moreno JD, Mera JM. Bearing database - evaluation of isolated cases — zenodo.org. 2023, https://zenodo.org/records/8241764. (Accessed 3 January 2025). [37] Nehasil O, Dobiášová L, Mazanec V, Širok` y J. Versatile AHU fault detection–design, field validation and practical application. Energy Build 2021;237:110781. [38] Lessmeier C, Kimotho JK, Zimmer D, Sextro W. Condition monitoring of bearing damage in electromechanical drive systems by using motor current signals of electric motors: A benchmark data set for data-driven classification. In: PHM society European conference, vol. 3, 2016, p. 0–10. [39] Coraddu A, Oneto L, Ghio A, Savio S, Anguita D, Figari M. Machine learning approaches for improving condition-based maintenance of naval propulsion plants. Proc Inst Mech Eng, Part M: J Eng Marit Environ 2016;230(1):136–53. [40] Cipollini F, Oneto L, Coraddu A, Murphy AJ, Anguita D. Condition-based maintenance of naval propulsion systems with supervised data analysis. Ocean Eng 2018;149:268–78. [41] Yang X, Yan R, Gao RX. Induction motor fault diagnosis using multiple class feature selection. In: 2015 IEEE international instrumentation and measurement technology conference (i2MTC) proceedings. IEEE; 2015, p. 256–60. [42] Birkl C. Diagnosis and prognosis of degradation in lithium-ion batteries (Ph.D. thesis), University of Oxford; 2017. [43] Li K, Ping X, Wang H, Chen P, Cao Y. Sequential fuzzy diagnosis method for motor roller bearing in variable operating conditions based on vibration analysis. Sensors 2013;13(6):8013–41. [44] Barbieri G, Sanchez-Londoño D, Cattaneo L, Fumagalli L, Romero D. A case study for problem-based learning education in fault diagnosis assessment. IFAC-PapersOnLine 2020;53(3):107–12. [45] Severson KA, Attia PM, Jin N, Perkins N, Jiang B, Yang Z, et al. Data-driven prediction of battery cycle life before capacity degradation. Nat Energy 2019;4(5):383–91. [46] Soto-Ocampo CR, Mera JM, Cano-Moreno JD, Garcia-Bernardo JL. Low-cost, high-frequency, data acquisition system for condition monitoring of rotating machinery through vibration analysis-case study. Sensors 2020;20(12):3493. [47] Kovalenko I, Saez M, Barton K, Tilbury D. SMART: A system-level manufacturing and automation research testbed. Smart Sustain Manuf Syst 2017;1(1). [48] Mao L, Jackson L. IEEE 2014 data challenge data. 2014, http://dx.doi.org/10.17028/rd.lboro.3518141.v1, (Accessed 3 January 2025). [49] Von Birgelen A, Buratti D, Mager J, Niggemann O. Self-organizing maps for anomaly localization and predictive maintenance in cyber-physical production systems. Procedia Cirp 2018;72:480–5. [50] UCI machine learning repository — archive.ics.uci.edu. 2024, https://archive.ics.uci.edu/dataset/421/aps+failure+at+scania+trucks. (Accessed 3 January 2025). [51] Darban ZZ, Webb GI, Pan S, Aggarwal CC, Salehi M. Deep learning for time series anomaly detection: A survey. 2022, arXiv preprint arXiv:2211.05244. [52] Helwig N, Pignanelli E, Schütze A. Condition monitoring of a complex hydraulic system using multivariate statistics. In: 2015 IEEE international instrumentation and measurement technology conference (i2MTC) proceedings. IEEE; 2015, p. 210–5. [53] Battery data | center for advanced life cycle engineering — calce.umd.edu. 2024, https://calce.umd.edu/battery-data. (Accessed 3 January 2025). [54] Lee J, Qiu H, Yu G, Lin J, et al. IMS,‘‘University of Cincinnati.‘‘bearing data set’’, NASA ames prognostics data repository. 2007, NASA Ames Research Center, Moffett Field, CA.