예제 #1
0
def test_marker_placement_correct_beta():
    dps = []
    dp_cord_list = np.divide(generate_dp_cord_list(), 80)
    max_r = np.max(dp_cord_list) + 0.1
    for coords in dp_cord_list:
        dp_sim = DiffractionSimulation(coordinates=coords,
                                       intensities=np.ones_like(coords[:, 0]))
        dps.append(dp_sim.as_signal(144, 0.025, max_r).data)  # stores a numpy array of pattern
    dp = pxm.ElectronDiffraction(np.array([dps[0:2], dps[2:]]))  # now from a 2x2 array of patterns
    dp.set_diffraction_calibration(2 * max_r / (144))
    local_plotter(dp, dp_cord_list)

    # This is human assessed, if you see this comment, you should check it
    assert True
예제 #2
0
def create_library():
    dps = []
    half_side_length = 72
    half_shape = (half_side_length, half_side_length)
    num_orientations = 11
    simulations = np.empty(num_orientations, dtype='object')
    orientations = np.empty(num_orientations, dtype='object')
    pixel_coords = np.empty(num_orientations, dtype='object')
    intensities = np.empty(num_orientations, dtype='object')

    # Creating the matchresults.
    for alpha in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
        coords = (np.random.rand(5, 2) -
                  0.5) * 2  # zero mean, range from -1 to +1
        dp_sim = DiffractionSimulation(coordinates=coords,
                                       intensities=np.ones_like(coords[:, 0]),
                                       calibration=1 / half_side_length)
        simulations[alpha] = dp_sim
        orientations[alpha] = (alpha, alpha, alpha)
        pixel_coords[alpha] = (dp_sim.calibrated_coordinates[:, :2] +
                               half_shape).astype(int)
        intensities[alpha] = dp_sim.intensities
        if alpha < 4:
            dps.append(
                dp_sim.as_signal(2 * half_side_length, 0.075,
                                 1).data)  # stores a numpy array of pattern

    library = DiffractionLibrary()
    library["Phase"] = {
        'simulations': simulations,
        'orientations': orientations,
        'pixel_coords': pixel_coords,
        'intensities': intensities,
    }
    dp = pxm.ElectronDiffraction([dps[0:2],
                                  dps[2:]])  # now from a 2x2 array of patterns
    return dp, library
예제 #3
0
dps, dp_sim_list = [], []
half_side_length = 72
library = dict()
half_shape = (half_side_length, half_side_length)
library["Phase"] = {}

# Creating the matchresults.

for alpha in [0, 1, 2, 3]:
    coords = (np.random.rand(5, 2) - 0.5) * 2  #zero mean, range from -1 to +1
    dp_sim = DiffractionSimulation(coordinates=coords,
                                   intensities=np.ones_like(coords[:, 0]),
                                   calibration=1 / half_side_length)
    dp_sim_list.append(dp_sim)  #stores the simulations
    dps.append(dp_sim.as_signal(2 * half_side_length, 0.075,
                                1).data)  #stores a numpy array of pattern

dp = pxm.ElectronDiffraction([dps[0:2],
                              dps[2:]])  #now from a 2x2 array of patterns

for alpha in np.arange(0, 10, 1):
    rotation = (alpha, 0, 0)
    if rotation[0] < 4:
        library = create_library_entry(library, rotation,
                                       dp_sim_list[rotation[0]])
    else:
        local_cords = np.random.rand(5, 2)
        pat = DiffractionSimulation(coordinates=local_cords,
                                    intensities=np.ones_like(local_cords[:,
                                                                         0]))
        library = create_library_entry(library, rotation, pat)