ParselTongue is a Python interface to classic AIPS, Obit and possibly other task-based data reduction packages. It serves as the software infrastructure for some of the ALBUS implementation. It allows you to run AIPS tasks, and access AIPS headers and extension tables from Python. There is also support for running Obit tasks and accessing data in FITS files. Full access to the visibilities in AIPS UV data is also available.
ParselTongue allows you to script AIPS with a modern programming language, making complex automated data reduction possible. The excellent support for today's web standards in Python facilitates the development of pipelines that interact easily with the outside world.
Grab the latest official ParselTongue release (version 3.0) here! This release now supports Python 3.
ParselTongue depends on Obit. A special version of Obit, adequate for ParselTongue and modified to be easier to build on most systems, can be found here.
If you are using ParselTongue and would like to be kept up-to-date about new releases, you can subscribe yourself to the ParselTongue mailing list here.
Installation instructions can be found in the Codex (see below). It does contain installation instructions for installing on Mac OS X using Fink or MacPorts as well as various popular Linux distributions. However, for Mac OS X users we now recommend using Homebrew. With Homebrew, installing ParselTongue becomes really easy:
curl -L http://www.jive.nl/parseltongue/releases/python3-obit.rb curl -L http://www.jive.nl/parseltongue/releases/python3-parseltongue.rb brew install python3-obit.rb brew install python3-parseltongue.rb
This will automatically install all the packages needed to build Obit and ParselTongue. This method works also works with Linuxbrew.
ParselTongue packages are now available for Ubuntu. These packages can be installed using the following commands:
sudo add-apt-repository ppa:kettenis-w/parseltongue sudo apt-get update sudo apt-get install python3-parseltongue
This will automatically install all dependencies (including Obit). In principle packages for all currently supported versions of Ubuntu should be available.
Obit packages are available for most major Linux distrubutions on the openSUSE build service. For example, to install packages for Fedora 31 you can run the following command:
dnf install https://download.opensuse.org/repositories/home:/kettenis/Fedora_31/x86_64/python3-obit-27JUL20-18.1.x86_64.rpm
And for OpenSUSE 15.2 you can run:
zypper install https://download.opensuse.org/repositories/home:/kettenis/openSUSE_Leap_15.2/x86_64/python3-obit-27JUL20-lp152.18.1.x86_64.rpm
This will automatically install all dependencies. After installation of Obit, you can build ParselTongue by following the installation instructions in the codex, running the configure script as:
./configure --with-obit=/usr/lib64/obit --prefix=...
For an overview of the Linux distribution for which Obit packages have been built can be found at https://build.opensuse.org/package/show/home:kettenis/python3-obit. If packages for your favourite Linux distribution are not available, please send a message to Mark Kettenis email@example.com.
Another way to install ParselTongue is by using Anaconda. To install Obit and ParselTongue in your default Anaconda environment you can simply run
conda install -c kettenis parseltongue
ParselTongue is already used actively for VLBI data reduction. We have a number of examples and user-contributed snippets of Parseltongue that you may find useful, assembled here. And please feel free to add your own incantations to the Grimoire!
A useful way to explore the Classes that make up ParselTongue, and their interrelationships.
A FAQ to post questions regarding the use of ParselTongue
To receive announcements of new ParselTongue releases and other ParselTongue related news you can subscribe to the ParselTongue mailing list. This list is low-volume.
If you encounter problems with our software, please feel free to contact the developers (Mark Kettenis andDes Small). We're also very interested in hearing about cool applications of ParselTongue. If things don't work as expected, or if you encounter any cryptic error messages, please yell. You can also politely ask for improvements