def METHOD_NAME(self,ds,threshold=30000):
    self._prepare_find_jumps()
    ds = self._hf[ds]
    # first we remove a bit of noise, size is the number of averages
    #flt = gaussian_filter1d(ds,10)
    flt = median_filter(ds,size=3)
    #flt = ds
    # the sobel filter finds the "jumps" 
    sb=sobel(flt)
    for i in sb:
        self.qps_jpn_hight.append(float(i))
    #for i in flt: self.qps_jpn_spec.append(float(i))
    offset=ds[0]
    tr_num = 0
    tr_name = "qps_tr_"+str(tr_num)
    tr_obj =  self._hf.add_value_vector(tr_name, 
                                        folder = 'analysis', 
                                        x = self._x_co, 
                                        unit = 'Hz')
    keepout = 4
    for i,tr in enumerate(flt):
        keepout += 1
        if abs(sb[i])>threshold and keepout>3:
            keepout = 0
            # new trace
            tr_num +=1
            tr_name = "qps_tr_"+str(tr_num)
            tr_obj =  self._hf.add_value_vector(tr_name, 
                                                folder = 'analysis', 
                                                x =  self._x_co, 
                                                unit = 'Hz')
            print tr , i
            #tr_obj.append(float(tr))
        else:
            if keepout>2:
                tr_obj.append(float(tr-offset))