def test_all_same(self): phase = np.ones((50, 50)) magnitude = np.ones((50, 50)) rgb_array = pst._get_rgb_phase_magnitude_array(phase, magnitude) assert (rgb_array == rgb_array[0][0]).all()
def get_color_signal(self, rotation=None, autolim=True, autolim_sigma=4): """Get DPC image visualized using continuous color scale. Converts the x and y beam shifts into an RGB array, showing the magnitude and direction of the beam shifts. Useful for visualizing magnetic domain structures. Parameters ---------- rotation : float, optional In degrees. Useful for correcting the mismatch between scan direction and diffraction pattern rotation. autolim : bool, default True autolim_sigma : float, default 4 Returns ------- color_signal : HyperSpy 2D RGB signal Examples -------- >>> s = pxm.dummy_data.get_simple_dpc_signal() >>> s_color = s.get_color_signal() >>> s_color.plot() Rotate the beam shift by 30 degrees >>> s_color = s.get_color_signal(rotation=30) See Also -------- get_color_signal : Signal showing both phase and magnitude get_phase_signal : Signal showing the phase """ # Rotate the phase by -30 degrees in the color "wheel", to get better # visualization in the vertical and horizontal direction. if rotation is None: rotation = -30 else: rotation = rotation - 30 inav0 = self.inav[0].data inav1 = self.inav[1].data phase = np.arctan2(inav0, inav1) % (2 * np.pi) magnitude = np.sqrt(np.abs(inav0) ** 2 + np.abs(inav1) ** 2) magnitude_limits = None if autolim: magnitude_limits = pst._get_limits_from_array( magnitude, sigma=autolim_sigma ) rgb_array = pst._get_rgb_phase_magnitude_array( phase=phase, magnitude=magnitude, rotation=rotation, magnitude_limits=magnitude_limits, ) signal_rgb = Signal1D(rgb_array * (2 ** 16 - 1)) signal_rgb.change_dtype("uint16") signal_rgb.change_dtype("rgb16") pst._copy_signal2d_axes_manager_metadata(self, signal_rgb) return signal_rgb
def test_magnitude_zero(self): phase = np.random.random((50, 50)) magnitude = np.zeros((50, 50)) rgb_array = pst._get_rgb_phase_magnitude_array(phase, magnitude) assert (rgb_array == 0.0).all()