def compare_smoothmasks(): fname = input_mask_fname #"sdmf_pyxelmask.h5" fid = h5py.File(fname, "r") ds_orbits = fid["orbits"] idx = np.argsort(ds_orbits[:]) orbits32 = ds_orbits[:][idx] start_orbit = np.min(orbits32) stop_orbit = np.max(orbits32) orbit_range = stop_orbit - start_orbit + 1 #print(idx) ds_combi = fid["combined"] num_orbits = idx.size a = np.empty((num_orbits,1024), dtype=np.float) for i_orbit in range(num_orbits): id_ = idx[i_orbit] orbit = orbits32[i_orbit] # a[orbit-start_orbit,:] = ds_combi[id_,:] a[i_orbit,:] = ds_combi[id_,:] fid.close() print("3.2 read") # print(a.shape) # plt.cla() # plt.imshow(a) # plt.show() # fname_out = "orbital_dbqm.h5" # fid_out = h5py.File(fname_out, "w") # ds = fid_out.create_dataset("data", a.shape, dtype=np.float) # ds[:,:] = a # fid_out.close() # np.savetxt("orbital_dbqm.csv", a, delimiter=",") m = Mask() a_binary = np.ones((1400,1024), dtype=np.bool) i_orbit = 0 orbits30 = np.empty(1400, dtype=np.int) for orbit in range(42000,43400): #print(orbit) try: m.load_sdmf30_crit(orbit, "combined", smooth=True) except: continue orbits30[i_orbit] = orbit a_binary[i_orbit,:] = m.mask i_orbit += 1 print("3.0 read") orbits30 = orbits30[0:i_orbit] a_binary = a_binary[0:i_orbit,:] for pixnr in range(1024): plot(orbits32, a, orbits30, a_binary, pixnr) return
def compare_combined_30_vs_32(orbit): m30 = Mask() m30.load_sdmf30_crit(orbit, "combined") m32 = Mask() m32.load_sdmf32_mask(orbit, "combinedFlag") # for i in range(1024): # print(i, m30.mask[i], m32.mask[i]) newdead = m30.get_new_dead(m32) newalive = m30.get_new_alive(m32) print("3.0->3.2 dead:", newdead.size, newdead) print("3.0->3.2 alive:", newalive.size, newalive) return
def compare_error_30_vs_32(orbit): m30 = Mask() m30_combined = Mask() m30_combined.load_ascii(orbit) m30.load_sdmf30_crit(orbit, "residual") m32 = Mask() m32.load_sdmf32_figure(orbit, "darkError") newdead = m30.get_new_dead(m32) newalive = m30.get_new_alive(m32) print("new errory:", newdead.size, newdead) print("new errory but already bad", np.sum(np.in1d(newdead, np.where(m30_combined.mask)))) print("real new errory", newdead[np.in1d(newdead, np.where(m30_combined.mask), invert=True)]) print("new not-errory:", newalive.size, newalive) print("new not-errory but still bad", np.sum(np.in1d(newalive, np.where(m30_combined.mask)))) print("real new not-errory:", newalive[np.in1d(newalive, np.where(m30_combined.mask), invert=True)]) return