root = io.find_root_folder(folder) # Load Camera objects camera = io.load_camera(root) print(f"Loaded Camera object: {camera}") # Save location based on camera name savefolder = camera.filename_analysis("bias", makefolders=True) # Load the data isos, means = io.load_means(folder, retrieve_value=io.split_iso) print("Loaded data") # Print statistics at each ISO stats = analyse.statistics(means, prefix_column=isos, prefix_column_header="ISO") print(stats) # Range on the x axis for the histograms xmin, xmax = analyse.symmetric_percentiles(means, percent=0.001) # Loop over the data and make plots at each ISO value for ISO, mean in zip(isos, means): save_to_histogram = savefolder / f"bias_histogram_iso{ISO}.pdf" save_to_maps = savefolder / f"bias_map_iso{ISO}.pdf" camera.plot_histogram_RGB(mean, xmin=xmin, xmax=xmax, xlabel="Bias (ADU)",
# Load Camera object camera = io.load_camera(root) print(f"Loaded Camera object: {camera}") # Save locations savefolder = camera.filename_analysis("readnoise", makefolders=True) # Load the data isos, stds = io.load_stds(folder, retrieve_value=io.split_iso) # Normalise the data using the ISO look-up table stds_normalised = camera.normalise_iso(isos, stds) # Print statistics at each ISO stats = analyse.statistics(stds_normalised, prefix_column=isos, prefix_column_header="ISO") print(stats) # Range on the x axis for the histograms xmin, xmax = 0., analyse.symmetric_percentiles(stds_normalised)[1] # Loop over the data and make plots at each ISO value for ISO, std in zip(isos, stds_normalised): save_to_histogram = savefolder / f"readnoise_normalised_histogram_iso{ISO}.pdf" save_to_maps = savefolder / f"readnoise_normalised_map_iso{ISO}.pdf" camera.plot_histogram_RGB(std, xmin=xmin, xmax=xmax, xlabel="Read noise (norm. ADU)",
colorbar_here = plot.colorbar(img) ax.set_xticks([]) ax.set_yticks([]) if ax is axs[1]: colorbar_here.set_label("Pearson $r$") colorbar_here.locator = plot.ticker.MaxNLocator(nbins=4) colorbar_here.update_ticks() plt.savefig(save_to_map_JPEG) plt.close() print(f"Saved map of JPEG Pearson r to '{save_to_map_JPEG}'") # Print comparative statistics on the RAW and JPEG (R/G/B) Pearson r values if jpeg_data_available: r_all = np.stack([r_raw, *r_jpeg]) labels = ["RAW", "JPEG R", "JPEG G", "JPEG B"] stats = analyse.statistics(r_all, prefix_column=labels, prefix_column_header="Channel") print(stats) # Make an RGB histogram of the RAW r values xmax = 1. camera.plot_histogram_RGB(r_raw, xmax=xmax, xlabel="Pearson $r$", saveto=save_to_histogram_RGB) print(f"Saved RGB histogram to '{save_to_histogram_RGB}'") # Make a histogram comparing RAW and JPEG r values if jpeg_data_available: bins = np.linspace(0.9, 1.0, 150) plt.figure(tight_layout=True, figsize=(5,2)) plt.hist(r_raw.ravel(), bins=bins, color='k') for j, c in enumerate(plot.rgb): plt.hist(r_jpeg[j].ravel(), bins=bins, color=c, alpha=0.7) plt.xlabel("Pearson $r$")