def generate_plots(path): """ Generates plots for all videos in a directory :param path: the directory to search for videos """ videos = glob(path + '/*.mkv') print(path, len(videos), videos) if len(videos) == 0: return else: videos = videos[0] metadata_list = glob(path + '/metadata.txt') #print(path, len(metadata_list), metadata_list) if len(metadata_list) == 0: return P = Preprocessor() P.import_video(str(videos)) P.read_metadata(path) P.preprocess() Im = P.frames_processed if len(Im) == 0: print(len(Im)) return z_start = P.z_start z_end = P.z_end mean, cov = analyze_image(Im) window_size = 10 mean_smoothed = smoothing.mean_moving_average(mean, window_size) cov_smoothed = smoothing.cov_moving_average(cov, window_size) c = CubicFitRotated() c.fit(mean=mean_smoothed, cov=cov_smoothed, z_start=z_start, z_end=z_end) try: os.mkdir(path + '/analysis') path += '/analysis' except OSError: pass plots.plot_mean(mean, z_start, z_end).savefig(path + '/beam_center.png') plots.plot_beta(cov, z_start, z_end).savefig(path + '/sigma_squared.png') export.export_mean(mean=mean, filename=path + '/center.csv', z_start=z_start, z_end=z_end) export.export_cov(cov=cov, filename=path + '/cov.csv', z_start=z_start, z_end=z_end) plt.close('all')
import smoothing import plots P = Preprocessor(min_threshold=45, max_threshold=230, offset=0) # Drift space focused by the BTL #path = "../measurements/cyclotron/first_cyclotron_test/focused/3" #P.import_video(path + "/focused_330_to_0.mkv") # Changing steering current of the BTL #path = "../measurements/cyclotron/first_cyclotron_test/changing_steering_magnet/2" #P.import_video(path + "/changing_steering_magnet_330_to_0_10_steps.mkv") # MBL magnets enabled path = "../measurements/cyclotron/first_cyclotron_test/mbl_magnet/2" P.import_video(path + "/mbl_magnet_330_to_0.mkv") # m.set_size_inches(12,7) # m.savefig("../report/images/measurements/cyclotron_pre/focused_center.png",dpi=300,optimize=True) P.read_metadata(path) P.preprocess() Im = P.frames_processed z_start = P.z_start z_end = P.z_end mean, cov = analyze_image(Im) window_size = 10
# corner points #path = "../measurements/cyclotron/main_measurements/pre/" #P.import_video(path + "/before_vacuum.mkv") # Beam in drift space focused by the BTL #path = "../measurements/cyclotron/main_measurements/cyclotron/focused_by_btl/2/" #P.import_video(path + "/0_to_660_compressed.mkv") # Beam focused by the BTL being refocused by the MBL #path = "../measurements/cyclotron/main_measurements/cyclotron/mbl_second/2" #P.import_video(path + "/0_to_660_compressed.mkv") # Flat beam being focused by the MBL magnets path = "../measurements/cyclotron/main_measurements/cyclotron/flat_beam/2/660_to_0" P.import_video(path + "/660_to_0_compressed.mkv") # m.set_size_inches(12,7) # m.savefig("../report/images/measurements/cyclotron_pre/focused_center.png",dpi=300,optimize=True) P.read_metadata(path) P.preprocess() Im = P.frames_processed z_start = P.z_start z_end = P.z_end mean, cov = analyze_image(Im) # Size of smoothing window for moving average window_size = 10