def datarecord2(input_directory,target_lead,buf_size=100,segnum=24,seg_length=750, full_seg=True, stt=0): input_files = [] for f in os.listdir(input_directory): if os.path.isfile(os.path.join(input_directory, f)) and not f.lower().startswith('.') and f.lower().endswith('mat'): input_files.append(f) classes=get_classes(input_directory,input_files) num_files = len(input_files) datalabel=[] SEG_buf = np.zeros([1, seg_length, segnum], dtype=np.float32) SEGs = np.zeros([1, seg_length, segnum], dtype=np.float32) for i, f in enumerate(input_files): print(' {}/{}...'.format(i + 1, num_files)) tmp_input_file = os.path.join(input_directory, f) data, header_data = load_challenge_data(tmp_input_file) datalabel.append(getdata_class(header_data)) datalead = data[target_lead,:] # SEGt = np.float32(utils.sig_process(data, target_length=target_len)) SEGt = utils.Stack_Segs_generate2(datalead, seg_num=segnum, seg_length=seg_length, full_seg=full_seg, stt=stt) del data,datalead SEG_buf = np.concatenate((SEG_buf, SEGt)) del SEGt if SEG_buf.shape[0] >= buf_size: SEGs = np.concatenate((SEGs, SEG_buf[1:])) del SEG_buf SEG_buf = np.zeros([1, seg_length, segnum], dtype=np.float32) if SEG_buf.shape[0] > 1: SEGs = np.concatenate((SEGs, SEG_buf[1:])) del SEG_buf datalabel = np.array(datalabel) return SEGs[1:], datalabel,len(classes)
def datarecord(input_directory, downsample, buf_size=100, leadnum=12): input_files = [] for f in os.listdir(input_directory): if os.path.isfile( os.path.join(input_directory, f) ) and not f.lower().startswith('.') and f.lower().endswith('mat'): input_files.append(f) classes = get_classes(input_directory, input_files) num_files = len(input_files) datalabel = [] target_len = int(72000 / downsample) SEG_buf = np.zeros([1, target_len, leadnum], dtype=np.float32) SEGs = np.zeros([1, target_len, leadnum], dtype=np.float32) for i, f in enumerate(input_files): print(' {}/{}...'.format(i + 1, num_files)) tmp_input_file = os.path.join(input_directory, f) data, header_data = load_challenge_data(tmp_input_file) datalabel.append(getdata_class(header_data)) SEGt = np.float32(utils.sig_process(data, target_length=target_len)) del data SEG_buf = np.concatenate((SEG_buf, SEGt)) del SEGt if SEG_buf.shape[0] >= buf_size: SEGs = np.concatenate((SEGs, SEG_buf[1:])) del SEG_buf SEG_buf = np.zeros([1, target_len, leadnum], dtype=np.float32) if SEG_buf.shape[0] > 1: SEGs = np.concatenate((SEGs, SEG_buf[1:])) del SEG_buf datalabel = np.array(datalabel) return SEGs[1:], datalabel, len(classes)
def datafeatrecord(input_directory, records, downsample, buf_size=100, leadnum=12, featurenum=25): # input_files = [] # for f in os.listdir(input_directory): # if os.path.isfile(os.path.join(input_directory, f)) and not f.lower().startswith('.') and f.lower().endswith('mat'): # input_files.append(f) classes = get_classes(input_directory, records) num_files = len(records) datalabel = np.zeros([1, 9]) # label0temp=[] target_len = int(72000 / downsample) SEG_buf = np.zeros([1, target_len, leadnum + 1], dtype=np.float32) SEGs = np.zeros([1, target_len, leadnum + 1], dtype=np.float32) # feat_buf=np.zeros([1,1,target_len], dtype=np.float32) featurezero = np.zeros([target_len, 1]) for i, f in enumerate(records): print(' {}/{}...'.format(i + 1, num_files)) tmp_input_file = os.path.join(input_directory, f) data, header_data = load_challenge_data(tmp_input_file) labelonhot, label0 = getdata_class(header_data) datalabel = np.concatenate((datalabel, labelonhot), axis=0) # label0temp.append(label0) features = np.asarray(get_12ECG_features(data, header_data)) featurezero[0:featurenum, 0] = features[0:featurenum] # feats_reshape = features.reshape(1, -1) feats_reshape = featurezero.reshape( [1, featurezero.shape[0], featurezero.shape[1]]) # feat_buf=np.concatenate((feat_buf,feats_reshape)) SEGt = np.float32(utils.sig_process(data, target_length=target_len)) SEGt = np.concatenate((SEGt, feats_reshape), axis=2) del data SEG_buf = np.concatenate((SEG_buf, SEGt)) del SEGt if SEG_buf.shape[0] >= buf_size: SEGs = np.concatenate((SEGs, SEG_buf[1:])) del SEG_buf SEG_buf = np.zeros([1, target_len, leadnum + 1], dtype=np.float32) if SEG_buf.shape[0] > 1: SEGs = np.concatenate((SEGs, SEG_buf[1:])) del SEG_buf # label0temp = np.array(label0temp) return SEGs[1:], datalabel[1:]