[REMAKE-진동프로젝트] 오늘의 리메이크 일기(오늘 날씨는 흐림)
이거 왜 다시 함?
좋은 질문이다. 그냥 하고싶어서 하는 것도 있고 다시 했던 거 보니까 좀 어줍잖게 한게 많은 것 같아서 해보려고 한다.
그리고 내가 얼마나 성장한지 기록하고 싶어서도 맞다.
이번 프로젝트의 목표는 진동데이터를 증강하고, 기존에 했던 고장 탐지도 시간도메인이 아니라 주파수 대역에서 해볼 예정이다.
이게 뭔지 차근차근 알려줄테니까 일단 머리박아보자!
먼저 KAGGLE에서 데이터 셋을 받아보자.
https://www.kaggle.com/datasets/uysalserkan/fault-induction-motor-dataset
Machinery Fault Dataset
Induction Motor Faults Database
www.kaggle.com
원본 데이터 셋에 대한 설명은 내 예전 글을 참고하도록 하자
이제 데이터 셋 시각화 해보자.
근데 csv 파일 어떻게 읽어오더라?
이를 내 코드에 적용시켜서 해보자
cur_path = "C:/Users/유저이름/" # 저장되어 있는 폴더
normal_data_csv = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"normal/*.csv")), ignore_index=True)
imbalance_data_csv = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"imbalance/*.csv")), ignore_index=True)
#혹은 아래의 방법으로 시도해보면 더 빠를 것 같다.
#import dask.dataframe as dd
#ddf = dd.read_csv('파일경로/*.csv')
#df = ddf.compute()
에러 이름은 PermissionError: [Errno 13] Permission denied: 'C:/Users/유저이름/normal/'
찾아보니 무슨 권한 문제라고 하는데 왜지 싶어 고민하다가
대부분의 문제는 역시 사소하다. 수정해서 읽어왔다.
는 또 에러 뜬다
수정해서 읽어왔다.
imbalance_list = ['6g', '10g', '15g', '20g', '25g', '30g']
cur_path = "C:/Users/wnstj/"
for i in imbalance_list:
print(glob.glob(cur_path + f"imbalance/imbalance/{i}/*.csv"))
normal_data_csv = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"normal/normal/*.csv")), ignore_index=True)
imbalance_data_6g = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"imbalance/imbalance/6g/*.csv")), ignore_index=True)
imbalance_data_10g = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"imbalance/imbalance/10g/*.csv")), ignore_index=True)
imbalance_data_15g = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"imbalance/imbalance/15g/*.csv")), ignore_index=True)
imbalance_data_20g = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"imbalance/imbalance/20g/*.csv")), ignore_index=True)
imbalance_data_25g = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"imbalance/imbalance/25g/*.csv")), ignore_index=True)
imbalance_data_30g = pd.concat((pd.read_csv(f) for f in glob.glob(cur_path+"imbalance/imbalance/30g/*.csv")), ignore_index=True)
'''
산업용 가속도계:
3개의 IMI Sensors Model 601A01 가속도계
방향: 반경, 축, 접선 방향에 각각 설치
감도: 100 mV/g (±20%)
주파수 범위: 0.27-10,000 Hz
측정 범위: ±50 g
1개의 IMI Sensors Model 604B31 3축 가속도계
3방향(반경, 축, 접선) 동시 측정
감도: 100 mV/g (±20%)
주파수 범위: 0.5-5,000 Hz
측정 범위: ±50 g
타코미터:
Monarch Instrument MT-190 아날로그 타코미터
회전 속도 측정용
마이크로폰:
Shure SM81 마이크로폰
주파수 범위: 20-20,000 Hz
소음 측정용
데이터 수집 모듈:
2개의 National Instruments NI 9234 4채널 아날로그 수집 모듈
샘플링 레이트: 51.2 kHz
로 측정되었고
0열은 타코미터 신호에 대한 데이터고
1~3열부턴 가속도 계를 통한 반경 축 접선 방향에 설치된 놈임
얘의 감도는 mV/g이며
주파수의 범위는 0.27~10000hz까지
함
4~6열까진 언더행
7열은 마지막 소음 데이터
'''
최종 코드다
설명은 뽀너스
라고했는데 또 에러떴다.
MemoryError: Unable to allocate 34.2 GiB for an array with shape (382, 11999952) and data type float64
메모리가 없단다.
이럴 땐 그냥 커널을 날려주고 다시 시작하면 된다
그리고 노말 데이터는 불러와도 모든 고장 유형을 불러올 필욘 없으니 위 코드에서 6g만 불러와도 된다.
그럼 이제 시각화를 해봐야하는데 불러온 데이터가 어떠한 형태인지부터 보자
근데 데이터 형태 어떻게 보지?
하지만 오늘은 피곤하므로 여기까지..