text:
# Description

This task can flag a MeasurementSet or a calibration table. It has two main types of operation. One type will read the parameters from the interface and flag using any of the various available modes. The other type will read the commands from a text file, a list of files or a Python list of strings, containing a list of flag commands (each line containing data selection parameters and any parameter specific for the mode being requested). Please see examples at the end of this help.

It is also possible to only save the parameters set in the interface without flagging. The parameters can be saved in the FLAG_CMD sub-table or in a text file. Note that when saving to an external file, the parameters will be appended to the given file.

The available flagging modes are: 'manual', 'clip', 'shadow', 'quack', 'elevation', 'tfcrop', 'rflag', 'extend', 'unflag' and 'summary'. For automatic flagging, it is recommended to combine auto-flag modes with 'extend', via the list mode.

The current flags can be automatically backed up before applying new flags if the parameter flagbackup is set. Previous flag versions can be recovered using the flagmanager task.

NOTE on flagging calibration tables:

flagdata can flag many types of calibration tables using mode='manual'. It can only flag using the auto-flagging algorithms ('clip', 'tfcrop', or 'rflag'), the cal tables that have the following data columns: CPARAM, FPARAM or SNR. The solution elements of the data columns are given in the correlation parameter using the names 'Sol1', 'Sol2', 'Sol3', or 'Sol4'. See examples at the end of this help on how to flag different cal tables.

When the input is a calibration table, the modes 'elevation' and 'shadow' will be disabled. Data selection for calibration tables is limited to field, scan, timerange, antenna, spw  and observation. It is only possible to save the parameters to an external file. If the calibration table was created before CASA 4.1, this task will create a dummy OBSERVATION column and OBSERVATION sub-table in the input calibration table to adapt it to the new cal table format.

Selecting antennas in some calibration tables have a different meaning compared to selecting the MS. Some calibration tables such as the antenna-based ones, created with some modes of gencal or polcal, have the ANTENNA2 column set to -1. This means that when selecting antenna='ANT', will select the whole ANT and not the cross-correlations between ANT and the other antennas. Similarly, the baseline syntax do not apply to this type of calibration tables. Those values with ampersand do not have any meaning when selecting antenna/baselines in antenna-based cal tables.

The task will flag a subset of data based on the following modes of operation:

• 'list' = list of flagging commands to apply to MS/cal table
• 'manual' = flagging based on specific selection parameters
• 'clip' = clip data according to values
• 'quack' = remove/keep specific time range at scan beginning/end
• 'elevation' = remove data below/above given elevations
• 'tfcrop' = automatic identification of outliers on the time-freq plane
• 'rflag' = automatic detection of outliers based on sliding-window RMS filters
• 'antint' = flag integrations if all baselines to a specified antenna are flagged
• 'extend' = extend and/or grow flags beyond what the basic algorithms detect
• 'summary' = report the amount of flagged data
• 'unflag' = unflag the specified data

# Parameter descriptions

#### vis

Name of input visibility file or calibration table. Default: '' (none). Examples: vis='uid___A002_X2a5c2f_X54.ms', vis='cal-X54.B1'

#### mode

Mode of operation. Options: 'list', 'manual', 'clip', 'quack', 'shadow', 'elevation', 'tfcrop', 'extend', 'unflag', 'summary'. Default: 'manual'

### mode expandable parameters (except mode='list')

#### field

Select fields in mosaic. Use field id(s) or field name(s). [go listobs to obtain the list id's or names] Default: '' = all fields. If field string is a non-negative integer, it is assumed to be a field index otherwise, it is assumed to be a field name. Examples: field='0~2', field ids 0,1,2; field='0,4,5~7', field ids 0,4,5,6,7; field='3C286,3C295', field named 3C286 and 3C295; field = '3,4C*', field id 3 and all names starting with 4C.

#### spw

Select data based on spectral window and channels. Default: '' => all spectral windows and channels. Examples: spw='0~2,4', spectral windows 0,1,2,4 (all channels); spw='0:5~61', spw 0, channels 5 to 61; spw='<2', spectral windows less than 2 (i.e. 0,1); spw='0,10,3:3~45', spw 0,10 all channels, spw 3, channels 3 to 45; spw='0~2:2~6'; spw 0,1,2 with channels 2 through 6 in each; spw='0:0~10;15~60'; spectral window 0 with channels 0-10,15-60; spw='0:0~10,1:20~30,2:1;2;3'; spw 0, channels 0-10, spw 1, channels 20-30, and spw 2, channels, 1,2 and 3.

NOTE : For modes 'clip', 'tfcrop', and 'rflag', channel-ranges can be excluded from flagging by leaving them out of the selection range. This is a way to protect known spectral-lines from being flagged by the autoflag algorithms.

#### antenna

Select data based on baseline. Default: '' (all). Examples: antenna='DV04&DV06' baseline DV04-DV06; antenna='DV04&DV06;DV07&DV10' baselines DV04-DV06 and DV07-DV10; antenna='DV06' all cross-correlation baselines between antenna DV06 and all other available antennas; antenna='DV04,DV06' all baselines with antennas DV04 and DV06; antenna='DV06&&DV06' only the auto-correlation baselines for antenna DV06; antenna='DV04&&*' cross and auto-correlation baselines between antenna DV04 and all other available antennas; antenna='0~2&&&' only the auto-correlation baselines for antennas in range 0~2

NOTE: For some antenna-based calibration tables, selecting baselines with the & syntax do not apply.

#### timerange

Select data based on time range. Default: '' (all). Examples: timerange = 'YYYY/MM/DD/hh:mm:ss~YYYY/MM/DD/hh:mm:ss';

NOTE: if YYYY/MM/DD is missing date defaults to first day in data set.

timerange='09:14:0~09:54:0' picks 40 min on first day; timerange='25:00:00~27:30:00' picks 1 hr to 3 hr 30min on NEXT day; timerange='09:44:00' pick data within one integration of time; timerange='>10:24:00' data after this time.

#### correlation

Correlation types or expression. Default: '' (all correlations). For modes clip, tfcrop or rflag, the default means ABS_ALL. If the input is cal table that does not contain a complex data column, the default will fall back to REAL_ALL. Examples: correlation='XX,YY' or options: Any of 'ABS', 'ARG', 'REAL', 'IMAG', 'NORM' followed by any of 'ALL', 'I', 'XX', 'YY', 'RR', 'LL', 'WVR'. 'WVR' refers to the water vapour radiometer of ALMA data. For calibration tables, the solutions are: 'Sol1', 'Sol2', Sol3, Sol4. Correlation selection is not supported for modes other than 'clip', 'tfcrop', or 'rflag' in cal tables.

NOTE: The operators ABS, ARG, REAL, etc. are written only once as the first value. If more than one correlation is given, the operator will be applied to all of them. The expression is used only in modes 'clip', 'tfcrop', and 'rflag'.

#### scan

Scan number range. Default: '' (all). Examples: scan='1~5'. Check 'go listobs' to insure the scan numbers are in order.

#### intent

Select data based on scan intent. Intent selection is not supported for cal tables. Default: '' (all). Examples: intent='*CAL*,*BAND*'

#### array

Selection based on the antenna array. Array selection is not supported for cal tables. Default: '' (all).

#### uvrange

Select data within uvrange (default units meters). Default: '' (all). Examples: uvrange='0~1000klambda', uvrange from 0-1000 kilo-lambda; uvrange='>4klambda', uvranges greater than 4 kilo lambda. uvrange selection is not supported for cal tables.

#### observation

Selection based on the observation ID. Default: '' (all). Examples: observation='1' or observation=1

#### feed

Selection based on the feed - NOT IMPLEMENTED YET

### mode='manual' expandable parameters

Flag according to the data selection specified. This is the default mode (used when the mode is not specified).

#### autocorr

Flag only the auto-correlations. Note that this parameter is only active when set to True. If set to False it does NOT mean "do not flag auto-correlations". When set to True, it will only flag data from a processor of type CORRELATOR. Default: False. Otions: True, False

### mode='list' expandable parameters

Flag according to the data selection and flag commands specified in the input list. The input list may come from a text file, a list of text files or from a Python list of strings. Each input line may contain data selection parameters and any parameter specific to the mode given in the line. Default values will be used for the parameters that are not present in the line. Each line will be taken as a command to the task. If data is pre-selected using any of the selection parameters, then flagging will apply only to that subset of the MS.

For optimization and whenever possible, the task will create a union of the data selection parameters present in the list and select only that portion of the MS.

NOTE1: The flag commands will be applied only when action='apply'. If action='calculate' the flags will be calculated, but not applied. This is useful if display is set to something other than 'none'. If action='' or 'none', the flag commands will not be applied either. An empty action is useful only to save the parameters of the list to a file or to the FLAG_CMD sub-table.

NOTE2: quackincrement = True works based on the state of prior flagging, and unless it is the first item in the list the agent doing the quacking in list mode doesn't know about the state of prior flags. In this case, the command with quackincrement=True  will be ignored and the task will issue a WARNING.

#### inpfile

Input ASCII file, list of files or a Python list of command strings. Default: ''. Options: [ ] with flag commands or [ ] with filenames or ' ' with a filename.

IMPORTANT: From CASA 4.3 onwards, the parser will be strict and accept only valid flagdata parameters in the list. It will check each parameter name and type and exit with an error if any of them is wrong. String values must contain quotes around them or the parser will not work. The parser evaluates the commands in the list and considers only existing Python types.

NOTE: There should be no whitespace between KEY=VALUE since the parser first breaks command lines on whitespace, then on "=". Use only one whitespace to separate the parameters (no commas). Scroll down to the bottom to see a detailed description of the input list syntax..

Example1: The following commands can be saved to a file or group of files and given to the task (e.g., save it to 'flags.txt'):

scan='1~3' mode='manual'mode='clip' clipminmax=[0,2] correlation='ABS_XX' clipoutside=Falsespw='9' mode='tfcrop' correlation='ABS_YY' ntime=51.0mode='extend' extendpols=True

flagdata(vis, mode='list', inpfile='flags.txt')

or

flagdata(vis, mode='list', inpfile=['onlineflags.txt' ,'otherflags.txt'])

Example2: The same commands can be given in a Python list on the command line to the task.

cmd=["scan='1~3' mode='manual'",
"mode='clip' clipminmax=[0,2] correlation='ABS_XX' clipoutside=False",
"spw='9' mode='tfcrop' correlation='ABS_YY' ntime=51.0",
"mode='extend' extendpols=True"]

flagdata(vis,mode='list',inpfile=cmd)

#### reason

Select flag commands based on REASON(s). Can be a string, or list of strings. If inpfile is a list of files, the reasons given in this parameter will apply to all the files. Default: 'any' (all flags regardless of reason). Examples: reason='FOCUS_ERROR'; reason=['FOCUS_ERROR', 'SUBREFLECTOR_ERROR']

NOTE: what is within the string is literally matched, e.g. reason='' matches only blank reasons, and reason = 'FOCUS_ERROR, SUBREFLECTOR_ERROR' matches this compound reason string only. See the syntax for writing flag commands at the end of this help.

#### tbuff

A time buffer or list of time buffers to pad the timerange parameters in flag commands. When a list of 2 time buffers is given, it will subtract the first value from the lower time and the second value will be added to the upper time in the range. The 2 time buffer values can be different, allowing to have an irregular time buffer padding to time ranges. If the list contains only one time buffer, it will use it to subtract from t0 and add to t1. If more than one list of input files is given, tbuff will apply to all of the flag commands that have timerange parameters in the files.

Each tbuff value should be a float number given in seconds. Default: 0.0 (it will not apply any time padding). Example: tbuff=[0.5, 0.8] inpfile=['online.txt','userflags.txt']. The timerange parameters in the 'online.txt' file are first converted to seconds. Then, 0.5 is subtracted from t0 and 0.8 is added to t1, where t0 and t1 are the two intervals given in timerange. Similarly, tbuff will be applied to any timerange in 'userflags.txt'.

IMPORTANT: This parameter assumes that timerange = t0 ~ t1, therefore it will not work if only t0 or t1 is given.

NOTE: The most common use-case for tbuff is to apply the online flags that are created by importasdm when savecmds=True. The value of a regular time buffer should be tbuff=0.5*max(integration time).

### mode='clip' expandable parameters

Clip data according to values of the following subparameters. The polarization expression is given by the correlation parameter. For calibration tables, the solutions are also given by the correlation parameter.

#### clipminmax

Range of data (Jy) that will NOT be flagged. It will always flag the NaN/Inf data, even when a range is specified. Default: [ ]. Example: clipminmax=[0.0,1.5]

#### clipoutside

Clip OUTSIDE the range. Default: True. Example: clipoutside=False, flag data WITHIN the clipminmax range.

#### clipzeros

Clip zero-value data. Default: False.

### mode='clip', 'tfcrop', or 'rflag' expandable parameters

#### datacolumn

Column to use for clipping. Default: 'DATA'. Options: MS columns: 'DATA', 'CORRECTED', 'MODEL', 'RESIDUAL', 'RESIDUAL_DATA', 'WEIGHT_SPECTRUM', 'WEIGHT', 'FLOAT_DATA'. Cal table columns: 'FPARAM', 'CPARAM', 'SNR', 'WEIGHT'.

NOTE1: RESIDUAL = CORRECTED - MODEL
RESIDUAL_DATA = DATA - MODEL
NOTE2: When datacolumn is WEIGHT, the task will internally use WEIGHT_SPECTRUM. If WEIGHT_SPECTRUM does not exist, it will create one on-the-fly based on the values of WEIGHT.

#### channelavg

Pre-average data across channels before analyzing visibilities for flagging. Partially flagged data is not be included in the average unless all data contributing to a given output channel is flagged. If present, WEIGHT_SPECTRUM/ SIGMA_SPECTRUM are used to compute a weighted average (WEIGHT_SPECTRUM for CORRECTED_DATA and SIGMA_SPECTRUM for DATA). Default: False. Options: True/False

NOTE1: Pre-average across channels is not supported in 'list' mode.
NOTE2: Pre-average across channels is not supported for calibration tables.

#### chanbin

Bin width for channel average in number of input channels. If a list is given, each bin applies to one of the selected SPWs. When chanbin is set to 1 all input channels are used considered for the average to produce a single output channel, this behaviour aims to be preserve backwards compatibility with the previous pre-averaging feature of clip mode. Default: 1

#### timeavg

Pre-average data across time before analyzing visibilities for flagging. Partially flagged data is not be included in the average unless all data contributing to a given output channel is flagged. If present, WEIGHT_SPECTRUM/ SIGMA_SPECTRUM are used to compute a weighted average (WEIGHT_SPECTRUM for CORRECTED_DATA and SIGMA_SPECTRUM for DATA). Otherwise WEIGHT/ SIGMA are used to average together data from different integrations. Default: False. Options: True/False

NOTE1: Pre-average across time is not supported in list mode.
NOTE2: Pre-average across time is not supported for calibration tables

#### timebin

Bin width for time average in seconds. Default: '0s'

### mode='quack' expandable parameters

Option to remove specified part of scan beginning/end.

#### quackinterval

Time in seconds from scan beginning or end to flag. Make time slightly smaller than the desired time. Default: 0.0. Type: int or float.

#### quackmode

Quack mode. Default: 'beg'. Options:

• 'beg'  ==> flag an interval at the beginning of scan
• 'endb' ==> flag an interval at the end of scan
• 'tail' ==> flag all but an interval at the beginning of scan
• 'end'  ==> flag all but an interval at end of scan

Visual representation of quack mode flagging one scan with 1s duration. The following diagram shows what is flagged for each quack mode when quackinterval is set to 0.25s. The flagged part is represented by crosses (+++++++++):

           scan with 1s duration--------------------------------------------beg+++++++++++---------------------------------                                 endb---------------------------------+++++++++++           tail-----------+++++++++++++++++++++++++++++++++end+++++++++++++++++++++++++++++++++-----------

#### quackincrement

Increment quack flagging in time taking into account flagged data or not. Default: False. Type: bool

• False  ==> the quack interval is counted from the scan boundaries, as determined by the quackmode parameter, regardless if data has been flagged or not.
• True   ==> the quack interval is counted from the first unflagged data in the scan.

quackincrement = True works based on the state of prior flagging, and unless it is the first item in the list the agent doing the quacking in list mode doesn't know about the state of prior flags. In this case, the command with quackincrement=True  will be ignored and the task will issue a WARNING.

Option to flag data of shadowed antennas. This mode is not available for cal tables.

All antennas in the ANTENNA subtable of the MS (and the corresponding diameters) will be considered for shadow-flag calculations. For a given timestep, an antenna is flagged if any of its baselines (projected onto the uv-plane) is shorter than  radius$_{1}$ $+$ radius$_{2}$ $-$ tolerance. The value of 'w' is used to determine which antenna is behind the other. The phase-reference center is used for antenna-pointing direction.

#### tolerance

Amount of shadowing allowed (or tolerated), in meters. A positive number allows antennas to overlap in projection. A negative number forces antennas apart in projection. Zero implies a distance of radius$_{1}$ $+$ radius$_{2}$ between antenna centers. Default: 0.0

It can be either a file name with additional antenna names, positions and diameters, or a Python dictionary with the same information. You can use the flaghelper functions to create the dictionary from a file. Default: ''. Type: string or {} (dictionary). To create a dictionary inside CASA:

import flaghelper as fh

Where antfile is a text file in disk that contains information such as:

name=VLA01diameter=25.0position=[-1601144.96146691, -5041998.01971858, 3554864.76811967]name=VLA02diameter=25.0position=[-1601105.7664601889, -5042022.3917835914, 3554847.245159178]

### mode='elevation' expandable parameters

Option to flag based on antenna elevation. This mode is not available for cal tables.

#### lowerlimit

Lower limiting elevation in degrees. Data coming from a baseline where one or both antennas were pointing at a strictly lower elevation (as function of time), will be flagged. Default: 0.0

#### upperlimit

Upper limiting elevation in degrees. Data coming from a baseline where one or both antennas were pointing at a strictly higher elevation (as function of time), will be flagged. Default: 90.0

### mode='tfcrop', 'rflag', or 'extend' expandable parameters

#### ntime

Time range (in seconds or minutes) over which to buffer data before running the algorithm. Options: 'scan' or any other float value or string containing the units. Default: 'scan'. Examples: ntime='1.5min'; ntime=1.2 (taken in seconds). The dataset will be iterated through in time-chunks defined here.

WARNING: If ntime='scan' and combinescans=True, all the scans will be loaded at once, thus requesting a lot of memory depending on the available spws.

#### combinescans

Accumulate data across scans depending on the value of ntime. Default: False. This parameter should be set to True only when ntime is specified as a time-interval (not 'scan'). When set to True, it will remove SCAN from the sorting columns, therefore it will only accumulate across scans if ntime is not set to 'scan'.

### mode='tfcrop' expandable parameters

Flag using the TFCrop autoflag algorithm. For each field, spw, timerange (specified by ntime), and baseline:

1.  Average visibility amplitudes along time dimension to form an average spectrum
2. Calculate a robust piece-wise polynomial fit for the band-shape at the base of RFI spikes. Calculate 'stddev' of (data - fit).
3. Flag points deviating from the fit by more than N-stddev
4. Repeat (1-3) along the other dimension.

This algorithm is designed to operate on un-calibrated data (step (2)), as well as calibrated data. It is recommended to extend the flags after running this algorithm. See the sub-parameter extendflags below.

#### timecutoff

Flag threshold in time. Flag all data-points further than N-stddev from the fit. This threshold catches time-varying RFI spikes (narrow and broad-band), but will not catch RFI that is persistent in time. Default: 4.0.

Flagging is done in up to 5 iterations. The stddev calculation is adaptive and converges to a value that reflects only the data and no RFI. At each iteration, the same relative threshold is applied to detect flags. (Step (3) of the algorithm).

#### freqcutoff

Flag threshold in frequency. Flag all data-points further than N-stddev from the fit. Same as timecutoff, but along the frequency-dimension. This threshold catches narrow-band RFI that may or may not be persistent in time. Default: 3.0

#### timefit

Fitting function for the time direction. Default: 'line'. Options: 'line', 'poly'

A 'line' fit is a robust straight-line fit across the entire timerange (defined by ntime). A 'poly' fit is a robust piece-wise polynomial fit across the timerange

NOTE: A robust fit is computed in upto 5 iterations. At each iteration, the stddev between the data and the fit is computed, values beyond N-stddev are flagged, and the fit and stddev are re-calculated with the remaining points. This stddev calculation is adaptive, and converges to a value that reflects only the data and no RFI. It also provides a varying set of flagging thresholds, that allows deep flagging only when the fit best represents the true data. Choose 'poly' only if the visibilities are expected to vary significantly over the timerange selected by ntime, or if there is a lot of strong but intermittent RFI.

#### freqfit

Fitting function for the frequency direction. Same as for the timefit parameter. Default: 'poly'. Options: 'line', 'poly'. Choose 'line' only if you are operating on bandpass-corrected data, or residuals, and expect that the bandshape is linear. The 'poly' option works better on uncalibrated bandpasses with narrow-band RFI spikes.

#### maxnpieces

Maxinum number of pieces to allow in the piecewise-polynomial fits. Default: 7. Options: 1 - 9. This parameter is used only if timefit or freqfit are chosen as 'poly'. If there is significant broad-band RFI, reduce this number. Using too many pieces could result in the RFI being fitted in the clean bandpass. In later stages of the fit, a third-order polynomial is fit per piece, so for best results, please ensure that nchan/maxnpieces is at-least 10.

#### flagdimension

Choose the directions along which to perform flagging. Default: 'freqtime'; first flag along frequency, and then along time. Options: 'time', 'freq', 'timefreq', 'freqtime'. For most cases, 'freqtime' or 'timefreq' are appropriate, and differences between these choices are apparant only if RFI in one dimension is significantly stronger than the other. The goal is to flag the dominant RFI first. If there are very few (less than 5) channels of data, then choose 'time'. Similarly for 'freq'.

#### usewindowstats

Use sliding-window statistics to find additional flags. Default: 'none'. Options: 'none', 'sum', 'std', 'both'

WARNING: This parameter is experimental!

The 'sum' option chooses to flag a point, if the mean-value in a window centered on that point deviates from the fit by more than N-stddev $/ 2.0$.

NOTE: stddev is calculated between the data and fit as explained in Step (2). This option is an attempt to catch broad-band or time-persistent RFI  that the above polynomial fits will mistakenly fit as the clean band. It is an approximation to the sumThreshold method found to be effective by Offringa et.al (2010) for LOFAR data.

The 'std' option chooses to flag a point, if the 'local' stddev calculated in a window centered on that point is larger than N-stddev $/2.0$. This option is an attempt to catch noisy RFI that is not excluded in the polynomial fits, and which increases the global stddev, and results in fewer flags (based on the N-stddev threshold).

#### halfwin

Half width of sliding window to use with usewindowstats. Default: 1 (a 3-point window size). Options: 1,2,3

WARNING: This is experimental!

### mode='tfcrop' or 'rflag' expandable parameters

#### extendflags

Extend flags along time, frequency and correlation. Default: True

NOTE: It is usually helpful to extend the flags along time, frequency, and correlation using this parameter, which will run the 'extend' mode after 'tfcrop' and extend the flags if more than 50% of the timeranges are already flagged, and if more than 80% of the channels are already flagged. It will also extend the flags to the other polarizations. The user may also set extendflags to False and run the 'extend' mode in a second step within the same flagging run. See the example below.

### mode='rflag' expandable parameters

Detect outliers based on the RFlag algorithm [1]. The polarization expression is given by the correlation parameter. Iterate through the data in chunks of time. For each chunk, calculate local statistics, and apply flags based on user supplied (or auto-calculated) thresholds.

• Time analysis (for each channel):
• calculate local RMS of real and imaginary visibilities within a sliding time window
• calculate the median RMS across time windows, deviations of local RMS from this median, and the median deviation
• flag if local RMS is larger than timedevscale $x$ (medianRMS $+$ medianDev)
• Spectral analysis (for each time):
• calculate avg of real and imaginary visibilities and their RMS across channels
• calculate the deviation of each channel from this avg, and the median-deviation
• flag if deviation is larger than freqdevscale $x$ medianDev

It is recommended to extend the flags after running this algorithm. See the sub-parameter extendflags below.

Notice that by default the flag implementation in CASA is able to calculate the thresholds and apply them on-the-fly (OTF). There is a significant performance gain with this approach, as the visibilities don't have to be read twice, and therefore is highly recommended (see example 1). Otherwise it is possible to reproduce the AIPS usage pattern by doing a first run with action='calculate' and a second run with action='apply'. The advantage of this approach is that the thresholds are calculated using the data from all scans, instead of calculating them for one scan only (see example 3).

Example usage :

1. Calculate thresholds automatically per scan, and use them to find flags. Specify scale-factor for time-analysis thresholds, use default for frequency.

flagdata('my.ms', mode='rflag', spw='9', timedevscale=4.0)

2. Supply noise-estimates to be used with default scale-factors.

flagdata(vis='my.ms', mode='rflag', spw='9', timedev=0.1, freqdev=0.5, action='calculate')

3. Two-passes. This replicates the usage pattern in AIPS.
• The first pass saves commands in output text files, with auto-calculated thresholds. Thresholds are returned from 'rflag' only when action='calculate'. The user can edit this file before doing the second pass, but the python-dictionary structure must be preserved. The parameters timedevscale and freqdevscale are not used in this first pass.
• The second pass applies these commands (action='apply').

flagdata(vis='my.ms', mode='rflag', spw='9,10', timedev='tdevfile.txt', freqdev='fdevfile.txt', action='calculate')

flagdata(vis='my.ms', mode='rflag', spw='9,10', timedev='tdevfile.txt', freqdev='fdevfile.txt', action='apply')

With action='calculate', display='report' will produce diagnostic plots showing data-statistics and thresholds (the same thresholds as those written out to 'tdevfile.txt' and 'fdevfile.txt'). In this second pass, with action='apply', the parameters freqdevscale and timedevscale can be used to re-scale the thresholds calculated in the first pass.

NOTE1: The RFlag algorithm was originally developed by Eric Greisen in AIPS [1] .

NOTE2: Since this algorithm operates with two passes through each chunk of data (time and freq axes), some data points get flagged twice. This can affect the flag-percentage estimate printed in the logger at runtime. An accurate estimate can be obtained via the 'summary' mode.

NOTE3: RFlag calculates statistics across all selected correlations. Therefore, if there is a significant amplitude difference between parallel-hand and cross-hand correlations, or between different solutions in a gain table, it is advisable to pre-select subsets of correlations (or sols) on which to run one instance of RFlag. For example, correlation='RR,LL' or correlation='ABS sol1,sol2'.

#### winsize

Number of timesteps in the sliding time window (fparm(1) in AIPS). Default: 3

#### timedev

Time-series noise estimate (noise in AIPS). Default: [ ]. Examples: timedev = 0.5: Use this noise-estimate to calculate flags. Do not recalculate; timedev = [[1,9,0.2], [1,10,0.5]]: Use noise-estimate of 0.2 for field 1, spw 9, and noise-estimate of 0.5 for field 1, spw 10; timedev = [ ]: Auto-calculate noise estimates; timedev='timedevfile': Auto-calculate noise estimates and write them into a file with the name given (any string will be interpreted as a file name which will be checked for existence).

#### freqdev

Spectral noise estimate (scutoff in AIPS). This step depends on having a relatively-flat bandshape. Same parameter-options as timedev. Default: [ ]

#### timedevscale

For Step 1 (time analysis), flag a point if local RMS around it is larger than timedevscale $x$ timedev (fparm(0) in AIPS). This scale parameter is only applied when flagging (action='apply') and displaying reports (display option). It is not used when the thresholds are simply calculated and saved into files (action='calculate', as in the two-passes usage pattern of AIPS). Default: 5.0

#### freqdevscale

For Step 2 (spectral analysis), flag a point if local rms around it is larger than freqdevscale $x$ freqdev (fparm(10) in AIPS). Similarly as with timedevscale, freqdevscale is not used when the thresholds are simply calculated and saved into files (action='calculate', as in the two-passes usage pattern of AIPS). Default: 5.0

#### spectralmax

Flag whole spectrum if freqdev is greater than spectralmax (fparm(6) in AIPS). Default: 1E6

#### spectralmin

Flag whole spectrum if freqdev is less than spectralmin (fparm(5) in AIPS). Default: 0.0

### mode='extend' expandable parameters

Extend and/or grow flags beyond what the basic algorithms detect. This mode will extend the accumulated flags available in the MS, regardless of which algorithm created them. It is recommended that any autoflag (tfcrop, rflag) algorithm be followed up by a flag extension. Extensions will apply only within the selected data, according to the settings of extendpols, growtime, growfreq, growaround, flagneartime, and flagnearfreq.

NOTE : Runtime summary counts in the logger can sometimes report larger flag percentages than what is actually flagged. This is because extensions onto already-flagged data-points are counted as new flags. An accurate flag count can be obtained via the 'summary' mode.

#### extendpols

Extend flags to all selected correlations. Default: True. Options: True/False. For example, to extend flags from RR to only RL and LR, a data-selection of correlation='RR,LR,RL' is required along with extendpols=True.

#### growtime

For any channel, flag the entire timerange in the current 2D chunk (set by ntime) if more than X% of the timerange is already flagged. Default: 50.0. Options: 0.0 - 100.0. This option catches the low-intensity parts of time-persistent RFI.

#### growfreq

For any timestep, flag all channels in the current 2D chunk (set by data-selection) if more than X% of the channels are already flagged. Default: 50.0. Options: 0.0 - 100.0. This option catches broad-band RFI that is partially identified by earlier steps.

#### growaround

Flag a point based on the number of flagged points around it. Default: False. Options: True/False. For every un-flagged point on the 2D time/freq plane, if more than four surrounding points are already flagged, flag that point. This option catches some wings of strong RFI spikes.

#### flagneartime

Flag points before and after every flagged one, in the time-direction. Default: False. Options: True/False. Note that this can result in excessive flagging.

#### flagnearfreq

Flag points before and after every flagged one, in the frequency-direction. Default: False. Options: True/False. This option allows flagging of wings in the spectral response of strong RFI. Note that this can result in excessive flagging.

### mode='antint' expandable parameters

This mode flag all integrations in which a specified antenna is flagged. This mode operates for an spectral window. It flags any integration in which all baselines to a specified antenna are flagged, but only if this condition is satisfied in a fraction of channels within the spectral window of interest greater than a nominated fraction. For simplicity, it assumes that all polarization products must be unflagged for a baseline to be deemed unflagged. The antint mode implements the flagging approach introduced in 'antintflag' (https://doi.org/10.5281/zenodo.163546)

The motivating application for introducing this mode is removal of data that will otherwise lead to changes in reference antenna during gain calibration, which will in turn lead to corrupted polarization calibration.

#### antint_ref_antenna

Check the baselines to this antenna. Note that this is not the same as the general 'antenna' parameter of flagdata. The parameter antint_ref_antenna is mandatory with the   'antint' mode and chooses the antenna for which the fraction of channels flagged will be checked.

#### minchanfrac

Minimum fraction of flagged channels required for a baseline  to be deemed as flagged. Takes values between 0-1 (float). In this mode flagdata does the following for every point in time. It checks the fraction of channels flagged for any of the polarization products and for every baseline to the antenna of interest. If the fraction is higher than this 'minchanfrac' threshold then the data are flagged for this pont in time (this includes all the rows selected with the flagdata command that have that timestamp). This parameter will be ignored if spw specifies a channel.

#### verbose

Print timestamps of flagged integrations to the log.

### mode='unflag' expandable parameters

Unflag according to the data selection specified. See here.

### mode='summary' expandable parameters

List the number of rows and flagged data points for the MS's meta-data. The resulting summary will be returned as a Python dictionary.

In 'summary' mode, the task returns a dictionary of flagging statistics.

Example1:

s = flagdata(..., mode='summary')

s will be a dictionary which contains:

• s['total']: total number of data
• s['flagged']: amount of flagged data

Example2: two summary commands in 'list' mode, intercalating a manual flagging command.

s = flagdata(..., mode='list', inpfile=["mode='summary' name='InitFlags'", "mode='manual' autocorr=True", "mode='summary' name='Autocorr'"])

The dictionary returned in s will contain two dictionaries, one for each of the two summary modes.

• s['report0']['name']: 'InitFlags'
• s['report1']['name']: 'Autocorr'

#### minrel

Minimum number of flags (relative) to include in histogram. Default: 0.0

#### maxrel

Maximum number of flags (relative) to include in histogram. Default: 1.0

#### minabs

Minimum number of flags (absolute, inclusive) to include in histogram. Default: 0

#### maxabs

Maximum number of flags (absolute, inclusive) to include in histogram. To indicate infinity, use any negative number. Default: -1

#### spwchan

List the number of flags per spw and per channel. Default: False

#### spwcorr

Llist the number of flags per spw and per correlation. Default: False

#### basecnt

List the number of flags per baseline. Default: False

#### fieldcnt

Produce a separated breakdown per field. Default: False

#### name

Name for this summary, to be used as a key in the returned Python dictionary. It is possible to call the 'summary' mode multiple times in 'list' mode. When calling the 'summary' mode as a command in a list, one can give different names to each one of them so that they can be easily pulled out of the summary's dictionary. Default: 'Summary'

#### action

Action to perform in MS/cal table or in the input list of parameters. Options: 'none', 'apply', 'calculate'. Default: 'apply'

### action='apply' or 'calculate' expandable parameters

action='apply' applies the flags to the MS. action='calculate' only calculates the flags but does not write them to the MS. This is useful if used together with the display to analyze the results before writing to the MS.

#### display

Display data and/or end-of-MS reports at run-time. It needs to read a datacolumn for the plotting. The default for an MS is DATA, but the task will use FLOAT_DATA for a Single-dish MS. Default: 'none'. Options: 'none', 'data', 'report', 'both'

• 'none' --> It will not display anything.
• 'data' --> display data and flags per-chunk at run-time, within an interactive GUI.
• This option opens a GUI to show the 2D time-freq planes of the data with old and new flags, for all correlations per baseline.
• The GUI allows stepping through all baselines (prev/next) in the current chunk (set by ntime), and stepping to the next-chunk.
• The flagdata task can be quit from the GUI, in case it becomes obvious that the current set of parameters is just wrong.
• There is an option to stop the display but continue flagging.
• 'report' --> displays end-of-MS reports on the screen.
• 'both' --> displays data per chunk and end-of-MS reports on the screen

### action='apply' expandable parameters

#### flagbackup

Automatically backup flags before running the tool. Flagversion names are chosen automatically, and are based on the mode being used. Default: True. Options: True/False

### action='' or 'none' description

When set to empty or 'none', the underlying tool will not be executed and no flags will be produced. No data selection will be done either. This is useful when used together with the parameter savepars to only save the current parameters (or list of parameters) to the FLAG_CMD sub-table or to an external file.

#### savepars

Save the current parameters to the FLAG_CMD table of the MS or to an output text file.

Note that when display is set to anything other than 'none', savepars will be disabled. This is done because in an interactive mode, the user may skip data which may invalidate the initial input parameters and there is no way to save the interactive commands. When the input is a calibration table it is only possible to save the parameters to a file.

Default: False. Options: True/False

### savepars=True expandable parameters

#### cmdreason

A string containing a reason to save to the FLAG_CMD table or to an output text file given by the outfile sub-parameter. If the input contains any reason, they will be replaced with this one. At the moment it is not possible to add more than one reason. Default: ' ', no reason will be added to output. Examples: cmdreason='CLIP_ZEROS'

#### outfile

Name of output file to save the current parameters. Default: ' ', will save the parameters to the FLAG_CMD table of the MS. Examples: outfile='flags.txt' will save the parameters in a text file.

#### overwrite

Overwrite the existing file given in outfile. Options: True/False. Default: True, it will remove the existing file given in outfile and save the current flag commands to a new file with the same name. When set to False, the task will exit with an error message if the file exist.

# SYNTAX FOR COMMANDS GIVEN IN A FILE or LIST OF STRINGS

## Basic Syntax Rules

1. Commands are strings (which may contain internal "strings") consisting of KEY=VALUE pairs separated by one whitespace only.

NOTE: There should be no whitespace between KEY=VALUE.The parser first breaks command lines on whitespace, then on "=".

1. Use only ONE white space to separate the parameters (no commas). Each key should only appear once on a given command line/string.
2. There is an implicit mode for each command, with the default being 'manual' if not given.
3. Comment lines can start with '#' and will be ignored. The parser used in flagdata will check each parameter name and type and exit with an error if the parameter is not a valid flagdata parameter or of a wrong type.

Example:

scan='1~3' mode='manual'# this line will be ignoredspw='9' mode='tfcrop' correlation='ABS_XX,YY' ntime=51.0mode='extend' extendpols=Truescan='1~3,10~12' mode='quack' quackinterval=1.0

Citation Number 1 Greisen, Eric, Dec 31, 2011. AIPS documentation: Section E.5 of the AIPS cookbook (Appendix E: Special Considerations for EVLA data calibration and imaging in AIPS, http://www.aips.nrao.edu/cook.html#CEE )


text:
University Physics Volume 2

# Key Equations

### Key Equations

 Capacitance $C=QVC=QV$ Capacitance of a parallel-plate capacitor $C=ε0AdC=ε0Ad$ Capacitance of a vacuum spherical capacitor $C=4πε0R1R2R2−R1C=4πε0R1R2R2−R1$ Capacitance of a vacuum cylindrical capacitor $C=2πε0lln(R2/R1)C=2πε0lln(R2/R1)$ Capacitance of a series combination $1CS=1C1+1C2+1C3+⋯1CS=1C1+1C2+1C3+⋯$ Capacitance of a parallel combination $CP=C1+C2+C3+⋯CP=C1+C2+C3+⋯$ Energy density $uE=12ε0E2uE=12ε0E2$ Energy stored in a capacitor $UC=12V2C=12Q2C=12QVUC=12V2C=12Q2C=12QV$ Capacitance of a capacitor with dielectric $C=κC0C=κC0$ Energy stored in an isolated capacitor withdielectric $U=1κU0U=1κU0$ Dielectric constant $κ=E0Eκ=E0E$ Induced electrical field in a dielectric $E→i=(1κ−1)E→0E→i=(1κ−1)E→0$

format: plain


text:
# Does syn-dihydroxylation form racemic mixture?

I have been asked to determine the nature of the product for the following reaction:

And as I recognized this reaction to be a case of syn-dihydroxylation, my obvious response was that the product formed will be meso.

But, in the solution to the problem, it says it makes a racemic mixture.

Shouldn't both the $$\ce{-OH}$$ be on the same side and form a meso-compound? And what does the $$(sym)$$ stand for?

• The very fact that 'syn' has been written as 'sym' should've heightened your suspicions regarding this answer, which is blatantly wrong. Cold KMnO4 will produce a meso compound in this case. This is a very standard reaction, and it is surprising that a book messed this one up. I strongly suggest you change the book/material you're studying from. – C_Lycoris Apr 17 at 13:43
• May I ask, however which book this came from? – C_Lycoris Apr 17 at 13:45
• @C_Lycoris It's not from any standard organic chemistry book. The book is called "Problems in Organic Chemistry", and is basically a chapter-wise question bank for the JEE exam. – SmartRadical Apr 17 at 13:51
• Referring to the product through its Fischer structure alone was an obvious red flag. Ditch this textbook. – TheRelentlessNucleophile Apr 18 at 8:42

Oxidation of alkene to 1,2-syn-diol by cold basic $$\ce{KMnO4}$$ is a common classification test for alkene in undergraduate organic chemistry laboratory courses. OP had correctly recognized that this reaction is a case of syn-dihydroxylation, and OP's conclusion of the product to be meso is also correct since the alkene in hand is a cis-but-2-ene. The schematic representation of the proposed mechanism is given below:
Since but-2-ene structure is planer and a prochiral molecule, it has two faces (Si- or Re-face; above or below the plane) to get attacked by a reactant, here it is $$\ce{KMnO4}$$. The above mechanism displays the attack by only one face. The oxidation gives butan-2,3-diol by syn-attack on that face. The product has two stereocenters and the stereochemistry of that product is $$(2R,3S)$$. As indicated in the diagram, the product also has a plane of symmetry, and hence, the $$\ce{C}$$2 stereocenter is the mirror image of the $$\ce{C}$$3 stereocenter. Therefore, the product is a meso-compound.
If the $$\ce{KMnO4}$$ attack is done on the opposite plane, the product would be $$(2S,3R)$$-butan-2,3-diol, if numbering has maintained the same. This is essentially the same meso-product, as we discussed above.
If the starting substrate is trans-but-2-ene, the $$\ce{KMnO4}$$ attack from one face gives you $$(2S,3S)$$-butan-2,3-diol, while the $$\ce{KMnO4}$$ attack from opposite face gives you $$(2R,3R)$$-butan-2,3-diol. Since possibility of attacking from the Si-fase and/or Re-face is $$0.5$$ (or $$50\%$$), you get essentially a racemic mixture.


text:
# If a buffer made by dissolving 20.0 g of sodium benzoate (144g/mol) and 10 grams of benzoic acid (122g/mol) in water to a final volume of 500.0 ml, what is the pH of the buffer?

Apr 11, 2016

$p H = 4.43$.

#### Explanation:

To find the pH of the buffered solution in question, we can simply use the Henderson-Hasselbach equation:

$p H = p {K}_{a} + \log \left(\frac{\left[B a s e\right]}{\left[A c i d\right]}\right)$

where, $p {K}_{a}$ for benzoic acid is $4.20$.

and $\left[B e n z o a t e\right] = \frac{n}{V} \mathmr{and} n = \frac{m}{M M} = \frac{20.0 \cancel{g}}{144 \frac{\cancel{g}}{m o l}} = 0.139 m o l$

$\left[B e n z o a t e\right] = \frac{n}{V} = \frac{0.139 m o l}{0.500 L} = 0.278 M$

and $\left[\text{Benzoic acid}\right] = \frac{n}{V} \mathmr{and} n = \frac{m}{M M} = \frac{10.0 \cancel{g}}{122 \frac{\cancel{g}}{m o l}} = 0.0820 m o l$

$\left[B e n z o a t e\right] = \frac{n}{V} = \frac{0.0820 m o l}{0.500 L} = 0.164 M$

Therefore, $p H = 4.20 + \log \left(\frac{0.278}{0.164}\right) = 4.43$

Acid - Base Equilibria | Buffer Solution.


text:
# If the nth term of an A.P be (2n − 1), then the sum of its first n terms will be

1. n2 - 1
2. (2n - 1)2
3. n2
4. n2 + 1

Option 3 : n2

## Detailed Solution

Concept:

The sum of n terms of an AP with first term a and common difference d is given by:

$$\rm S_n= \frac{n}{2}×(a+l)$$  or  $$\rm S_n= \frac{n}{2}×\left [ 2a+(n-l) d\right ]$$

Where l is the last term of the AP

Calculation:

Given that,

Tn = 2n - 1   ----(1)

Put n = 1, 2, 3,... on equation (1), we will get first, second, third...term equals to 1, 3, 5,... respectively.

Therrefore,

a = 1, d = 2

Hence, sum of n terms will be

$$\rm S_n= \frac{n}{2}×\left [ 2a+(n-l)2 \right ]$$

⇒ $$\rm S_n= \frac{n}{2}×\left [ 2.1+(n-l).2 \right ]$$

∴ Sn = n2


text:
MathSciNet bibliographic data MR2446682 (2009g:32001) 32-02 (32Axx 46E15 46E20) Rudin, Walter Function theory in the unit ball of \$\Bbb C\sp n\$$\Bbb C\sp n$. Reprint of the 1980 edition. Classics in Mathematics. Springer-Verlag, Berlin, 2008. xiv+436 pp. ISBN: 978-3-540-68272-1 Links to the journal or article are not yet available

For users without a MathSciNet license , Relay Station allows linking from MR numbers in online mathematical literature directly to electronic journals and original articles. Subscribers receive the added value of full MathSciNet reviews.


text:
1. Aug 3, 2011

### balotpinoy

a pump capacity of 10 m^3/hr at 30 meters head. what does the 30 meters head mean?

thank you..

2. Aug 3, 2011

### gmax137

The pump increases the pressure downstream, relative to the pressure upstream. The 30 meters head is the difference in pressure 'across' the pump (discharge pressure minus suction pressure). Pressure (force per area) can be expressed in height (meters) by considering the pressure at the base of a column of the pumped fluid 30 meters tall. To change the units of 'head' to units of 'pressure' you need to know the weight density of the fluid.

3. Aug 3, 2011

### balotpinoy

so can i use it in Bernoulli's equation as work given to the fluid?

- head x density x gravitational constant

is that right?

4. Aug 3, 2011

### gmax137

Right. $$V^2/2g$$ $$z$$ $$P/\rho g$$ all have units of length.

And if you multiply each by $$g \rho$$ you get units of pressure

Last edited: Aug 3, 2011
5. Aug 3, 2011

### balotpinoy

no more deductions for pump efficiency?

6. Aug 3, 2011

### balotpinoy

kindly help me with this one..

i want to compute the actual volumetric flowrate in line 1 & 2. discharge for both lines are in different elevations. given data for me is these;

mono pump capacity= 10 m3/hr at 30 meters
line 1 from tee to discharge is a 2-inch pipe
line 1 discharge elevation= 12 meters
line 2 from tank bottom to discharge is 3-inch pipe
line 2 discahrge elevation=11.5 meters
fittings/valves are present along the line, pls bear with my drawing..

i've been trying to figure out how im gonna use the available pump data in my bernoulli's equation.

and another thing is the flowrate. can i directily solve for velocity of fluid at the pump discharge from the given flowrate..

File size:
17.8 KB
Views:
84
7. Aug 3, 2011

### gmax137

You need more than one data point for the pump. Typically you have a 'pump curve' which shows the head at various flowrates. As the flowrate is decreased towards zero, the head will rise to the 'shutoff head', and as flow is increased the head will drop off. Then you can plot the pump curve along with the system resistance curve (basically bernoulli solved for head loss). Where the two curves cross, that's the operating point.

Above describes the situation for a centrifugal pump. If you have a positive displacement pump, the flowrate is constant; all you need is bernoulli. But I don't think you have a PD pump, because then the 'at 30 meters head' doesn't make sense.

8. Aug 3, 2011

### balotpinoy

its a PD pump and that's the only data available for that pump since its old already.

so far here is what i did with my problem;

to solve for Q in lines 1 & 2, i first computed for Pressure at point B (pls refer to attached drawing) using bernoulli's equation in pipe A-B using 30 meters head as pump work and obtained my velocity at point B using the flowrate/area of pipe.

is it correct? and if so, how can i proceed to solve for flowrates in both lines?

thank you again..

File size:
18.8 KB
Views:
87
9. Aug 4, 2011

### gmax137

If it is a PD pump then you know the flowrate, right? The 30 meters head is misdirection - a red herring. All you need to figure out is the split between Line 1 and Line 2. What can you say about the pressure drops BD and BC? How do those pressure drops vary with flowrate?


text:
Followers 0

# Event/Action Management

## 8 posts in this topic

I'm currently considering how i might approach a parameter based event management system.

My aim is to build it such that the actions that are executed on a particular event are able to be dynamic. This would essentially extend the event system that is used for input control, however my aim is to use a lot less case statements.

My initial thought was to build up a couple of string based maps so that parameters may be allocated against events, for example:

map<string,string> actionMap;

map<string,function> FunctionMap;

actionMap["onCollision"] = "doDestroy"

FunctionMap["doDestroy"] = <pointer reference to function to execute for destroying an object>

allowing for other parts of the code to call,

FunctionMap[ActionMap["onCollision"]](<object reference>);

I've already encountered some pitfalls with this approach, particularly the catches with using function pointers, and void* variables, and was curious to see what other people were doing in this kind of case?

Is there any real advantage in doing this compared to say, case statements against variables? Noting I'm hoping to have a few thousand objects at a time.

0

##### Share on other sites

In my projects I usually write event subclass for every different case with base properties in base class and event specific properties in subclasses. This is the typical OOP that can save you from hours of debugging looking for error in your dynamic events, however you have to spend more time implementing different classes. You can easily go with only one dynamic class with maps etc.. but that in future can create a messy code with lots of constants for parameter names and huge potential for bugs. I guess this is a personal choice, both options are valid.

2

##### Share on other sites

Thanks for the responses so far... attempting to digest them.

I'm liking the look of std::function and was surprised that I've not seen that before... is this new with c++11?

1

##### Share on other sites

I'm not exactly a veteran coder, so take what I say with a grain of salt, but it sounds like you might be interested in the Command pattern: http://en.wikipedia.org/wiki/Command_pattern

Essentially, instead of passing around function pointers that take in void* parameters, you encapsulate the function calls in an object with a common interface. For example, in an RTS-like game:

Disclaimer: didn't test this code

class Command
{
public:
virtual ~Command()
{}

virtual void execute() = 0;
}

class MoveCommand : public Command
{
public:
MoveCommand( GameActor& actor, double goalX, double goalY )
:   _actor( actor ),
_goalX( goalX ),
_goalY( goalY )
{}

~MoveCommand()
{}

void execute()
{
// do whatever sophisticated move logic you need here
// probably something better than this.
_actor.moveBy( _goalX - _actor.getX(), _goalY - _actor.getY() );
}

private:

// store whatever data you need for this type of command
GameActor& _actor;
double _goalX;
double _goalY;
}

Then, you can create commands somewhere and pass them into a CommandHandler class that executes them whenever you need.

class CommandHandler
{
...
public:
{
_commands.push_back( command );
}
void executeCommands()
{
for( auto command : _commands )
{
command->execute();
}
}

private:
std::vector<Command*> _commands;
}

Command* command = new MoveCommand( someActor, someX, someY );

// later
commandHandler.executeCommands();

Also, it would probably be better if instead of using strings in your actionMap and functionMap, you used enums instead. That way the compiler will detect invalid keys so you don't get burned by typing "onDestory" somewhere in your code, which could end up being a difficult bug to track down.

Edited by Kovaz
0

##### Share on other sites
The use of String at the moment is more of a 'first cut' than anything else. I've done some 'safety testing' and it appears the way this has been implemented is that simply putting in a line that says "onDestroy" without parenthesis will simply do nothing (will be undefined variable, or invalid call of function) and to call it from the funcmap you have to actively call the funcmap to do the call, there's no magic pointer at a global level. I take the point about the invalid key though, there is no error checking at the moment to ensure that the key being used actually exists in the maps, other than the map security itself, and if a non-mapped key is used it does error out. That is my next step (people say i work backwards), the aim at this point was to create the ability to reference a function from a map and pass dynamic variables.
0

##### Share on other sites

Little off-topic but is very rare the use of events in a well structured game. They are just IDs that you pass to objects instead of calling the object function. My recommendation is that you try to solve your problem without the use of events. If you're thinking that input are events they aren't. Search on the forums and you will see. Using strings to declare an event is the worst approach I think. Since all objects can know about the event, why give it a name instead of a constant ID? Games aren't that Java Application that use events for everything, they're real time simulations.

0

## Create an account

Register a new account


text:
# LaTeX How to create PDF documents and write in LaTex?

#### quasar987

Homework Helper
Gold Member
What do I need to do to be able to create PDF documents and be able to write in LaTex in them like on this forum?

Thanks.

Related MATLAB, Maple, Mathematica, LaTeX, Etc News on Phys.org

#### Astronuc

Staff Emeritus
One way is to write text in MS Word or other word processor, do equations in a LaTeX interpreter, and copy the equations and paste them as a bitmap into the Wordprocessor text file.

If Adobe Acrobat is installed and integrated properly, one should be able to convert the Word (or other wordprocessor) file into a pdf. This is the method I use at work.

Or one can do text and equations in LateX, but I don't know if the file can then be imported into Acrobat.

#### graphic7

Gold Member
Try using pdflatex. Instead of rendering to a dvi file, it renders to a pdf.

Staff Emeritus
Gold Member

#### krab

If you want to write something that is mathematically-intensive, use LaTeX directly, not any other kind of word processor. Then process the document with pdflatex, as graphic7 advises. LaTeX is not just a formula writer; you can write whole articles, papers, books,... with it.

#### coalquay404

Type your paper in a text editor and save it with the extension .tex You can then compile this source file to a DVI file by typing

latex <filename.tex>

The DVI can be converted to a pdf file by using dvipdfm:

dvipdfm <filename.dvi>

#### ComputerGeek

you could get a mac... Os X has system wide save as PDF :-)

### Physics Forums Values

We Value Quality
• Topics based on mainstream science
• Proper English grammar and spelling
We Value Civility
• Positive and compassionate attitudes
• Patience while debating
We Value Productivity
• Disciplined to remain on-topic
• Recognition of own weaknesses
• Solo and co-op problem solving


text:
# Imaginary time in spin foams

1. Jan 31, 2012

### atyy

In QM and QFT, imaginary time is used to make the oscillatory path integral converge, and also to handle terms that are not semibounded in Minkowski spacetime.

In CDT, imaginary time is also used after the path integral is restricted to "causal" configurations.

How is the oscillatory term handled in spin foams?

Last edited: Jan 31, 2012
2. Feb 1, 2012

### genneth

Is this not the point of Euclidean spin-foams?

3. Feb 1, 2012

### atyy

Looking in Perez's notes, Eq 27 for a Euclidean spin foam, it looks like he still has the i in the path integral. I guess the Euclidean means that it produces a geometry with Euclidean signature (I guess he takes only one of the two imaginary time replacements)?


text:
We have been installing Acrobat Pro 9.0 on machines. Now that the 9.3 update has been released we want to update the computers. I have followed the instructions to create an AIP. 9.0, 9.1, 9.1.2, 9.2, 9.3. When I attempt to install Acrobat Professional 9.3 on a computer that has Acrobat Professional 9.0 on it I receive the following error message.

Another version of this product is already installed. Installation of this version cannot continue. To configure or remove the existing version of this product, use Add/Remove Programs on the Control Panel.

If I install the package I created on a computer that does not have Adobe Acrobat Pro installed on it, there are no problems. The package is installed and it is at the correct version.

I obviously don't think I should have to manually remove Acrobat Pro 9 from the computers. Shouldn't the patched 9.3 product install over 9.0?

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

0
I'm in a similar situation now, except that I'm just getting started with this. I need to get all our installs patched from 9.0 to 9.3

If you were to manually apply patches, how do you go from 9.0-->9.3? Or even from 9.0-->9.1? I tried installing AcroProExUpd910_all_incr.msp from adobe's FTP site but I get an installer error "...the update patch may update a different version of the program".

There is nothing in the 9.0 directory on the FTP site.

edit: found it, using quarterly updates go 9.0 -> 9.1 -> 9.1.2 -> 9.2 -> 9.3

0
What a pain. So, if I understand this correctly, to properly deploy to 9.0 users, the AIP would have to contain every update from 9.2.0 forward? That's HUGE!

Is there any way to minimize the size of the file dl'd to the client for install? If we have, say 9.0, and what to get to 9.3.1, what's the best way to set up the installer so it does not require ALL the msp files? Or is this even possible?

0
Once you've patched the AIP, you won't need the MSPs because the existing files in the AIP get patched. Take a look in MSDN about what patching is

0
I'm trying to get this set up to deploy via the kbox 1000 - the AIP lacks the .cab file - appears to have a directory structure in it's place, which is very large (over 1.5gb) The original 9.1 installer, while large, is 1/2 that size.

Ideally I'd like to patch the originall installer to 9.3.1, but from what I've found this may not be possible.

The recommended option for the kbox is to create a zip file containing all dependencies, and associate that file to the application. When the software is deployed, the zip file is dl'd and expanded, and installation commands (user-defined) are run at that time. Works but due to the patching model chosen by adobe makes for a huge download for each target system.

Is patching the orginal install (setup.exe and everything else that came on the cd) doable, or is it worth the time to pursue?

0
ORIGINAL: pyperdown

What a pain.Ã‚Â  So, if I understand this correctly, to properly deploy to 9.0 users, the AIP would have to contain every update from 9.2.0 forward?Ã‚Â  That's HUGE

We use the term BLOAT here and Adobe products are full of it. What you might want to do is create an AIP and remember you have to create it from the disk. There is some issue with copying the files from the disk to your pc and then trying to create an AIP from that. Also Adobe has another hurdle. Only certain updates can be applied to your AIP http://kb2.adobe.com/cps/498/cpsid_49880.html Once you have an updated AIP and transform you can wrap it all back up using the WiMakCab.vbs to create an MSI with an embedded cab. the syntax is cscript wimakcab.vbs acrpro.msi Data1 /L /C /U /E This works really good.

0
Well, trying the AIP method. Works until I try to install 9.1.2, then fails with a dependency error. Can't find interop.adobepdfmakerx.dll

0
Have you seen the caveat in the 'Package KB' about which updates you can apply? If you have the enterprise-deployable package, you can't apply security updates to an AIP created from it, only the quarterly ones.

0
Hi folks,
to get a useful version of Acrobat Pro 9.3.1, one has to invest quite a bit. :-(
1. As Joe already pointed out, the correct sequence of patching is crucial!
2. To get the AIP REALLY patched, you need to set the property PATCHAIP=1 on the command line!
Otherwise the patches are only chained up and are applied on the fly, while installing.
3. If you want to get rid of all the patch files, you can delete them from the file table or disable the feature UpdateFiles.
This reduces the load by more than 1500 files and over 200MB!
4. To reduce the network load, one can CAB that stuff up again. Our CAB for v9.3.1 is about 580MB!
However, we use a slightly changed wimakcab.vbs, which puts higher values for CompressionLevel and CompressionMemory into the DDF file.
Installing from an AIP, it would be about 1,3GB to transfer to each machine!

@Joe: You are talking about an embedded CAB. How do you do that?
We tested that and it never worked, because an CA, which checks the certificate in the original MSI, doesn't like that.

Hope, this gives some input here and there.
Regards, Nick

0
Can you provide a commandline example of the PATCHAIP=1 usage?

My problem so far is that I can get the AIP patched to 9.1.0, but it fails at the 9.1.2 (next quarterly update) version with a missing dll error.

I have altered my approach to the following batch file, but it will not wait until the first msiexec completes.

 @echo off net use q: <\\uncpath> <password> /user:<userid> q: start /wait msiexec /i AcroPro.msi TRANSFORMS=AcroPro.mst REBOOT=REALLYSUPPRESS /qn start /wait msiexec /update AcroProStdUpd910_T1T2_incr.msp;AcrobatUpd912_all_incr.msp;AcrobatUpd920_all_incr.msp;AcroatUpd930_all_incr.msp;AcrobatUpd931_all_incr.msp REINSTALLMODE=vomus REINSTALL=ALL REBOOT=REALLYSUPPRESS /qn c: net use q: /delete

0
Hi Jeff,
here the commands to build the initial AIP and to patch it with 9.1.0.
msiexec /p AcroProStdUpd910_T1T2_incr.msp /a AcroPro.msi TARGETDIR=C:\MSI\AcrobatPro_9.3.1_ML\adm PATCHAIP=1

Don't use network drives to build an AIP! Do it locally should solve your file missing error.

Regards, Nick

0
Thanks Nick - I will give it a try. I did switch to building to a local dir, with the same missing dll results. Do I need to do anything with the intermediate .msp files, ie 9.1.2->9.2.0->9.3.0?

Also, this is a volume license version - I've heard that using an administrative install point for this version causes problems, ie turns it into a retail version, and the serial number ceases working. Should this be a concern?

I finally got something working with a batch file that first installs the app and then applies all the patches. Works except for borking the icons on the shortcuts in the start menu. I'm less than thrilled with the "support" from adobe. Given this is one of the reasons cited for opting for proprietary software over FOSS, I'd say Adobe is making proprietary software look pretty lousy.

0
Here's the code I used... Runs as local system account (we use Kace KBOX-1000)

 @echo off net use q: <UNC PATH> <PASSWORD> /user:<USERID> q: start /wait msiexec /i AcroPro.msi TRANSFORMS=AcroPro.mst REBOOT=REALLYSUPPRESS /qn start /wait msiexec /update AcroProStdUpd910_T1T2_incr.msp;AcrobatUpd912_all_incr.msp;AcrobatUpd920_all_incr.msp;AcrobatUpd930_all_incr.msp;AcrobatUpd931_all_incr.msp REINSTALLMODE=vomus REINSTALL=ALL REBOOT=REALLYSUPPRESS /qn c: net use q: /delete

0
PATCHAIP=1 causes process to fail. msiexec does not like that syntax. Back to square 1.

0
Hi Jeff,
PATCHAIP=1 on the msiexec command line sets only a public property and should work on every package of the world.
So it seems, there is a problem with your command line.
Make sure, that you point your command at the right files.
In my example above, you need to start the patch action from the directory with the AIP.
Regards, Nick

0
Nick - I copied your command line. The only difference I can see is that I did not start it from the aip, but the path containing the original install files (data1.cab, etc), and pointed it to the directory containing the AIP. I could not find ANYTHING regarding the PATCHAIP property. Perhaps my mistake is running the script from the wrong path? Also, I have no problem patching to 9.1.0. The problem is in patching to 9.1.2 and beyond. 9.1.0->9.1.2->9.2.0->9.3.0->9.3.1.

It would appear that Adobe has hired a bunch of microsoft engineers and placed them in decision-making roles. And all the negatives that this implies.

0
Hi Jeff,
do you have logging enabled? I hope so.
Regards, Nick

0
Nick, did the PATCHAIP=1 apply to version 8 as well? I'm guessing that it does.

ORIGINAL: nheim

Hi folks,
to get a useful version of Acrobat Pro 9.3.1, one has to invest quite a bit. :-(
1. As Joe already pointed out, the correct sequence of patching is crucial!
2. To get the AIP REALLY patched, you need to set the property PATCHAIP=1 on the command line!
Ã‚Â Ã‚Â  Otherwise the patches are only chained up and are applied on

@Joe: You are talking about an embedded CAB. How do you do that?
We tested that and it never worked, because an CA, which checks the certificate in the original MSI, doesn't like that.

Hope, this gives some input here and there.
Regards, Nick

0
Hi Jeff,
try the patching again, but this time do a CD to the AIP-directory first.
Regards, Nick

0
Will do, and will enable logging as well.

0
Switching to the aip dir before installing patches allowed the AIP to get patched and built. Thanks for that tidbit [:D] I am aware that subsequent quarterly updates will require removal of security patches before application. I will likely just rebuild the entire thing. Now to test transforms.

[font="courier new"]C:\AcrobatPro9>msiexec /a AcroPro.msi TARGETDIR=C:\AcrobatPro9AIP

C:\AcrobatPro9>cd \AcrobatPro9AIP

C:\AcrobatPro9AIP>msiexec /p c:\AcrobatPro9\AcroProStdUpd910_T1T2_incr.msp /a AcroPro.msi TARGETDIR=C:\AcrobatPro9AIP PATCHAIP=1

C:\AcrobatPro9AIP>msiexec /p c:\AcrobatPro9\AcrobatUpd912_all_incr.msp /a AcroPro.msi TARGETDIR=C:\AcrobatPro9AIP PATCHAIP=1 /Liv install.log

C:\AcrobatPro9AIP>msiexec /p c:\AcrobatPro9\AcrobatUpd920_all_incr.msp /a AcroPro.msi TARGETDIR=C:\AcrobatPro9AIP PATCHAIP=1 /Liv install.log

C:\AcrobatPro9AIP>msiexec /p c:\AcrobatPro9\AcrobatUpd930_all_incr.msp /a AcroPro.msi TARGETDIR=C:\AcrobatPro9AIP PATCHAIP=1 /Liv install.log

C:\AcrobatPro9AIP>msiexec /p c:\AcrobatPro9\AcrobatUpd931_all_incr.msp /a AcroPro.msi TARGETDIR=C:\AcrobatPro9AIP PATCHAIP=1 /Liv install.log

0
Transforms from the AIP appear to work - anyone know how to test for retail -vs - volume license?

Again, thanks Nick for pointing me in the correct direction. Now for the obligatory n00b question - is this a "best practices" technique (switching to aip dir before patching) or is it just an adobe thing?

0
Nick just to reiterate - this was the key. IMO Adobe owes you some

Make that \$

ORIGINAL: nheim

Hi Jeff,
try the patching again, but this time do a CD to the AIP-directory first.
Regards, Nick

0
Hi Jeff,
you can't blame this particular one at Adobe. If you patch an AIP, you have to point the command line to the MSI in the AIP.
Regards, Nick

0
Hi Joe,
no, that one was invented in V9.0.
However, you could do it yourself. Basically,
it does the patching sequences, which are done in InstallExecuteSequence
But is worth the hassle?
Regards, Nick

0
Nick... I've been doing THAT all along (pointing to AIP directory). The key was CD-ing to that directory.

0
nheim, am curious on #2 and #3:

I setup the MSP patches to 9.0.0 AIP with PATCHAIP=1.

That means, i can remove the UpdateFiles safely?

ORIGINAL: nheim

Hi folks,
to get a useful version of Acrobat Pro 9.3.1, one has to invest quite a bit. :-(
1. As Joe already pointed out, the correct sequence of patching is crucial!
2. To get the AIP REALLY patched, you need to set the property PATCHAIP=1 on the command line!
Ã‚Â Ã‚Â  Otherwise the patches are only chained up and are applied on
3. If you want to get rid of all the patch files, you can delete them from the file table or disable the feature UpdateFiles.
Ã‚Â Ã‚Â  This reduces the load by more than 1500 files and over 200MB!
4. To reduce the network load, one can CAB that stuff up again. Our CAB for v9.3.1 is about 580MB!
Ã‚Â Ã‚Â  However, we use a slightly changed wimakcab.vbs, which puts higher values for CompressionLevel and CompressionMemory into the DDF file.
Ã‚Â Ã‚Â  Installing from an AIP, it would be about 1,3GB to transfer to each machine!

@Joe: You are talking about an embedded CAB. How do you do that?
We tested that and it never worked, because an CA, which checks the certificate in the original MSI, doesn't like that.

Hope, this gives some input here and there.
Regards, Nick

0
Yes

0
one more question :)

the PATCHAIP=1 doesn't work on Acrobat 7?

I've patched 7.0.0 with 7.1.0 & 7.1.3 and then remove the UpdateFiles. After installation, the patched never applied.

thanks!

ORIGINAL: nheim

Yes

PATCHAIP=1

0
Hi David,
have a look at post #25.
Regards, Nick

0
ahh it's do-able then.

for me, i think it's worth it cuz removing the UpdateFiles can shaves 69MB. Upon compressing the AIP, overall package size is around 140MB (rough size after manually removing Updates folder in the AIP).

any chance of tutorial/points to edit the MSI table (InstallExecuteSequence/AdminExecuteSequence)? :)

if it's troublesome, then nvm.

thanks!

0
Hi David,
had a quick look at the package. It seems pretty easy to do.
 PreparePatchByFile (Not REMOVE="ALL") And PATCHAIP 1490 ApplyPatch_ACROBAT_Imm (Not REMOVE="ALL") And PATCHAIP 4150 ApplyPatch_ACROBAT (Not REMOVE="ALL") And PATCHAIP 4160
The "PATCHAIP" property is optional, it makes the behavior the same as in V9.
To make it even easier, you could copy the 3 lines from the InstallExecuteSequence table.
This stuff is best done in ORCA, of course.
This should work on Acrobat Pro v7 + v8.
So, that's it folks, the rest is yours!
Awaiting to see some (positive) feedback her. ;-)
Regards, Nick

0
ok, preliminary results = WORKING! [:D]

I will need to reconfirm this by doing a manual version check on the plugins (where most of the patches are applied), and some other important files (acrobat.exe, *.exe, *.dll).

version check of the plugins are WITHIN acrobat, so this may take a while.

my comparison will be based on the PATCHAIP-method --vs-- conventional AIP method (whereby in v7, the updates are chained and executed post-installation).

side notes: @nheim, you mentioned 'bout copying all the lines from InstallExecuteSequence table. <-- i noticed there are MANY lines to be copied over. However, i think i understand why you proposed this as the sequences are replicated from InstallExecuteSequence (normal install method) --> AdminExecuteSequence (AIP method).

So if copied over, whenever AIP is used, it *behaves* as if the patches are being applied *normally*

anyhow, much appreciate the tips!! [:)]

0
Hi David,
good to see you make progress.
The statement "copy all lines" maybe wasn't exact enough. It was referencing only the 3 lines mentioned.
I have corrected this in my earlier post.
Regards, Nick

0
ok, i spoke too soon.

culprit is with v7.1.0 patch. <-- besides patching existing files from v7.0.0, it also introduces many *NEW* files as well <-- one 'marker' file i take note is AcroIF.dll

so, if i use the PATCHAIP method for v7.1.0, v7.1.3, v7.1.4 and delete the UpdateFiles inside the MSI (and regenerate the AIP again), the *new* files from v7.1.0 patch will not be copied over (because the references have been deleted as well after i removed UpdateFiles in the MSI).

any ideas? ;)

0
Hi Dave,
if it were that easy, everybody woul/could do it... :-)
The guide in post #9 is only working on v9!
For v7+v8, leave the UpdateFiles feature as it is and delete all the patch file (with rtp extension) from the file table.
That should do it.
Regards, Nick

0
tried this. not effective.

there are 3 subfolders under UpdateFiles: UpdateFiles_710, UpdateFiles_713, and UpdateFiles_714. <-- all files listed in the table ends with .RTP extension.

e.g. the new file AcroIF.dll is listed as AcroIF_dll_710.rtp.

0
Hi Dave,
that is not true!
We have old v7 AIP's here and it shows clearly, that this file was introduced in v7.0.5 (all files file from seq 3012 to 3090 stem from the 7.0.5 update).
So, it depends on, where you start. If you start with the 7.1.0 full installer, this should be no problem at all.
If you start with 7.0.0, make sure, you apply all the patches needed.
To get a clean picture, its best to use msitran from the SDK an produce an MST from the updated version against the base version.
Then open the base version in ORCA and apply the MST. With this, you see all the changes.
Regards, Nick

0
well, i start from 7.0.0 base source, then move upwards with 7.1.0 > 7.1.3 > 7.1.4.

the update path is referenced from http://kb2.adobe.com/cps/498/cpsid_49880.html

Below the page, it's also stated this:

The oldest patch shown above for Acrobat Version 7 is 7.1.0. Although previous patches were released between the 7.0.0 original product and the 7.1.0 patch, Adobe recommends that any current customer deploying version 7 bypass the interim patches and step directly to 7.1.0 and beyond.

0
Hi Dave,
i have to apologize!
This is a true Adobe-mess! They install new files in this cumulative update with the patcher!
No wonder, there are so many problems out there to update or uninstall such stuff. Just unbelievable.
As i mentioned in the previous post, in the upgrades like 7.0.5 they install the new files with the InstallFiles action.
You could apply all the minor patches up to 7.1.0 and see, if the File table is populated the right way.
However, the only way to make it tight, would be to watch the changes with a tool like Installwatch or InCntrl.
Wish you good luck.
Regards, Nick

0
no sweat 'bout this, nick. [;)]

Adobe fixes their software but breaks a lot more on the packaging. They should've released a COMPLETE & FINAL v7.1.4 package as it has reached EOL.

anyhow, i was planning to integrate v7.0.5 [cumm] > 7.0.7 [?] > 7.0.8 [?] > 7.0.9 [?] > 7.1.0 [qtr] > 7.1.3 [qtr] > 7.1.4 [qtr]

i know i need the cummulative updates (e.g. 7.0.5) but i'm not sure what type/category of updates for 7.07--7.09.

on another note, i know 7.0.8 is needed as Acrobat.exe was last updated from this branch.

nonetheless, will try them out over the weekend :)

THANKS!

0
It was my understanding that even-numbered patches were the quarterly updates and the odd-numbered ones were security fixes and that they weren't to be (or couldn't be) mixed. Perhaps that's only for v9 upwards....

0
Take a look here, (scroll down to the version 7 part)...

Quoting:
The oldest patch shown above for Acrobat Version 7 is 7.1.0. Although previous patches were released between the 7.0.0 original product and the 7.1.0 patch, Adobe recommends that any current customer deploying version 7 bypass the interim patches and step directly to 7.1.0 and beyond.

0
Nice one, Rowan. It would be useful to post that link to ALL the Adobe Acrobat/Reader entries in the 'Package KB'.

0
Haha, davidlimcg23 actually beat to me this, just a few posts above me, an almost identical post. (I just noticed this when scrolling down and getting confused because my name wasn't on my post)

But I'll add them to all the entries in the Package KB, it's not like I've got anything better to do (Ran out of apps to package for current customer ;P)

0
got a VERY GOOD news :)

just integrated v7.0.0 with 7.0.5 > 7.0.7 > 7.0.8 > 7.0.9 > 7.1.0 > 7.1.3 > 7.1.4 patches

All files are fully updated and identical as per normal MSP chaining and AIP.

in fact, integrating 7.0.9 is a good idea cuz it updates AcroPDF.dll (in ActiveX folder)!! <-- which, btw, is NOT UPDATED by 7.1.0/7.1.3/7.1.4 updates (hence AcroPDF.dll is still 7.0.0).

All in all, the PATCHAIP reduces the whole AIP size to 522MB uncompressed (vs 593MB of non-PATCHAIP method <-- redundant ~71MB due to temporary patches)

well @nheim, shaving ~71MB from the AIP package do worth the hassle :D only need time and effort to find out the WHY ;)

p/s: now time to do serious compression (repackaging) with 7-Zip [:)]

0
update: compressed v7.1.4 AIP (522MB) --> 138MB (7-Zip) [:D]

0
All of the Acrobat deployment doc needs improvement. I've been posting this to let folks know that's happening now (can't do much about the actual product though. . ):

Hi folks,
Adobe recognizes a clear need to provide admins with more and better documentation and resources. To this end, resources are being updated and corralled in an enterprise portal here: http://kb2.adobe.com/cps/837/cpsid_83709.html. Note that one resource is an AIR application which contains much of the documentation and an ever growing Preference Reference documenting over 300 keys. Expect several hundred more pages of new and updated doc in the coming months.
thanks,
Ben

0
When trying to patch my Acrobat Pro 9 AIP (current version of AIP is 9.0), I keep getting an annoying "Error 1305: Error reading from file D:\managedsw\acrobatpro\9\AcroPro.msi. Verify that the file exists and that you can access it."

(D:\managedsw\acrobatpro\9 is the AIP)

Yes, the file exists in that exact location (D: is not a mapped network drive or a substituted drive letter) and I can definitely access the file. Here is the command (including prompt) I'm using from a command prompt with D: the selected drive and CD'd to the AIP path:

D:\managedsw\acrobatpro\9>msiexec /p F:\path\to\patches\AcroProStdUpd910_T1T2_incr.msp /a AcroPro.msi TARGETDIR=D:\managedsw\acrobatpro\9 PATCHAIP=1

I've tried this without the TARGETDIR and PATCHAIP variables, enabled logging (/lv* ...), granted SYSTEM user full control of AIP and a few other steps. Haven't tried swearing yet--at least not audibly. Yes, I'm running this as an administrator (domain administrator to be specific). F: is also a volume proper, not a mapped or substituted drive. For kicks, I even downloaded AcroProExUpd910_all_incr.msp and tried patching the AIP with that update, but that at least returns "The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program..."

Any suggestions?

0
@berserk,

try setting the TARGETDIR to different folder/location.

0
ensure AcroPro.msi is not being used/loadedI'm intrigued to learn exactly how an MSI gets patched without being loaded...

0
I never did figure out what was going on. I had tried the TARGETDIR variable at one point, but that didn't seem to help. Eventually, I built the AIP on my Windows 7 client then copied it over to the Windows 2003 server I had been attempting to build it on. This worked, but it still annoys me. Would like to get to the bottom of it. [:)]

0
Hi all,
Let me add some frustration to this long Acrobat upgrade thread... Following the guidance on several fora i tried this:
I created a new patched distribution source for "acrobat professional 9".
The original v9.0 distribtion source was patched to version 9.3.3 via an AIP with following patches
AcroProStdUpd910_T1T2_incr.msp
AcrobatUpd912_all_incr.msp
AcrobatUpd920_all_incr.msp
AcrobatUpd930_all_incr.msp
AcrobatUpd932_all_incr.msp
AcrobatUpd933_all_incr.msp

So far no problem, the patched source works fine for new installs, but when I try to use this installer to upgrade an existing 9.0 I get the "Another version of this product is already installed" error (hmmm, the same error this thread started with...). Is there any way to eliminate this? I created an .mst via the customization wizard that mentions that previous version should be uninstalled?

I want to eliminate having an upgrade procedure for exisitng installs and another procedure for new installs.

Only thing I can do now is uninstall the existing version before installing with the 9.3.3 source or create a separate upgrade distribution that does a chained patch install.

0
I can't be fagged going through the entire thread but don't I recall reading that you shouldn't/can't patch with the even-numbered patches AND the odd-numbered ones? That would make your 933 patch spurious...

0
ORIGINAL: VBScab

I can't be fagged going through the entire thread but don't I recall reading that you shouldn't/can't patch with the even-numbered patches AND the odd-numbered ones? That would make your 933 patch spurious...

It should be OK.
Acceptable: Acrobat 9.0.0 (Original Product) -> 9.1.0 (Quarterly) -> 9.1.2 (Quarterly) -> 9.2.0 (Quarterly) -> 9.3.0 (Quarterly) -> 9.3.2 (Quarterly) -> 9.3.3 (Quarterly)

0
Excellent. They'd know if anyone would [uncrosses fingers]

0
ORIGINAL: VBScab

Excellent. They'd know if anyone would [uncrosses fingers]

Sure... :-)

So anyone an idea about the "Another version of this product is already installed" error ?

0
So anyone an idea about the "Another version of this product is already installed" error ?

I had a quick look at the package we have here for Adobe Reader. First off lemme tell you it's 9.1.1, but my remarks might still be pertinent.

In the upgrade table there's a number of entries that seem to check for different versions of the Reader sharing the same UpgradeCode. They all evaluate to a property called UT_FR.
Furthermore there's a CA called OlderOverNewerAbort that has a condition Not Installed And UT_FR

This to me looks like a likely candidate for disabling as a little test... would do it myself but I REALLY can't spare the time..

PJ

0
Hi folks,
The "Another version of this product is already installed" error comes exact from what it says. It is thrown when an app with the same Productcode is already installed.
This is the case here, because the patches do not change the Productcode, which remains the same from version 9.0 onward.

One could change the Productcode of a new release, like 9.3.3, but i wouldn't recommend it, because there are several CA's in the package which use the Code.
Adobe is (mis-) using the Productcode for different things (like the distinction between retail and volume licensing). See the link above.

We use our deployment system to uninstall and install a newer version in one task.

Regards, Nick

0
If u get an error messge another version of this product is installed Jusst at the end of MSi use the properties in command line REINSTALL=ALL REINSTALLMODE=OMUSlike msiexec /i {} REINSTALL=ALL REINSTALLMODE=OMUS
It WOrks...

0
It's as well to NOT advise people how to work around situations which are clearly not right but rather to tell them how to fix them. Remember my car analogy in your post about port settings? To stretch it further, using the logic you express here, the "solution" in that situation would probably be to wear ear defenders...


text:
## Need help verifying an anwer to this problem.

Complex numbers, rational functions, logarithms, sequences and series, matrix operations, etc.
rogermiranda
Posts: 19
Joined: Fri Apr 30, 2010 6:01 pm
Contact:

### Need help verifying an anwer to this problem.

Complex Fraction:
a^2 / b^2 - 1 denominator 1/a + 1/b = a^2 - b^2 / b^2 denominator b+a / ab
= a^2 - b^2 / b^2 * ab / b+a = a(a-b) / b.
But my textbook has the answer a(a-b). So what happened to the denominator b?

stapel_eliz
Posts: 1628
Joined: Mon Dec 08, 2008 4:22 pm
Contact:
Please reply showing the expression with grouping symbols. For instance, does "a^2 / b^2 - 1" mean "(a2/b2) - 1" or "a2/(b2 - 1)"?

Thank you!

rogermiranda
Posts: 19
Joined: Fri Apr 30, 2010 6:01 pm
Contact:

### Re: Need help verifying an anwer to this problem.

Here is the Complex Fraction:
Numerator= (a^2 / b^2) - 1
Denominator = (1/a + b/a)

So, finding the LCD I have
Numerator= (a^2 - b^2 / b^2)
Denominator = (b + a / ab)

Next I multiply by the reciprocal
(a^2 - b^2 / b^2) * (ab / b + a)
[(a + b)(a - b) / b^2)] * (ab / b + a)

Simplifying, I am left with
(a - b / b) * a

So the answer I get is
Numerator= a(a - b)
Denominator = b but my textbook has the answer a(a - b). So what happened to the denominator b?

stapel_eliz
Posts: 1628
Joined: Mon Dec 08, 2008 4:22 pm
Contact:
Here is the Complex Fraction:
Numerator= (a^2 / b^2) - 1
Denominator = (1/a + b/a)
I will assume the following:

. . . . .$\frac{\left(\frac{a^2}{b^2}\, -\, 1\right)}{\left(\frac{1}{a}\, +\,\frac{b}{a}\right)}$

I think you then went the route of working the numerator and denominator separately. But I don't understand what you did in the denominator, since you were given two fractions with the same denominator...? I think the next step should have been as follows:

. . . . .$\frac{\left(\frac{a^2\, -\, b^2}{b^2}\right)}{\left(\frac{1\, +\, b}{a}\right)}$

rogermiranda
Posts: 19
Joined: Fri Apr 30, 2010 6:01 pm
Contact:

### Re: Need help verifying an anwer to this problem.

Yes you have written the problem correctly.
Except the denomitor of the complex fraction is 1 over a + 1 over b (1/a + 1/b). So the LCD is ab.
So the denominator of the complex fraction is now b + a over ab (b + a / ab).

stapel_eliz
Posts: 1628
Joined: Mon Dec 08, 2008 4:22 pm
Contact:
... the denomitor of the complex fraction is 1 over a + 1 over b (1/a + 1/b).
Ah; so the expression is as follows...?

. . . . .$\frac{\left(\frac{a^2}{b^2}\, -\, 1\right)}{\left(\frac{1}{a}\, +\,\frac{1}{b}\right)}$

Then the LCD's would give:

. . . . .$\frac{\left(\frac{a^2\, -\, b^2}{b^2}\right)}{\left(\frac{b\, +\, a}{ab}\right)}$

Reverse the one addition to get the standard order:

. . . . .$\frac{\left(\frac{a^2\, -\, b^2}{b^2}\right)}{\left(\frac{a\, +\, b}{ab}\right)}$

Then flip-n-multiply:

. . . . .$\left(\frac{a^2\, -\, b^2}{b^2}\right)\, \times\, \left(\frac{ab}{a\, +\, b}\right)$

Factor the one numerator, cancel the common factors, and simplify to get the final answer.

My answer matches yours, by the way, not the book's. At a guess, the solution was typoed.


text:
# track HTML

## HTML <track> Tag

To specify time-based text tracks for a media file, the HTML <track> tag is used as a child element of <audio> and <video> elements. Subtitles, captions, or any other form of text can thus be added by this tag which is displayed when a media file plays. It was introduced in HTML5.

## Syntax:

<track src=" " kind=" " srclang=" " label=" ">

Example:

<!DOCTYPE html>
Example of HTML <track> Tag:
 <video width="320" height="240" controls> <source src="horse.mp4" type="video/mp4"> <track src="horse.vtt" kind="subtitles" srclang="en" label="English"> </video>

## Steps to create a WEBVTT file for <track> tag:

1. Open a text editor.
2. On the first line of the editor write WEBVTT.
3. A blank line is then left.
4. The time duration is specified in a proper format.
5. Numbering and CSS can also be added.
6. The required text is then entered.
7. Repeat the steps 3 to 5 until it is finished.
8. The file is saved with the .vtt extension.
9. The WEBVTT file is ready to use.

## Tag specific Attributes:

 Attribute Value Uses default default Used to instruct that the track will be enabled if the another track is no indicated to be more appropriate by the user’s preferences. kind captions chapters descriptions metadata subtitles Used to define the kind of the text track. label text Used to define the title of the text track. src URL Used to define the URL of the track file and is a required attribute. srclang language_code Used to define the language of the track text data and is a required attribute if kind=”subtitles”.

## Global Attributes:

The HTML Global attributes are supported by the HTML <track> tag.

## Event Attributes:

The HTML Event attributes are supported by the HTML <track> tag.

## Supporting Browser:

Chrome, IE, Firefox, Opera and Safari.