Beispiel #1
0
 def homogenize(self, other, maxdiff=1):
     """ Return overlapping part of self and other as (self, other) tuple.
     Homogenize intensities so that the images can be used with
     combine_frequencies. Note that this works best when most of the 
     picture is signal, so use :py:meth:`in_interval` to select the subset
     of your image before applying this method.
     
     Parameters
     ----------
     other : CallistoSpectrogram
         Spectrogram to be homogenized with the current one.
     maxdiff : float
         Threshold for which frequencies are considered equal.
     """
     one, two = self._overlap(other)
     pairs_indices, factors, constants = one._homogenize_params(
         two, maxdiff
     )
     # XXX: Maybe (xd.freq_axis[x] + yd.freq_axis[y]) / 2.
     pairs_freqs = [one.freq_axis[x] for x, y in pairs_indices]
     
     # XXX: Extrapolation does not work this way.
     # XXX: Improve.
     f1 = np.polyfit(pairs_freqs, factors, 3)
     f2 = np.polyfit(pairs_freqs, constants, 3)
     
     return (
         one,
         two * polyfun_at(f1, two.freq_axis)[:, np.newaxis] +
             polyfun_at(f2, two.freq_axis)[:, np.newaxis]
     )
Beispiel #2
0
    def homogenize(self, other, maxdiff=1):
        """ Return overlapping part of self and other as (self, other) tuple.
        Homogenize intensities so that the images can be used with
        combine_frequencies. Note that this works best when most of the 
        picture is signal, so use :py:meth:`in_interval` to select the subset
        of your image before applying this method.
        
        Parameters
        ----------
        other : CallistoSpectrogram
            Spectrogram to be homogenized with the current one.
        maxdiff : float
            Threshold for which frequencies are considered equal.
        """
        one, two = self._overlap(other)
        pairs_indices, factors, constants = one._homogenize_params(
            two, maxdiff)
        # XXX: Maybe (xd.freq_axis[x] + yd.freq_axis[y]) / 2.
        pairs_freqs = [one.freq_axis[x] for x, y in pairs_indices]

        # XXX: Extrapolation does not work this way.
        # XXX: Improve.
        f1 = np.polyfit(pairs_freqs, factors, 3)
        f2 = np.polyfit(pairs_freqs, constants, 3)

        return (one, two * polyfun_at(f1, two.freq_axis)[:, np.newaxis] +
                polyfun_at(f2, two.freq_axis)[:, np.newaxis])
Beispiel #3
0
def test_polyfun_at():
    """
    This should evaluate the polynomial x^3 + 5x^2 - 6x + 3 at x = 5.
    """
    coeff = [1, 5, -6, 3]
    assert util.polyfun_at(coeff, 5) == 223
Beispiel #4
0
def test_polyfun_at():
    """
    This should evaluate the polynomial x^3 + 5x^2 - 6x + 3 at x = 5.
    """
    coeff = [1, 5, -6, 3]
    assert util.polyfun_at(coeff, 5) == 223