The Positional Update and Matching Algorithm (PUMA) arose from the need for accurate foreground models for calibration of low radio frequency interferometric data. It was conceived to leverage the positional accuracy of higher frequency catalogues, whilst using lower frequency catalogues to obtain accurate spectral energy distributions (SEDs). The difficulty in cross matching multiple surveys is the varying instrument parameters for each survey such as angular resolution and sensitivity, as well changing morphologies of sources with frequency. PUMA initially uses a Bayesian positional probability match based on Budavari & Szalay, 2008, to identify any possible matches. It then uses the fact that at low radio frequencies, most SEDs are expected to be approximately linear in log log space. PUMA uses this when higher resolution catalogues report multiple possible matched components, by adding the flux of the higher resolution sources and testing for linearity.
For details on the algorithms and an example application, see Line et al. 2017.
Installation/download instructions for stilts
here
I've removed the bundled topcat
and stilts
versions that used to come with PUMA
as it was quite rightly pointed out they have aged with time, and could interfere with system versions. And topcat
isn't even used by PUMA
(what was I thinking?) So now you need to install stilts
yourself. If you use something like Ubuntu, you'll need to install java
via something like
sudo apt install default-jre
I installed stilts
via the jar file and bash script, and put it in my /usr/local/bin
so you can find it on the command line. To do that I did:
cd /usr/local/bin
sudo wget http://www.star.bristol.ac.uk/~mbt/stilts/stilts.jar .
sudo wget http://www.star.bristol.ac.uk/~mbt/stilts/stilts
chmod +x stilts
There are a few python
dependencies, which are listed in requirements.txt
, which you can install with something via
pip --install -r requirements.txt
To download, simply git clone with the following command:
git clone https://github.com/JLBLine/PUMA.git
Once downloaded, add these two lines to your ~/.bashrc
to find PUMA scipts:
export PUMA_DIR=*path-to-you-PUMA-directory*
export PATH=$PUMA_DIR/scripts:$PATH
The example bash scripts in $PUMA_DIR/examples
use the $PUMA_DIR
variable, so they will work out of the box if you follow the installation notes above, as well as heading to $PUMA_DIR/original_cats
, and unpacking the catalogues:
tar -vxjf vlssr_names.fits.tar.bz2
tar -vxjf vizier_mwacs.fits.tar.bz2
tar -vxjf vizier_mrc.fits.tar.bz2
tar -vxjf sumss_names.fits.tar.bz2
tar -vxjf vizier_nvss.fits.tar.bz2
Once this is done, typing
source timing.sh
at the terminal will run PUMA
to match MWACS to VLSSr, MRC, SUMSS and NVSS.
After this, running
source plot_outcomes.sh
in the same directory will plot some of the outcomes. If you run plot_outcomes.py --help
, the options will be summarised (there are quite a few!).
Thanks!
Jack Line