コード例 #1
0
    def testDefaultConstruction(self):
        """ Testing the default construction of the class using a dictionary. """

        # Attempt to construct an instance of the class.
        parameters = EMCOrientationParameters()

        # Check instance and inheritance.
        self.assertIsInstance(parameters, EMCOrientationParameters)
        self.assertIsInstance(parameters, AbstractCalculatorParameters)

        # Check all parameters are set to default values.
        self.assertTrue(parameters.beamstop)
        self.assertTrue(parameters.detailed_output)
        self.assertEqual(parameters.initial_number_of_quaternions, 1)
        self.assertEqual(parameters.max_number_of_quaternions, 2)
        self.assertEqual(parameters.min_error, 1.e-5)
        self.assertEqual(parameters.max_number_of_iterations, 100)
コード例 #2
0
    def testConstructionParameters(self):
        """ Testing the construction of the class with a parameters object. """

        # Construct the object.
        emc_parameters = EMCOrientationParameters(
            initial_number_of_quaternions=2,
            max_number_of_quaternions=4,
            max_number_of_iterations=5,
            min_error=1.e-6,
            beamstop=False,
            detailed_output=False)

        analyzer = EMCOrientation(parameters=emc_parameters)

        # Test a parameter.
        self.assertEqual(analyzer.parameters.initial_number_of_quaternions, 2)

        self.assertIsInstance(analyzer, EMCOrientation)
コード例 #3
0
    def testLegacyDictionary(self):
        """ Check parameter object can be initialized via a old-style dictionary. """
        parameter_dict = {
            'initial_number_of_quaternions': 1,
            'max_number_of_quaternions': 9,
            'max_number_of_iterations': 200,
            'min_error': 1.0e-8,
            'beamstop': False,
            'detailed_output': False
        }

        parameters = EMCOrientationParameters(
            parameters_dictionary=parameter_dict)

        # Check all parameters are set to default values.
        self.assertFalse(parameters.beamstop)
        self.assertFalse(parameters.detailed_output)
        self.assertEqual(parameters.initial_number_of_quaternions, 1)
        self.assertEqual(parameters.max_number_of_quaternions, 9)
        self.assertEqual(parameters.min_error, 1.e-8)
        self.assertEqual(parameters.max_number_of_iterations, 200)
コード例 #4
0
ファイル: EMCOrientation.py プロジェクト: irischang020/SimEx
    def __init__(self,
                 parameters=None,
                 input_path=None,
                 output_path=None,
                 tmp_files_path=None,
                 run_files_path=None):
        """
        :param  parameters: Parameters for the EMC orientation calculator.
        :type parameters: EMCOrientationParameters instance

        :param input_path: Path to directory holding input data for EMC.
        :type input_path: str

        :param output_path: Path to file where output data will be stored.
        :type output_path: str

        :param tmp_files_path: Path to directory where temporary files will be stored.
        :type tmp_files_path: str

        :param run_files_path: Path to directory where run data will be stored, in particular the sparse photons file 'photons.dat' and 'detector.dat'.
        :type run_files_path: str

        :note: If 'run_files_path' is an existing directory that contains data from a previous EMC run, the current run will append to the
               existing data. A consistency check is performed.

        """

        # Check parameters.
        if isinstance(parameters, dict):
            parameters = EMCOrientationParameters(
                parameters_dictionary=parameters)

        # Set default parameters is no parameters given.
        if parameters is None:
            parameters = checkAndSetInstance(EMCOrientationParameters,
                                             parameters,
                                             EMCOrientationParameters())
        else:
            parameters = checkAndSetInstance(EMCOrientationParameters,
                                             parameters, None)

        # Initialize base class.
        super(EMCOrientation, self).__init__(parameters, input_path,
                                             output_path)

        self.__provided_data = [
            'data/data',
            'data/angle',
            'data/center',
            'params/info',
            'version',
        ]

        self.__expected_data = [
            '/data/data',
            '/data/diffr',
            '/data/angle',
            '/params/geom/detectorDist',
            '/params/geom/pixelWidth',
            '/params/geom/pixelHeight',
            '/params/geom/mask',
            '/params/beam/photonEnergy',
            '/params/beam/photons',
            '/params/beam/focusArea',
        ]

        # Set run and tmp files paths.
        if _checkPaths(run_files_path, tmp_files_path):
            self.run_files_path = run_files_path
            self.tmp_files_path = tmp_files_path