def getIq2DError(self, qx, qy): """ Return the simulated value along with its estimated error for a given q-value Propagation of errors is used to evaluate the uncertainty. @param qx: qx-value [float] @param qy: qy-value [float] @return: mean, error [float, float] """ self._create_modelObject() norm = 1.0e8 / self.params['lores_density'] * self.params['scale'] val = norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\ + self.params['background'] # Simulation error (statistical) norm = 1.0e8/self.params['lores_density']*self.params['scale'] \ * math.pow(self.npts/self.params['lores_density'], 1.0/3.0)/self.npts err = norm * pointsmodelpy.get_complex_iq_2D_err( self.complex_model, self.points, qx, qy) # Error on V/N simerr = 2 * val / self.npts # The error used for the position is over-simplified. # The actual error was empirically found to be about # an order of magnitude larger. return val, 10.0 * err + simerr
def getIq2DError(self, qx, qy): """ Return the simulated value along with its estimated error for a given q-value Propagation of errors is used to evaluate the uncertainty. @param qx: qx-value [float] @param qy: qy-value [float] @return: mean, error [float, float] """ self._create_modelObject() norm = 1.0e8/self.params['lores_density']*self.params['scale'] val = norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\ + self.params['background'] # Simulation error (statistical) norm = 1.0e8/self.params['lores_density']*self.params['scale'] \ * math.pow(self.npts/self.params['lores_density'], 1.0/3.0)/self.npts err = norm*pointsmodelpy.get_complex_iq_2D_err(self.complex_model, self.points, qx, qy) # Error on V/N simerr = 2*val/self.npts # The error used for the position is over-simplified. # The actual error was empirically found to be about # an order of magnitude larger. return val, 10.0*err+simerr
def getIq2D(self, qx, qy): """ Returns simulate I(q) for given q_x and q_y values. @param qx: q_x [A-1] @param qy: q_y [A-1] @return: I(q) [cm-1] """ # If this is the first simulation call, we need to generate the # space points if self.points is None: self._create_modelObject() # Protect against empty model if self.points is None: return 0 # Evalute I(q) norm = 1.0e8 / self.params['lores_density'] * self.params['scale'] return norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\ + self.params['background']
def getIq2D(self, qx, qy): """ Returns simulate I(q) for given q_x and q_y values. @param qx: q_x [A-1] @param qy: q_y [A-1] @return: I(q) [cm-1] """ # If this is the first simulation call, we need to generate the # space points if self.points is None: self._create_modelObject() # Protect against empty model if self.points is None: return 0 # Evalute I(q) norm = 1.0e8/self.params['lores_density']*self.params['scale'] return norm*pointsmodelpy.get_complex_iq_2D(self.complex_model, self.points, qx, qy)\ + self.params['background']