Пример #1
0
def P3_to_R3_opt_damp(P3, E_all=((1,), (1,), (1,)), damp0=None, trim=True,
                      include_margin=True, minimizer=scipy.optimize.minimize,
                      **min_kwargs):
    conv_mat, shapes, slice_maps = convolution_parameters(P3.shape, E_all)
    P3 = reduce(invert_loop_matvec(minimizer, **min_kwargs),
                zip(conv_mat[::-1], shapes[-2::-1],
                    [[(y, x) for (x, y) in sm] for sm in slice_maps[::-1]],
                    damp0),
                shift_time_indices_undo(P3, E_all, trim, include_margin))

    try:
        return MetaArray(P3, ticks=unexpand_ticks(P3, E_all),
                         rw_freq=P3.rw_freq)
    except AttributeError:
        return P3
Пример #2
0
def P3_to_R3_fixed_damp(P3, E_all=((1,), (1,), (1,)), damp=None, trim=True,
                        include_margin=True):
    conv_mat, shapes, slice_maps = convolution_parameters(P3.shape, E_all)
    deconv_mat = [Ainv for (Ainv, _) in generalized_tikhonov_inverse(A, d) for
                  A, d in zip(conv_mat, damp)]
    P3 = reduce(loop_matvec, zip(deconv_mat[::-1], shapes[-2::-1],
                                 [[(y, x) for (x, y) in slice_map]
                                  for slice_map in slice_maps[::-1]]),
                shift_time_indices_undo(P3, E_all, trim, include_margin))

    try:
        return MetaArray(P3, ticks=unexpand_ticks(P3, E_all),
                         rw_freq=P3.rw_freq)
    except AttributeError:
        return P3
Пример #3
0
def P3_to_R3_opt_damp(P3,
                      E_all=((1, ), (1, ), (1, )),
                      damp0=None,
                      trim=True,
                      include_margin=True,
                      minimizer=scipy.optimize.minimize,
                      **min_kwargs):
    conv_mat, shapes, slice_maps = convolution_parameters(P3.shape, E_all)
    P3 = reduce(
        invert_loop_matvec(minimizer, **min_kwargs),
        zip(conv_mat[::-1], shapes[-2::-1],
            [[(y, x) for (x, y) in sm] for sm in slice_maps[::-1]], damp0),
        shift_time_indices_undo(P3, E_all, trim, include_margin))

    try:
        return MetaArray(P3,
                         ticks=unexpand_ticks(P3, E_all),
                         rw_freq=P3.rw_freq)
    except AttributeError:
        return P3
Пример #4
0
def P3_to_R3_fixed_damp(P3,
                        E_all=((1, ), (1, ), (1, )),
                        damp=None,
                        trim=True,
                        include_margin=True):
    conv_mat, shapes, slice_maps = convolution_parameters(P3.shape, E_all)
    deconv_mat = [
        Ainv for (Ainv, _) in generalized_tikhonov_inverse(A, d)
        for A, d in zip(conv_mat, damp)
    ]
    P3 = reduce(
        loop_matvec,
        zip(deconv_mat[::-1], shapes[-2::-1],
            [[(y, x) for (x, y) in slice_map]
             for slice_map in slice_maps[::-1]]),
        shift_time_indices_undo(P3, E_all, trim, include_margin))

    try:
        return MetaArray(P3,
                         ticks=unexpand_ticks(P3, E_all),
                         rw_freq=P3.rw_freq)
    except AttributeError:
        return P3