Esempio n. 1
0
def main():
    import sys
    if len(sys.argv) <= 1:
        print "Usage: example1.py file1.fil [file2.fil ...]"
        sys.exit(-1)
    filenames = sys.argv[1:]

    h_filterbank = read_sigproc(filenames, gulp_nframe=16000, core=0)
    h_filterbank = scrunch(h_filterbank, 16, core=0)
    d_filterbank = copy(h_filterbank, space='cuda', gpu=0, core=2)
    with bfp.block_scope(core=2, gpu=0):
        d_filterbankT = transpose(
            d_filterbank, ['polarisation', 'frequency', 'time'])  #[1,2,0])
        d_dispersionbankT = fdmt(d_filterbankT, max_dm=282.52)
        d_dispersionbank = transpose(
            d_dispersionbankT,
            ['time', 'polarisation', 'dispersion measure'])  #[2,0,1])
    h_dispersionbank = copy(d_dispersionbank, space='system', core=3)
    write_pgm(h_dispersionbank, core=3)

    pipeline = bfp.get_default_pipeline()
    graph_filename = "example1.dot"
    with open(graph_filename, 'w') as dotfile:
        dotfile.write(str(pipeline.dot_graph()))
        print "Wrote graph definition to", graph_filename
    pipeline.run()
    print "All done"
Esempio n. 2
0
    def test_read_write(self):
        """Read from a binary file, then write to another one"""
        b_read = blocks.binary_read(self.filenames, 32768, 1, 'f32')
        b_write = blocks.binary_write(b_read)

        # Run pipeline
        pipeline = bfp.get_default_pipeline()
        pipeline.run()

        # Check the output files match the input files
        outdata0 = np.fromfile('numpy_data0.bin.out', dtype='float32')
        outdata1 = np.fromfile('numpy_data1.bin.out', dtype='float32')

        np.testing.assert_almost_equal(self.s0, outdata0)
        np.testing.assert_almost_equal(self.s1, outdata1)
Esempio n. 3
0
def main(args):
    h_filterbank = read_sigproc(args.filename, gulp_nframe=16000, core=0)
    h_filterbank = scrunch(h_filterbank, 16, core=0)
    d_filterbank = copy(h_filterbank, space='cuda', gpu=0, core=2)
    blocks.print_header(d_filterbank)
    with bfp.block_scope(core=2, gpu=0):
        d_filterbankT = transpose(d_filterbank,
                                  ['pol', 'freq', 'time'])  #[1,2,0])
        d_dispersionbankT = fdmt(d_filterbankT, max_dm=282.52)
        blocks.print_header(d_dispersionbankT)
        d_dispersionbank = transpose(d_dispersionbankT,
                                     ['time', 'pol', 'dispersion'])  #[2,0,1])
    h_dispersionbank = copy(d_dispersionbank, space='system', core=3)
    write_pgm(h_dispersionbank, core=3)

    pipeline = bfp.get_default_pipeline()
    graph_filename = "example1.dot"
    with open(graph_filename, 'w') as dotfile:
        dotfile.write(str(pipeline.dot_graph()))
        print("Wrote graph definition to", graph_filename)
    pipeline.run()
    print("All done")
Esempio n. 4
0
"""
import os
import numpy as np
import bifrost.pipeline as bfp
from bifrost.blocks import BinaryFileReadBlock, BinaryFileWriteBlock
import glob

if __name__ == "__main__":

    # Setup pipeline
    filenames = sorted(glob.glob('testdata/sin_data*.bin'))
    b_read = BinaryFileReadBlock(filenames, 32768, 1, 'f32')
    b_write = BinaryFileWriteBlock(b_read)

    # Run pipeline
    pipeline = bfp.get_default_pipeline()
    print pipeline.dot_graph()
    pipeline.run()

    # Check the output files match the input files
    for filename in filenames:
        try:
            print filename
            indata = np.fromfile(filename, dtype='float32')
            outdata = np.fromfile('%s.out' % filename, dtype='float32')
            assert np.allclose(indata, outdata)
            print "    Input data and output data match."
        except AssertionError:
            print "    Error: input and output data do not match."
            raise
        finally: