def sigma_y_dark(self): """Temporal Dark Noise. Uses :func:`~emva1288.process.routines.LinearB` to make the fit. .. emva1288:: :Section: sensitivity :Short: Temporal Dark Noise :Symbol: $\sigma_{y.dark}$ :Unit: DN :LatexName: SigmaYDark """ if len(np.unique(self.temporal['texp'])) <= 2: s2_ydark = self.temporal['s2_ydark'][0] else: fit, _error = routines.LinearB(self.temporal['texp'], self.temporal['s2_ydark']) s2_ydark = fit[1] # Lower limit for the temporal dark noise # The temporal dark noise in this range is dominated by the # quantization noise if s2_ydark < 0.24: s2_ydark = 0.24 return np.sqrt(s2_ydark)
def u_I_mean_DN(self): """Dark Current from mean. The dark current from mean is the slope of the dark signal mean in function of the exposure time. Returns NaN if the number of different exposure times is less than 3. .. emva1288:: :Section: dark_current :Short: Dark Current from mean :Symbol: $\mu_{I.mean.DN}$ :Unit: $DN/s$ """ if len(np.unique(self.temporal['texp'])) <= 2: return np.nan fit, _error = routines.LinearB(self.temporal['texp'], self.temporal['u_ydark']) # Multiply by 10 ^ 9 because exposure time in nanoseconds return fit[0] * (10**9)
def u_I_var_DN(self): """Dark Current from variance. The dark current from variance is the square root of the slope of the dark signal variance in function of the exposure time. Returns NaN if u_I_var is imaginary (if the fit slope is negative). .. emva1288:: :Section: dark_current :Short: Dark Current from variance :Symbol: $\mu_{I.var.DN}$ :Unit: $DN/s$ :LatexName: UIVar """ if len(np.unique(self.temporal['texp'])) <= 2: return np.nan fit, _error = routines.LinearB(self.temporal['texp'], self.temporal['s2_ydark']) if fit[0] < 0: return np.nan # Multiply by 10^9 because exposure times are in nanoseconds return fit[0] * (10**9)
def u_I_var_DN(self): """Dark Current from variance. The dark current from variance (in DN/s) is the slope of the dark signal variance as a function of the exposure time divided by the system gain. Returns NaN if the slope is negative. .. emva1288:: :Section: dark_current :Short: Dark Current from variance :Symbol: $\mu_{I.var.DN}$ :Unit: $DN/s$ :LatexName: UIVar """ if len(np.unique(self.temporal['texp'])) <= 2: return np.nan fit, _error = routines.LinearB(self.temporal['texp'], self.temporal['s2_ydark']) if fit[0] < 0: return np.nan # Multiply by 10^9 because exposure times are in nanoseconds return fit[0] / self.K * 1e9