Esempio n. 1
0
    def test_numpy_vector_input(self):
        x = randn(3)
        detrends = detrend_mean, detrend_none, detrend_linear
        scale_types = 'normalize', 'none', 'unbiased', 'biased', None
        maxlags = 2, None, 100

        args = cartprod(maxlags, detrends, scale_types)

        for ml, dt, st in args:
            y = randn(randint(2, 3))

            if ml > max(x.shape + y.shape):
                self.assertRaises(AssertionError, xcorr, x, detrend=dt,
                                  scale_type=st, maxlags=ml)
                self.assertRaises(AssertionError, xcorr, x, y, detrend=dt,
                                  scale_type=st, maxlags=ml)
                self.assertRaises(AssertionError, xcorr, x, y=None, detrend=dt,
                                  scale_type=st, maxlags=ml)
            else:
                xcnn = xcorr(x, detrend=dt, scale_type=st, maxlags=ml)
                xcnn2 = xcorr(x, y, detrend=dt, scale_type=st, maxlags=ml)
                xcnn3 = xcorr(x, y=None, detrend=dt, scale_type=st, maxlags=ml)

                self.assertIsInstance(xcnn, np.ndarray)
                self.assertIsInstance(xcnn2, np.ndarray)
                self.assertIsInstance(xcnn3, np.ndarray)
Esempio n. 2
0
    def test_numpy_matrix_input(self):
        x = randn(10, 15)
        detrends = detrend_mean, detrend_none, detrend_linear
        scale_types = 'normalize', None, 'unbiased', 'biased'
        maxlags = 8, None, 100

        args = cartprod(maxlags, detrends, scale_types)

        for ml, dt, st in args:
            if ml > x.shape[0]:
                self.assertRaises(AssertionError, xcorr, x, detrend=dt,
                                  scale_type=st, maxlags=ml)
            else:
                xcnn = xcorr(x, detrend=dt, scale_type=st, maxlags=ml)
                self.assertIsInstance(xcnn, np.ndarray)
Esempio n. 3
0
    def test_matrix_vs_numpy_correlate(self):
        m, n = 5, 3
        x = randn(m, n)

        rng = xrange(n)

        detrends = detrend_mean, detrend_none, detrend_linear
        scale_types = 'normalize', None, 'unbiased', 'biased'
        maxlags = None, 2, 20

        args = cartprod(maxlags, detrends, scale_types)

        xc_np = np.zeros((2 * m - 1, n ** 2))
        cart = cartesian((np.arange(n), np.arange(n)))

        cols = map(tuple, cart)
        for ml, dt, st in args:
            xc_np.fill(0)

            mml = ml if ml is not None else m

            xc_span = DataFrame(xc_np.copy(), columns=cols,
                                index=Int64Index(np.r_[1 - m:m]))

            for ci, (i, j) in enumerate(cartprod(rng, rng)):
                xi, xj = dt(x[:, i]), dt(x[:, j])

                xc_np[:, ci] = np.correlate(xi, xj, mode='full')

                if st == 'normalize':
                    cxx0 = sum(abs(xi) ** 2)
                    cyy0 = sum(abs(xj) ** 2)
                    xc_np[:, ci] /= np.sqrt(cxx0 * cyy0)

                elif st == 'biased':
                    xc_np[:, ci] /= m

                elif st == 'unbiased':
                    xc_np[:, ci] /= m - np.abs(np.r_[1 - m:m])

                xc_span[i, j] = xcorr(xi, xj, detrend=dt, scale_type=st)

            if ml > m:
                self.assertRaises(AssertionError, xcorr, x, detrend=dt,
                                  scale_type=st, maxlags=ml)
            else:
                xcc = xcorr(x, detrend=dt, scale_type=st, maxlags=ml)
                assert_allclose(xc_np, xc_span)
                dd = DataFrame(xc_np, index=np.r_[1 - m:m])

                # funky pandas df indexing must subtract one because endpoints
                # are inclusive
                assert_allclose(dd.ix[1 - mml:mml - 1].values, xcc)

                self.assertIsInstance(xcc, np.ndarray)

            if ml > m:
                self.assertRaises(AssertionError, xcorr, DataFrame(x),
                                  detrend=dt, scale_type=st, maxlags=ml)
            else:
                xccdf = xcorr(DataFrame(x), detrend=dt, scale_type=st,
                              maxlags=ml)
                assert_allclose(xccdf, xcc)
                self.assertIsInstance(xccdf, DataFrame)

            if ml > m:
                self.assertRaises(AssertionError, xcorr, Series(x[:, 0]),
                                  detrend=dt, scale_type=st, maxlags=ml)
                self.assertRaises(AssertionError, xcorr, x[:, 0],
                                  detrend=dt, scale_type=st, maxlags=ml)
            else:
                xc_s = xcorr(Series(x[:, 0]), detrend=dt, scale_type=st,
                             maxlags=ml)
                xc_s2 = xcorr(Series(x[:, 0]), y=None, detrend=dt,
                              scale_type=st, maxlags=ml)

                assert_allclose(xc_s, xc_s2)

            if ml > m:
                self.assertRaises(AssertionError, xcorr, Series(x[:, 0]),
                                  Series(x[:, 1]), detrend=dt, scale_type=st,
                                  maxlags=ml)
                self.assertRaises(AssertionError, xcorr, x[:, 0], x[:, 1],
                                  detrend=dt, scale_type=st, maxlags=ml)
            else:
                xc_s2 = xcorr(Series(x[:, 0]), Series(x[:, 1]), detrend=dt,
                              scale_type=st, maxlags=ml)
                xc_s2_np = xcorr(x[:, 0], x[:, 1], detrend=dt, scale_type=st,
                                 maxlags=ml)
                assert_allclose(xc_s2, xc_s2_np)
Esempio n. 4
0
    ][0]

    # Set color maps
    colormaps = np.tile('afmhot', [2, 2, 3])
    colormaps[:, :, 0], colormaps[:, 1, 2] = 'Greys', 'jet'
    # Set color range limits
    vminarr, vmaxarr = np.tile(-.015, [2, 2, 3]), np.tile(.015, [2, 2, 3])
    vminarr[:, 0, 0] = -10 / np.array([exptimev, exptimev])
    vmaxarr[:, 0, 0] = 150 / np.array([exptimev, exptimev])
    vminarr[:, 1, 2], vmaxarr[:, 1, 2] = 0, 180

    # Plot data
    fig = plt.figure(figsize=(24, 18))
    for gsnr, grspec in enumerate([gs1, gs2]):
        for [pltrownr, pltcolnr], [gsrow,
                                   gscol] in zip(cartprod(range(2), range(3)),
                                                 cartprod([0, 4], range(3))):
            if not (pltrownr == 1 and pltcolnr == 0):
                axarrs[gsnr][pltrownr][pltcolnr] = fig.add_subplot(
                    grspec[gsrow:gsrow + 4, gscol])
                imswinds[gsnr][pltrownr][pltcolnr] = axarrs[gsnr][pltrownr][
                    pltcolnr].imshow(pltlst[gsnr][pltrownr][pltcolnr][:,
                                                                      734:936],
                                     origin='lower',
                                     cmap=colormaps[gsnr, pltrownr, pltcolnr],
                                     vmin=vminarr[gsnr, pltrownr, pltcolnr],
                                     vmax=vmaxarr[gsnr, pltrownr, pltcolnr],
                                     extent=[
                                         np.min(scapexslitarcs[734:936]),
                                         np.max(scapexslitarcs[734:936]),
                                         np.min(scapeyslitarcs),