filter_gaussian.py 979 Bytes
title = "Gaussian Filter"
tip = "applies Gaussian filter to data (smoothing)"

import numpy as np
import scipy.ndimage as spi

from guidata.dataset.datatypes import DataSet
from guidata.dataset.dataitems import (IntItem, FloatArrayItem, StringItem,
                                       ChoiceItem, FloatItem, DictItem,
                                       BoolItem)
from guiqwt.config import _

class NOD3_App:

    def __init__(self, parent):
        self.parent = parent
        self.parent.activateWindow()

    def compute_app(self):
        class Param(DataSet):
            sigma = FloatItem(u"sigma", default=1.)
        param = Param(_("Gaussian filter"), "smooth data")
        name = title.replace(" ", "")
        self.parent.compute_11(name, lambda m, p: self.function(m, p), param, 
                               suffix=lambda p: u"sigma=%s" % (p.sigma))

    def function(self, m, p):
        m.data = spi.gaussian_filter(m.data, p.sigma)
        return m, p