1. casa
  2. casalogger
casalogger package for CASA 6

Source

README.md

CASAlogger

CASA logger is distributed as part of CASA. This repository makes it possible to build the CASA plotms without building the rest of CASA. CASAlogger will become the default logger application for CASA distributions.

Check Out

You should checkout CASAplotms with:

-bash-4.2$ git clone --recursive https://open-bitbucket.nrao.edu/scm/casa/CASAlogger.git

Building

PlotMS required Qt 4.8 or later. Check which version of Qt is available using which:

-bash-4.2$ which qmake
/usr/lib64/qt-3.3/bin/qmake
-bash-4.2$ PATH=/usr/lib64/qt4/bin:$PATH
-bash-4.2$ which qmake
/usr/lib64/qt4/bin/qmake
-bash-4.2$ 

In addition, the casatools Python module is required for building and the casatasks Python module is required for starting PlotMS from the python prompt. You can check by attempting to get help from the casatools module:

-bash-4.2$ python3 -m casatools --help
/opt/rh/rh-python36/root/usr/bin/python3: No module named casatools
-bash-4.2$ PYTHONPATH=../casatools/build/lib.linux-x86_64-3.6 python3 -m casatools --help
--compiler-cc       path to C compiler used to build casatools
--compiler-cxx      path to C++ compiler used to build casatools
--compiler-xml      path to compiler used to generate bindings from XML
--grpc-compile      flags to compile C++ source files
--grpc-link         flags to use to link gRPC C++ applications
--grpc-libpath      path to gRPC C++ libraries
--grpc-protocpp     path to C++ protoc compiler
--grpc-protopy      path to Python protoc compiler
--proto-registrar   path to registrar protobuf spec
--proto-shutdown    path to shutdown protobuf spec
--proto-ping        path to ping protobuf spec
-bash-4.2$ 

If you had to set PYTHONPATH environment variable, you need to also set it similarily when running qmake in the following You should be able to build CASA plotms on both OSX and Linux with:

-bash-4.2$ PYTHONPATH=../casatools/build/lib.linux-x86_64-3.6 qmake
-bash-4.2$ make

This process should result in the creation of an AppImage which can be run directly:

-bash-4.2$ ls build/bin.3.10.0-1062.el7.x86_64/casalogger-x86_64.AppImage 
build/bin.3.10.0-1062.el7.x86_64/casalogger-x86_64.AppImage
-bash-4.2$ build/bin.3.10.0-1062.el7.x86_64/casaplotms-x86_64.AppImage

This AppImage could be distributed for use as is by just copying it to any desired location. It is also possible to build a Python binding for casalogger. The casatools module is also required for this step:

-bash-4.2$ PYTHONPATH=../casatools/build/lib.linux-x86_64-3.6 make py

This should result in a Python module which could be added to PYTHONPATH directly and a PyPI wheel that can be installed with pip:

-bash-4.2$ ls build/python.3.10.0-1062.el7.x86_64/casalogger
__bin__  __init__.py  casalogger.py  private  __pycache__
-bash-4.2$ ls build/python.3.10.0-1160.31.1.el7.x86_64/dist
casalogger-1.0.0+dirty-py3-none-linux_x86_64.whl
-bash-4.2$ 

If the casalogger wheel is installed, it should install its dependencies. These include:

  • casatools -- CASA tools and configuration
  • casatasks -- CASA tasks
  • grpcio -- gRPC binding for Python
  • protobuf -- transport layer for gRPC

If casalogger is loaded directly, all of these modules must be available in your PYTHONPATH. If you have the CASA development environment, these packages should be installed with as part of the casa-toolset-3 RPM.

Building MacOS

This build depends on a local installation of anaconda. You can find installation instructions at https://www.anaconda.com/products/individual. Once you have a working installation you can create the custom conda environment using the .yml file found in the base directory.

conda env create -f qt4-macos.yml

Before starting the install activate the envrionment using

source <anaconda_install_directory>/bin/activate
conda activate qt4-macos

You will need to add the qt4 directory to $PATH as well as setting the $CC and $CXX variables.

export PATH="<anaconda_install_directory>/envs/qt4-macos/qt4/bin:$PATH"
export CC=/usr/bin/cc
export CXX=/usr/bin/c++

To make the binary

qmake QMAKE_CXX=clang++ QMAKE_LINK=clang++
make

This should create casalogger.app in casalogger/build/bin.19.6.0/casalogger.app. The logger can be run using

LD_LIBRARY_PATH="<anaconda_install_directory>/envs/qt4-macos/qt4/lib:<anaconda_install_directory>/envs/qt4-macos/lib:$LD_LIBRARY_PATH"  casalogger/build/bin.19.6.0/casalogger.app/Contents/MacOS/casalogger

The python module can be built using

make py

Add shortcut

Everything looks good. We'll let you know here if there's anything you should know about.