Spectralindex

From CASA Guides
Jump to navigationJump to search

Return to Analysis Utilities

This page documents the spectralindex function of the linfit class in the Python module analysisUtils.

This function is designed to fit a power-law spectral index to the results output from casa's fluxscale task (using scipy.optimize.leastsq). Currently, it also requires a listobs-generated ascii file as the first argument in order to determine the center frequencies of each spectral window. (To avoid the need for this file in the future, we have submitted an improvement request for fluxscale to also print these frequencies.) By default, it estimates the uncertainties of the fitted slope and amplitude from the square root of the diagonals of the covariance matrix. Alternatively, there is an option to run a Monte-Carlo series of fits to empirically determine the uncertainties. Finally, it produces a plot summarizing the results. By default, it will use all spectral windows, but it will exclude those with an "INSUFFICIENT DATA" status from fluxscale (which can arise in high-frequency EVLA data if you have not split off the pointing spws).

Usage:

au.spectralindex(filename, yfilename="", source="", verbose=False, maxpoints=0, trials=0, spw="", plotdir="", labelspw=False, referenceFrame='TOPO', plaintext=False, lineNumbers=None, columns=None, yscale=1.0, plotunits='linear')

   filename: contains a listobs output file
   yfilename: contains a fluxscale output file
   source: sourcename to choose from the (possibly) multi-source fluxscale file
   maxpoints: the maximum number of spws to select for the fit starting from the first one (0=no max)
   trials: if > 0, use a Monte-Carlo technique estimate the fit uncertainties,
      otherwise, use the sqrt(covarMatrix) from scipy.optimize.leastsq (default).
      (There is a minimum number of 100 trials, and ~1000 is recommended.)
   spw: the spws to use, e.g. ""=all, "1~3,5,6~8"=[1,2,3,5,6,7,8]
   plotdir: the directory in which to write the plotfile (in case you don't have permission in the pwd)
   labelspw: draw spw numeric labels adjacent to each point
   referenceFrame: the frequency reference frame in the listobs file, if not 'TOPO'
   plaintext: if True, then read the freqs, flux densities and uncertainties from a single plain text file, 
      specified by filename, with one measurement per line with a format of 
      "frequency_in_GHz flux_density uncertainty"
   lineNumbers: which lines to read, where 1 is the first line in the file (default=all)
   columns: which columns to read for freq, flux, error (starting at 1) (default=[1,2,3])
   yscale: factor by which to scale the y values after reading them from the file
   plotunits: 'linear' or 'log' (only used if trials==0)

Examples

# In CASA
CASA <6>: au.spectralindex('13A-287.sb24170282.eb24176850.56505.0217034838.ms.listobs','fluxdensities.log',labelspw=T)
Skipping spw 0 due to INSUFFICIENT DATA result from fluxscale.
Skipping spw 1 due to INSUFFICIENT DATA result from fluxscale.
Read 64 x values for J1215-1731 (avg=44700.000)
Read 64 y values for J1215-1731 (avg=0.998)
Error-weighted fit: Slope: -0.564+-0.086  Flux D. @ 47.240GHz: 0.966+-0.002
   Un-weighted fit: Slope: -0.584         Flux D. @ 47.240GHz: 0.965
Plot saved in /tmp/fluxdensities.log.J1215-1731.png

File formats

The listobs file should be a file generated by the listfile option of listobs (or at least the excerpt containing the spw information). It is keying off the referenceFrame string (default = "TOPO"), so there can be any number of leading or trailing comment characters on each line, and any number of unrelated lines of text at the top or bottom. It also works if the spw name is present, or not present (casa < 4.1). Here is an example of the old-style listobs format (which still works):

 SpwID  #Chans Frame Ch1(MHz)    ChanWid(kHz)  TotBW(kHz)  Corrs
  0         128 TOPO  39926       1000          128000      RR  LL
  1         128 TOPO  40054       1000          128000      RR  LL
  2         128 TOPO  40182       1000          128000      RR  LL
  3         128 TOPO  40310       1000          128000      RR  LL
  4         128 TOPO  40438       1000          128000      RR  LL
  5         128 TOPO  40566       1000          128000      RR  LL
  6         128 TOPO  40694       1000          128000      RR  LL
  7         128 TOPO  40822       1000          128000      RR  LL
  8         128 TOPO  42248       1000          128000      RR  LL
  9         128 TOPO  42376       1000          128000      RR  LL
  10        128 TOPO  42504       1000          128000      RR  LL
  11        128 TOPO  42632       1000          128000      RR  LL
  12        128 TOPO  42760       1000          128000      RR  LL
  13        128 TOPO  42888       1000          128000      RR  LL
  14        128 TOPO  43016       1000          128000      RR  LL
  15        128 TOPO  43144       1000          128000      RR  LL

Similarly, the fluxscale file should look like this. It can contain the results for multiple sources. It is keying off of the string 'SpW', so there can be any number of leading comment characters on each line, and any number of unrelated lines of text at the top.

# Found reference field(s): J1331+3030
# Found transfer field(s):  J1717-3342 J1924-2914
# Flux density for J1717-3342 in SpW=0 is: 1.81919 +/- 0.0271038 (SNR = 67.1192, N= 40)
# Flux density for J1717-3342 in SpW=1 is: 1.79095 +/- 0.0272306 (SNR = 65.7698, N= 40)
# Flux density for J1717-3342 in SpW=2 is: 1.7854 +/- 0.0267479 (SNR = 66.7493, N= 40)
# Flux density for J1717-3342 in SpW=3 is: 1.77486 +/- 0.0272127 (SNR = 65.222, N= 40)
# Flux density for J1717-3342 in SpW=4 is: 1.77261 +/- 0.0278025 (SNR = 63.7573, N= 40)
# Flux density for J1717-3342 in SpW=5 is: 1.77175 +/- 0.0280525 (SNR = 63.1585, N= 40)
# Flux density for J1717-3342 in SpW=6 is: 1.76183 +/- 0.0287407 (SNR = 61.3007, N= 40)
# Flux density for J1717-3342 in SpW=7 is: 1.76226 +/- 0.0288519 (SNR = 61.0795, N= 40)
# Flux density for J1717-3342 in SpW=8 is: 1.7605 +/- 0.0303092 (SNR = 58.0849, N= 40)
# Flux density for J1717-3342 in SpW=9 is: 1.76177 +/- 0.0301251 (SNR = 58.4819, N= 40)
# Flux density for J1717-3342 in SpW=10 is: 1.75611 +/- 0.0296369 (SNR = 59.2543, N= 40)
# Flux density for J1717-3342 in SpW=11 is: 1.74256 +/- 0.0300252 (SNR = 58.0368, N= 40)
# Flux density for J1717-3342 in SpW=12 is: 1.7471 +/- 0.0304127 (SNR = 57.4463, N= 40)
# Flux density for J1717-3342 in SpW=13 is: 1.75201 +/- 0.0304666 (SNR = 57.5059, N= 40)
# Flux density for J1717-3342 in SpW=14 is: 1.74798 +/- 0.0303736 (SNR = 57.5495, N= 40)
# Flux density for J1717-3342 in SpW=15 is: 1.74099 +/- 0.0306128 (SNR = 56.8714, N= 40)
# Flux density for J1924-2914 in SpW=0 is: 13.5637 +/- 0.0392228 (SNR = 345.812, N= 40)
# Flux density for J1924-2914 in SpW=1 is: 13.393 +/- 0.0400481 (SNR = 334.424, N= 40)
# Flux density for J1924-2914 in SpW=2 is: 13.3472 +/- 0.0388534 (SNR = 343.528, N= 40)
# Flux density for J1924-2914 in SpW=3 is: 13.3187 +/- 0.0386627 (SNR = 344.483, N= 40)
# Flux density for J1924-2914 in SpW=4 is: 13.3088 +/- 0.0386251 (SNR = 344.564, N= 40)
# Flux density for J1924-2914 in SpW=5 is: 13.2596 +/- 0.0392739 (SNR = 337.62, N= 40)
# Flux density for J1924-2914 in SpW=6 is: 13.2172 +/- 0.0413275 (SNR = 319.816, N= 40)
# Flux density for J1924-2914 in SpW=7 is: 13.2503 +/- 0.0422232 (SNR = 313.815, N= 40)
# Flux density for J1924-2914 in SpW=8 is: 13.1581 +/- 0.0434202 (SNR = 303.042, N= 40)
# Flux density for J1924-2914 in SpW=9 is: 13.1242 +/- 0.0443572 (SNR = 295.875, N= 40)
# Flux density for J1924-2914 in SpW=10 is: 13.0839 +/- 0.0432023 (SNR = 302.853, N= 40)
# Flux density for J1924-2914 in SpW=11 is: 13.0526 +/- 0.0424958 (SNR = 307.15, N= 40)
# Flux density for J1924-2914 in SpW=12 is: 13.0662 +/- 0.0436696 (SNR = 299.206, N= 40)
# Flux density for J1924-2914 in SpW=13 is: 13.057 +/- 0.0440618 (SNR = 296.335, N= 40)
# Flux density for J1924-2914 in SpW=14 is: 13.0354 +/- 0.0437052 (SNR = 298.257, N= 40)
# Flux density for J1924-2914 in SpW=15 is: 13.0241 +/- 0.0444637 (SNR = 292.915, N= 40)