コード例 #1
0
ファイル: results.py プロジェクト: Kazuyoshi-ohta/EMVA1288
    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)
コード例 #2
0
ファイル: results.py プロジェクト: Kazuyoshi-ohta/EMVA1288
    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)
コード例 #3
0
ファイル: results.py プロジェクト: Kazuyoshi-ohta/EMVA1288
    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)
コード例 #4
0
    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