DMT data simulation driver program.
DMTGen is a data simulation program written primarily for use in testing DMT code. A DMTGen run produces a specified set of channels in data frames. Each channels is generated from the combination of one or more signals produced by so-called Data Sources. The data sources can either read pre-recorded data from frames (or xml in the future) or generate new data according to analytical or random functions. Generated data can be either continuous or transient. Transient data sources are generated at either a fixed time, at random times or at evenly spaced times.
Running a DMTGen
The DMTGen command line syntax is as followsDMTGen -conf <c-file>Where <c-file> is a configuration file as described below in
Configuring a DMTGen Generation Run.
Configuring a DMTGen Generation Run
A DMTGen generation run is specified by a configuration file containing:
- Generation control parameters
- Filter descriptions.
- Data source descriptions
- Channel descriptions.
Configuration files consist of one or more configuration commands. Each command is a series of white-space delimited words. The command ends with a pound sign ("#") or at the end of a line. If the command can not be contained on a single line, it may be continued on the next line by ending the first through penultimate line(s) with a backslash ("
"). Comment lines begin with a pound sign ("#").
Configuration files may be included into other configurations with an include statement. The include statement syntax is as following syntax:Include <file-name>
Generation Control Parameters
These parameters control various aspects of a generation run such as length of the run, the output files, etc. The control parameters are specified as follows:Parameter <param-name> <param-value>The currently defined parameters include:
Parameter default Contents Compression none Default compression scheme ("", "gzip") [""] EndGPS - End GPS time FilePrefix DMTGen Frame files are named <prefix>-<start-gps>-<len>.gwf FrameLength 16 Length of the frame files (in seconds) GenerStride 4.0 Number of seconds of data generated at once. Identifier "DMT generation run" The identifier string written to the frame headers RunID -666 The generation run number (must be negative) StartGPS - Starting GPS time
Data from each source may be individually filtered. The data may also be filtered before and after summation of the various sources that combine to form a channel. The syntax for defining a filter is:Filter <filter-name> <filter-type> [ <p1> .... <pN> ]The following filter types have been defined
DaqErr Generate DAQ errors of type P1. The average cluster rate can be specified with -rate <hz>, and a fixed or random cluster width can be specified with -clust <N> and -avgwid <nAvg>, respectively. Delay Delay data by the number of seconds specified in P1. Design Use the FilterDesign class to define the filter. P1 is the sample rate and P2 is the FilterDesign specification string. IfoResponse Apply an IfoResponse filter to the time series. The IFO response is implemented in the fourier domain and uses the LscCalib class to fetch the Calibration constants from an EasyCalibrate compatible xml file. The argument P1 is the calibration file name. ReSample Resample in the fourier domain to a sample rate of P1.
Data Source Specifications
Data source specifiers define continuous or transient signal sources, the outputs of which are filtered and summed to form simulated channels. The syntax of the source definition statement is:Source <src-name> <src-type>([<param1>=<value1>[,...,<paramN>=<valueN>]]) \ [-rate <rate> | -time <gps-time>] [-sample <samp-rate>] \ [-simevent] [-simdata]The currently available data sources are:
DampedSine(A,F,Q,Phi,Width) Damped sinusoid. FrameData(Channel,Files) Read Channel from data frames in Files GaussBurst(A,Sigma,Width) White noise modulated by a gaussian envelope. Sine(A,F,Phi) Continuous sinusoid. Sinc(A,F,Width) Sinc function. SinGauss(A,F,Q,Phi,Width) Sinusoid in a gaussian envelope. WhiteNoise(A) Gaussian white noise.
Each parameter may be generated randomly according to several distributions. The currently implemented distributions are:
<const> Constant value flat(<min>, <max>) Flat distribution in the interval [<min>, <max>] step(<min>,<max>,<step>) Step from <min> to <max> in increments of <step> xstep(<min>,<max>,<step>) Step exponentially from <min> to <max> by factors of <step> gauss(<sigma>,<avg>) Gaussian distribution with average value <avg> and sigma <sigma> power(<pow>,<min>,<max>) Power law distribution between <min> and <max> with exponent <pow> exp(<b>,<min>,<max>) exponential distribution from <min> to <max> with average exponent <b>
The additional arguments in the Source statment have the following meanings:
<src-name> Name by which the source is referred. -rate <rate> Events are to be generated at random times with average rate <rate> -time <gps-time> A single event is to be generated at time <gps-time> -sample <samp-rate> Data are to be digitized at <samp-rate> samples per second. -simevent Record generated event parameters. -simdata Record generated source wave-forms.
Channel specifications describe a channel and the data sources that are to be used to make it up. The syntax of the channel specification is:Channel <chan> [-daqchain <filter>] [-sample <rate>] <src1> [... <srcN>]All sources (src1 [... <srcN>]) listed on the channel specification are summed together and the result is passed through the data acquisition simulation filter (<filter>). Resampling to (<rate>) is not yet implemented. The channel name (<chan>) is used as the channel name in the output frames.
alphabetic index hierarchy of classes
generated by doc++