Open in Colab: https://colab.research.google.com/github/casangi/casadocs/blob/95023a7/docs/notebooks/introduction.ipynb


Release Information

These are the release notes for CASA 6.5. Changes compared to the CASA 6.4 release are listed below.


Highlights

  • deconvolve: a new task deconvolve was added for stand-alone access to the image-domain deconvolver algorithms in tclean. (CASA 6.5.2)

  • uvcontsub: a new task uvcontsub was implemented, while the old uvcontsub task moved to uvcontsub_old and was deprecated. Task uvcontsub3 was removed. (CASA 6.5.2)

  • fringefit: now supports the uvrange parameter. (CASA 6.5.2)

  • tclean: a new iteration control parameter ‘nmajor’ was added. (CASA 6.5.2)

  • sdimaging: a new parameter enablecache allows improved performance by caching spectra coordinates. (CASA 6.5.2)

  • mstransform: the douvcontsub parameter was deprecated. (CASA 6.5.2)

  • flagdata: where possible, mode=’shadow’ now uses the uvw values from the UVW column to calculate uv distances. (CASA 6.5.2)

  • CASA testing: Information on automated testing and performance testing of CASA was made available in CASA Docs. (CASA 6.5.2)

  • tclean/tsdimaging: Runtime performance of ephemeris imaging was improved. (CASA 6.5.2)

  • simulator tool: new parameter simint controls the time granularity, which has can now be as short as 0.1s in sm.settrop(). (CASA 6.5.2)

  • ImageAnalysis tool: a new string mbret parameter was added to image.restoringbeam(). (CASA 6.5.2)

  • casalog tool: a new method, getOrigin() has been implemented to retrieve the origin of messages. (CASA 6.5.2)

  • tclean: a bug was fixed that prevented an outer UV taper to work in combination with weighting=’natural’. (CASA 6.5.1)

  • table tool: a new row() method and tablerow class were added to facilitate reading and writing of table rows. (CASA 6.5.1)

  • quanta tool: a new parameter keepshape was added to qa.quantity and qa.unit to preserve the shape of N-dimensional arrays. (CASA 6.5.1)

  • casashell and setup.py: now print out additional information about exceptions during startup, to aid developers on local builds. (CASA 6.5.1)

  • sdbaseline: several improvements were implemented, including a bug fix of blmode=‘fit’ and more accurate output of information. (CASA 6.5.1)

  • Casacore submodule reference was updated to the latest version. (CASA 6.5.1)

  • imbaseline: a new task imbaseline was added for image-based baseline subtraction for single-dish data. (CASA 6.5.0)

  • corrbit(): a new method corrbit() was implemented in the msmetadata tool for returning the value in SPECTRAL_WINDOW:: SDM_CORR_BIT column (CASA 6.5.0)

  • setjy: the parameter modimage was removed and parameter model should be used instead. (CASA 6.5.0)

  • plotms: support was added for additional axes of calibration tables. (CASA 6.5.0)

  • tclean: the return dictionary now includes additional information about the minor cycles. (CASA 6.5.0)

  • Mac OS 12: a bug was fixed which prevented the Mac OS 11 / Python 3.6 package to open on Mac OS 12. (CASA 6.5.0)

Release Notes

Installation and operation

  • OS Support: CASA is expected to be compatible with a range of Operating Systems for RedHat, Ubuntu and Mac OS. For information, please see CASA’s compatibility matrix (CASA 6.5.0)

  • Casacore submodule reference was updated to the latest version (0d871e1fca1f96abd8bf1326fb45c253192d01c2). The update includes the change to prohibit implicit conversion from std::vector to casacore::Vector.

  • casashell now prints out a summary of any python exceptions that happen during startup (previously it would silently exit). Users of the monolithic CASA should not notice any changes. This change is primarily useful to developers building the components locally. (CASA 6.5.1)

  • setup.py build scripts now print out information about exceptions that happen during that process (previously they were largely silent). This change is only relevant to developers. (CASA 6.5.1)

Import/export and MS structure

  • msmetadata tool: a new method corrbit() was implemented to return the value in SPECTRAL_WINDOW:: SDM_CORR_BIT column for the specified spw(s), or a list representing these values for all spectral windows if spw < 0. (CASA 6.5.0)

  • table tool: a new row() method and tablerow class were added to facilitate reading and writing of table rows. (CASA 6.5.1)

  • table tool: Implemented more thorough input checking and better error handling in the getcellslice() method. (CASA 6.5.1)

  • quanta tool: a new parameter keepshape was added to qa.quantity and qa.unit to preserve the shape of N-dimensional arrays.  These N-dimensional quantities are compatible with qa.convert but not with other quanta tool methods. (CASA 6.5.1)

Information

  • casalog tool: A new method, getOrigin() has been implemented to retrieve the origin of messages to be displayed. (CASA 6.5.2)

  • imhead: Updated imhead exception message in the case of mode=’get’ to alert the user that the expected values for hdkey in this case are often different from the keys in the dictionary returned by mode=’summary’. (CASA 6.5.2)

Flagging

  • flagdata: The mode=’shadow’ now uses the uvw values found in the UVW column of the MS to calculate the uv distances of baselines, for all baselines for which such values are available. For baselines not present in the MS, shadow flags are derived by calculating UVW values from antenna positions. (CASA 6.5.2)

Calibration

  • fringefit: now supports the uvrange parameter provided through the selectdata facility. The documentation for this parameter can be found in the Synthesis Calibration section of the manual. Users inexperienced with this parameter are warned that the uvrange selection is made before calibration; which data are calibrated and which are flagged may not match expectations unless the consequences of the selection are carefully thought through. (CASA 6.5.2)

  • setjy: the deprecated parameter ‘modimage’ has been removed from the setjy task; the parameter ‘model’ should be used instead. (CASA 6.5.0)

Manipulation

  • uvcontsub: A new task uvcontsub was added for continuum subtraction in the uv-domain. The old task uvcontsub has been deprecated and renamed as uvcontsub_old. Task uvcontsub3 has been removed. Future development of the new uvcontsub task includes combining spectral windows through combine=’spw’, which is not yet working as in the uvcontsub_old task. (CASA 6.5.2)

  • mstransform: the option douvcontsub of mstransform has been deprecated. (CASA 6.5.2)

Imaging

  • tclean: Added a new iteration control parameter ‘nmajor’ to directly limit the number of minor-major cycle sets. (CASA 6.5.2)

  • tclean/tsdimaging: Runtime performance of ephemeris imaging with tclean and tsdimaging was improved. (CASA 6.5.2)

  • deconvolve: A new task ‘deconvolve’ has been added to provide stand-alone access to the image-domain deconvolver algorithms available within tclean. Options supported in this initial version are ‘hogbom’, ‘clark’, ‘clarkstokes’, ‘multiscale’, with support for single-plane images and spectral cubes. The ‘mtmfs’ and ‘asp’ algorithms will be enabled in a later release. (CASA 6.5.2)

  • sdimaging: Performances of task sdimaging have been improved, by caching spectra coordinates computed while creating the normal image and re-using - instead of re-computing - them when creating the weight image. A new parameter enablecache has been added to the task, making it possible to turn this new feature on or off. The performances improvement is most noticeable for fast-scan datasets with a few channels. For typical fast-scan solar datasets, re-using cached spectra coordinates is roughly 20 times faster than re-computing them, resulting in a ~25-30% speed-up for the whole sdimaging task. (CASA 6.5.2)

  • tclean: the return dictionary now includes additional information about the minor cycles. (CASA 6.5.0)

Analysis

  • ImageAnalysis tool: (1) A new string mbret parameter was added to image.restoringbeam(). mbret=”list” is the default, and produces backward compatible behavior. mbret=”matrix” indicates that the return dictionary should be structured such that ‘bmaj’, ‘bmin’, and ‘bpa’ have numpy arrays as values, making it simple to utilize these values as numpy arrays rather than having to write python code to construct such structures. (2) Completed docs for image.beamarea() were also added. No interface changes. (CASA 6.5.2)

  • imbaseline: a new task imbaseline was added to do image-based baseline subtraction for single-dish data. Task imbaseline does, if necessary, smoothing of the spatial/spectral plane of an input image cube to improve S/N, then subtracts spectral baselines from it. (CASA 6.5.0)

Visualization

  • plotms:

  • Support was added for for additional calibration table axes (where applicable): azimuth, elevation, hourang, parang, u, v, w, uwave, vwave, wwave, uvwave, and uvdist. (CASA 6.5.0)

  • Tick labels will now switch to scientific notation when displaying small values near zero or very large values. (CASA 6.5.1)

  • The Help -> About window of the GUI now shows more complete version information. (CASA 6.5.1)

Single Dish

  • Performed refactoring of single dish Python code to be compliant with PEP-8 coding style. (CASA 6.5.0)

Simulations

  • simulator tool: The Simulator code underlying sm.settrop() was improved by enabling the tool to support visibility integration times as short as 0.1 s. The new parameter simint (seconds) controls the time granularity of the simulation. Default value for simint is -1 which uses a granularity of 10 s (the same as in previous CASA versions). (CASA 6.5.2)

Testing:

  • Automated testing: CASA Docs now includes an overview of the automated testing of the CASA code that is performed for various operating systems.

  • Performance testing: Performance benchmarks for CASA tasks have been made available to the community. Detailed information can be found on this new Performance page in CASA Docs.

Bug fixes

  • plotms: Fixed an int overflow bug that sometimes prevented interactive flagging/locating from working correctly. (CASA 6.5.2)

  • tclean: a data selection issue was fixed that could lead to NaNs in some image planes. (CASA 6.5.2)

  • calanalysis module: Warnings appeared in the pipeline when a baseline was flagged completely. This was switched from a WARNING in the logs to an INFO post. (CASA 6.5.2)

  • plotbandpass: Messages that earlier appeared only in the console, now appear in the logs of casa and the pipeline. (CASA 6.5.2)

  • plotbandpass: The getWeather function of plotbandpass now uses np.median when combining values across multiple weather stations to prevent potential issues with faulty values. (CASA 6.5.2)

  • plotms: A bug was fixed in plotms that caused a crash when combining antenna iteration, averaging and negation. (CASA 6.5.2)

  • CASA Docs: Fixed a bug in casadocs infrastructure, where for task and tool parameters with multiple possible types, only the first type was being shown in the parameters list. (CASA 6.5.2)

  • tclean: a bug was fixed that prevented an outer UV taper to work in combination with weighting=’natural’. (CASA 6.5.1)

  • tclean: the warning for non-zero edge pixels in the PB image will now only be shown for gridders ‘mosaic’ and ‘awproject’. (CASA 6.5.1)

  • sdatmcor: A bug that overrode OpenMP configuration was fixed. (CASA 6.5.1)

  • ms.getdata tool: a bug was fixed where averaging multiple columns could yield different results than averaging a single column. (CASA 6.5.1)

  • sdbaseline: blmode=‘fit’ will now properly account for mask information and calculate the weight of the baseline-subtracted spectral data. In addition, the description for the ‘maskmode’ parameter was updated. (CASA 6.5.1)

  • sdbaseline: fixed incorrect parameter names output in ascii-text format in case of per-spectrum baseline fitting. (CASA 6.5.1)

  • sdbaseline: fixed the output in ascii-text and csv formats in case of per-spectrum baseline fitting, so that unnecessary info (non-existent parameter values) is not printed. (CASA 6.5.1)

  • sdimaging: fixed a caching issue that could lead to slightly different images from the same data selection. (CASA 6.5.1)

  • immoments: a rare bug was fixed where writing history to the output files could cause a crash. (CASA 6.5.1)

  • plotms: fixed a crash when turning calibration on without giving a cal library string. (CASA 6.5.1)

  • sm.setnoise tool: correction to the inline docs of the sm.setnoise tool method was made. (CASA 6.5.1)

  • Mac OS 12: a bug was fixed which prevented the Mac OS 11 / Python 3.6 version of CASA 6.4.4 to open on Mac OS 12. (CASA 6.5.0)

Known Issues

Summary Most Important Issues

  • The Adaptive Scale Pixel (asp) deconvolution algorithm in tclean is experimental, and we welcome user feedback.

  • The task clean is no longer being actively maintained; instead, tclean is now the recommended task for imaging.

  • CASA 6 startup may fail on some Mac OS where users have set up a file system that is case-sensitive.

  • There are generic problems putting multiple MSs into tclean that have mismatches in their shape.

  • Wideband and widefield imaging in tclean are only partially validated - please use at own risk and read wideband and widefield documentation.

  • In tclean, uvtaper does not work with natural weighting. (fixed in CASA 6.5.1)

  • When imaging large mosaics with mosweight in tclean, an error “too many open files” may occur that may require to increase the limit for open files.

  • stawt may fail when the correlator integration time changes within an MS and statwt is run with timebin set to an integer value.

  • CASA is not using LD_LIBRARY_PATH anymore but CASALD_LIBRARY_PATH to avoid confusion.

  • cvel is calculating the velocity incorrectly for ephemeris objects. We recommend to use mstransform or its offspring cvel2, although the latter should be used with care as it is not fully commissioned yet.

  • fixvis uses the small angle approximation and may be incorrect for large phase shifts. Use the new task phaseshift instead, or use tclean for phase center shifts during imaging when applicable.

  • With parallel calibration on MMS files, fixvis does not write out the the new MMS specified in outputvis correctly, hence fixvis solutions are not applied when writing to a new MMS.

  • In fringefit, calibration tables created with CASA 5.5 and before cannot be used with CASA 5.6 and later.

  • In tclean, defining image cubes in optical velocity in some cases is known not to work.

  • In tclean, using the mosaic gridder with the default nchan=-1 is in some cases known to produce errors.

  • Ionospheric TEC corrections are currently validated in CASA only for VLA data.

  • ephemeris objects are not correctly supported by virtual model columns.

  • In tclean, the combination of specmode=’cube’ and gridder=”awproject” has not been commissioned for use and may result in errors.

  • sdimaging will crash or create incorrect images if there exist some spectra taken at a time t that fall outside all pointing intervals of a specific antenna.

General

Several issues have been encountered for CASA 6:

  • inp/go syntax does not reset hidden parameters to default between consecutive calls. The most notable issue occurs with the selectdata parameters; once set at selectdata=True, any associated subparameters that are changed from default (e.g., spw, or field) will remain even after re-setting to selectdata=False. Generally this should not matter as hidden parameters are not used. However, known exceptions exist in tclean, sdintimaging, apparentsens, setjy, listvis, sdcal, and sdfit where the value of hidden selection parameters does in fact matter. We are currently investigating the extent of this problem. As a workaround, users can call default to manually reset all their parameters.

  • inp/go does not work for the following tasks: msuvbin, browsetable, imview, msview, deconvolve, testconcat. Please invoke the arguments directly when running these tasks in CASA 6.

Installation

  • CASA 6 startup may fail on some Mac OS where users have set up a file system that is case-sensitive (as shown here). As a temporary work-around, please manually update the casapy script in /Applications/CASA.app/Contents/MacOS/casapy, by replacing the string “Macos” with “MacOS”, which occurs in lines 36 and 39 of the casaspy script.

  • For Mac OS, the default behavior when downloading multiple versions of CASA is to call it “CASA X.app” (i.e., including a space). However, CASA is unable to find the viewer when a space exists in the application name. The workaround is to rename the application excluding the space.

  • If you use a version of RHEL6 with a kernel version that is older than 2.6 you may encounter an error like:

E0324 17:24:18.576966686   27444 tcp_server_posix.cc:65]     check for SO_REUSEPORT:
{"created":"@1585038258.576951288","description":"OS Error","errno":92,"file":
"src/core/lib/iomg/socket_utils_common_posix.cc","file_line":168,"os_error":"Protocol
not available","syscall":"setsockopt(SO_REUSEPORT)"}
  • NFS mounted disks

    • It is not recommended that you run CASA (e.g. have your data) on disks that are NFS mounted. It can be done, but in some cases the files will be NFS locked and this can crash CASA or its tasks. In this case, you have to restart CASA.

    • If you receive messages like xvfb timeout you may try to clean out your /tmp folder, then restart CASA.

  • Python:

    • Environment variables set for personal use may be incompatible with CASA 6, given that the CASA comes with a Python version that may be different from the one installed for regular use. It is still unclear which specific errors can occur, but one workaround solution for these types of errors is to unset PYTHONSTARTUP before starting casa. We are looking into possible solutions.

    • Files in the current directory with the same name as ipython files will cause errors like this error that occurs when a new.py file exists in the current directory: ```python

AttributeError                            Traceback (most recent call last)
/lib/python2.7/site-packages/IPython/core/interactiveshell.pyc in enable_matplotlib(self, gui)
   2945                 gui, backend = pt.find_gui_and_backend(self.pylab_gui_select)
   2946
-> 2947         pt.activate_matplotlib(backend)
   2948         pt.configure_inline_support(self, backend)
   2949

/lib/python2.7/site-packages/IPython/core/pylabtools.pyc in activate_matplotlib(backend)
    292     matplotlib.rcParams['backend'] = backend
    293
--> 294     import matplotlib.pyplot
    295     matplotlib.pyplot.switch_backend(backend)
    296

/lib/python2.7/site-packages/matplotlib/pyplot.py in <module>()
     21 from matplotlib.cbook import dedent, silent_list, is_string_like, is_numlike
     22 from matplotlib import docstring
---> 23 from matplotlib.figure import Figure, figaspect
     24 from matplotlib.backend_bases import FigureCanvasBase
     25 from matplotlib.image import imread as _imread

/lib/python2.7/site-packages/matplotlib/figure.py in <module>()
     16 import artist
     17 from artist import Artist, allow_rasterization
---> 18 from axes import Axes, SubplotBase, subplot_class_factory
     19 from cbook import flatten, allequal, Stack, iterable, is_string_like
     20 import _image

/lib/python2.7/site-packages/matplotlib/axes.py in <module>()
   8452
   8453 #This is provided for backward compatibility
-> 8454 Subplot = subplot_class_factory()
   8455
   8456 docstring.interpd.update(Axes=martist.kwdoc(Axes))

Scripting

  • Starting CASA 6: For “execfile” calls within a script which itself is run via “execfile”, it is necessary to add globals() as the second argument to those “execfile” calls in order for the nested script to know about the global variables of the calling script. For example, within a script ‘mainscript.py’, calls to another script ‘myscript.py’ should be written as follows: execfile(‘myscript.py’, globals()).

  • There are cases where two scripts call on each other (i.e., where script “a” uses script “b” and vice versa). In casa 6, the only way to execute these scripts is by running the first script twice:

execfile("a.py",globals())
execfile("b.py",globals())
execfile("a.py",globals())

statwt

  • In some circumstances when an MS data selection is specified, chanbin is not equal to the default value of spw, and the WEIGHT_SPECTRUM or SIGMA_SPECTRUM columns don’t exist, the statwt task may need to be run twice in order to complete successfully due to a known issue with initializing the WEIGHT_SPECTRUM and/or SIGMA_SPECTRUM columns in the code. In these circumstances, an exception will be raised with instructions to restart the task. If you are using the tool method, first close the ms tool, then reopen it using the same data set, apply the same selection, and then run ms.statwt().

mstransform

  • SPW combination (combinespws=True) requires that all the SPWs selected have the same number of channels.

  • Some inconsistencies are present in CASA in the SIGMA/WEIGHT columns (and their _SPECTRUM variants) when splitting on datacolumn=’data’, such as:

    • For an MS with WEIGHT_SPECTRUM but no SIGMA_SPECTRUM (as obtained from initweights), SIGMA_SPECTRUM is created and initialized to SIGMA. While split/mstransform correctly initializes the output WEIGHT to 1/SIGMA^2, it does not initialize the output WEIGHT_SPECTRUM to 1/SIGMA_SPECTRUM^2 (instead it copies the original WEIGHT_SPECTRUM).

    • For an MS with both WEIGHT_SPECTRUM and SIGMA_SPECTRUM, the output WEIGHT_SPECTRUM is again a copy of the input instead of being initialized to 1/SIGMA_SPECTRUM^2.

    Future work in CASA is planned to address such inconsistencies.

cvel

  • cvel is calculating the velocity incorrectly for ephemeris objects. We recommend to use mstransform or its offspring cvel2, although the latter should be used with care as it is not fully commissioned yet.

  • cvel fails on MMS files used for parallel processing. We recommend to use mstransform or its offspring cvel2, although the latter should be used with care as it is not fully commissioned yet.

bandpass

  • Currently, bandpass will not find good solutions if any correlation (including cross-correlation) in the data is completely flagged. As an interim solution one may split the unflagged data in a separate file and then perform bandpass

polcal

  • Polarization position angle calibration poltype=’X’ or ‘Xf’ will be sensitive to any unmodelled position shift in the specified calibrator linear polarization model relative to the centroid location of total intensity (typically the phase center). Excess phase due to the position shift will introduce a bias in the cross-hand phase calibration (which is the same as position angle calibration in the circular feed basis). For this reason, it is best to use truly point-like (in all polarizations) calibrators, if possible, or accurate resolved models.

setjy

  • Sometimes setjy does not properly overwrite a current model in the header of the ms (virtual scratch column). It is recommended to use delmod if a model exists and shall be overwritten.

    • virtual model columns in the MS do not correctly support ephemeris objects, although they will run without generating errors or warnings. If any of your calibrators exhibit significant celestial motion on the timescale of your observation (e.g. , any solar system object), you must set ‘usescratch=True’ in calls to setjy().

uvcontsub

  • fitorder should be kept low (<= 1) unless the line band is relatively narrow compared to the fit bands. If the image rms markedly rises in the middle line channels after uvcontsub, fitorder should probably be lowered.

  • fitorder > 0 does not work with solint > ‘int’

cal library

  • The CASA cal library (docallib=True in applycal, gaincal, bandpass, etc.) may exhibit problems when calibration is unavailable for a subset of MS spectral windows. Use of spwmap to (transparently, harmless) supply nominal calibration for these spectral windows may help avoid this problem. For antenna position corrections, try spwmap=[0] to relieve a variety of this problem.

VLA Switched Power

  • In CASA v4.2.2 and higher, the weight calibration for EVLA switched power/Tsys corrections is still being investigated. Visibility corrections are ok. Since switched power calibration is not used by the EVLA pipeline (except for requantizer gain corrections, for which this problem is irrelevant), and since calwt=F remains the general recommendation, users should rely on statwt to generate appropriate data weights.

fringefit

  • For task fringefit, calibration tables created with CASA 5.5 and before cannot be applied with CASA 5.6 and later. Attempting to do so will fail with an error about non-confirming array sizes.

fixvis

  • fixvis uses the small angle approximation and may be incorrect for large phase shifts. This may result in sources shifting position if large phase shifts are being applied (shifts up to a few beam sizes have been reported). Please use the new task phaseshift instead, or use tclean for phase center shifts during imaging when applicable.

  • With parallel calibration on multi-MS (MMS) files, fixvis does not write out the outputvis correctly, hence fixvis solutions are not applied when writing to a new MMS. The recommended work-around solution is to over-write the input MMS by leaving the outputvis parameter empty. This will change the input MMS, so if you are concerned about that, we recommend to make a copy before running fixvis in parallel mode. Writing output MS files in serial mode is not affected by this bug.

tec_map

  • Ionospheric TEC corrections in CASA are currently validated only for the VLA. TEC corrections for other observatories are experimental and should be done at your own discretion.

  • Do not use CASA 6.1.0 for tec_map corrections.

fixplanets

  • To supply JPL-Horizons ephemeris data, a query function, which construct an email query request, can be used but it is only available to CASA 5.8. Constructing a query request manually via email as described in the fixplanets task section should still work for CASA 6.3 as long as the data file is saved in MIME format. An alternative function to query for ephemeris data via JPL-Horizons web interface and CASA readable format directly is planned for the future releases.

tclean

  • For the experimental ‘Adaptive Scale Pixel (asp)’ deconvolution algorithm in tclean:

    • This algorithm implementation is experimental and has had limited testing. We are currently investigating some intermittent failures on some flavors of Mac OSX. We have follow-up development and test efforts, and encourage users to provide feedback on what they find.

    • 3rd party code used for the core optimization (lbfgs) is known to produce different numerical results depending on the compiler/build options. We have tested this on all CASA’s supported platforms for the use cases included in our characterization demo and for these tests the results are scientifically equivalent.

  • Generic problems putting multiple MSs into tclean that have mismatches in their shape: Recently, generic problems have been found with putting multiple MSs into tclean when there are mismatches in shape across the data set. For example, certain data columns may cause a segment fault if they are present in only some of the input data sets. And for mosaics, please specify the phasecenter explicitly, otherwise tclean will select the first pointing from the first MS. Other mismatches in shape across multiple input MSs may cause similar problem in tclean. The CASA team is in the process of coherently addressing these issues for CASA 5.8/6.2. Please contact the Helpdesk if you experience related issues that you cannot otherwise solve.

  • The gridder=’awproject’ has not been fully commisisoned for use with specmode=’cube’ in tclean. The following message appears: The gridder=’awproject’ has not been fully tested for ‘cube’ imaging (parallel=True or False). Formal commissioning of this mode is expected in a subsequent release, where ‘awproject’ will be aligned with recent framework changes. Until then, please report errors/crashes if seen.

  • In tclean, if gridder=’awproject’ is run with psterm=True, the output Primary Beam currently still includes the Prolate Spheroidal function. In order to do a primary beam correction, a separate PB needs to be made with psterm=False. See the CASA pages on AWproject for more information.

  • For widefield imaging in tclean, the following features still need to implemented and commissioned (for usepointing=True, with full heterogenous pointing support):

    • gridder=’mosaic’ : Enable accurate pointing corrections for baselines with antennas pointing in different directions

  • In tclean, the gridders ‘mosaic’ and ‘awproject’ include aperture illumination functions in the gridding convolution functions used for the PSF generation. Although this strictly follows the math, it has several undesirable features especially in the situation where data are not uniform across all axes across which they are being combined (i.e. if the mosaic pattern is not relatively flat, if the center of the image has no mosaic pointing, if different pointings have drastically different uv-coverages or frequency coverages). All such variations cause the PSFs to be position-dependent and could relate to potential instabilities during deconvolution, either requiring many major cycles to converge or diverging. For spectral-cube imaging, the effects are lower because PSFs are normalized to peak 1 no matter what their raw peak values are. For multi-term imaging, the ratios between the spectral PSF central values matter and the effect/error is enhanved. When all these uv-coverage variations are avoided (in careful simulations), both algorithms perform as expected for joint wideband mosaics (both with conjbeams=True or False). For CASA 6.3, the guidelines are:

    • For the standard gridder, full-field, single pointing imaging (spectral cube as well as multi-term) will be accurate as long as the image phase center matches the PB pointing center.

    • For multi-term wideband joint mosaics, we recommend the use of gridder=’awproject’ with conjbeams=True as that is the only combination that has demonstrated accurate wideband pb-correction (at niter=0) especially in the presence of position-dependent uv-coverage. All other options will need monitoring and several major cycles to ensure convergence. The image should ideally be centered on a PB center.

  • In tclean, the mosweight parameter for multi-field imaging has a new default value of mosweight=True as of CASA 5.4. The new default setting of mosweight=True in tclean optimizes noise characteristics for Briggs/uniform weighting, but one should be aware that it has the following disadvantages:

    • it may potentially cause memory issues for large VLA mosaics

    • the major and minor axis of the synthesized beam may be up to ~10% larger than with mosweight=False

    • Please change to mosweight=False to get around these issues.

  • When imaging mosaics with a large number of fields and many MSs in tclean, an error can occur that specifies too many open files. This can happen for both manual and pipeline imaging when using the mosweight=True parameter. The reason is that in CASA 5.5, a trade-off was made to reduce memory demands in tclean when using mosweight, by placing the weights on disk using multiple files. Unfortunately, this memory fix may cause open file problems for data sets consisting of many MSs and fields. The problem has been characterized based on the number of MSs and fields: with respect to earlier CASA releases, the imager code now uses #MSs x #fields x 2 additional files. In CASA 6.2 and 6.3, the number of open files required for the default perchanweightdensity=True case has been dramatically reduced, though perchanweightdensity=False imaging runs are more limited. While the CASA team is working on a permanent solution for future CASA versions, the recommended work-around solution is to manually increase the limit for the number of open files, e.g.: ulimit -Sn 8000 or ulimit -Sn 16000. In some cases, increasing the hard-limit on number of open files may be necessary, which requires admin/root permissions. As a rule of thumb, each MS requires ~54 simultaneously open files. With a 16k limit and a maximum of 150 fields per MS, for a use case with perchanweightdensity=False, mosweight=True tclean will encounter too many open files with ~46 MSs or more, while with perchanweightdensity=True, mosweight=True tclean will encounter too many open files with ~300 MSs or more.

  • There are small, systematic offsets known to occur when using tclean. Our initial tests show that the offset in dec is of the order ~50 milli-arcsec, while the offset in RA is a function of declination, but also amounting to ~50mas. This issue is currectly being investigated.

  • Currently the parameter type of niter is defined as an integer, therefore the integer value larger than 2147483647 will not be set properly as it causes an overflow.

  • Using deconvolver=’mtmfs’, nterms=1 and specmode=cube does not yet work in parallel imaging mode. Use specmode=’mfs’ instead.

  • In tclean, defining image cubes in optical velocity in some cases is known not to work. This problem is under investigation.

  • The awproject gridder in tclean does not support the virtual model scheme.

  • Interactive tclean only works when a region or mask is selected in the CASA Viewer. There is a known bug that when a region is first selected, and then de-selected to produce an empty mask (filled with zeros), the CASA Viewer that runs interactive tclean will still allow you to proceed, and tclean will detect an empty mask and stop. Please always mark a region/mask to continue interactive tclean (if the entire image should be cleaned, draw a box around the entire image), and do not forget to double-click inside the green contours to select the region.

  • When using interactive tclean, hand-edited cyclethresholds do not change back to the auto-calculated values in the GUI until two major cycles later. However, the logger contains the most accurate information about what was used, and the expected behaviour (of hand-edited cyclethresholds applying to only the current minor cycles) is seen and has been tested. Therefore, iteration control and imaging will proceed as expected. This known issue affects CASA versions 5.6 and 5.7/6.1

  • In the makemask task, region files using the minus sign ( - ) to create cutouts are known not to work.

  • The combined imaging of different large MSs where differences in the topo-centric frequencies are large compared to the channel width can fail in tclean as a result of memory issues, in particular when imaging in parallel mode. A potential workaround solution is to use the task concat to first combined the MSs before running tclean, although further testing is needed to ensure that this solution is valid for all cases. This issue will be fixed in a next CASA release.

imregrid

  • Position-velocity (PV) images are not supported by imregrid, because their coordinate systems are nonstandard, lacking a direction coordinate and having a linear coordinate.

  • When converting from between coordinate system that require rotation (e.g., from celestial to galactic coordinates), CASA is known to introduce deviations in position from other software packages that can be several tenths of an arcsec. This could be because the rotation of the rectangular grid in a non-cartesian coordinate system is imperfect, possibly due to internal inconsistencies in the conversion matrices. The conversion between one frame and another in general becomes less accurate as distance from the output image’s reference pixel increases. The imregid task and Measures tool suffer from this Known Issue (see imregrid task page).

viewer

  • The CASA viewer does not yet support the entire region shapes and parameters at this stage.

  • For equatorial cubes, i.e. data cubes that include dec=0 (exact), the viewer only gives spectra for sources at dec > 0. No spectra are produced for any points with dec <0.

  • Viewer may not properly open saved region files.

  • With the new region panel being used now, It may be advisable to rename the $HOME/.casa/viewer/rc file that stores previous configurations of the viewer.

  • Viewer - labels are not shown - this can be caused by a conflict between an installed version of PGPLOT and the version of PGPLOT that comes with the non-root version of CASA. If you do have PGPLOT installed in a standard location (e.g. /usr/lib), you may try moving it aside and see if it resolves the problems. If you do encounter this problem, please report it to the CASA team.

  • Some X11 settings can make the viewer unstable. We identified that the line Load “glx” in /etc/X11/xorg.conf is such a setting. If you don’t need this line for aother applications, it would be better to have it removed.

  • The viewer can only load MeasurementSets (MS) for which all spectral windows have the same channel width. If this is not the case, an ArrayColumn error will appear. To get around this, use SPLIT`` to place the spectral windows of interest in a separate MS, or try the table browser tool.

  • When exiting CASA after using the viewer, a message similar to the following may appear: proc vtool_1EziEss1P2tH0PxJbGHzzQ is being killed. This is a cosmetic issue and can be ignored.

  • For some OSs and window managers, parts of the display may be eclipsing interactive elements. We recommend to change the window manager styles for these cases.

  • When multiple animators are open, it can happen that it is not possible to make them active, when the ‘Images’ animator is inactive. Active the ‘Images’ animator first to enable the other animators.

  • MeasurementSet with sizes of tens of Gb may not visualize the full data set properly on all machines, which can give the appearance that part of the data is flagged.

  • The line tool in the MAC viewer plots unreadable hex numbers.

plotms

  • In plotms, PDF and PS exports have been reported not to work with some older sub-versions of RH7 (e.g., RH 7.6). While the problem has not been completely characterized, upgrading to a newer RH version (e.g., RH 7.9) has shown to solve this issue.

  • In RedHat 7 we found that in some circumstances the vertical tab of the viewer appears on the right hand side instead of the left hand side. This eclipses the scrollbar and makes it difficult to use. To fix, add the following to the top of ~/.config/Trolltech.conf

    [[Qt]]{.error}
    
    style=GTK+
    
  • When plotting pointing axes in plotms on RHEL6, the tick-values of minutes and seconds on the axes are not multiples of 5

  • For concatenated data sets, plotms can create an output error if certain data columns were present in some of the concat input MSs, but missing in others (making concat inset zero values). A practical workaround is to either handle the MSs separately, or delete those columns using the tb.removecols tool (but in case of the latter one has to take care that the columns are not crucial).

uvmodelfit

  • When running uvmodelfit, the output componentlist does not contain the uncertainty in flux that the task calculates (and displays at the end of the fitting process).

imstat

  • The use of the “centerbox” parameter when specifying a region in imstat has a known issue that under very specific circumstances, less pixels are taken into account for the statistics than what is expected. This only occurs when all of the following are true: (1) values are specified in pixels; (2) the width of the box is an even number of pixels (e.g, 4pix, 16pix, or 100pix); and (3) the box is located away from the image center in Right Ascension (progressively more pixels are dropped when moving away from the image center, but only in RA). The issue is a combination of machine rounding errors (when the boundary of the centerbox is exactly at the center of a pixel), and the fact that centerbox has to converts pixel coordinates to sky coordinates to allow all possible combinations of regions. Note that the “box” parameter is not affected by this, because it can be more strict in only using flat pixel coordinates. As a simple work-around solution, we recommend to always give the width of the centerbox in “odd” number of pixels. Please note that because centerbox places the center of a box in the middle of a pixel and CASA only includes full pixels, the width of a centerbox always has an odd number of pixels anyway. For example, centerbox=[[1000pix,4000pix],[4pix,4pix]] for an 8000x8000 pixel image should give npts=25, but due to the above issue will result in npts <25. Instead, centerbox=[[1000pix,4000pix],[5pix,5pix]] will always give npts=25.

tb.statistics

  • The table tool’s statistics function tb.statistics currently ignores the useflags parameter, so statistics are calculated for all values in the specified column, and flagged values cannot be avoided.

simobserve / simanalyze

  • When using simobserve to simulate a spectral cube, using the inwidth parameter with units of velocity (e.g., kms/s) is known to produce wrong results. Use inwidth with frequency units instead (e.g., inwidth=‘1MHz’).

  • CASA simulations do not yet fully support all spectral types of components (i.e., ability to include spectral lines or spectral indices)

  • When cleaning with a simulated MS, it should be considered best practice to declare the phasecenter parameter using the ‘J2000 xx:xx:xx.xxx +xxx.xx.xx.xxx’ notation to account for possible rounding errors that can create an offset in the image.

  • corruption of simulated MS by an atmospheric phase screen is only available from the toolkit. simobserve and sm: Under some circumstances, running sm.setnoise and sm.corrupt, or simobserve with thermal noise, twice using the same project name, the noise can be applied a second time, doubling the noise level. Be sure to use different project names for creating different simulations with noise. See casaguides.nrao.edu for the latest simulation information

single dish

  • sdimaging will crash or create incorrect images if - among the spectra to be imaged - there exist some spectra taken at some time t with some antenna, where t falls outside all pointing intervals of that antenna.

  • Difficulty in allocating memory to import/processing of Band 9 (fast-mapped, double-circle) data. Use high-performance machines as workaround.

  • Please avoid using spectral window and channel selection by frequency range. It may occasionally fail. So far, this has only been reported on Mac OS but it may happen on Linux, too.

  • CASA 6.4.0: sdcal crashes if ‘en_US’ is not available in the OS locale. This is known to happen on Ubuntu 20.04 with the so-called “minimal” install option. The underline cause is that task sdcal expects the presence of ‘en_US’ in the OS locales, but the Ubuntu OS is only shipped with ‘en_US.utf8’ by default, not ‘en_US’. This issue was fixed in the CASA 6.4.3 release.

sdimaging

  • Frequencies and frequency increments in the weight image generated by sdimaging could be slightly different from those in the science image. The difference in frequency resolution (CDELT3 in .fits) could be 0.1% at maximum, which is negligible in most cases. If the difference matters, please use tsdimaging instead although it takes more time to process than sdimaging.

  • sdimaging task may fail when more than several MSes are chosen as inputs (infiles) to create single output image. It is because the file descriptor opened by the task exceeds the limit defined by OSes. You can relax the limit of the number of open file descriptors by the command, e.g., ulimit -n 4096 . Note the typical number of file descriptors opened by the task is 35/MS.

sdintimaging

  • For task sdintimaging, gridder=’awproject’ is not yet available. It will be enabled in a subsequent release.

plotprofilemap

  • The task intermittently seg faults on Mac OS.

Compatibility

The CASA software is available for mutiple LINUX and Mac computer operating systems, as well as multiple versions of Python. The compatibility matrix below shows the different Operating Systems and Python versions on which current and future CASA versions are expected to work, and for which the CASA team accepts bug reports.

However, note that CASA is only validated against the operational configuration of NRAO instruments (currently RHEL7/Python 3.6).

Further differences exist between the monolithic CASA distribution (which includes all packages and a relocatable copy of Python) and modular CASA (in which the user supplies their own Python environment).

Refer to the following matrix for current and future planned compatibility.

Full Monolithic Distribution

Python 2.7

Python 3.6

Python 3.7

Python 3.8

RHEL 6

5.8

<=6.3

RHEL 7

5.8

>=6.1

>=6.4

RHEL 8

>=6.4

Ubuntu 18.04

>=6.2

>=6.4

Ubuntu 20.04

>=6.2

>=6.4

Mac OS 10.14

5.8

>=6.1

<=6.3

Mac OS 10.15

5.8

>=6.1

>=6.3

Mac OS 11 x86

>=6.3

>=6.3

Mac OS 12 ARM*

>=6.4

Note

The CASA Viewer may not work on Mac OS 12. We recommend to use the CARTA visualization software instead.

Modular CASA

Python 2.7

Python 3.6

Python 3.7

Python 3.8

RHEL 6

<=6.3

6.2

6.2

RHEL 7

>=6.0

>=6.2

>=6.2

RHEL 8

>=6.0

>=6.4

>=6.4

Ubuntu 18.04

>=6.0

>=6.2

>=6.2

Ubuntu 20.04

>=6.0

>=6.2

>=6.2

Mac OS 10.14

>=6.1

<=6.3

Mac OS 10.15

>=6.1

>=6.3

Mac OS 11 x86

>=6.3

>=6.3

Mac OS 12 ARM

>=6.4

WARNING: The 6.2.1 module of casatools is not available for Python 3.7.

Notes

Older versions of CASA may not be compatible with the latest Operating Systems (for example, an appropriate usage mode on RedHat8 for CASA versions older than 6.3 has not yet been defined/tested). A listing of previous CASA versions and their supported OSs can be found on the CASA website.

The AppImage software is used to package the GUIs that are part of CASA. Users need to have the FUSE software installed, so these applications and be mounted and CASA can be run in its entirety.

casaplotms became available for all Linux/Python 3.x combinations beginning in 6.1

casaviewer became initially available in 6.2 and fully supported in 6.3

Automated testing

Automated tests, used for verification during the development cycle and for new release versions, are run on a number of platforms. These include automated tests for CASA tasks, tools, and auxillary repos (e.g., Viewer, PlotMS, almatasks), as well as stakeholder tests, regression tests, and mpi tests. Entries marked with a “T” in the following table indicate versions of these automated tests in CASA 6.5:

OS

tasks

tools

aux repos

stakeholders

regressions

mpi

RHEL 8 + Py 3.8

T

T

T

T

T

T

RHEL 7 + Py 3.8

T

T

T

RHEL 7 + Py 3.6

T

T

T

T

T

T

Mac OS 12 M1 + Py 3.8

T

T

N/A

N/A

Mac OS 11 + Py 3.8

T

T

N/A

N/A

Mac OS 10.15 + Py 3.8

T

T

N/A

N/A

*Note: mpicasa, which is required for both mpi and stakeholder tests, is not supported for macOS.

Installation

A full installation of CASA including custom python environment is available as a Linux (.tar) or Mac (.dmg) file from our Downloads page (http://casa.nrao.edu/casa_obtaining.shtml)

The CASA 6.x series is also available as modular packages, giving users the flexibility to build CASA tools and tasks in their own Python environment. This includes the casatools, casatasks, and casampi modules, allowing for core data processing capabilities in parallel.

Prerequisite OS Libraries

CASA requires certain libraries be installed in the users operating system. Some may already be present by default. In case they are not, the following list should be checked before using CASA or if errors are encountered at runtime. Commands and package names are for Red Hat Linux, but equivalents can be found for other Linux distributions.

A system administrator may be required to install OS libraries. For example, for RHEL8 the following OS libraries should be installed:

  • $: sudo yum install ImageMagick*

  • $: sudo yum install xorg-x11-server-Xvfb

  • $: sudo yum install compat-libgfortran-48

  • $: sudo yum install libnsl

  • $: sudo yum install libcanberra-gtk2

For modular CASA, one must supply their own Python environment. There are many, including ipython and Jupyter, here is a basic example:

  • $: sudo yum install python36-devel or python38-devel

When using the casampi package from modular CASA, additional MPI libraries are needed:

  • $: sudo yum install openmpi-devel

  • $: sudo yum install mpich-devel

  • User installs mpi4py with:

    • $: env MPICC=/usr/lib64/openmpi/bin/mpicc python -m pip install mpi4py --no-cache-dir

    • Ensure mpirun is found: which mpirun

    • If not, try full path: export PATH=/usr/lib64/openmpi/bin/mpirun\$PATH

Alternative method for NRAO systems only

  • contact the helpdesk to install casa-toolset-3 (which contains the previous libraries)

  • the run export PATH=/opt/casa/03/bin:\$PATH

Note

Using the modular CASA Viewer with Mac OS requires a special setup step. Download and expand the pgplot installation files on your machine. Then set the following environment variables from a terminal:

export PGPLOT_DIR=<download location>/pgplot
export PGPLOT_FONT=<download location>/pgplot/grfont

Monolithic Distribution

On Linux:

  1. Download the .tar file and place it in a work directory (e.g. ~/casa)

  2. From a Linux terminal window:

    $: tar -xvf casa-xyz.tar.xz
    $: ./casa-xyz/bin/casa
    

The one caveat is that CASA on Linux currently will not run if the Security-Enhanced Linux option of the linux operating system is set to enforcing. For the non-root install to work, SElinux must be set to disabled or permissive (in /etc/selinux/config) or you must run (as root): $: setsebool -P allow_execheap=1. Otherwise, you will encounter errors like:

error while loading shared libraries: /opt/casa/casa-20.0.5653-001/lib/liblapack.so.3.1.1: cannot restore segment prot after reloc: Permission denied

WARNING: By default, python 3.6 (and earlier versions of python 3) include the current working directory in the python path at startup. Any script in that directory with the same name as a standard python module or a CASA module will be detected and used by python instead of the code that is delivered with CASA. Protections have been included for files called “new.py” and “pickle.py”, but other scripts may cause problems with the CASA startup. For example, do not include a file named runpy.py in the working directory.

On Macintosh:

  1. Download the .dmg disk image file

  2. Double click on the disk image file (if your browser does not automatically open it).

  3. Drag the CASA application to the Applications folder of your hard disk.

  4. Eject the CASA disk image.

  5. Double click the CASA application to run it for the first time. If the OS does not allow you to install apps from non-Apple sources, please Change the settings in “System Preferences-> Security & Privacy -> General” and “Allow applications downloaded from: Mac App store and identified developers”.

  6. Optional: Create symbolic links to the CASA version and its executables (Administrator privileges are required), which will allow you to run casa, casaviewer, casaplotms, etc. from any terminal command line. To do so, run

    !create-symlinks
    

Modular Packages

Pip wheels for casatools and casatasks are available as Python 3 modules. This allows simple installation and import into standard Python environments. The casatools wheel is necessarily a binary wheel so there may be some compatibility issues for some time as we work toward making wheels available for important Python configurations.

Make sure you have set up your machine with the necessary prerequisite libraries first. Then a la carte installation of desired modules (from a Linux terminal window) as follows:

$: python3 -m venv myvenv
$: source myvenv/bin/activate
(myvenv) $: pip install --upgrade pip wheel

Now pick whichever subset of the available CASA packages you are interested in. Package dependencies are handled automatically by pip, with the exception of casadata which must be explicitly installed and updated by the user (see External Data). The following packages are available:

(myvenv) $: pip install casatools==6.5.2.26
(myvenv) $: pip install casatasks==6.5.2.26
(myvenv) $: pip install casaplotms==1.8.7
(myvenv) $: pip install casaviewer==1.6.6
(myvenv) $: pip install casampi==0.5.01
(myvenv) $: pip install casashell==6.5.2.26
(myvenv) $: pip install casadata==2022.9.5
(myvenv) $: pip install casaplotserver==1.4.6
(myvenv) $: pip install almatasks==1.5.2
(myvenv) $: pip install casatestutils==6.5.2.26

Note for Mac M1 users: For macOS 12 on an ARM-based M1 chip, users will need to install the wheels of CASA version 11 for x86 architecture. For that, we recommend to use the following command to pip install the CASA wheels:

(myvenv) $: arch -x86_64 python3 -m pip install ...

Users are advised to use a Python virtual environment (venv) and specific module version numbers as shown above. Giving an invalid number (like 999) to the pip install command is an effective way to list all available version numbers.

List all available versions of a module (a hack):

(myvenv) $: pip install casatasks==999
ERROR: Could not find a version that satisfies the requirement casatasks==999 (from versions: 6.0.0.27, 6.2.0.124, 6.2.1.7, 6.3.0.48)

Start Python in your venv and sanity check:

(myvenv) $ python

Python 3.6.9 (default, Nov 7 2019, 10:44:02)
[[GCC 8.3.0] on linux]
Type "help", "copyright", "credits" or "license" for more information.
>>> import casatasks
>>> help(casatasks)

To exit the python venv, type deactivate from the terminal. However, the rest of this documentation assumes the venv is active (to reactivate, type source myvenv/bin/activate)

The use of python3 venv is a simple built-in method of containerizing the pip install such that multiple versions of CASA 6.x can be kept on a single machine in different environments. In addition, CASA is built and tested using standard (python 3.6) libraries which can be replicated with a fresh venv, keeping the libraries needed for CASA isolated from other libraries which may already be installed on your machine.

With the pip installation, CASA may be used in a standard Pythonic manner. Examples can be found in this Jupyter Notebook.

WARNING: The pip-wheel version is intended for manual data processing, and is not yet officially endorsed by ALMA or VLA. Currently, pipelines are included in -and tested only for- all-inclusive monolithic CASA distributions.

Parallel Processing Setup

The casampi package provides the task-level MPI parallelization infrastructure of CASA. The casatasks module detects when casampi is available and enables the parallel processing capabilities of CASA. Advanced users may also access the casampi package directly to build new or custom parallelization schemes.

Make sure you have installed the prerequisite OS libraries for parallel processing. To test for correct modular MPI installation, run the following commands (from Linux terminal):

(myvenv) $ echo "from casampi.MPIEnvironment import MPIEnvironment; print('working?', MPIEnvironment.is_mpi_enabled)" > test.py
(myvenv) $ mpirun -q -n 2 python test.py

observe two instances of “working? True”

Performance

CASA is now running performance benchmarks against a subset of the casatasks API to track various runtime metrics over development history of the project, starting in CASA 6. See the Performance Benchmark webpages for an interactive view of the latest test results.

casabench

The tests are implemented using airspeed-velocity with configuration and results tracked by a separate repository. Automated deployment is coordinated with Bamboo and confined to a single computer node.

The dedicated testing machine has eight Intel(R) Xeon(R) CPUs (E5-2670 @ 2.60GHz), 264GB of DDR3 SDRAM (36KSF2G72PZ-1G6P1 @ 1600 MT/s), 500GB Crucial(R) internal SSD (MX500), and runs Red Hat Enterprise Linux Workstation release 7.9 against the Linux kernel version 3.10.0-1160.71.1.el7.x86_64.

Tests currently run for each CASA6 pre-release package once other verification steps are complete. New tests and test cases will be added as development continues in CASA.