# nq2pgm Configuration File Commands

(last revised 8 June 2011)
Page Index:
1. Example configuration file
2. Functional command listing
3. Alphabetic command listing & description
4. Descriptor file example

On startup, nq2pgm reads the configuration file named on the command line. As always, the configuraton file contains comments:

>     #  marks the line as a comment (example: # This is a comment).

Command names must be typed in the control file exactly as shown in this document (upper/lower case matters!). nq2pgm supports one diagnostic command line option, -v is for verbose mode so that you can see packets coming in.

## 1. EXAMPLE CONFIGURATION FILE

    #
    # nq2pgm configuration file
    #
    # This code receives MiniSEED records as files, calculates peak ground
    # motions and spectral amplitudes by the method of Nigam and Jennings.
    # Results are sent to transport ring as strong motion messages and
    # an XML file is written.
    #
    #
    ModuleId        MOD_NQ2PGM       # module id for this import,
    RingName        HYPO_RING        # shared memory ring for input and output

    HeartBeatInt   10      # Heartbeat interval in seconds
                           # this should match the nq2pgm.desc heartbeat!

    LogFile         1      # If 0, don't write logfile;; if 1, do
                           # if 2, log to module log but not stderr/stdout

    # Directory where we should put the strong motion XML files
    XMLDir    /home/luetgert/sendfiles/nqxmls/

    # Directory where we should look for the NetQuakes miniSEED files
    NQFilesInDir    /home/luetgert/getfiles/netquakes/nq2pgm

    StationList /home/earthworm/run/params/netquake.db1 # The file with all the station metadata.

    # Debug switch: the token "Debug" (without the quotes) can be stated.
    # If it is, lots of weird debug messages will be produced
      Debug

## 2. FUNCTIONAL COMMAND LISTING

Below are the configure commands recognized by nq2pgm, grouped by the function they influence. Most of the commands are required.

             Earthworm system setup:
            MyModuleId           required
            RingName             required
            RingName            required
            HeartbeatInt       required

        Output Control:
            LogFile                required

## 3. ALPHABETIC COMMAND LISTING & DESCRIPTION

In the following section, all configuration file commands are listed in alphabetical order. Listed along with the command (bold-type) are its arguments (in red), the name of the subroutine that processes the command, and the function within the module that the command influences. A detailed description of the command and is also given. Default values and example commands are listed after each command description.

    command arg1                processed by        function

    HeartbeatInt beat            HeartBeat        Earthworm setup

> Beat the nq2pgm heart every beat seconds.

    Default:  0 - do not use logit() for LOG channels

    LogFile switch                GetConfig        Earthworm Setup

> Sets the on-off switch for writing a log file to disk. If switch is 0, no log file will be written. If switch is 1, nq2pgm will write a daily log file(s) called q2ewxx.log_yymmdd where xx is nq2pgm's module id (set with "MyModuleId" command) and yymmdd is the current UTC date (ex: 960123) on the system clock. The file(s) will be written in the EW_LOG directory (environment variable).

>     Default:  none

    MyModuleId mod_id            GetConfig        Earthworm setup

> Sets the module id for labeling all outgoing messages. mod_id is a character string (valid strings are listed in earthworm.d) that relates (in earthworm.d) to a unique single-byte number.

>     Default:  none
>     Calnet:   MyModuleId MOD_nq2pgm

    RingName ring                GetConfig        Earthworm setup

> This is the ring into which the waveforms and messages are sent.

>     Default:  none, required option
>     ATWC:   RingName WAVE_RING

## 4. DESCRIPTOR FILE EXAMPLE

Here is a copy of the nq2pgm.desc file as implemented. Note that all causes of death for nq2pgm feed through the function nq2pgm_die() which logs all causes of death using logit() and sends a message to the statmgr utility.

    modName  nq2pgm
    modId    MOD_nq2pgm
    instId   INST_MENLO

    restartMe    # restart this sucker as it is critical to data collection
    #
    #
    #    Heartbeat Specification.  If the status manager does not receive
    #    a heartbeat message every  seconds from this module, an
    #    error will be reported (client module dead).   is the maximum
    #    number of pager messages that will be reported and  is the
    #    maximum number of email messages that will be reported.  If the
    #    page or mail limit is exceeded, no further errors will be reported
    #    until the status manager is restarted.
    #
    tsec: 20  page: 0  mail: 99

    # these are the statmgr messages that nq2pgm will send before dieing
    #
    err: 0  nerr: 1  tsec: 0  page: 5  mail: 20
    text: "COMSERV has a problem and died"
    #
    err: 1  nerr: 1  tsec: 0  page: 5  mail: 20
    text: "COMSERV Recv NO DATA TIMEOUT and died"
    #
    err: 2  nerr: 1  tsec: 0  page: 5  mail: 20
    text: "SIGNAL caused nq2pgm to die"
    #
    err: 3  nerr: 1  tsec: 0  page: 5  mail: 20
    text: "EW tport_putmsg() failed, nq2pgm dead"
    #
    err: 4  nerr: 1  tsec: 0  page: 5  mail: 20
    text: "EW TERMINATE recv'd, nq2pgm dead"
    #
    err: 5  nerr: 1  tsec: 0  page: 5  mail: 20
    text: "EW config problems on startup, nq2pgm dead"
    #
    # BELOW: WARNINGS, NOT FATAL YET
    err: 6  nerr: 1  tsec: 0  page: 5  mail: 20
    text: "qlib2 decompression errors"
    #

Module Index | nq2pgm Overview