Exemple #1
0
def z_integrate(
        azimuthal_integrator: AzimuthalIntegrator,
        data: np.ndarray,
        mask: np.ndarray,
        dark: np.ndarray,
        flat: np.ndarray,
        normalization_factor: float = 1) -> Tuple[np.ndarray, np.ndarray]:
    if dark is None: dark = np.zeros_like(data)
    if flat is None: flat = np.ones_like(data)
    if mask is None: mask = np.zeros_like(data)
    I = np.sum((data - dark) * np.average(flat - dark) / (flat - dark) /
               normalization_factor * np.logical_not(mask),
               axis=1)[::-1]
    centerx = azimuthal_integrator.getFit2D()['centerX']
    centerz = azimuthal_integrator.getFit2D()['centerY']
    q_z = azimuthal_integrator.qFunction(np.arange(
        0, data.shape[0]), np.array([centerx] * data.shape[0])) / 10
    q_z[np.arange(0, data.shape[0]) < centerz] *= -1.

    return q_z, I