Commit Graph

150 Commits

Author SHA1 Message Date
nuluh
59aa124305 chore: add .gitattributes and .gitmessage for commit message guidelines 2025-03-16 12:16:23 +07:00
Rifqi D. Panuluh
2de04a6ea6 Create CONTRIBUTING.md 2025-03-16 12:02:35 +07:00
Rifqi D. Panuluh
48075a590e Merge pull request #32 from nuluh/stft
Stft
2025-03-16 11:49:44 +07:00
nuluh
c28e79b022 feat(convert): add prefix parameter to create_damage_files for customizable file naming
Closes #31
2025-03-16 10:57:13 +07:00
nuluh
b890e556cf fix(notebook): correct execution counts and update file naming conventions for STFT processing
Closes #27
2025-03-11 19:08:56 +07:00
nuluh
fa6e1ff72b refactor(notebook): seperate process_stft function to individual code cell. 2025-03-08 11:04:37 +07:00
nuluh
a2e339a0a0 feat: Implement STFT verification for individual test runs against aggregated data 2024-12-13 16:30:06 +07:00
nuluh
2decff0cfb Closes #24
feat(stft): Implement STFT processing for vibration data with multiprocessing support to include all the data for training process instead of just using `TEST1` only
2024-12-13 16:29:08 +07:00
nuluh
8b4eedab8a Closes #26
feat: Specify `fs` when calling `scipy.signal.stft`
2024-12-09 00:49:25 +07:00
nuluh
a1fbe8bd93 feat(convert): Update damage scenarios and output file naming conventions 2024-12-08 18:08:59 +07:00
nuluh
832b6c49db feat(notebook): Implement STFT with Hann windowing. Closes #22 2024-10-21 19:08:46 +07:00
nuluh
9618714d3c feat: Prepare all damage cases vibration record data to be merged inside two variables "signal_sensor1" and "signal_sensor2". Closes #23 2024-10-19 15:32:05 +07:00
Rifqi D. Panuluh
b229967e05 Update README.md 2024-09-09 23:14:01 +07:00
Rifqi D. Panuluh
f41edaaa91 Update README.md 2024-09-09 23:13:03 +07:00
Panuluh
e9c06e1ac1 Update LICENSE 2024-09-07 09:13:57 +07:00
nuluh
2f54e91197 feat: Add absolute value option to time feature extraction 2024-09-03 15:39:44 +07:00
nuluh
758255a24e feat(notebooks): Implement Time-domain feature extraction with real data from QUGS 2024-09-03 12:52:40 +07:00
nuluh
ff5578652f fix(script): Fix bugs taking incorrect column by changing columns and sensor_end_map index number to take the loop of enumeration. 2024-09-03 12:08:53 +07:00
nuluh
db2c5d3a4e feat(script): Update output directory in convert.py 2024-09-03 11:50:44 +07:00
nuluh
ea978de872 - 2024-09-03 11:43:46 +07:00
nuluh
465d257850 feat(script): Add zero-padding to converted CSV filenames for standardize processing pipeline 2024-09-03 11:38:49 +07:00
nuluh
d12eea0acf feat(data-processing): Implement CSV data transformation for SVM analysis
Introduce a Python script for transforming QUGS 2D grid structure data into a simplified 1D beam format suitable for SVM-based damage detection. The script efficiently slices original CSV files into smaller, manageable sets, correlating specific damage scenarios with their corresponding sensor data. This change addresses the challenge of retaining critical damage localization information during the data conversion process, ensuring high-quality, relevant data for 1D analysis.

Closes #20
2024-09-03 11:33:23 +07:00
nuluh
0306f28a68 docs(notebooks): add extract_numbers docstring 2024-09-03 11:09:47 +07:00
Panuluh
9da3dae709 Merge pull request #18 from nuluh/feature/15-normalize-dataset-by-preprocess-relatives-value-between-two-acceloremeter-sensors
Feature/15 normalize dataset by preprocess relatives value between two acceloremeter sensors
2024-09-03 08:43:44 +07:00
nuluh
41086e95ad chore: Ignore .venv/ directory and update .gitignore due to error numpy error ValueError: numpy.ndarray size changed, may indicate binary incompatibility. by creating venv. 2024-09-01 14:50:24 +07:00
nuluh
adde35ed7e feat(notebook): Normalize the data by calculating the relative value between two sensors. Along with it, MinMaxScaler and StandardScaler are applied and visualize with Seaborn's Pair Plot.
Closes #15
2024-09-01 14:50:04 +07:00
nuluh
b2684c23f6 feat(script): Add zero-padding to CSV filenames to include sensors number 2024-08-27 10:11:39 +07:00
Panuluh
8a499a04fb Merge pull request #17 from nuluh/feature/csv-padding-naming
Feature/csv padding naming
2024-08-27 09:23:44 +07:00
Panuluh
118c56c12d Merge pull request #13 from nuluh/feature/10-add-labels-column-to-time-domain-feature-extraction-dataframe
feat(notebook): add 'labels' column to feature extraction dataframe
2024-08-26 09:55:46 +07:00
nuluh
79a0f82372 feat(notebook): add 'labels' column to feature extraction dataframe
Implement extraction of 'labels' from directory names and append as a new column in the dataframe during feature extraction. Adapted from the existing `build_features.py` script to enhance data usability in supervised learning models within the Jupyter notebook environment.

Closes #10
2024-08-20 15:28:19 +07:00
Panuluh
c9415c21fa Merge pull request #9 from nuluh/feature/automate-csv-file
Closes #4
2024-08-20 13:01:42 +07:00
nuluh
de902b2a8c feat: Add launch.json for Python debugger configuration
This commit adds a new file, `.vscode/launch.json`, which contains the configuration for launching the Python debugger. The configuration includes the necessary attributes such as the debugger type, request type, program file, console type, and command-line arguments. This configuration allows developers to easily debug Python files in the integrated terminal.
2024-08-20 12:52:48 +07:00
nuluh
57c0e03a4f docs(script): Update time-domain feature extraction to skip header row separator char info 2024-08-20 12:52:48 +07:00
nuluh
8ab934fe1c feat(features): refactor feature extraction to handle multiple files and directories
- Modify `build_features` function to support iterative processing across nested directories, enhancing the system's ability to handle larger datasets and varied input structures.
- Replace direct usage of `FeatureExtractor` class with `ExtractTimeFeatures` function, which now acts as a wrapper to include this class, facilitating streamlined integration and maintenance of feature extraction processes.
- Implement `extract_numbers` function using regex to parse filenames and extract numeric identifiers, used for labels when training with SVM
- Switch output from `.npz` to `.csv` format in `build_features`, offering better compatibility with data analysis tools and readability.
- Update documentation and comments within the code to reflect changes in functionality and usage of the new feature extraction setup.

Closes #4
2024-08-20 12:52:06 +07:00
nuluh
55db5709a9 refactor(script): Add time-domain feature extraction functionality called ExtractTimeFeatures function returning features in {dictionary} that later called in build_features.py. This function will be called for each individual .csv. Each returning value later appended in build_features.py.
This function approach rather than just assigning class ensure the flexibility and enhance maintainability.
2024-08-19 13:20:14 +07:00
nuluh
3860f2cc5b fix(docs): The readme.md should belong to raw data since the script is intended to simulate raw data that coming from accelerometer sensors instead of processed data that should be generated by simulating frequency domain data instead. 2024-08-18 10:34:22 +07:00
nuluh
553140fe3c feat(script): add zero-padding to CSV filenames and change the output generated csv as raw data in raw folder 2024-08-17 19:51:42 +07:00
nuluh
1c23edf098 feat: Add .pyc files to .gitignore 2024-08-17 11:41:18 +07:00
nuluh
d0db65011d style 2024-08-17 11:39:46 +07:00
nuluh
565de5d3a8 refactor(notebooks): Move relative import of FeatureExtraction to "Print Time-domain Feature" section for better context 2024-08-17 11:12:43 +07:00
nuluh
6783cfeb3f docs(readme): Improve data README.md explanation
Update the README.md file in the data/processed directory to provide clearer instructions on how to load the data from the desired Dx_TESTy.csv file. This change enhances the usability of the data files for analysis.
2024-08-15 09:46:50 +07:00
nuluh
153e8cb109 feat(data): Initialize dummy data
- Create a Python script to generate CSV files in a structured folder hierarchy under `data/processed` with specific damage levels and tests.
- Add a `.gitignore` file to exclude CSV files from Git tracking, enhancing data privacy and reducing repository size.
- Include a `README.md` in the `data` directory to clearly document the directory structure, file content, and their intended use for clarity and better usability.

Closes #7
2024-08-14 23:26:06 +07:00
nuluh
feb3c85340 feat(test): Add script for processing raw data, building features, and training model
This commit adds a new script `start.sh` that automates the process of processing raw data, building features, and training a model. The script uses Python scripts from the `src` directory to perform these tasks. The processed data is saved in the `data/processed` directory, the feature matrix is saved in the `data/features` directory, and the trained model is saved in the `models` directory.

The purpose of these changes is to streamline the data processing and model training workflow, making it easier to reproduce and iterate on the results.
2024-08-12 23:04:18 +07:00
nuluh
52b458605f feat: Add time-domain feature extraction functionality
This commit adds code to the `03_feature_extraction.ipynb` notebook to print time-domain features. The features include mean, max, peak, peak-to-peak, RMS, variance, standard deviation, power, crest factor, form factor, pulse indicator, margin, kurtosis, and skewness. The features are calculated using the `FeatureExtractor` class and displayed in a pandas DataFrame.
2024-08-12 20:31:05 +07:00
nuluh
fe457f7427 feat: Add python.analysis.extraPaths setting to VSCode
This commit adds the "python.analysis.extraPaths" setting to the VSCode settings.json file. The setting includes the "./code/src/features" directory as an additional path for Python analysis. This change improves the analysis capabilities within the VSCode environment.

Closes #3
2024-08-12 19:59:49 +07:00
nuluh
72bc0f5f91 feat(test): add script for testing FeatureExtractor with mockup data
Introduce a new testing script that generates mockup data and applies the FeatureExtractor class to calculate and display features. This test script assists in verifying the functionality of the feature extraction methods with controlled input data.
2024-08-12 19:46:42 +07:00
nuluh
a401d620eb feat(features): integrate time-domain feature extraction into data pipeline
- Implement FeatureExtractor class in time_domain_features.py for calculating statistical features from dataset columns.
- Create build_features.py script to automate feature extraction from processed data and save results in a structured format.
- Adjust build_features.py to read processed data, utilize FeatureExtractor, and save feature matrix.

This update supports enhanced analysis capabilities within the thesis-project structure, allowing for more sophisticated data processing and model training stages.

Closes #1
2024-08-12 19:45:19 +07:00
nuluh
7d39176e27 feat: Add initial time domain feature extraction class
The code changes add a new file `time_domain_features.py` that contains a `FeatureExtractor` class. This class calculates various time domain features for a given dataset. The features include mean, max, peak, peak-to-peak, RMS, variance, standard deviation, power, crest factor, form factor, pulse indicator, margin, kurtosis, and skewness.

The class takes a file path as input and reads the data from a CSV file. It assumes the data to analyze is in the first column. The calculated features are stored in a dictionary.

The commit message suggests that the purpose of the changes is to add a new class for time domain feature extraction.
2024-08-12 12:37:55 +07:00
nuluh
208f019d12 initial commit generate directory tree 2024-08-11 20:24:14 +07:00
Panuluh
0014196b1c Initial commit 2024-07-25 20:28:04 +07:00