Source code for astro.deconvolution.wavelet_filters

# -*- coding: utf-8 -*-
##########################################################################
# pySAP - Copyright (C) CEA, 2017 - 2018
# Distributed under the terms of the CeCILL-B license, as published by
# the CEA-CNRS-INRIA. Refer to the LICENSE file or to
# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
# for details.
##########################################################################

"""WAVELET FILTER.

This module defines a function for getting wavelet transform filters.

"""

import numpy as np
from pysap import load_transform


[docs]def get_cospy_filters(data_shape, transform_name, n_scales=4, coarse=False): """Get PySAP transform filters. This method obtains wavelet filters using the transform name provided. Parameters ---------- data_shape : tuple 2D data shape transform_name : str Name of wavelet transform n_scales : int, optional Number of transform scales, default is ``4`` coarse : bool, optional Option to keep coarse scale, default is ``False`` Returns ------- numpy.ndarray 3D array of wavelet filters """ # Adjust the shape of the input data. data_shape = np.array(data_shape) data_shape += data_shape % 2 - 1 # Create fake data. fake_data = np.zeros(data_shape) fake_data[tuple(zip(data_shape // 2))] = 1 # Transform fake data wavelet_transform = ( load_transform(transform_name)(nb_scale=n_scales, verbose=True) ) wavelet_transform.data = fake_data wavelet_transform.analysis() filters = np.array(wavelet_transform.analysis_data) # Return filters if coarse: return filters else: return filters[:-1]