In [1]:
import numpy as np

In [3]:
def area(opsim_seeing, pixsize=0.2):

    simlibpsf = (opsim_seeing/2.35)/pixsize
    area = (1.51 * opsim_seeing)**2.
    return area

In [2]:
def simlib_zptavg(area, opsim_snr, opsim_magsky, opsim_maglim):
    
    arg = area * opsim_snr * opsim_snr
    zpt_approx = 2.0 * opsim_maglim - opsim_magsky + 2.5 * np.log10(arg)
    
    # ARG again in David Cinabro's code
    val = -0.4 * (opsim_magsky - opsim_maglim)
    tmp = 10.0 ** val
    zpt_cor = 2.5 * np.log10(1.0 + 1.0 / (area * tmp))
    
    simlib_zptavg = zpt_approx + zpt_cor
    return simlib_zptavg

In [4]:
def simlib_skysig(area, opsim_magsky, simlib_zptavg):
    
    arg = - 0.4 * (opsim_magsky - simlib_zptavg)
    fsky_asec = 10.0 ** arg
    fsky_pix = fsky_asec / npix_asec
    simlib_skynoise = np.sqrt(fsky_pix)
    
    return simlib_skynoise