My projects
Galaxy Parametrizer: Doing deep observations while having the high spatial and frequency resolution of a modern receiving system leads automatically to a huge amount of data even after processing (gridding) to data cubes. Extracting sources manually is by far not possible due to a lack of manpower. Therefore we developed a sopisticated GUI (graphical user interface) specialized to find and parametrize those galaxies. We follow a semi-automatic philosophy meaning that we implemented several finder algorithms, e.g. the finder based on the Gamma test (P. Boyce 2001), while explicitely allowing for manual correction or even searching. Even the manual search/fitting process is much faster than with previous software packages, as the GUI provides several views/projections (also X-rays) through the data cube simultaneously. A catalog of all sources is compiled and can be saved as XML document. Galaxy parameters as fluxes, widths, positions, etc. are also automatically determined. If necessary the user can apply baseline corrections. The determination of integrated fluxes can be done using an advanced Markov Chain Monte-Carlo method which delivers meaningful estimates of statistical errors/confidence regions.
Bonn grid ("Bonn Kong"): We developed a new gridder based on the widget library Qt. It is highly interactive, allowing more than 20 common astronomical projections (implemented using WCSlib). It is especially designed to be fast on multi-processor systems consuming as small memory as possible (through data serialization, the algorithm is explained on the research page). The sky-positions of the measured spectra are plotted on-the-fly on screen using the current coordinate projection. If desired, the Ra-Dec coordinates can be transformed to Galactic Lon-Lat coordinates.
RFI detection library: In RFI detection by automated feature extraction and statistical analysis we describe an algorithm which is capable to detect radio frequency interferences (RFI) for data recorded with a high-dynamic range FPGA spectrometer using fast dumping (~1s). This C library contains the functions to detect RFI signals of several types within tiles - subsets of the complete dataset comprising each a few tens to hundreds adjacent spectral channels over several adjacent dumps. Each tile is small region in the 2-dimensional time-frequency plane (see the picture in the heading). To use the functions one has to have a driver program which does the necessary managment. This is easy to develop and we already have two simple driver tasks (one which operates on the ASCII data format used by our FPGA spectrometer prototype (Stanko et al. 2005) and one which processes fits binary tables of a certain format), as well as a GUI based on the Qt library. The latter makes use of multithreaded programming boosting performance on multi-core or -processor platforms.
RFIDE: This graphical user interface is a frontend to our RFI detection library. Currently only fits-files can be processed. By using Qt's threading capabilities the calculations can be distributed to different cpu's on multi-core or -processor platforms boosting performance significantly. If desired one can switch RFIDE into an online-mode where the detected RFI signals are plotted to screen.
LSFS C-implementation: Carl Heiles (2007) developed a new method to calibrate bandpass shapes using frequency switching but with a set of 3 or more LO frequencies. The original implementation was done in IDL. For our analysis paper The Robustness of Least-Squares Frequency Switching (LSFS) we implemented the algorithm in C, which is probably faster in terms of computing time and we can provide the source code.
Gnuplot shell frontend: This is a small python script which I wrote to pipe some data from the shell into Gnuplot without the need to provide a macro file or startup Gnuplot. It can almost do every task which is possible from the interactive session or through a script. In fact it works by temperary construction a Gnuplot macro script just by a few shell parameters. Typical usage:
cat somedata.txt | ppl --using="u 1:2" --xrange="1:10" --xlabel="time" --ylabel="money" \
--title="time is money" --ps-level1 --save --basename="timemoneyplot"