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


Release Information

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


Highlights

  • OS Support: CASA now supports RedHat 8, and Mac OSX with Python 3.8, for both monolithic and modular versions. Note the Linux tarballs with different Python versions will extract to the same directory name.

  • plotcal/plotms: Funtionality for plotcal has been migrated to plotms, and plotcal was deprecated.

  • plotms: calibration table averaging with channel selection is now supported.

  • fringefit: memory usage of fringefit has been reduced, allowing larger datasets to be processed.

  • imhead: updated to display microsecond precision.

  • caltables: the storage of frequency meta information in caltables improved, making certain frequency-dependent calibration solutions more accurate.

  • sdintimaging: now adds information to the history of produced images

  • T+dT timerange selection improved in accuracy.

Release Notes

Installation and operation

  • OS Support: CASA now supports RHEL8 for both modular and monolithic CASA. Both modular and monolithic CASA is now supported on Mac OSX with Python 3.8. Additional monolithic Linux and MacOS packages are now produced with Python 3.8 included. Note that the Linux tarballs with different Python versions will extract to the same directory name.

Information

  • imhead: mode=’summary’ in imhead has been updated to display “Date observation” to microsecond precision. mode=”get”, hdkey=’obs-date’ returns value with microsecond precision.

Calibration

  • fringefit: The memory usage of the fringefit task has been significantly reduced, allowing larger datasets to be processed.

  • caltables: Improvements have been made in the accuracy of the frequency meta information stored in caltables. This is most relevant when using combine=’spw’ among heterogeneous spws (different total bandwidths); the aggregate centroid frequency is now weighted by constituent spectral window bandwidth. This should make use of frequency-dependent interpolation of gain solutions more accurate in these contexts, e.g., when using interp=’linearPD’, where the PD part depends on this frequency value. Calibration types which require frequency information to calculate the solutions phases (e.g. delays) will also be more accurate, in principle. Also, the frequency meta information is now set globally according to the effective aggregate spectral window selection, and time-dependent spectral window representation in combine=’spw’ contexts will not throw and exception. Compared to prior casa versions, which would implicitly recognize (in a single solve task execution) separate non-overlapping spectral window groups when using combine=’spw’; it is now necessary to specific each separate group in separate solve task executions (using append=True) to get each group combined and identified properly in the output caltable.

Imaging

  • sdintimaging: sdintimaging adds itself to the history for produced images

Visualization

  • plotcal/plotms: Funtionality for the GUI-based application plotcal has been migrated to plotms, and plotcal has been deprecated in CASA 6.

  • plotms: calibration table averaging with channel selection is now supported.

Single Dish

  • sdutil: Helper module sdutil.py has been refactored. As well as the general refactoring, many unused functions have been removed.

  • T+dT syntax: Improved the accuracy of time range selection with “T+dT” syntax. A previous bug with handling data selection with sub-second precision has been fixed.

Bug fixes

  • libcrypt.so.2: Included libcrypt.so.2 in the Python 3.6 Linux packages. This fixes an import error when importing the Python module “crypt”.

  • Pipeline: The init_pipeline.py script was being added twice to the list of scripts to be run by ipython at startup resulting in the pipeline initialization being done twice. It is now being done only once when pipeline started up is requested in config.py or on the command line.

  • tclean history: a bug was fixed whereby tclean would try to write history to files and directories that are not tclean output images (including MSs or png files that have the same name as the imagename used in tclean). This would cause confusing although harmless error messages. Another bug, whereby the history of images with special characters in their prefix name (such as ‘+’) was not being updated, was also fixed.

Known Issues

Summary Most Important Issues

  • 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.

  • 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.

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, uvcontsub3, 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

  • In tclean, the uvtaper parameter does not work with natural weighting in CASA 5.8/6.2 and later. As a workaround solution, please approach the desired outcome by using uvtaper with briggs weighting and robust=+2, or use CASA 5.6.

  • 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

  • For imaging of cubes using the mosaic gridder, a seg-fault can be triggered if the default nchan=-1 is used and channel selection is set with spw. This can result in either a seg-fault, or image planes with NaN values. It is not yet clear what is the root cause of this issue. The problem was found in VLA data, but it is not clear whether it can affect data from other telescopes. We expect this problem to be fixed in CASA 6.3. As a work-around solution, we recommend to set the nchan parameter to anything different than -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

  • 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

  • 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.

  • 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 can be resolved either by downloading the latest CASA pre-release version (the issue was fixed right after the 6.4.0 release), or by running the command sudo locale-gen ‘en_US’ or by modifying /etc/locale.alias. However, considering the latter could break other light-weight OS environments, users can also create and use their own locale as follows:

# No fr_FR locale available on Ubuntu 20.04
$ locale -a | grep fr_FR

# So this fails to format numbers the French way
$ env LANG=fr_FR printf "%'d\n" 1234567890
1234567890

# Create our own customized fr_FR locale
# Original fr_FR.src copied from /usr/share/i18n/locales/fr_FR
$ localedef -i fr_FR.src ./my_locales/fr_FR

# Now use it:
$ env LOCPATH=$PWD/my_locales LANG=fr_FR locale title
My locale: French-like space-separated, Japanese-like ten-thousand grouped numbers
$
$ env LOCPATH=$PWD/my_locales LANG=fr_FR printf "%'d\n" 1234567890
12 3456 7890
$
$ env LANG=en_US.utf8 printf "%'d\n" 1234567890
1,234,567,890

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

CASA supports multiple computer operating systems as well as multiple versions of Python. 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).

Note that CASA is only verified and validated against the operational configuration of NRAO instruments (currently RHEL7/Python 3.6).

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

Full Monolithic Distribution

Python 2.7

Python 3.6

Python 3.7

Python 3.8

RHEL 6

5.8

6.1, 6.2

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 11 ARM

TBD

TBD

Modular CASA

Python 2.7

Python 3.6

Python 3.7

Python 3.8

RHEL 6

6.0, 6.1, 6.2

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 11 ARM

TBD

TBD

Notes

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


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.

  • $: sudo yum install ImageMagick*

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

  • $: sudo yum install compat-libgfortran-48

  • $: sudo yum install libnsl

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.4.0.16
(myvenv) $: pip install casatasks==6.4.0.16
(myvenv) $: pip install casaplotms==1.3.2
(myvenv) $: pip install casaviewer==1.3.1
(myvenv) $: pip install almatasks==1.3.1
(myvenv) $: pip install casampi==0.4.2
(myvenv) $: pip install casashell==6.4.0.16
(myvenv) $: pip install casadata==2021.10.11
(myvenv) $: pip install casaplotserver==1.2.1

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”