sdatmcor
- sdatmcor(infile='', datacolumn='data', outfile='', overwrite=False, field='', spw='', scan='', antenna='', correlation='', timerange='', intent='', observation='', feed='', msselect='', outputspw='', gainfactor='1.0', dtem_dh='', h0='', atmtype=2, atmdetail=False, altitude='', temperature='', pressure='', humidity=-1, pwv='', dp='', dpm=-1, layerboundaries='', layertemperature='')[source]
Offline correction of residual atmospheric features
[Description] [Examples] [Development] [Details]
- Parameters
infile (string=’’) - name of input MS.
datacolumn (string=’data’) - name of data column to be used [“data”, “float_data”, or “corrected”]
outfile (string=’’) - name of output MS.
overwrite (bool=False) - allow to overwrite the output file if already exists.
field (string=’’) - field(s) to select
spw (string=’’) - spws to select
scan (string=’’) - Scan number range
antenna (string=’’) - Select data based on antenna
correlation (string=’’) - Correlation (polarization) types or expression
timerange (string=’’) - Range of time to select from data
intent (string=’’) - Scan Intent(s)
observation (string=’’) - Observation ID range
feed (string=’’) - feed selection
msselect (string=’’) - Complicated data selection using TaQL
outputspw (string=’’) - select spws to output, same syntax of spw.(”” = all)
gainfactor ({double, record, string}=’1.0’) - Gain factor to multiply correction term
dtem_dh ({string, double}=’’) - temperature gradient [K/km], e.g. -5.6. (”” = Tool default)
h0 ({string, double}=’’) - scale height for water [km], e.g. 2.0. (”” = Tool default)
atmtype (int=2) - Specify atmtype as integer. Options are 1: tropical, 2: mid latitude summer, 3: mid latitude winter, 4: subarctic summer, 5: subarctic winter
atmdetail (bool=False) - Expose sub-parameters if True.
atmdetail = True
altitude ({string, double}=’’) - Site altitude [m]. (”” = value from MS.)
temperature ({string, double}=’’) - Ambient temperature [K]. (”” = value from MS.)
pressure ({string, double}=’’) - Ambient pressure [mbar]. (”” = value from MS.)
humidity (double=-1) - Relative humidity [percent]. -1 or the value (0.0 - 100.0) (-1 = Tool default)
pwv ({string, double}=’’) - Zenith water vapor [mm]. (”” = Tool default)
dp ({string, double}=’’) - Initial pressure step [mbar].(”” = Tool default)
dpm (double=-1) - Pressure multiplicative factor for steps. (-1 = Tool default)
layerboundaries ({string, stringVec, doubleVec}=’’) - Altitude of user-defined temperature profile [m]. (”” = Tool default)
layertemperature ({string, stringVec, doubleVec}=’’) - User-defined temperature profile [K]. (”” = Tool default)
- Description
The task sdatmcor provides the capability of offline correction of residual atmospheric features in the calibrated single-dish spectra which result from the difference of elevation angle between ON_SOURCE and OFF_SOURCE measurements.
The correction factor is derived from the atmosphere model based on the atmospheric properties (temperature, pressure, etc.) measured during the observation. The model is constructed by the atmosphere (at) tool.
For spw selection, two selection parameters, spw and outputspw, are available. The former specifies the data to be corrected while the latter corresponds to the spw for output. In practice, intersection of spw and outputspw is corrected. For example, when spw=’19,23’ and outputspw=’19’, spw 23 is not corrected because data for spw 23 is not written to outfile so that the correction is not meaningful. For data selection parameters other than spw, only data selected by data selection parameters are corrected and written to the outfile.
Note that outfile will have the data column DATA regardless of what data column exists in infile.
References
Sawada, T. et al., 2021, PASP, 133, 034504 ( arXiv:2101.11450 )
- Examples
Example 1
The simplest example that processes all the data.
sdatmcor(infile='sd_data.ms', datacolumn='float_data', outfile='sd_data.atmcor.ms', overwrite=True)
Example 2
This example applies correction only to spw 23 but outputs all the data. Other spws are included in outfile but are not corrected.
sdatmcor(infile='sd_data.ms', datacolumn='float_data', outfile='sd_data.atmcor.ms', spw='23', overwrite=True)
Example 3
This example applies correction only to spw 23 and output only spw 23. Note that the only difference from Example 2 is that outputspw is set instead of spw.
sdatmcor(infile='sd_data.ms', datacolumn='float_data', outfile='sd_data.atmcor.ms', outputspw='23', overwrite=True)
Example 4 (not practical)
This example applies correction to spw 19 and 23 and output only spw 23. In this case, correction was applied only to spw 23 because spw 19 is not supposed to be included in outfile.
sdatmcor(infile='sd_data.ms', datacolumn='float_data', outfile='sd_data.atmcor.ms', spw='19,23', outputspw='23', overwrite=True)
Example 5
This example specifies scaling factor for the correction. The scaling factor can be single float value, dictionary of the key-value pair of spw id and the float value (e.g. gainfactor={‘23’: 50.0, ‘25’: 45.0}), or name of the caltable that stores scaling factor (e.g. gainfactor=’caltablename.tbl’). Float value is set in this example.
sdatmcor(infile='sd_data.ms', datacolumn='float_data', outfile='sd_data.atmcor.ms', outputspw='23', gainfactor=50.0, overwrite=True)
Example 6
This example shows how to customize atmospheric model.
sdatmcor(infile='sd_data.ms', datacolumn='float_data', outfile='sd_data.atmcor.ms', outputspw='23', overwrite=True atmtype=1, dtem_dh='-5.7K/km', h0='2010m', atmdetail=True, altitude='5.1km', temperature='290K', pressure='700hPa', humidity=30, pwv='0.1cm', dp='10hPa', dpm=1.2, layerboundaries='800m,1.5km', layertemperature='250K,200K')
- Development
No additional development details
- Parameter Details
Detailed descriptions of each function parameter
infile (string='')
- name of input MS.datacolumn (string='data')
- name of data column to be used [“data”, “float_data”, or “corrected”]outfile (string='')
- name of output MS.overwrite (bool=False)
- allow to overwrite the output file if already exists.field (string='')
- Select fields. Use field id(s) or name(s).If field string is a non-negative integer, it is assumed tobe a field index otherwise, it is assumed to be a field name.Default: ‘’= all fieldsExample:field=’0~2’; field ids 0,1,2field=’0,4,5~7’; field ids 0,4,5,6,7field=’3C286,3C295’; field named 3C286 and 3C295field = ‘3,4C*’; field id 3, all names starting with 4Cspw (string='')
- Select spectral windowsNote that spw specifies the list of spw ids to apply correction.Spw ids to output should be specified by outputspw.Note also that channel selection is not available for this task.Default: ‘’=all spectral windowsExample:spw=’0~2,4’; spectral windows 0,1,2,4spw=’<2’; spectral windows less than 2 (i.e. 0,1)spw=’0,10’; spw 0,10scan (string='')
- Scan number rangeDefault: ‘’ (all)Example: scan=’1~5’antenna (string='')
- Select data based on antenna/baselineIf antenna string is a non-negative integer, it isassumed to be an antenna index, otherwise, it isconsidered an antenna name.If specified selection doesn’t contain any autocorrelation,the selection will be tweaked to include autocorrelation data.For example, ‘PM02’ will be interpreted as ‘PM02&&&’.Default: ‘’ (all)Example:antenna=’5&6’; baseline between antenna index 5 andindex 6.antenna=’VA05&VA06’; baseline between VLA antenna 5and 6.antenna=’5&6;7&8’; baselines 5-6 and 7-8antenna=’5’; all baselines with antenna index 5antenna=’05’; all baselines with antenna number 05(VLA old name)antenna=’5,6,9’; all baselines with antennas 5,6,9index numbercorrelation (string='')
- Correlation (polarization) types or expressionDefault: ‘’ (all correlations)Example: correlation=’XX,YY’timerange (string='')
- Range of time to select from datatimerange = ‘YYYY/MM/DD/hh:mm:ss~YYYY/MM/DD/hh:mm:ss’Note: if YYYY/MM/DD is missing date defaults to firstday in data setDefault: ‘’ (all)Example:timerange=’09:14:0~09:54:0’ picks 40 min on first daytimerange=’25:00:00~27:30:00’ picks 1 hr to 3 hr30min on NEXT daytimerange=’09:44:00’ pick data within one integrationof timetimerange=’> 10:24:00’ data after this timeintent (string='')
- Scan Intent(s)Default: ‘’ (all)Example:intent=’TARGET_SOURCE’intent=’TARGET_SOURCE1,TARGET_SOURCE2’intent=’TARGET_POINTING*’observation (string='')
- Observation ID rangeDefault: ‘’ (all observations)Example: observation=’0~5’feed (string='')
- feed selectionDefault: ‘’ (all feeds)Example: feed=’0,1’msselect (string='')
- Complicated data selection using TaQLComplicated data selection that cannot be supported by otherdata selection parameters should be specified here using TaQL.See Casacore Note 199 for detailed syntax of TaQL:Default: ‘’ (all data)Example:msselect=’ABS(DATA) < 1 && ANTENNA1 == ANTENNA2 + 1’msselect=’ROWNUMBER() < 100’outputspw (string='')
- select spws to output, same syntax of spw.(”” = all)Note that outputspw specifies the list of spw ids to output.Spw ids to be corrected should be specified by spw.Note also that channel selection is not available for this task.gainfactor ({double, record, string}='1.0')
- Gain factor to multiply correction term.In ALMA data reduction, intensity of calibrated spectra, antennatemperature Ta* in unit of Kelvin, is converted to Jansky (Jy)by multiplying conversion factor. This parameter is intended toapply exactly the same multiplicative factor to correction term.If no conversion is applied to spectral data, gainfactor shouldbe 1.0, which means that the correction is in unit of Ta*.The value can be float, dict, or string. Default is 1.0.Float value is interpreted as fixed factor, which is applied to all spws.Dict should be the pair of spw id (key) and the factor to be applied (value).Key should be string rather than int.If string is given, it should be the name of caltable. For caltable,inverse square of stored value is applied.Default: 1.0Example: 10.0{‘17’: 45.0, ‘19’: 43.5, ‘21’: 42.0, ‘23’: 40.0}‘k2jycal.tbl’dtem_dh ({string, double}='')
- temperature gradient [K/km], e.g. -5.6. (”” = Tool default)The value is directly passed to initialization method for ATM model.Float and string types are acceptable. Float value is interpreted asthe value in K/km. String value should be the numeric value with unitsuch as ‘-5.6K/km’.Default: ‘’ (tool default, -5.6K/km, is used)h0 ({string, double}='')
- scale height for water [km], e.g. 2.0. (”” = Tool default)The value is directly passed to initialization method for ATM model.Float and string types are acceptable. Float value is interpreted asthe value in kilometer. String value should be the numeric value withunit compatible with length, such as ‘2km’ or ‘2000m’.atmtype (int=2)
- Atmospheric type.The value is directly passed to initialization method for ATM model.The type should be specified as integer. Available options are,1: tropical2: mid latitude summer (default)3: mid latitude winter4: subarctic summer5: subarctic winteratmdetail (bool=False)
- Expose parameters for detailed configuration of ATM model if True.The following parameters are exposed to the user if atmdetail is True:altitudetemperaturepressurehumiditypwvdpdpmlayerboundarieslayertemperaturealtitude ({string, double}='')
- Site altitude [m].The value is directly passed to initialization method for ATM model.Float and string types are acceptable. Float value is interpreted asthe value in meter. String value should be the numeric value withunit compatible with length, such as ‘5km’ or ‘5000m’.Default value is taken from the input MS (ANTENNA table).temperature ({string, double}='')
- Ambient temperature [K].The value is directly passed to initialization method for ATM model.Float and string types are acceptable. Float value is interpreted asthe value in Kelvin. String value should be the numeric value withunit, such as ‘270K’.Default value is taken from the input MS (ASDM_CALATMOSPHERE table).pressure ({string, double}='')
- Ambient pressure [mbar].The value is directly passed to initialization method for ATM model.Float and string types are acceptable. Float value is interpreted asthe value in mbar. String value should be the numeric value withunit compatible with pressure, such as ‘1000mbar’ or ‘1000hPa’.Default value is taken from the input MS (ASDM_CALATMOSPHERE table).humidity (double=-1)
- Relative humidity [percent].If the value is explicitly specified, it should range from 0 to 100.Default value (-1) indicates that the value is taken from the input MS(ASDM_CALATMOSPHERE table).pwv ({string, double}='')
- Zenith water vapor [mm].The value is directly passed to configuration method for ATM model.Float and string types are acceptable. Float value is interpreted asthe value in millimeter. String value should be the numeric value withthe unit compatible with length, such as ‘0.3mm’Default value is taken from the input MS (ASDM_CALWVR table).dp ({string, double}='')
- Initial pressure step.The value is directly passed to initialization method for ATM model.Float and string types are acceptable. Float value is interpreted asthe value in mbar. String value should be the numeric value withunit compatible with pressure, such as ‘10mbar’ or ‘10hPa’.Default value (‘’) indicates to use tool default (10mbar).dpm (double=-1)
- Pressure multiplicative factor for steps.The value is directly passed to initialization method for ATM model.Default value (-1) indicates to use tool default (1.2).layerboundaries ({string, stringVec, doubleVec}='')
- Altitude of user-defined temperature profile.The value is directly passed to initialization method for ATM model.String, list of strings, and list of float values are acceptable.For list inputs, float values are interpreted as the value in meterwhile the string values should be the numeric value with the unitcompatible with length.For string input, the value should be comma separated list ofstrings consisting of numeric value and the unit compatible withlength.Number of values should be identical to the number for layertemperature.Default value (‘’) indicates to use tool default.Example: [1000, 2000][‘1km’, ‘2km’]‘1km,2km’layertemperature ({string, stringVec, doubleVec}='')
- User-defined temperature profile [K].The value is directly passed to initialization method for ATM model.String, list of strings, and list of float values are acceptable.For list inputs, float values are interpreted as the value in Kelvinwhile the string values should be the numeric value with unit.For string input, the value should be comma separated list ofstrings consisting of numeric value and unit.Number of values should be identical to the number for layerboundaries.Example: [250, 240][‘250K’, ‘240K’]‘250K,240K’