Beispiel #1
0
def test_resampling():
    "test resampling"
    track = Track(path=utpath("big_legacy"))
    track.rawprecision(0)
    assert undersample(track, 1) is track

    under = undersample(track, 3)
    assert_equal(under.phases, track.phases // 3)
    assert_equal(under.beads[0], track.beads[0][::3])
    assert_equal(under.secondaries.zmag, track.secondaries.zmag[::3])
    assert_equal(under.secondaries.tsample['index'],
                 track.secondaries.tsample['index'] // 3)
    assert track.ncycles == under.ncycles
    assert track.nframes // 3 + 1 == under.nframes
    assert len(track._rawprecisions.cache)
    assert len(under._rawprecisions.cache) == 0
    assert under.path is None
    assert under.framerate == track.framerate / 3
    assert under.fov is track.fov

    under = undersample(track, 3, 'mean')
    assert_equal(under.beads[0],
                 np.nanmean(track.beads[0][:50289].reshape((-1, 3)), axis=1))
    assert track.nframes // 3 == under.nframes

    under = undersample(track, 3, np.median)
    assert_equal(under.beads[0],
                 np.nanmedian(track.beads[0][:50289].reshape((-1, 3)), axis=1))
    assert track.nframes // 3 == under.nframes

    beads = track.beads.withaction(lambda _, i: (i[0], i[1] * 2))
    under = undersample(beads, 3)
    assert_equal(under.beads[0], track.beads[0][::3] * 2)

    beads = track.beads.withaction(lambda _, i: (i[0], i[1] * 2))
    under = undersample(beads, 3, cycles=range(0, 1))
    phases = track.phases - track.phases[0, 0]

    beads = track.beads.withaction(lambda _, i: (i[0], i[1] * 2))
    under = undersample(beads, 3, cycles=range(10, 200))
    assert_equal(under.beads[0], track.beads[0][phases[10, 0]::3] * 2)
Beispiel #2
0
def test_beadstats():
    "test bead extension"
    trk1 = Track(path=utpath("big_legacy"), rawprecisions='normalized')
    assert trk1.rawprecision().keyword() == "normalized"
    trk1.rawprecision("range")
    assert trk1.rawprecision().keyword() == "range"
    trk1.load()
    assert trk1.rawprecision().keyword() == "range"

    trk1 = Track(path=utpath("big_legacy"), rawprecisions='range')
    assert trk1.rawprecision().keyword() == "range"
    trk1.rawprecision("normalized")
    assert trk1.rawprecision().keyword() == "normalized"
    trk1.load()
    assert trk1.rawprecision().keyword() == "normalized"
    trk1.rawprecision("range")
    assert trk1.rawprecision().keyword() == "range"

    assert trk1.rawprecision().keyword() == 'range'
    assert trk1.rawprecision().keyword() == 'range'
    assert abs(trk1.beadextension(0) - 0.9517850436270237) < 1e-5
    assert abs(trk1.phaseposition(1, 0) + 0.10020114) < 1e-5

    assert abs(trk1.rawprecision(0) - 0.001809247420169413) < 1e-5
    assert abs(trk1.rawprecision(0, None) - 0.001809247420169413) < 1e-5
    assert abs(trk1.rawprecision(0, {
        1: .5,
        3: .5
    }) - 0.0018562973127700388) < 1e-5
    assert abs(trk1.rawprecision(0) - 0.001809247420169413) < 1e-5
    assert abs(trk1.rawprecision(0, (1, 5)) - 0.001809247420169413) < 1e-5
    assert abs(trk1.rawprecision(0) - 0.001809247420169413) < 1e-5
    assert abs(
        trk1.rawprecision(0, {
            1: 1 / 3.,
            3: 1 / 3.,
            5: 1 / 3.
        }) - 0.0018470539168144264) < 1e-5
    assert abs(trk1.rawprecision(0) - 0.001809247420169413) < 1e-5

    trk1.rawprecision("normalized")
    assert abs(trk1.rawprecision(0) - 0.0018470539168144264) < 1e-5