A sign in Space, Part 3: I shouldve researched a little more, the SigMF format
I tried so many different things after being unsuccessful with trying to convert the raw data into several different wave file formats, such as using Python to…
- convert raw in all possible formats, signed/unsigned, integers and floats of all possible sizes, endianess
- Plotting stuff to get insight, nope
- Trying to make a FFT waterfall diagram for the whole 4 GB raw data, eating
up all my RAM, getting on a fight with Linux’ OOM-killer (256 GB wasn’t
enough and
matplotlib.pyplot.specgram
is kind of, err, hungry)
Then I looked into the metadata files more closely and realized: “He, I know it’s not FITS but it looks like a standard so do your research!”
OK, turns out there’s this format called SigMF and there is a Python module so I installed it, read the very simple documentation and I get data with which I can hopefully work; taking the data from the Green Bank Observatory now:
In [90]: import sigmf
In [91]: handle = sigmf.sigmffile.fromfile('A_Sign_in_Space-GBT.sigmf')
In [92]: GBT = handle.read_samples()
In [92]: type(GBT)
Out[92]: numpy.ndarray
In [93]: GBT[0:3]
Out[93]: array([0.+0.j, 0.+0.j, 0.+0.j], dtype=complex64)
In [94]: GBT[0:8]
Out[94]:
array([0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],
dtype=complex64)
Ohooo, it is IQ-data, but 64 bits! No wonder I ended up nowhere with my simple naive digging. OK, now let me see where this will lead to…
Fun fact: There’s even a GNU Radio Block for this data, which is real neat. Haven’t installed it yet because out-of-tree modules are the Road To Madness™, but let’s see.