def print_new_dead_new_alive():
    start_orbit = 21847 
    end_orbit = 21890

#    start_orbit = 22820 
#    end_orbit = 22890

#    start_orbit = 24023
#    end_orbit = 24051

#    start_orbit = 27229 
#    end_orbit = 27258

#    start_orbit = 32726 
#    end_orbit = 32870

#    start_orbit = 49230
#    end_orbit = 49259

    m1 = Mask()
    m1.apply_pixel_window(394, 620)
    m1.load_ascii(start_orbit)

    m2 = Mask()
    for orbit in range(start_orbit, end_orbit):
        m2.load_ascii(orbit)
        print(orbit, "new dead:", m1.get_new_dead(m2), "new alive:", m1.get_new_alive(m2))

    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
def print_nr_ppg(orbit):

    dictwls = get_closest_state_exec(orbit, 61, "/SCIA/SDMF31/sdmf_extract_calib.h5", readoutMean=True)
    orbit_range = dictwls["orbit_range"]
    orbit = orbit_range[0]
    print("closest wls orbit=", orbit)

    m = Mask()

    #
    # first just print combined smoothmask
    #

    m.load_ascii(orbit)
    print(np.where(m.mask))

    fname = "/SCIA/SDMF30/sdmf_pixelmask.h5"
    fid = h5py.File(fname, "r")
    grpname = "orbitalMask/"
    ds_orbits = fid[grpname+"orbitList"]

    orbits = ds_orbits[:]
    #print(orbits)

    idx = orbit == orbits
    if np.sum(idx) == 0:
        raise Exception("orbit not in SDMF3.2 orbital mask")

    i = np.argmax(idx)
    print("i=",i)

    ds_ppg = fid[grpname+"pixelGain"]
    ppg_chan8 = ds_ppg[7*1024:,i]
    print("ppg", np.sum(ppg_chan8), np.where(ppg_chan8))

    return