Пример #1
0
 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))
Пример #2
0
    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))
Пример #3
0
    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
Пример #5
0
 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))
Пример #7
0
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
Пример #8
0
 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())
Пример #9
0
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
Пример #10
0
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
Пример #11
0
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