def test_02_FixedBinAxis_2D(self): data = ba.IntensityData() data.addAxis(ba.FixedBinAxis("axis0", 9, -1.00000001, 1.0)) data.addAxis(ba.FixedBinAxis("axis1", 3, -4.0, 5.0)) fill_data(data) ba.IntensityDataIOFactory.writeOutputData(data, "tmp.int") newdata = ba.IntensityDataIOFactory.readOutputData("tmp.int") self.assertTrue(is_the_same_data(data, newdata))
def test_SaveToTXT(self): data = ba.IntensityData() data.addAxis(ba.FixedBinAxis("axis0", 10, 0.0, 10.0)) data.addAxis(ba.FixedBinAxis("axis1", 5, 0.0, 5.0)) fill_data(data) ba.IntensityDataIOFactory.writeOutputData(data, "tmp.txt") newdata = ba.IntensityDataIOFactory.readOutputData("tmp.txt") self.assertTrue(is_the_same_data(data, newdata))
def test_SaveOutputData_ReadNumpyArray(self): data = ba.IntensityData() data.addAxis(ba.FixedBinAxis("axis0", 10, 0.0, 10.0)) data.addAxis(ba.FixedBinAxis("axis1", 5, 0.0, 5.0)) fill_data(data) ba.IntensityDataIOFactory.writeOutputData(data, "tmp.txt") arr = numpy.loadtxt("tmp.txt") self.assertTrue(numpy.array_equal(data.getArray(),arr))
def get_offspec_simulation(): """ characterizing the input beam and output detector """ # create OffSpecular simulation simulation = ba.OffSpecSimulation() simulation.setTerminalProgressMonitor() # define detector parameters n_alpha, alpha_min, alpha_max = 300, 0.0*deg, 4.0*deg n_phi, phi_min, phi_max = 10, -0.1*deg, 0.1*deg simulation.setDetectorParameters( n_phi, phi_min, phi_max, n_alpha, alpha_min, alpha_max) # define the beam with alpha_i varied between alpha_i_min and alpha_i_max n_scan_points, alpha_i_min, alpha_i_max = n_alpha, alpha_min, alpha_max alpha_i_axis = ba.FixedBinAxis( "alpha_i", n_scan_points, alpha_i_min, alpha_i_max) simulation.setBeamParameters(5.0*angstrom, alpha_i_axis, 0.0) simulation.setBeamIntensity(1e9) simulation.getOptions().setIncludeSpecular(True) # define detector resolution function with smearing depending on bin size d_alpha = (alpha_max - alpha_min)/n_alpha d_phi = (phi_max-phi_min)/n_phi sigma_factor = 1.0 simulation.setDetectorResolutionFunction( ba.ResolutionFunction2DGaussian(sigma_factor*d_alpha, sigma_factor*d_phi)) return simulation
def test_06_VariableAndFixedMix(self): data = ba.IntensityData() data.addAxis(ba.FixedBinAxis("axis0", 10, -5.0, 5.0)) data.addAxis(ba.VariableBinAxis("axis1", 3, get_boundaries_flat_in_sin(3, 0.0, 2.0))) fill_data(data) ba.IntensityDataIOFactory.writeOutputData(data, "tmp.int") newdata = ba.IntensityDataIOFactory.readOutputData("tmp.int") self.assertTrue(is_the_same_data(data, newdata))
def test_SaveToTiff(self): data = ba.IntensityData() data.addAxis(ba.FixedBinAxis("x", 10, 0.0, 10.0)) data.addAxis(ba.FixedBinAxis("y", 5, 0.0, 5.0)) fill_data(data) ba.IntensityDataIOFactory.writeOutputData(data, "tmp.tif") newdata = ba.IntensityDataIOFactory.readOutputData("tmp.tif") self.assertTrue(is_the_same_data(data, newdata)) ba.IntensityDataIOFactory.writeOutputData(data, "tmp.tif.gz") newdata = ba.IntensityDataIOFactory.readOutputData("tmp.tif.gz") self.assertTrue(is_the_same_data(data, newdata)) ba.IntensityDataIOFactory.writeOutputData(data, "tmp.tif.bz2") newdata = ba.IntensityDataIOFactory.readOutputData("tmp.tif.bz2") self.assertTrue(is_the_same_data(data, newdata))
def get_simulation(): simulation = ba.OffSpecSimulation() simulation.setDetectorParameters(10, -1.0*deg, 1.0*deg, 100, 0.0*deg, 5*deg) simulation.setDetectorResolutionFunction(ba.ResolutionFunction2DGaussian(0.005*deg, 0.005*deg)) alpha_i_axis = ba.FixedBinAxis("alpha_i", 100, 0.0*deg, 5*deg) simulation.setBeamParameters(0.154*nm, alpha_i_axis, 0.0*deg) simulation.setBeamIntensity(1.0e+08) simulation.getOptions().setIncludeSpecular(True) return simulation
def test_create_1d_object(self): axis0 = ba.FixedBinAxis("angle", 20, 0.0, 20.) self.assertEqual(20, axis0.size()) self.assertEqual(0.0, axis0.getMin()) self.assertEqual(20.0, axis0.getMax()) data = ba.IntensityData() data.addAxis(axis0) self.assertEqual(20, data.getAllocatedSize()) self.assertEqual(1, data.getRank()) self.assertEqual(0, data.totalSum())
def get_simulation(): simulation = ba.SpecularSimulation() alpha_i_axis = ba.FixedBinAxis("alpha_i", 500, 0.0 * deg, 6.5 * deg) simulation.setBeamParameters(8.0 * angstrom, alpha_i_axis) simulation.setBeamIntensity(1.0) # add wavelength distribution distr_1 = ba.DistributionCosine(8.0 * angstrom, 0.8 * angstrom / 2.355) simulation.addParameterDistribution("*/Beam/Wavelength", distr_1, 50, 2.0, ba.RealLimits.positive()) return simulation
def get_simulation(): """ Returns an off-specular simulation with beam and detector defined. """ simulation = ba.OffSpecSimulation() simulation.setDetectorParameters(20, phi_f_min * deg, phi_f_max * deg, 200, alpha_f_min * deg, alpha_f_max * deg) # define the beam with alpha_i varied between alpha_i_min and alpha_i_max alpha_i_axis = ba.FixedBinAxis("alpha_i", 200, alpha_i_min * deg, alpha_i_max * deg) simulation.setBeamParameters(1.0 * angstrom, alpha_i_axis, 0.0 * deg) simulation.setBeamIntensity(1e9) return simulation
def get_simulation(): """ Returns an off-specular simulation with beam and detector defined. """ print("Getting simulation") simulation = ba.OffSpecSimulation() simulation.setDetectorParameters(1, phi_f_min * deg, phi_f_max * deg, 400, alpha_f_min * deg, alpha_f_max * deg) # define the beam with alpha_i varied between alpha_i_min and alpha_i_max alpha_i_axis = ba.FixedBinAxis("alpha_i", 400, alpha_i_min * deg, alpha_i_max * deg) simulation.setBeamParameters(5.23 * angstrom, alpha_i_axis, 0.0 * deg) # setBeamParameters(wavelength, alpha_i, phi_i) simulation.setBeamIntensity(1e11) return simulation