|
- import os
- import pandas as pd
- import numpy as np
- import matplotlib.pyplot as plt
- from pyts.image import GramianAngularField, MarkovTransitionField
-
-
- max_len = 4096
- root_dir = r"D:\1\2024phm\Preliminary stage\Data_Pre Stage\Training data"
- TYPE = "TYPE0"
- folder_path = os.path.join(root_dir, TYPE)
- SAMPLE = "Sample2"
- sample_path = os.path.join(folder_path, SAMPLE)
- file_name = "data_gearbox.csv"
- file_path = os.path.join(sample_path, file_name)
- data = pd.read_csv(file_path) # Read CSV file
- for f in range(data.values.shape[1]):
- X = data.values[:max_len, f].reshape((1, -1))
-
- image_size = 224 # 生成的 GAF 图片的大小
- # `method` 的可选参数有:`summation` and `difference`
- gasf = GramianAngularField(image_size=image_size, method='summation')
- sin_gasf = gasf.fit_transform(X)
-
- gadf = GramianAngularField(image_size=image_size, method='difference')
- sin_gadf = gadf.fit_transform(X)
- imges = [sin_gasf[0], sin_gadf[0]]
- titles = ['Summation', 'Difference']
-
- # 两种方法的可视化差异对比
- # Comparison of two different methods
- fig, axs = plt.subplots(1, 2, constrained_layout=True)
- for img, title, ax in zip(imges, titles, axs):
- ax.imshow(img)
- ax.set_title(title)
- fig.suptitle('GramianAngularField', y=0.94, fontsize=16)
- plt.title(f'feature {f}: GramianAngularField', fontsize=18)
- # plt.colorbar(fraction=0.0457, pad=0.04)
- plt.tight_layout()
- plt.show()
|