def generateAllPictures(data_dir): father_dir = os.path.dirname(data_dir) before_data_dir = os.path.join(data_dir, 'before') after_data_dir = os.path.join(data_dir, 'after') batch_size = 10 figures_dir = os.path.join(father_dir, 'figures') if not os.path.exists(figures_dir): os.mkdir(figures_dir) for path_dir in [before_data_dir, after_data_dir]: for filename in os.listdir(path_dir): filepath = os.path.join(path_dir, filename) datafile = SingleFile(filepath=filepath) data_reader = datafile.get_reader(batch_size=batch_size) if path_dir is before_data_dir: single_file_path = os.path.join(figures_dir, 'before', f'{datafile.filename}') else: single_file_path = os.path.join(figures_dir, 'after', f'{datafile.filename}') if not os.path.exists(single_file_path): os.makedirs(single_file_path) for batch_id, points in enumerate(data_reader()): for point_id, point in enumerate(points): point_id = batch_id * batch_size + point_id print(f'[INFO] drawing {filename}--point_{point_id}...') plt.figure() # plt configs plt.ylim(0, 30 * 1e-8) point.plot(show=False) plt.savefig( os.path.join(single_file_path, f'point_{point_id}.jpg')) plt.close()
def reader(): points = [] labels = [] for file_name in os.listdir(data_dir): if debug: print('[INFO] getting teacher from {}'.format(file_name)) file_path = os.path.join(data_dir, file_name) file_name, ext = os.path.splitext(file_name) if debug: print("[INFO] Reading file {}".format(file_name)) try: file = SingleFile(file_path) except Exception as e: print(e) continue point_reader = file.get_reader(batch_size=1) label_df = pd.read_csv(os.path.join(csv_dir, 'new_' + file_name + '.csv'), index_col=0) # print(label_df) # print(label_df.iloc[0, :]) for point_id, point in enumerate(point_reader()): point = point[0] label_series = label_df.iloc[point_id, :] points.append(point.get_data()) labels.append(label_series.to_list()) if len(points) is batch_size: points = np.array(points, dtype).reshape(len(points), 2, 1, 100) labels = np.array(labels, dtype).reshape(len(labels), -1) yield points, labels points = [] labels = [] if len(labels): points = np.array(points, dtype).reshape(len(points), 2, 1, 100) labels = np.array(labels, dtype).reshape(len(labels), -1) yield points, labels