The ALMA uv coverage assessment tool
You can find a discussion of the ideas implemented in this tool in the following publications:
Petry, Diaz Trigo, Kneissl, Toledo, et al. 2024 (Â https://doi.org/10.1117/12.3012662 , https://arxiv.org/abs/2406.13199Â ).
Petry, Diaz Trigo, Kneissl, Toledo, et al. 2020 ( https://doi.org/10.1117/12.2557596 , https://arxiv.org/abs/2012.08993 ).
This software is published on Zenodo: Â https://doi.org/10.5281/zenodo.16682281Â
Please use the above DOI when you reference assess_ms . It always points to the latest version.
A training video is available at
Present status (2025-10-08)
Latest version is assess_ms_public v3.0.1
consisting of
assess_ms.py v3.4, filldish.py v3.0, mshistotools.py v3.1, run_assess_ms_public.py v3.1
The package is available for download from the following link:
assess_ms3.0.1_public.tgz   (reference: https://doi.org/10.5281/zenodo.17293466 )
Software layout
assess_ms.py and run_assess_ms_public.py
assess_ms.py is a Python 3 module for use within CASA. Tested CASA versions are 6.6.1 and 6.6.6 .
The core method is
assess_ms.assess_ms()
For the most common use cases of ALMA users, a wrapper was added with fixed parameters and comprehensive error handling:
run_assess_ms_public.py
Dependencies
To run assess_ms you need
CASA 6.6.1 or CASA 6.6.6
  casa-6.6.1-17 (RHEL8) , CASA 6.6.6-17 (RHEL 8)
   casa-6.6.1.17 (MacOS 12), CASA 6.6.6-17 (MacOS 14)
mshistotools.py , filldish.py - Python modules developed by the team of the 2020-2024 ALMA development study on uv coverage assessment and improved further at ESO in 2025.
These are included in the assess_ms distribution tarball.
All other Python modules needed by assess_ms are part of the standard CASA 6.6.1 or 6.6.6 monolithic distributions.
Furthermore, the wrapper run_assess_ms_public.py requires the package
  ImageMagick 6.9
to make the shell command line tool "montage" available.
This package is available on all Linux platforms.
On MacOS, you will need to install imagemagick and ghostscript.
See https://legacy.imagemagick.org/script/download.php
If montage is not available, assess_ms will still work but the collation of plots on a single pdf will not be done.
Usage of run_assess_ms_public.py
How to run the uv coverage assessment tool ("assess_ms") for a given MOUS or GOUS:
Known issues
1) 7M datasets containing 12M antennas are presently only supported if you have flagged all visibilities from baselines with 12M antennas. The 12M antennas are sometimes intentionally added to 7M array observations at higher frequency bands in order to use their water vapour radiometers. - If you are including such 7M EBs in your set of MSs to be assessed, you presently need to flag all 12M antennas using the "antenna" parameter in task flagdata (e.g. flagdata(vis='myms.ms', antenna='10,11,12') where the antenna IDs 10, 11, and 12 are those of the 12M antennas). You will then see a warning in the CASA logger saying "Detected a heterogeneous array with all 12m antennas flagged in myms.ms, will treat as 7m-only data.".
Preparations to be done only once (setup)
1) Obtain the assess_ms package and install it:
rm -rf assess_ms3.0_public # remove old version if present wget https://zenodo.org/records/17293466/files/assess_ms3.0.1_public.tgz tar xf assess_ms3.0.1_public.tgz
2) Edit your copy of "run_assess_ms_public.py" to adapt it to your working environment.
cd assess_ms3.0_public <your editor> run_assess_ms_public.py
The main point is to edit the value of variable "assessms_dir" and replace the string <your path here> by the absolute path to the directory which you created by unpacking the tarball in step (1) above (assess_ms3.0_public).
Secondly, you can edit the value of the variable "ms_pattern" to reflect the names of the MSs you will typically want to process with assess_ms. Default pattern is "uid*.ms.split.cal/" . The processing will include all MSs in the working directory which match this pattern.
The working directory is the directory where you run the assessment.
The default pattern can be overridden with the "-p" option on the command line. See below.
Selecting the data included in the assessment
assess_ms will process all MSs in the working directory which match the pattern which you have set in the run_assess_ms_public.py script or given with the "-p" option on the command line (see below for an example).
From the selected MSs, assess_ms will identify the science targets and pick the first one (lowest field ID) in the first MS and then subsequently pick the field with the same name in the remaining MSs.
If there is more than one field with same name in the first MS, assess_ms will assume it is dealing with a mosaic and include all mosaic fields (see the "mosaic field check" below) for the chosen field name.
Similarly, it will pick a representative spectral window as the first science SPW (lowest SPW ID) and in that the central channel as the representative one. in case it doesn't find any useful data in this SPW, it will iterate over the other science SPWs until it finds one with unflagged data.
If you would like assess_ms to process a particular science target other than the automatically chosen one, and/or a science SPW other than the first one, you can achieve this by splitting out the data of interest into a new set of MSs and running assess_ms on those.
Note that all science SPWs with less than 5 channels are ignored by default. However, if there is only one science SPW in the MS, assess_ms will use that even if it has less than 5 channels.
Simulated data from the CASA simulator can be assessed like normal data. The field names in the FIELD table need to be consistent like for real observations if you want to process several MSs together.
Simulated data by default do not contain entries in the SCHEDULE column of the OBSERVATION sub-table of the MS. If you want to simulate a GROUP, you need to fill different entries into this column in order to indicate which (fake) MOUS each input MS comes from.
As an alternative to splitting out the data of interest, you can use the more complex underlying assess_ms.assess_ms() function which has many input parameters to control all aspects of the processing. Please consult the help text of that function for more information.
Generally it is recommended that you operate on MSs which contain only the science data, i.e. have been split out from the MSs containing all data. This accelerates the processing.
Running "run_assess_ms_public.py" for a given MOUS
Follow the detailed description in the header of the script text
cd <directory containing the MSs to be assessed, e.g. PL "working" dir> casa --nologger -c <your path to the assess_ms directory>/run_assess_ms_public.py
You can use command line option "-p" to override the default MS selection pattern set in the script like in this example
casa --nologger -c <your path to the assess_ms directory>/run_assess_ms_public.py -p "<pattern>"
where "<pattern>" can be an expression like "*_targets.ms" . NOTE: you need to type the quotes around the pattern!
You should see various diagnostic messages displayed on the terminal. At the end, you will see a list of the uv coverage defects found.
Once the call to CASA has completed, your working directory should contain one one new directory "assess_ms_output" which contains a variety of files which are described in the following:
Example content for MOUS "uid___A001_X1467_X1de", a 12M observation with two EBs:
output_assess_ms/ |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al.hourangle.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al.obs_and_exp.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451.fillfracffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451.fillfracffbin_sectors.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451.rmsffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_2DFF.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_2Dmissvis.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ0-45.obsexpffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ0-45.rmsffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ135-180.obsexpffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ135-180.rmsffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ45-90.obsexpffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ45-90.rmsffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ90-135.obsexpffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_AZ90-135.rmsffbin.png |-- EB-uid___A002_Xe20b32_X66f8.ms.split.cal_et_al_12M_217.845GHz_ar0.451_FFAZInhomogen.png |-- assess_ms-casa.log |-- assess_ms-report.txt |-- assess_ms_plots.pdf `-- chi2_vs_ar_plot.png
DESCRIPTION of the output directory content
Overview
assess_ms-report.txt
text file containing the details of the assessment result
the defects of the uv coverage are enumerated with a one-line comment per defect
png plots
these plots illustrate the results in the assess_ms-report.txt file
see description further below
assess_ms_plots.pdf
- collation of the most important png plots into a pdf file
assess_ms-casa.log
this is the complete CASA log file
The uv coverage report (assess_ms-report.txt)
Example of a report from a dataset with good uv coverage
casa [QA] Version: $Id: assess_ms xxx $ casa [QA] assess_ms(vis=['uid___A002_Xff45a6_X4d5a.ms.split.cal', 'uid___A002_Xff81e8_X4381.ms.split.cal', 'uid___A002_Xff81e8_X57bf.ms.split.cal'], freq_ghz=None, ar_asec_range =[-1.0, -1.0], las_asec=-1.0, time_s=-1.0, targetid=None, repspwid=None, condition=c, pass_thresh=0.25, az_inhomogen_limit=2.0, storagedir=./output_assess_ms, binningversion=2, exp calcversion=-1, relweighting=False, ffplotlim=0.0, nffradbins=-1, nffazbins=4, plotname=, havegroup=False, grouping=-1, QA2mode=False, ) casa [QA] parameter ar_asec_range was not specified. Will estimate it from the observed BLD. casa [QA] parameter las_asec was not specified. Will estimate requested LAS from the observed BLD. casa [QA] MS uid___A002_Xff45a6_X4d5a.ms.split.cal has average Tsys 85.6546 K (approx. expected Tsys at 248.02337955150534 GHz: 126.0028 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 2.164 . Will limit it to 1.5, equiv. to Tsys_EB = 102.8809 K) casa [QA] MS uid___A002_Xff81e8_X4381.ms.split.cal has average Tsys 80.3189 K (approx. expected Tsys at 248.02337955150534 GHz: 126.0028 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 2.4611 . Will limit it to 1.5, equiv. to Tsys_EB = 102.8809 K) casa [QA] MS uid___A002_Xff81e8_X57bf.ms.split.cal has average Tsys 80.6248 K (approx. expected Tsys at 248.02337955150534 GHz: 126.0028 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 2.4424 . Will limit it to 1.5, equiv. to Tsys_EB = 102.8809 K) casa [QA] ALMA 12m only dataset detected, therefore using analytical expectation function. casa [QA] This dataset contains only ALMA 12M data. casa [QA] Total time on-source over all MSs (taking into account flagging) for field J0910m0414: 7960.0 s casa [QA] Total expected observation time is -1.0 s. casa [QA] The observation is a mosaic with 23 pointings (fields). casa [QA] Not using an assumption of total antenna number for expectation but using number of visibilities directly. casa [QA] Shortest baseline: 12.5665 m (found in MS uid___A002_Xff81e8_X57bf.ms.split.cal) casa [QA] Longest baseline: 500.184 m (found in MS uid___A002_Xff81e8_X57bf.ms.split.cal) casa [QA] observed L80 is ca. 256 m equivalent to AR = 0.5581989439485859 arcsec. casa [QA] Using [0.502379, 0.614019] as the setting for parameter ar_asec_range. casa [QA] observed L05 is ca. 25 m equivalent to LAS = 9.899428858841683 arcsec. casa [QA] Using 9.899429 as the setting for parameter las_asec. casa [QA] L80 = 229 m equivalent to AR = 0.62493 arcsec. casa [QA] L05 = 35 m equivalent to MRS = 7.00227 arcsec. casa [QA] Will determine best-fit AR by testing five ARs in the estimated range and interpolating. casa Using best-fit Angular Resolution: 0.6014511650144415 arcsec. casa [QA] Shortest and longest expected BL: 10 m, 500 m casa [QA] FF bin boundaries for AZ 0.0-45.0 deg = [6, 55, 104, 153, 202, 251, 300, 349, 398, 447, 496] casa [QA] FF bin filling fractions for AZ 0.0-45.0 deg = [2.1475, 1.6375, 1.1251, 0.6737, 0.7583, 0.9234, 1.2629, 1.4895, 0.6533, 2.304] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 6.3536 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.5963 arcsec . casa [QA] FF bin boundaries for AZ 45.0-90.0 deg = [6, 55, 104, 153, 202, 251, 300, 349, 398, 447, 496] casa [QA] FF bin filling fractions for AZ 45.0-90.0 deg = [2.4463, 1.3576, 0.8372, 0.6391, 0.5943, 0.3843, 0.4503, 0.5189, 0.6121, 0.0] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 8.1744 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.6522 arcsec . casa [QA] FF bin boundaries for AZ 90.0-135.0 deg = [6, 55, 104, 153, 202, 251, 300, 349, 398, 447, 496] casa [QA] FF bin filling fractions for AZ 90.0-135.0 deg = [2.3644, 1.2212, 0.8605, 0.7018, 0.6388, 0.5643, 0.3786, 0.5272, 0.7064, 1.5146] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 8.1744 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.6525 arcsec . casa [QA] FF bin boundaries for AZ 135.0-180.0 deg = [6, 55, 104, 153, 202, 251, 300, 349, 398, 447, 496] casa [QA] FF bin filling fractions for AZ 135.0-180.0 deg = [2.0516, 1.6181, 1.0412, 0.7126, 0.7754, 1.0204, 1.851, 1.1638, 1.7155, 0.7659] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 6.1212 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.5901 arcsec . casa [QA] FF AZ Avg [2.2525, 1.4586, 0.966, 0.6818, 0.6917, 0.7231, 0.9857, 0.9248, 0.9218, 1.1462] casa [QA] Estimated average MRS at level 2.0 from the sensitivity plot MRS_L = 7.2059 arcsec. casa [QA] The estimated average MRS at level 2.0 is smaller than the requested one by 27.2092% casa [QA] Estimated average AR at level 2.0 from the sensitivity plot AR_L = 0.6228 arcsec. casa [QA] FF Chi2 of AZ const fit [0.0185, 0.054, 0.0582, 0.0065, 0.0459, 0.4754, 1.4111, 0.7566, 0.92, 2.0685] casa [QA] Baseline orientation is not homogeneous in BL range 9 = 447 m - 496 m casa [QA] Baseline orientation is not homogeneous in 1 BL ranges. casa [QA] Dataset has 2 uv coverage defects for _12M_248.023GHz AR=0.601 arcsec, LAS=9.899arcsec casa [QA] Summary of defects found: casa [QA] Baseline orientation is not homogeneous in BL range 9 = 447 m - 496 m casa [QA] Filling fraction below 0.5 in upper 10% of expectation bin range for AZ 45.0-90.0 deg .
Example of a report from a dataset with worse uv coverage
casa [QA] Version: $Id: assess_ms xxx $ casa [QA] assess_ms(vis=['uid___A002_Xce574d_Xb2f5.ms.split.cal', 'uid___A002_Xce741a_X2845.ms.split.cal', 'uid___A002_Xcef406_Xd515.ms.split.cal', 'uid___A002_Xcf0c6b_X7652.ms. split.cal', 'uid___A002_Xcf196f_X482b.ms.split.cal', 'uid___A002_Xcf196f_X5cb7.ms.split.cal', 'uid___A002_Xcf196f_Xb30d.ms.split.cal'], freq_ghz=None, ar_asec_range=[-1.0, -1.0], l as_asec=-1.0, time_s=-1.0, targetid=None, repspwid=None, condition=c, pass_thresh=0.25, az_inhomogen_limit=2.0, storagedir=./output_assess_ms, binningversion=2, expcalcversion=-1, relweighting=False, ffplotlim=0.0, nffradbins=-1, nffazbins=4, plotname=, havegroup=False, grouping=-1, QA2mode=False, ) casa [QA] parameter ar_asec_range was not specified. Will estimate it from the observed BLD. casa [QA] parameter las_asec was not specified. Will estimate requested LAS from the observed BLD. casa [QA] MS uid___A002_Xce574d_Xb2f5.ms.split.cal has average Tsys 115.287 K (approx. expected Tsys at 336.4711375 GHz: 156.888 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 1.8519 . Will limit it to 1.5, equiv. to Tsys_EB = 128.0985 K) casa [QA] MS uid___A002_Xce741a_X2845.ms.split.cal has average Tsys 137.5665 K (approx. expected Tsys at 336.4711375 GHz: 156.888 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 1.3006 . casa [QA] MS uid___A002_Xcef406_Xd515.ms.split.cal has average Tsys 135.3198 K (approx. expected Tsys at 336.4711375 GHz: 156.888 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 1.3442 . casa [QA] MS uid___A002_Xcf0c6b_X7652.ms.split.cal has average Tsys 128.1207 K (approx. expected Tsys at 336.4711375 GHz: 156.888 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 1.4995 . casa [QA] MS uid___A002_Xcf196f_X482b.ms.split.cal has average Tsys 151.0138 K (approx. expected Tsys at 336.4711375 GHz: 156.888 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 1.0793 . casa [QA] MS uid___A002_Xcf196f_X5cb7.ms.split.cal has average Tsys 155.7811 K (approx. expected Tsys at 336.4711375 GHz: 156.888 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 1.0143 . casa [QA] MS uid___A002_Xcf196f_Xb30d.ms.split.cal has average Tsys 120.006 K (approx. expected Tsys at 336.4711375 GHz: 156.888 K) casa [QA] The (Tsys_exp/Tsys_EB)^2 value is 1.7091 . Will limit it to 1.5, equiv. to Tsys_EB = 128.0985 K) casa [QA] ALMA 12m only dataset detected, therefore using analytical expectation function. casa [QA] This dataset contains only ALMA 12M data. casa [QA] Total time on-source over all MSs (taking into account flagging) for field U4-190: 214.2 s casa [QA] Total expected observation time is -1.0 s. casa [QA] Not using an assumption of total antenna number for expectation but using number of visibilities directly. casa [QA] Shortest baseline: 12.9347 m (found in MS uid___A002_Xcf196f_X482b.ms.split.cal) casa [QA] Longest baseline: 310.7672 m (found in MS uid___A002_Xcf196f_Xb30d.ms.split.cal) casa [QA] observed L80 is ca. 162 m equivalent to AR = 0.6517704990897286 arcsec. casa [QA] Using [0.586593, 0.716948] as the setting for parameter ar_asec_range. casa [QA] observed L05 is ca. 20 m equivalent to LAS = 8.864131326373967 arcsec. casa [QA] Using 8.864131 as the setting for parameter las_asec. casa [QA] L80 = 129 m equivalent to AR = 0.81775 arcsec. casa [QA] L05 = 24 m equivalent to MRS = 7.52732 arcsec. casa [QA] Will determine best-fit AR by testing five ARs in the estimated range and interpolating. casa Using best-fit Angular Resolution: 0.8632071975474948 arcsec. casa [QA] Shortest and longest expected BL: 8 m, 308 m casa [QA] FF bin boundaries for AZ 0.0-45.0 deg = [6, 36, 66, 96, 126, 156, 186, 216, 246, 276, 306] casa [QA] FF bin filling fractions for AZ 0.0-45.0 deg = [1.8969, 1.3648, 1.0953, 0.9923, 0.9319, 0.5808, 0.4715, 0.2132, 0.0, 0.0] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 7.2347 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.897 arcsec . casa [QA] FF bin boundaries for AZ 45.0-90.0 deg = [6, 36, 66, 96, 126, 156, 186, 216, 246, 276, 306] casa [QA] FF bin filling fractions for AZ 45.0-90.0 deg = [2.0027, 0.9644, 1.008, 0.6563, 0.3041, 0.3034, 0.2792, 0.0, 0.0, 0.0] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 8.7514 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.9131 arcsec . casa [QA] FF bin boundaries for AZ 90.0-135.0 deg = [6, 36, 66, 96, 126, 156, 186, 216, 246, 276, 306] casa [QA] FF bin filling fractions for AZ 90.0-135.0 deg = [2.0804, 1.2294, 0.8578, 0.7836, 0.5117, 0.4616, 0.6804, 0.6963, 0.5046, 1.0572] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 8.7514 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.7894 arcsec . casa [QA] FF bin boundaries for AZ 135.0-180.0 deg = [6, 36, 66, 96, 126, 156, 186, 216, 246, 276, 306] casa [QA] FF bin filling fractions for AZ 135.0-180.0 deg = [2.0012, 1.27, 1.2892, 1.0807, 1.3483, 0.9756, 0.9619, 1.2526, 1.3313, 0.9027] casa [QA] Estimated MRS at level 2.0 from the sensitivity plot MRS_L = 6.554 arcsec . casa [QA] Estimated AR at level 2.0 from the sensitivity plot AR_L = 0.7648 arcsec . casa [QA] FF AZ Avg [1.9953, 1.2071, 1.0626, 0.8783, 0.774, 0.5804, 0.5983, 0.5405, 0.459, 0.49] casa [QA] Estimated average MRS at level 2.0 from the sensitivity plot MRS_L = 7.8229 arcsec. casa [QA] The estimated average MRS at level 2.0 is smaller than the requested one by 11.7468% casa [QA] Estimated average AR at level 2.0 from the sensitivity plot AR_L = 0.8411 arcsec. casa [QA] FF Chi2 of AZ const fit [0.004, 0.056, 0.0799, 0.1347, 0.9959, 0.6792, 0.6644, 2.9494, 5.2055, 3.7497] casa [QA] Baseline orientation is not homogeneous in BL range 7 = 216 m - 246 m casa [QA] Baseline orientation is not homogeneous in BL range 8 = 246 m - 276 m casa [QA] Baseline orientation is not homogeneous in BL range 9 = 276 m - 306 m casa [QA] Baseline orientation is not homogeneous in 3 BL ranges. casa [QA] Dataset has 9 uv coverage defects for _12M_336.471GHz AR=0.863 arcsec, LAS=8.864arcsec casa [QA] Defects found: casa [QA] Baseline orientation is not homogeneous in BL range 7 = 216 m - 246 m casa [QA] Baseline orientation is not homogeneous in BL range 8 = 246 m - 276 m casa [QA] Baseline orientation is not homogeneous in BL range 9 = 276 m - 306 m casa [QA] Filling fraction below 0.25 in range 70.0% - 80.0% for AZ 0.0-45.0 deg : 0.2132 casa [QA] Filling fraction below 0.25 in range 70.0% - 80.0% for AZ 45.0-90.0 deg : 0.0 casa [QA] Filling fraction below 0.25 in range 80.0% - 90.0% for AZ 0.0-45.0 deg : 0.0 casa [QA] Filling fraction below 0.25 in range 80.0% - 90.0% for AZ 45.0-90.0 deg : 0.0 casa [QA] Filling fraction below 0.5 in upper 10% of expectation bin range for AZ 0.0-45.0 deg . casa [QA] Filling fraction below 0.5 in upper 10% of expectation bin range for AZ 45.0-90.0 deg .
Understanding the uv coverage report
The assessment loops over the input MSs one or more times to determine the overall properties of the dataset and then computes an expected 2D BLD to compare the observed BLD to.
The comparison of observed and expected BLD then accumulates a list of "defects" which is shown at the end of the report under the title "Summary of defects found".
Based on the number and nature of these defects, one may come to a decision on whether the uv coverage can be regarded as good.
The following table shows the types of defects and an indication of their severity (FF is the abbreviation for "Filling Fraction" = ratio of observed BLD entry and expected entry):
| Defect Type | Severity |
|---|---|
| Individual 2D BLD bin FF below 0.25 (12M) or 0.35 (7M) | minor |
| Baseline orientation is not homogenous in AZ in one radial bin | minor |
| FF below 0.5 in uppermost bin of expectation range for one AZ bin | minor |
| FF below 0.5 in uppermost bin of expectation range for all AZ bins | major |
| 2D BLD FF in whole 45 deg AZ sector is below 0.5Â | major |
| 2D BLD FF in the same radial bin for all AZ is below 0.25 | major |
| Mosaic coverage is incomplete by more than 1% | major |
This means that if the FF is low (<25% for 12M, <35% for 7M) only in individual AZ bins, a few of such defects can be tolerated.
Equally if the the coverage is not sufficiently homogenous in individual radial bins.
However, if the filling fraction is below 50%Â in the same radial bin across all AZ bins, this is reason to have a closer look at the uv coverage.
Same if the FF for the longest baselines is low.
If the filling fraction is below 50% for all radial bins in the same AZ sector (drop-out sector), you should have a closer look at your PSF.
Finally, if the observation is a mosaic, then if there is more than 1% of all mosaic fields not covered, this is reported as a defect, even though it is not technically one of uv coverage.
More important than the number of defects is looking at their types and the study of the diagnostic plots.
The most egregious defect is the drop-out of complete AZ sectors because this means that your dataset is missing information on a complete range of
baseline orientations and so your image may show a distorted, misleading shape of the brightness distribution.
Diagnostic plots
The 1D baseline length distribution (BLD): observed, expected
The plotted expectations are for max angular resolution (AR) value (worst resolution, black), and for min ang. res. value (best resolution, green). These are the values +-20% away from the nominal value used to compute the expectation.
The exact values used (arcsec) are given by the last two numbers in the title of the plot.Â
The expectation optimises PSF shape, i.e. represents the most "Gaussian" PSF for the given angular resolution and overall sensitivity assuming 43 antennas for the 12M array (see 7M and Group processing notes further below).
It also tries to satisfy the LAS requirement but is not meant for verifying the achievement of the LAS.
The 1D Filling Fraction (FF)
The FF is based on the expectation for the AR derived from the L80 (in 10 equidistant bins of baseline length (BL) between min and max BL).
The expectation used here has the same functional form as the ones shown in the BLD plot above, but is computed specifically for the AR derived from a fit of the expectation to the observation, or if that fails, from the L80 of the observation.
The AR is given in the file name and plot title. If the AR was derived from the L80, also the string "L80" is added to the file name and plot title.
This scheme is also applied to the other diagnostic plots
NOTE: we define the FF as the ratio observed/expected weighted sum of integration count in each BL bin.
The weights take into account Tsys differences between antennas within one EB and absolute average Tsys differences between EBs. In order to mimic the execution fraction calculation, the average Tsys of each EB is limited to a maximum of 1.5 times the expected Tsys for the representative observing frequency from the ALMA sensitivity calculator.
NOTE: this plot is produced in two versions once for all azimuthal sectors combined and once as four overlayed per-sector plotsÂ
The 2D Filling Fraction (FF)
... based on the same parameters as the 1D FF but calculated for 4 (four) azimuthal 45 degree sectors separately.
NOTE: since the "sign", i.e., the direction of the baseline vector can be ignored, the baseline orientation is an angle between 0 deg and 180 deg only. The other half of the plot is simply a mirror copy of the first half for convenience.Â
The plotted FF is capped at 2.5 so the color scale can show more details in the important range between 0 and 2.
Good sensitivity (for optimal PSF) is achieved in all green and blue regions. Pink regions are overexposed.
In red regions, the sensitivity is below the acceptable limit.
The Azimuthal Inhomogeneity plot
In each of the ten BL bins, the value of the FF should ideally be the same in each of the four azimuthal sectors. This plot shows the chi2 of a fit of a constant function to the four values of the azimuthal bins for each BL range.Â
These values quantify what can be seen tentatively already from the inspection of the 2D FF and EF plots.
A chi2 value > 2.0 is a sign for strongly different values in different sectors which is equivalent to having a very asymmetric beam for the corresponding BL bin.
The hour-angle plot
This plot is a histogram of the hourangle of the science target with an entry for each integration (for a channel of the representative SPW). The plot is related to the azimuthal completeness of the uv coverage since wide hour-angle coverage increases the completeness of the "tracks" of each baseline in the uv plane.
The ideal hourangle plot is symmetric around HA == 0 h (culmination) and covers a range of at least 4 hours. Â
The relative sensitivity as a function of BL (a.k.a. "flat sensitivity" plot)
For each of the ten BL bins, this plot shows the ratio of the achieved image RMS and the expected RMS assuming that the overall sensitivity is achieved evenly over the total expected angular scale (baseline length) range. On this plot "smaller is better". The naively expected value is unity (1.0) in all ten bins. A useful value for the max recoverable scale and the angular resolution can be defined as the largest and smallest angular scales (smallest and largest baseline lengths)Â where the entries in this plot rise above 2.0, i.e. where the RMS is twice as large as expected. If the RMS does not reach this value at one or both ends, the computation falls back to using the L05 for the MRS and the center of the upper-most BL bin for the AR.
NOTE: this plot is produced five times: once for all azimuthal sectors combined and one each for the four sectors.
The Mosaic Field Check plotÂ
If the observation is a mosaic, the PSF will be assessed for all fields (pointings) combined to produce the plots described above.
In addtion, the mosaic fields will also be assessed separately by creating 1D FF plots for each of them and overlaying them into one plot colorizing by field.
The expectation for ideal PSF will also be shown (in black).
Any mosaic fields which have a uv coverage which deviates significantly from the others will be immediately obvious.
Usually, the agreement among the fields is very good. If that is the case, all other diagnostics can be interpreted as if the observation had only a single field.
Â
The Missing Visibilities plot
This plot complements the 2D FF plot by showing in which areas of 2D BL plane additional observations would be required to achieve the most Gaussian PSF.
The requirement is shown in each bin in units of "visibility seconds" similar to the 1D BLD plot.Â
The chi2 vs. AR plot
This plot shows the chi^2 values (arbitrary scale) of the attempted fit of the expected BL distribution shape to the observed one in order to determine the achieved AR.
Five values are computed over a range of AR values and then a parabola is fit to these chi2 values. The AR corresponding to the minimum of the parabola is chosen as the best fit.
If the minimum is well outside the expected range or the minimum is not well determined, the fit is declared as failed and the AR is determined via the L80 instead.
Running on 7M data
With release 3.0, assess_ms is better prepared to judge pure 7M array data. The shape of the expectation function has been switched to use the "filled dish" function, and the baseline length binning is better suited to the short baseline length range.
assess_ms will automatically recognize a pure 7M dataset and adapt to it.
Plots for pure 7M datasets have a "7M" in their filename (while plots for pure 12M datasets have a "12M").
Running on Groups
With release 3.0, assess_ms for the first time is capable of processing pure 12M (TM1+TM2), and 12M+7M GOUSs.
The usage pattern is the same as for individual MOUSs. All MSs belonging to the GOUS are placed into one directory, and then assess_ms is run on them.
assess_ms will automatically recognize if the input MSs belong to more than one MOUS and if so, it will assume it is processing a GOUS. It will not verify whether the MOUSs actually belong to the same GOUS.
Based on the properties of the GOUS or self-composed Group, which assess_ms finds in the working directory, it will construct an expectation for the BL distribution using the "analytical" function, i.e. the one which is also used for pure 12M data.
The 7M data, it present will be filled into the same histograms as the 12M data with reduced weight according to the different dish diameters.
Adding TP (single dish) data is not yet supported.
When processing a Group, assess_ms will neither produce diagnostics related to mosaic completeness nor an hourangle plot. (Run on the individual MOUSs first in order to see these.)
For Groups, the radial binning in filling fraction plots is using 16 bins if there is a 7M component.Â
Note that only for Groups and only in the observed and expected BLD plot, a special binning is used in which the bin width grows linearly with baseline length. This was done to have sufficient statistics in the bins for the longest baselines and sufficient resolution at the shortest baselines.






















