NAME
traceview - Program to view waveforms and edit arrivals
SYNOPSIS
traceveiw dbname
traceview [-sc sta:chans] [-ts start_time] [-tw time_window]
[-trefresh trefresh] [-usewheel|-dontusewheel]
[-import fname] [-nfsok] [-pf pfname] dbname
DESCRIPTION
traceview is a program to display seismic waveform traces, arrival flags, detections,
predicted arrivals, seismic event associations and residuals.
As well,
traceview supports interactive editing of seismic arrivals. This program is meant
to provide the same functionality as
dbpick(1) but using Qt-based display graphics and graphical
user interface.
traceview uses a
BQTraceview(3) class object to effect the main display
graphics and GUI. Also used are a typein command console, using a
BQCommandConsole(3) object,
and an events/origins spreadsheet, for show event information and providing an event-based selection
mechanism, use a
BQEVTableview object.
An attempt has been made to make traceview behave as much like dbpick(1) as
is reasonably possible. Most of the trace display interaction has been preserved.
Arrival editing interaction has also been preserved as much as reasonably possible.
In addition many new capabilities and interactions have been
introduced. In particular, the user typein interface from dbpick(1) and the ability to send commands
through the typein interface have been preserved and enhanced using the BQCommandConsole(3) class.
DISPLAY COMPONENTS AND LAYOUT
traceview has three main windows. There is a main display window that shows the
BQTraceview(3)
object consisting of waveforms, arrivals, predicted arrivals, detections and residuals, along with trace
and timing annotations, three test status displays immediately above the waveform display,
the bottom one for displaying the current selected event information and the top one for displaying
the current cursor position or the current selected arrival information. Above the status displays is
a taskbar that is configurable using the
traceview parameter file.
There as a second command window that shows the BQCommandConsole(3) command typein window.
This window shows
a history of commands that can be generated by either direct user typing or remotely by other interactions
through the main display window as described below. The user can re-generate commands by using the Up
and Down keyboard arrow keys. Commands can be edited inline before they are executed using the Return
key. Commands and command syntax are described in the COMMANDS section following.
At startup, the main display window and command window are shown side-by-side. The command window
is implemented as a QDockWidget object and can be moved to become a free floating top-level
window or re-attached to the main display at some other docking position. The window can be dismissed
completely and brought back using the Windows pull-down menu in the menu bar as described below.
A third optional events information window can be created using the Windows pull-down menu.
This window a BQEVTableview(3) object that shows event/origin information in spreadsheet styles.
The particular columns shown are configured in the tableview parameter file. This events
window shows a list of events that can be sorted along with the currently selected event and origin.
The event and origin selections can be changed by clicking on a particular row in the spreadsheet.
This third events window is displayed to the left of the main display window when first created.
As with the command window, the events window
is implemented as a QDockWidget object and can be moved to become a free floating top-level
window or re-attached to the main display at some other docking position. The window can be dismissed
completely and brought back using the Windows pull-down menu in the menu bar as described below.
The main display window looks similar to the dbpick(1) display. Seismic waveforms are drawn
horizontally and are arranged vertically for the individual traces.
The horizontal X-axis is time. The vertical Y-axis is trace index. Channels can be shown or hidden
and sorted as described below.
Arrival flags, detections, predicted arrivals, residual bars and time uncertainty bars are all
implemented using BQPolypoint(3) glyph objects.
There are copious display configuration parameters, set
through the commands and parameter file parameters defined below, relating to component colors, linewidths,
the various display modes and other parameters. There are status display lines,
implemented as BQText(3)
objects, to show the current mouse cursor coordinates, arrival information and event information.
The mouse cursor
is implemented with a set of crosshairs that can be used to determine feature alignment in
both time and amplitude.
traceview can display
detailed event information through the various glyphs and through the status display lines.
A particular origin
of a particular event can be put into a selected state, in which case the associated arrival glyphs are
color coded according to their associations within the database.
There are two basic display modes; "normal" mode and "edit" mode. In normal display mode, interaction allows
time-axis panning and zooming, trace-axis panning and zooming, selection and ordering of traces to display,
waveform filtering, selection of events and origins, P-alignment, automatic trace selection
based on existence
of arrivals and/or detections, waveform amplitude scaling and units to display and other configure options
such as show/hide of arrivals, detections and predicted arrivals. However, in normal display
mode all arrival editing is disabled. In edit mode certain of the display mouse interactions
are usurped from the normal mode to be used for arrival editing. All interactive arrival editing
must be done in edit mode. Many
of the configuration parameters, such as colors, can be specified with mode-dependent values. For instance
the basic background and foreground colors can be (and usually are) different for normal and
edit display modes.
In edit mode arrivals can be "tagged" as being defining or non-defining to specify the associations
for a new location to be determined.
A taskbar, implemented with BQTaskbar(3), is specified using the traceview
parameter file. This taskbar has been enhanced so that its
actions can be to send traceview commands as defined below.
INDIVIDUAL TRACE REPRESENTATION
Each individual trace in
traceview is represented as a
BQTrace(3) object.
The
BQTrace class is a helper class and its objects currently can only be used from
within
BQTraceview objects.
BQTrace objects are created automatically
by
traceview objects as needed.
Each trace within the traceview main display is assigned a trace label when it is created.
This trace label
is displayed to the left of the trace. The trace label is in the
form <sta> <chan>[;<copy>], where <sta> and <chan> are the
CSS sta and chan codes and <copy> is an optional copy number. Individual traces
within traceview can be duplicated as many times as desired. A duplicated trace will
have an ordinal <copy> number starting with 1 for the first copy. The original trace is
assigned a copy number of 0. The automatically
generated trace labels will only show the <copy> numbers for
numbers >= 1. The trace labels can be
used to determine individual BQTrace objects, as described below, which can then
be used to set different parameters for individual traces. For instance, a trace can be duplicated n times
and each of the duplicated traces can be assigned different filters.
TRACE EXPRESSIONS
A trace expression language has been developed to allow the programmer and user to specify an ordered
set of traces to be subject to various actions. Ordering traces in the display is the simplest
of these actions. A trace expression is of the
form
<expression1>[,<expression2>[,<expression3>[,...]]], where
each of the
<expressionN> strings is of the
form
<sta_expr>[:<chan_expr>[;<copy_expr>]].
Each trace is compared against
the expressions in the comma separated list. If a trace satisfies one of the expressions in the
comma separated list,
then that trace is given an order number based on its position in the comma separated list.
Each of the expressions
in the comma separated list are evaluated against each trace as follows. The
CSS
sta code is compared against
<sta_expr> which can be
*, matching all
sta codes,
or a normal datascope-style expression to match against
sta. The trace continues to match against
the optional
<chan_expr> and
<copy_expr> strings. If these expressions are not specified, then
all channels and all copies will match. A single
* character will also match all channels or copies.
Trace matches with the same order number from the original comma separated list are ordered alphabetically
according to their trace labels. Note that if only original traces are desired, then the
<copy_expr>
should be specified and set to
0. For instance, an expression that matches all stations and channels
but only for the original traces would be
*:*;0. As another example, the expression that would
produce an ordered list of traces in which all of the
Z components were first followed by all
of the
N
components then all of the
E components would be
*:..Z.*,*:..N.*,*:..E.*. Note that with this
expression all copies match as well.
INTERACTIONS WITH DATA SOURCES
Interactions with the input database data sources use automatically created
EVServer
and
EVClient objects. Notifications of database changes from the internal
EVServer
object are sent to the internal
EVClient object.
traceview responds to these notifications by immediately updating the display.
In order for spontaneous dynamic display updates to be realized, the
-trefresh command line
option must be specified, as described below.
GRAPHICAL USER INTERACTION
Other than direct user typein interaction through the attached command console,
there are various user graphical interfaces that are configured at run time
through
PARAMETER FILE defined below. These configurable
interactions include hotkeys, popup arrival menus and taskbar buttons, all defined below.
Most mouse interactions are currently hardwired and are meant to mimic the dbpick(1) mouse
interactions as much as possible. In particular, single arrival editing by a single click on an arrival flag
without previously selecting that arrival, as it is in dbpick(1) is supported.
There are differences between some of the mouse interactions
when the main display is in edit mode relative to when it is not in edit mode. Following is a list
of mouse interactions in normal, non-edit, mode.
There is a confusion factor that is caused by the Qt graphics engine relating to various keyboard
keys used in the graphical user interface. On Apple systems running MacOS, key modifier combinations
are internally mapped so that a Control modifier is actually mapped to the Apple Command
keyboard key, an Alt modifier is mapped to the Apple Option keyboard key and a Meta
modifier is mapped to the Apple Control key. This mapping is done automatically by the Qt engine
for Apple systems running MacOS. For Linux systems, the Control modifier uses the Control
keyboard key, the Alt modifier uses the Alt keyboard key (the Option keyboard
key on an Apple keyboard) and the Meta modifier uses the Meta keyboard
key (the Command keyboard key on an Apple keyboard.
The Trace Display Region is the area, excluding the arrival flags, where the
traces are displayed. Within this region, while in non-edit mode, the mouse acts as follows:
-
Left-Click
The left mouse button causes the traces to be time
scrolled to the left so that the mouse position is shifted to the left
edge of the screen.
-
Middle-Drag
Dragging the middle mouse button causes the traces to follow the movement
of the mouse in time.
-
Right-Click
The right mouse button causes the traces to be time
scrolled to the right so that the mouse position is shifted to the right
edge of the screen.
-
Shift-Left-Click
Holding the SHIFT key while clicking the left mouse button causes a sequence
to be initiated that controls expansion (or zoom-in) of the time scale.
After the initial mouse Shift-Left-Click, a rubberband box will track the
mouse cursor until one of the three mouse buttons is clicked again. If the
left or right button is clicked, then the time scale expands so that the delineated
rubberband box fills the new display window. If the middle mouse button is clicked, then the zoom-in
action is aborted.
-
Shift-Right-Click
Holding the SHIFT key while clicking the right mouse button causes a sequence
to be initiated that controls contraction (or zoom-out) of the time scale.
After the initial mouse Shift-Right-Click, a rubberband box will track the
mouse cursor until one of the three mouse buttons is clicked again. If the
left or right button is clicked, then the time scale contracts so that the
current display time window maps to the delineated
rubberband box in the new window. If the middle mouse button is clicked, then the zoom-out
action is aborted.
-
Control-Middle-Drag
Holding the Control key while dragging the middle mouse button causes the traces to follow the movement
of the mouse in the Y-axis traces direction.
Note that the Control modifier key under MacOS is mapped to the Command key (i.e. you need to
press the Command key on the mac keyboard to get the Control modifier behavior).
Under linux, the Control modifier key behavior is implemented with the normal Control
keyboard key.
-
Control-Left-Click
Holding the Control key while clicking the left mouse button causes a sequence
to be initiated that controls expansion (or zoom-in) of the Y-axis traces scale.
Note that the Control modifier key under MacOS is mapped to the Command key (i.e. you need to
press the Command key on the mac keyboard to get the Control modifier behavior).
Under linux, the Control modifier key behavior is implemented with the normal Control
keyboard key.
After the initial mouse Control-Left-Click, a rubberband box will track the
mouse cursor until one of the three mouse buttons is clicked again. If the
left or right button is clicked, then the traces scale expands so that the delineated
rubberband box fills the new display window. If the middle mouse button is clicked, then the zoom-in
action is aborted.
-
Control-Right-Click
Holding the Control key while clicking the left mouse button causes a sequence
to be initiated that controls contraction (or zoom-out) of the Y-axis traces scale.
Note that the Control modifier key under MacOS is mapped to the Command key (i.e. you need to
press the Command key on the mac keyboard to get the Control modifier behavior).
Under linux, the Control modifier key behavior is implemented with the normal Control
keyboard key.
After the initial mouse Control-Left-Click, a rubberband box will track the
mouse cursor until one of the three mouse buttons is clicked again. If the
left or right button is clicked, then the traces scale contracts so that the
current display traces window maps to the delineated
rubberband box in the new window. If the middle mouse button is clicked, then the zoom-out
action is aborted.
-
Shift-Middle-Drag
Holding the SHIFT key while dragging the middle mouse button causes the traces to follow the movement
of the mouse in the both the time and Y-axis traces directions.
-
Alt-Left-Click
Holding the Alt key while clicking the left mouse button causes a sequence
to be initiated that controls expansion (or zoom-in) of both the time and the Y-axis traces scales.
Note that the Alt modifier key under MacOS is mapped to the Option key (i.e. you need to
press the Option key on the mac keyboard to get the Alt modifier behavior).
Under linux, the Alt modifier key behavior is implemented with the normal Alt
keyboard key or the Option key on an Apple keyboard.
After the initial mouse Alt-Left-Click, a rubberband box will track the
mouse cursor until one of the three mouse buttons is clicked again. If the
left or right button is clicked, then the time and traces scales expand so that the delineated
rubberband box fills the new display window. If the middle mouse button is clicked, then the zoom-in
action is aborted.
-
Alt-Right-Click
Holding the Alt key while clicking the left mouse button causes a sequence
to be initiated that controls contraction (or zoom-out) of the time and Y-axis traces scales.
Note that the Alt modifier key under MacOS is mapped to the Option key (i.e. you need to
press the Option key on the mac keyboard to get the Alt modifier behavior).
Under linux, the Alt modifier key behavior is implemented with the normal Alt
keyboard key or the Option key on an Apple keyboard.
After the initial mouse Alt-Left-Click, a rubberband box will track the
mouse cursor until one of the three mouse buttons is clicked again. If the
left or right button is clicked, then the time and traces scales contract so that the
current display traces window maps to the delineated
rubberband box in the new window. If the middle mouse button is clicked, then the zoom-out
action is aborted.
-
Wheel
Mouse wheel events, including trackpad gestures, will cause panning in both the time
and Y-axis traces directions. Note that Wheel event interaction is only enabled
when the use_wheel configuration parameter has been set (see PARAMETER FILE
below).
Following is a list of mouse interactions when the display is in edit mode.
-
Left-Click
If the internal add arrivals mode has been set through a call to setAddArrivalsMode method
or a arrivals add_mode command, defined below, then a Left-Click will add
a new arrival at the mouse cursor position.
If the internal add arrivals mode is not set and the cursor is within an arrival flag,
then this initiates a time edit of either a single arrival or all of the selected arrivals.
If the internal add arrivals mode is not set and the cursor is not within an arrival flag, then
this initiates an arrival selection rubberband box. Any previous arrival selections are first cleared.
Note that this usurps the non-edit mode Left-Click behavior.
-
Shift-Left-Click
If the cursor is within an arrival flag,
then this initiates a deltim (time uncertainty) edit of either a single arrival or all of the selected arrivals
and this usurps the non-edit mode Shift-Left-Click behavior.
If the cursor is not within an arrival flag, then the non-edit mode Shift-Left-Click behavior is preserved.
-
Control-Left-Click
If the cursor is not within an arrival flag, then
this initiates an arrival selection rubberband box. This appends arrival selections to the current
arrivals selection list.
Note that the Control modifier key under MacOS is mapped to the Command key (i.e. you need to
press the Command key on the mac keyboard to get the Control modifier behavior).
Under linux, the Control modifier key behavior is implemented with the normal Control
keyboard key.
Note that this usurps the non-edit mode Control-Left-Click behavior.
-
Left-Drag
If the initial Left-Click was within an arrival flag, then this will continue the arrival time edits until the
left mouse button is released.
If the initial Left-Click was not within an arrival flag, then this will continue modifying the
rubberband box and the selection of arrivals within the box until the left mouse button is released.
-
Shift-Left-Drag
If the initial Shift-Left-Click was within an arrival flag, then this will continue the arrival deltim (time
uncertainty edits until the left mouse button is released.
-
Control-Left-Drag
If the initial Control-Left-Click was not within an arrival flag, then this will continue modifying the
rubberband box and the selection of arrivals within the box until the left mouse button is released.
Note that the Control modifier key under MacOS is mapped to the Command key (i.e. you need to
press the Command key on the mac keyboard to get the Control modifier behavior).
Under linux, the Control modifier key behavior is implemented with the normal Control
keyboard key.
-
Right-Click
If the internal add arrivals mode has been set through a call to setAddArrivalsMode method
or a arrivals add_mode command, defined below, then a Right-Click will clear
the internal add arrivals mode and stop the creation of new arrivals.
If the internal add arrivals mode is not set and the cursor is within an arrival flag,
then this will normally cause a popup menu to appear, as defined by the arrivals_menus
parameter defined in PARAMETER FILE below.
If the internal add arrivals mode is not set and the cursor is not within an arrival flag,
then this first clears all arrival selections and then
initiates an arrival selection rubberband box.
Note that this usurps the non-edit mode Right-Click behavior.
-
Right-Drag
If the initial Right-Click was within an arrival flag, then popup menu, if any, interaction
is processed.
If the initial Right-Click was not within an arrival flag, then this will continue modifying the
rubberband box and the selection of arrivals within the box until the right mouse button is released.
The Trace Label Region is the area to the left of the traces where the
trace labels and amplitude annotations are displayed. Within this region the
mouse acts as follows:
-
Left-Click or Left-Drag
Pressing and/or dragging the left mouse button in this region causes the specified traces
to be selected/unselected.
-
Right-Click
Holding down the right mouse button shows a popup menu. This menu contains an item order selected traces,
which will show and order the traces according to the current traces selection,
and an item zoom selected traces, which will maintain the current trace ordering but will zoom
the display in the Y-axis direction so that topmost trace in the selected list is at the top
of the display and the bottommost trace in the selected list is at the bottom of the display.
EDIT QUEUE
Whenever arrivals are edited, a record of that edit is kept in an internal edit queue. The edit queue
is a single threaded history of arrival edits made during the running of
traceview.
If a set of arrivals are edited, then the edit queue treats those together as a single edit.
Arrival edits can be rolled back to previous states using the
arrivals edit_queue undo command described below.
Arrival edits can then be redone using the
arrivals edit_queue redo command described below.
Note that the edit queue is single threaded. This means that if edits are undone and then a new edit is made, then
the edit queue history from that new edit is erased.
An arrival edit state can be set using the arrivals edit_queue setstate command described below.
When a state has been set, it is possible to roll back/forward arrival edits to that state
using the arrivals edit_queue setstate command described below.
COMMANDS
traceview can be configured through a set of string commands that can be
typed in through the command console window,
or through the taskbar buttons, hotkeys or arrivals menus defined below. This command interface provides
similar functionality to the typein interface for
dbpick(1). Note that commands typed
into the command console object or programmatic commands that have been routed through the
command console object can generate text output that will be shown in the command console.
Simple command aliases can be defined. The aliases are all evaluated against the first word
in a command. Arguments after the aliased command are appended to the unaliased command. Alias
substitutions are evaluated recursively providing aliases of aliases functionality. Certain tokens
in the commands will automatically be substituted by current display values. Substitution tokens are define below.
-
%time_start
This token will be substituted with the current epoch time at the left edge of the display.
-
%time_end
This token will be substituted with the current epoch time at the right edge of the display.
-
%time_middle
This token will be substituted with the current epoch time at the middle of the display.
-
%time_window
This token will be substituted with the current display time window.
Following is a list of the commands.
-
?
Show a help listing of all of the currently recognized commands.
-
help
Show a help listing of all of the currently recognized commands.
-
echo string
Echo the string with token substitution.
-
quit
Call exit which will cause the program to exit.
-
alias name [substitution_string]
Define a command alias with name name and command substitution string substitution_string.
If substitution_string is not specified, then the value of any existing substitution_string
for alias name will be output.
-
unalias name
This will remove any alias of name name.
-
aliases
This will output the list of all currently defined aliases.
-
hotkey name [substitution_string]
Define a hotkey command with key name and command substitution string substitution_string.
If substitution_string is not specified, then the value of any existing substitution_string
for hotkey name will be output.
A hot key name should be a single printable lower case keyboard character or of the
form [{shift|control|controlshift}-]{up|down|left|right|<key>},
where shift, control and controlshift
are modifier keys, up, down, left
and right are the corresponding keyboard arrow keys and <key> is a single lower case keyboard character.
The substitution_string is the command that will be executed. Variable substitutions are made based
upon the mouse position when the key was pressed.
The mouse X-position in world coordinates (epoch time) is substituted for the %xw token.
The mouse X-position in world coordinates relative to the left edge of the display is substituted for the %dxw token.
The mouse Y-position in world coordinates (Y-axis non-dimensional value) is substituted for the %yw token.
The mouse Y-position in world coordinates relative to the bottom edge of the display is substituted for the %dyw token.
If substitution_string is not specified, then the value of any existing substitution_string
for hotkey name will be output.
-
unhotkey name
This will remove any hotkey of name name.
-
hotkeys
This will output the list of all currently defined hotkeys.
-
main import file_name
This will import commands from file name file_name and is equivalent to
calling importCommands.
-
main export file_name
This will export commands to file name file_name and is equivalent to
calling exportCommands.
-
display time_start {time_string|+time_string|-time_string}
This will cause the main display to scroll in time.
For time_string specification,
then time_string is a proper Datascope epoch time string which will correspond to the
left edge of the display.
For +time_string specification,
then time_string is an increment in seconds that will shift the display in time that
many seconds to the left (increase the time at the left edge of the display).
For -time_string specification,
then time_string is an increment in seconds that will shift the display in time that
many seconds to the right (decrease the time at the left edge of the display).
-
display time_window time_string
This will cause the main display time window (display increment) to change to time_string seconds.
The time at the left edge of the display will remain unchanged.
-
display time_zoom factor [time_anchor]
This will zoom the time scale in or out according to factor and time_anchor. The
amount of zoom is determined by factor which should be a floating number where factor > 1.0
will cause the display to zoom out in time and factor < 1.0
will cause the display to zoom in in time. if time_anchor is specified, then it should be
an epoch time string corresponding to a time value that will stay unchanged in its X position
after the zoom. If time_anchor is not specified then
the time at the left edge of the display will remain unchanged.
-
display palign [{yes|no|toggle}]
This sets or unsets automatically time aligning traces to the first predicted P-arrival time for the selected event
and origin. This is equivalent to calling setPalign.
-
display show_pred [{yes|no|toggle}]
This sets or unsets showing predicted arrivals for the selected event
and origin. This is equivalent to calling setShowPredictedArrivals.
-
display batch [{yes|no|toggle}]
This sets or unsets the BQTraceview object rendering "batch" mode.
When the batch mode has been set, then subsequent commands and method calls to change the display in any way are
performed but are not actually rendered on the screen. When the batch mode is unset, then a refresh is
called which will immediately render the display with all changes that occurred since the last time the batch
mode was set and subsequent changes will be rendered immediately.
This provides a way to prevent display "flashing" and to increase the performance when a set
of object changes are made.
This is equivalent to calling setBatch.
-
display linewidth linewidth
This sets the BQTraceview object default trace linewidth to linewidth pixels.
Each individual BQTrace object
will use this to set the trace linewidth when the BQTrace object linewidth configuration value
is set to < 0.0.
-
traces maximum number
This will set a maximum number of traces, specified by number, to be displayed. If set to < = 0,
then there is no maximum number of trace to be displayed. This forces no more than number traces
to ever be displayed regardless of other settings.
-
traces minimum_pixels number
This will set a minimum vertical pixel size for each trace, specified by number, to be displayed.
If set to < = 0, then there is no minimum trace vertical pixel size to be displayed.
This constrains each trace vertical height to be no less than number pixels and is enforced
regardless of other settings.
-
traces fit [{auto|toggle|no}]
This will zoom the currently selected traces in the vertical direction to fit within the display window.
If the traces fit form is used with no other arguments, then the zoom is applied once.
If auto is specified, then the zoom is applied automatically whenever there is a change in the
event or origin displayed. If no is specified, then the automatic zooming is disabled.
If toggle is specified, then the automatic zooming is toggled.
Note that the number of traces that are displayed is still subject to the traces maximum
and traces minimum_pixels limits.
-
traces sta [{yes|no|toggle}]
This sets or unsets automatically showing only traces that have arrivals within the current display time window.
If toggle, then the behavior is toggled.
This behavior is dynamic with any change of the display time window.
This is equivalent to calling setShowTracesWithArrivals.
-
traces std [{yes|no|toggle}]
This sets or unsets automatically showing only traces that have detections within the current display time window.
If toggle, then the behavior is toggled.
This behavior is dynamic with any change of the display time window.
This is equivalent to calling setShowTracesWithDetections.
-
traces stad [{yes|no|toggle}]
This sets or unsets automatically showing only traces that have arrivals or detections within the
current display time window.
If toggle, then the behavior is toggled.
This behavior is dynamic with any change of the display time window.
This is equivalent to calling setShowTracesWithArrivalsdOrDetections.
-
traces auto_distance_sort [{yes|no|toggle}]
This sets or unsets automatically sorting traces according to distance from the selected event and origin.
If toggle, then the behavior is toggled.
This behavior is dynamic with any change of the selected event or origin.
This is equivalent to calling setAutoDistanceSort.
-
traces gain {gain|*gain_factor|/gain_factor}
This causes all trace amplitudes to be gained up or down in the display by the value gain.
The gain is applied to the trace amplitude plot scaling
to increase the trace amplitudes, when gain > 1.0, or
to decrease the trace amplitudes, when gain < 1.0.
If the *gain_factor form is used, then gain_factor is used to multiply
the current trace gains.
If the /gain_factor form is used, then gain_factor is used to divide
the current trace gains.
-
traces[:trace_exprs] select [{yes|no|toggle}]
This causes traces to be marked as selected or deselected. When a trace is marked as selected, its
trace label region is rendered with different colors along with a selection order text value.
If toggle, then the behavior is toggled.
If :trace_exprs is not specified, then all traces are selected or deselected.
If :trace_exprs is specified, then trace_exprs is evaluated against all of
the traces to produce an ordered list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously. Each trace in the list is then selected
or deselected. The traces selection list is cumulative. It can be cleared with a traces select no
command.
-
traces[:trace_exprs] configure key value
If :trace_exprs is not specified, then the BQTraceview object configure
method is called with arguments key and value.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of traces is used,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously. For each BQTrace object
in the list, its configure method is called with arguments key and value (see BQTrace(3)).
-
traces[:trace_exprs] dup
This duplicates traces.
If :trace_exprs is not specified, then all traces are duplicated.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of traces are duplicated,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces are duplicated.
Note that you cannot duplicate duplicated traces, only original traces. Duplicate traces are identified
by the <copy> field in the standard trace labels as described previously in
the INDIVIDUAL TRACE REPRESENTATION section.
-
traces[:trace_exprs] show [{yes|no|toggle}]
This will cause traces to be shown or hidden.
If toggle, then the behavior is toggled.
If :trace_exprs is not specified, then all traces are shown or hidden.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of traces are shown or hidden,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces are show or hidden.
If the "traces[:traces_exprs] show" form is used with no other arguments, then
the traces that match the expression are shown and all other traces are hidden.
-
traces[:trace_exprs] order
This both shows and orders traces in the display.
If :trace_exprs is not specified, then all traces are shown and ordered in the original traces source data order.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current ordered selected list of traces is used to show and order the traces in the display,
otherwise trace_exprs is evaluated against all of
the traces to produce an ordered list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces are show and ordered according to the list.
Note that traces that do not match are automatically hidden. Also not that ordering
traces with this command can work against other automatic trace show/hide/order,
commands like traces auto_distance_sort and traces stad commands. Usually when using this
command you would first want to disable the other automatic show/hide/order commands.
-
traces[:trace_exprs] zoom [{first_index number|number|factor [first_y]}]
This will zoom in the vertical traces dimension.
If there are no arguments specified, then first a list of traces is composed.
If there are no arguments and :trace_exprs is not specified, then all traces in the original traces source data
order are put into the list.
If There are no arguments and :trace_exprs is specified and trace_exprs is set to selected, then
the current ordered selected list of traces is used as the zoom list,
otherwise trace_exprs is evaluated against all of
the traces to produce an ordered list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces are used in the zoom list.
Once the zoom list has been composed, then the zoom is such that the first trace in the list
is at the top of the display and the last trace in the list is at the bottom of the display.
If the argument is first_index number, then :trace_exprs should not be specified
and the zoom will be such that the topmost trace is the trace with integer index first_index in
the current trace display (starting with 0) and number is the integer number of traces to the
bottom edge of the display.
If the argument is number, then :trace_exprs should not be specified
and the zoom will be such that the topmost trace remains unchanged
and number is the integer number of traces to the bottom edge of the display.
If the argument is factor [first_y], then :trace_exprs should not be specified
and the zoom will be such that the Y-axis scale is zoomed in by floating factor < 1.0
and zoomed out by floating factor > 1.0. The Y-axis zoom can be anchored
to Y-axis non-dimensional floating value first_y as the topmost trace, or if not specified
the topmost trace remains unchanged.
-
traces[:trace_exprs] start [first_index]
This will pan (scroll) in the vertical traces dimension.
If there are no arguments specified, then first a list of traces is composed.
If there are no arguments and :trace_exprs is not specified, then all traces in the original traces source data
order are put into the list.
If There are no arguments and :trace_exprs is specified and trace_exprs is set to selected, then
the current ordered selected list of traces is used as the pan list,
otherwise trace_exprs is evaluated against all of
the traces to produce an ordered list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces are used in the pan list.
Once the pan list has been composed, then the pan is such that the first trace in the list
is at the top of the display.
If the argument is first_index, then :trace_exprs should not be specified
and the pan will be such that the topmost trace is the trace with integer index first_index in
the current trace display (starting with 0).
-
traces[:trace_exprs] stretch factor
This applies a vertical stretch factor to one or more traces in the display.
The vertical stretch factor is used to make trace vertical height in the display larger or smaller than
other traces in the display. The vertical stretch factor is relative to all of the traces in
the display. Therefore is all of the traces are set to the same vertical stretch factor, then the
trace display heights will all be equal and remain the same regardless of the value of factor.
If :trace_exprs is not specified, then all trace stretch factor are set to the floating factor.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of trace stretch factors will be set to the floating factor,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces stretch factors are set to the floating factor.
-
traces[:trace_exprs] color [color_string]
This sets trace foreground colors. The foreground color is the color of the trace waveform lines.
If color_string is not specified, then the trace foreground colors are set to NULL which
causes the traces to use the default BQTraceview foreground color for the main and edit display windows.
If :trace_exprs is not specified, then all trace foreground colors are set to the color color_string.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of trace foreground colors will be set to the color color_string,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces foreground colors are set to the
color color_string.
-
traces[:trace_exprs] color_background [color_string]
This sets trace background colors.
If color_string is not specified, then the trace background colors are set to NULL which
causes the traces to use the default BQTraceview background color for the main and edit display windows.
If :trace_exprs is not specified, then all trace background colors are set to the color color_string.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of trace background colors will be set to the color color_string,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces background colors are set to the
color color_string.
-
traces[:trace_exprs] linewidth [linewidth]
This sets trace linewidths.
If linewidth is not specified, then the trace linewidths are set to -1.0 which
causes the traces to use the default BQTraceview linewidth for the main and edit display windows.
If :trace_exprs is not specified, then all trace linewidths are set to the floating pixel linewidth.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of trace background colors will be set to the floating pixel linewidth,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces background colors are set to the
floating pixel linewidth.
-
traces[:trace_exprs] filter [TPAD time_pad ]filter_string [# filter_label]
This specifies a waveform filter to be applied to traces before display.
If the filter parameters are not specified, then the trace filters are set to NULL which
causes the traces to use the default BQTraceview filter for the main and edit display windows.
If :trace_exprs is not specified, then all trace filters are set to the filter parameters.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of traces will have their filters set to the filter parameters,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces will have their filters
set to the filter parameters.
The filter_string can be none, meaning no filtering, or any proper
filter string as defined in wffil(3), wffilbrtt(3) and wffilave(3).
If TPAD time_pad is specified, then time_pad is a floating time
value in seconds that is used as a time pad for removing filter transients in the display.
If # filter_label is specified, then filter_label is a string
label for the filter that is displayed below the trace label to the left of the trace display,
otherwise the filter label is set to filter_string.
-
traces[:trace_exprs] units [{source|counts|sm}]
This sets the trace display units values.
If the filter parameters are not specified, then the trace display units are set to default which
causes the traces to use the default BQTraceview trace display units for the main and edit display windows.
If :trace_exprs is not specified, then all trace display unit are set to the units argument.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of traces will have their display units set to the units argument,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces will have their display units
set to the units argument.
A units argument value of source will cause trace units
to correspond to the data source units.
A value of counts will cause trace units to be digital counts.
A value of sm will cause trace units to be strong motion units of cm/s for
velocity traces and mg for acceleration traces.
-
traces[:trace_exprs] scale [{fixed abottom atop|auto}]
This sets the trace amplitude display scale modes and scale factors.
If the scale parameters are not specified, then the trace amplitude scale modes are set
to default which
causes the traces to use the default BQTraceview trace amplitude scale modes and scale factors for
the main and edit display windows.
If :trace_exprs is not specified, then all trace amplitude scale modes and scale factors are set to
the scale parameters.
If :trace_exprs is specified and trace_exprs is set to selected, then
the current selected list of traces will have their amplitude scale modes and scale factors set to
the scale parameters,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and those traces will have their amplitude scale modes and scale factors
set to the scale parameters.
If fixed abottom atop is specified, then the trace amplitude display scale modes are set to fixed,
the amplitude corresponding to the bottom of the single trace display window is abottom in native source units
and the amplitude corresponding to the top of the single trace display window is top in native source units.
If auto is specified, then the trace amplitude display scale modes are set to auto.
-
arrivals edit_mode {yes|no|toggle}
This will set or unset the display mode to the edit state. Arrival edits are only permitted when
the display mode is in the edit state.
If toggle, then the behavior is toggled.
-
arrivals edit_queue clear
This will clear the arrivals edit queue. See EDIT QUEUE.
-
arrivals edit_queue undo [{all|number}]
This causes arrival edits to be undone. if all is specified, then all arrival edits in the edit queue are undone.
If a number is specified, then that number of arrival edits in the edit queue are undone.
Otherwise, a single edit is undone.
-
arrivals edit_queue redo [{all|number}]
This causes arrival edits to be redone. if all is specified, then all arrival edits in the edit queue are redone.
If a number is specified, then that number of arrival edits in the edit queue are redone.
Otherwise, a single edit is redone.
-
arrivals edit_queue setstate name
This sets the arrival edit state name to name at the current position of the arrival edit queue.
-
arrivals edit_queue gotostate name
This will cause the arrival edits to be rolled back or forward to correspond to the edit queue
position with state of name.
-
arrivals select {clear|arid {yes|no|toggle}}
This will set or clear arrival selected states. When arrivals are selected, they can be edited.
if clear is specified, then all arrival selections are cleared.
If arid {yes|no|toggle} is specified, then the selection is set
or unset or toggled for arrival with arid value arid.
-
arrivals add_mode {yes|no|toggle}
This sets, unsets or toggles the add new arrival modes used only when the main display is in edit mode.
If the main display is in edit mode and if the add arrivals mode flag is set, then a left
mouse click will add new arrivals and continue to add new arrivals until either the
add arrivals mode flag has been unset, or the right mouse button is clicked which automatically
unsets the add arrivals mode flag.
-
arrivals phase phase_string
This will edit all of the currently selected arrivals so that the CSS iphase attribute is set to phase_string.
Only selected arrivals are edited and this happens only if the main display is in edit mode.
Arrival edits are immediately flushed out to the database files.
-
arrivals tag {clear|clear_all|associated|tag_string}
This clears and sets tag values for arrivals.
if clear is specified, then all currently selected arrival tags are cleared.
if clear_all is specified, then all arrival tags are cleared.
if associated is specified, then arrivals that are associated with the currently selected event and origin
are tagged according to the CSS assoc table timedef attribute so that defining arrivals
are tagged with D and non-defining arrivals are tagged with N.
if tag_string is specified, then the currently selected arrivals tags will be set to tag_string.
-
arrivals output {tagged|selected}
This will cause the output string in a SendCommand to contain a list of arrival arid
values and the associated tag values.
if tagged is specified, then the output list will contain all arrival with tags.
if selected is specified, then the output list will contain all currently selected arrivals.
-
arrivals copy [clear]
If clear is specified, this clears the copy clipboard, otherwise this sets the copy clipboard to the
currently selected arrivals. The current selection is cleared.
-
arrivals paste [dont_paste_tags] time_string
This pastes the copy clipboard as new arrivals. The time of the earliest arrival is set to time_string
and the other arrival times maintain their relative positions. If dont_paste_tags is specified,
then the copy clipboard arrival tags are not copied, otherwise they are copied. Note that when tags are copied
any existing tags are first cleared. Also, any existing selections are cleared and the newly added arrivals
are left in a selected state.
-
arrivals[:trace_exprs] show [{yes|no|toggle}]
This will cause arrivals to be shown or hidden.
If toggle, then the behavior is toggled.
If :trace_exprs is not specified, then all arrivals are shown or hidden.
If :trace_exprs is specified and trace_exprs is set to selected, then
the arrivals for the current selected list of traces are shown or hidden,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and the arrivals for those traces are shown or hidden.
-
detections[:trace_exprs] show [{yes|no|toggle}]
This will cause detections to be shown or hidden.
If toggle, then the behavior is toggled.
If :trace_exprs is not specified, then all detections are shown or hidden.
If :trace_exprs is specified and trace_exprs is set to selected, then
the detections for the current selected list of traces are shown or hidden,
otherwise trace_exprs is evaluated against all of
the traces to produce a list of matching BQTrace object pointers, as described
in the TRACE EXPRESSIONS section previously, and the detections for those traces are shown or hidden.
-
event show {index|+incr|-incr|eevid|noev}
This will set an event as selected, or no event will be selected if noev is set.
If eevid is specified, where evid is a valid database evid value,
then the event will be set to the corresponding evid and the origin will be set to the event's
preferred origin.
If +incr is specified, then the event will be incremented by incr
entries in the event list returned by EVClient::getEvents() (see EV(3)) and the origin will be set
to the event's preferred origin.
If -incr is specified, then the event will be decremented by incr
entries in the event list returned by EVClient::getEvents() (see EV(3)) and the origin will be set
to the event's preferred origin.
If index is specified, then the event will be set to the indexth
entry in the event list returned by EVClient::getEvents() (see EV(3)) and the origin will be set
to the event's preferred origin.
When an event and origin are selected, the display is automatically time scrolled to the origin time
and the selected event status display is updated.
-
origin show {index|+incr|-incr|oorid|pref}
This will set an origin as selected.
Only the origins associated with the current selected event can be selected
with this command. If pref is set, then the
preferred origin is selected.
If oorid is set, where orid is a valid database orid value
for one of the origins associated with the current selected event,
then the origin will be set to the corresponding orid.
If +incr is set, then the origin will be incremented by incr
entries in the origin list within the current selected event EVEvent structure (see EV(3)).
If -incr is set, then the origin will be decremented by incr
entries in the origin list within the current selected event EVEvent structure (see EV(3)).
If index is set, then the origin will be set to the indexth
entry in the selected event origin list in the EVEvent structure (see EV(3)).
When an origin is selected, the display is automatically time scrolled to the origin time
and the selected event status display is updated.
OPTIONS
-
-sc sta:chan
A station-channel sift key. This argument specifies the subset of
station-channel data streams that will be available for analysis. The
syntax is the same as the -sc option in dbpick(1). This
argument is optional and if it is not specified, then all station-channel
values will be used. The asterisk (*) character can be used in place of
either sta or chan which matches anything. Thus -sc AAK:*
would mean all channels for station AAK or -sc *:HHZ would mean all stations
for channel HHZ. In addition, normal UNIX regular expression matching is
used to match strings (ala ed or ex, so that -sc A..:..Z, for example,
would match all 3-character channel codes ending in Z and all 3-character
station codes beginning with A). The user should take care to deal
properly with the shell interpreter when using the various metacharacters,
as they can be substituted before program execution. If using the C-shell,
a safe way to handle this is to place sta:chan between single quotes
as follows: -sc 'sta:chan'.
-
-ts start_time
A data sift start time. This argument specifies the subset of
arrivals and waveform segments that will be available for analysis. Only
arrivals and waveform segments with time later than tstart_time will be
used. This argument is optional and if it is not specified, then waveform
segment and arrival times will not be subject to start time sifting.
-
-tw time_window
A data sift time window. This argument specifies the subset of
arrivals and waveform segments that will be available for analysis. Only
arrivals and waveform segments with time later than tstart_time + time_window will be
used. This argument is optional and if it is not specified, then waveform
segment and arrival times will not be subject to time window sifting.
-
-trefresh refresh_interval
This is a database refresh interval in seconds. The database will be scanned every refresh_interval
seconds to check for changes. If changes have occurred, then the traceview database EVServer
instance will refresh its views of the database and notify the traceview EVClient instance
to dynamically update all traceview displays.
If this is specified as 0.0, then the database
is considered to be static and changes will not be tracked by the traceview database EVServer
instance.
The default is 60.0.
-
-usewheel
This enables the mouse wheel and trackpad gestures to control the
main display. This overrides the use_wheel parameter file parameter.
See GRAPHICAL USER INTERACTION previously for a description of Wheel interactions.
-
-dontusewheel
This disables the mouse wheel and trackpad gestures to control the
main display. This overrides the use_wheel parameter file parameter.
See GRAPHICAL USER INTERACTION previously for a description of Wheel interactions.
-
-import fname
This will open the file with name fname, read each line in the file as a traceview
command and send the command to the BQTraceview object.
-
-nfsok
Normally, databases can only be processed safely if the database files are locally mounted. Setting this flag
will allow NFS mounted database files to be used. Note that NFS mounted database files may not respond properly
to dynamic changes.
-
-pf pfname
Name of program parameter file. This argument is optional.
The actual parameter file name is pfname.pf.
The default value of pfname is traceview.
-
dbname
This is the database name which will provide the input data source.
This argument is required. Note that the database is processed through the EV(3)
EVServer and EVClient objects.
PARAMETER FILE
An example
traceview parameter file is as follows:
# This is the default traceview parameter file
use_wheel yes #<str> use mouse wheel or track pad gestures for panning display
max_events 1000 #<int> maximum number of events to process
max_traces 40 #<int> maximum number of traces to display
min_pixels_traces 10 #<int> minimum pixel height per trace
auto_distance_sort no #<str> automatically sort traces by distance from event
predicted_phases P,S #<str> phases for predicted arrivals
default_phase P #<str> default phase code for new arrivals
preserve_time_scale_on_resize yes #<str> preserve pixels per second horizontal scale on resize?
preserve_traces_scale_on_resize yes #<str> preserve pixels per trace vertical scale on resize?
auto_select_event no #<str> automatically select event?
# aliases contains command aliases
aliases &Arr{
ts display time_start
tw display time_window
cm traces maximum
cw traces zoom
z traces zoom
zs traces:selected zoom
ta arrivals tag associated
tc arrivals tag clear_all
to arrivals output tagged
z10 z 10
fit traces fit
f fit
stadon &Tbl{
traces stad on
z10
}
}
# hotkeys contains single character hot key aliases
hotkeys &Arr{
left display time_start +%dxw # pan time left
shift-left display time_zoom 1.25 %xw # zoom time out
right display time_start -%dxw # pan time right
shift-right display time_zoom 0.8 %xw # zoom time in
up traces start -%dyw # pan traces up
shift-up traces zoom 1.25 %yw # zoom traces out
control-up traces gain *1.25 # gain traces up
down traces start +%dyw # pan traces down
shift-down traces zoom 0.8 %yw # zoom traces in
control-down traces gain *0.8 # gain traces down
control-c arrivals copy # copy selected arrivals into the clipboard
control-v arrivals paste %xw # paste arrivals from the clipboard
n traces filter none # clear all traces filters
0 traces filter none # clear all traces filters
1 traces filter TPAD 100.0 BW 0.8 4 3.0 4 \#tele # set all traces filters to teleseismic
2 traces filter TPAD 10.0 BW 1.0 4 0.0 0 \#1hp # set all traces filters to 1hz high pass
3 traces filter TPAD 10.0 BW 5.0 4 0.0 0 \#5hp # set all traces filters to 5hz high pass
shift-a display configure antialias toggle # toggle traces antialias flag
shift-c display configure clip toggle # toggle traces clip flag
e arrivals edit_mode toggle # toggle arrivals edit mode
a arrivals add_mode yes # enable arrivals add mode
f traces fit # fit traces
c arrivals select clear # clear arrival selections
shift-p arrivals phase P # set selected arrivals phase to P
shift-s arrivals phase S # set selected arrivals phase to S
shift-d arrivals tag D # set selected arrivals tag to D
shift-n arrivals tag N # set selected arrivals tag to N
}
# arrivals_menus contains arrivals editing menu items
arrivals_menus &Arr{
right &Tbl{ # right mouse button menu
&Arr{ # set phase codes to P
label P
command arrivals phase P
}
&Arr{ # set phase codes to S
label S
command arrivals phase S
}
&Arr{ # mark arrivals as deleted
label delete
command arrivals phase del
}
&Arr{ # tag arrivals as defining
label tag as defining
command arrivals tag D
}
&Arr{ # tag arrivals as non-defining
label tag as non-defining
command arrivals tag N
}
&Arr{ # clear arrivals tags
label clear tag
command arrivals tag clear_all
}
}
}
# traceview_display_parameters contains colors, fonts and linewidths for the traceview display windows
traceview_display_parameters &Arr{
main_display &Arr{ # these are display parameters for the main window
color_background \#000080 #<color> color of the trace window background
color_foreground yellow #<color> color of the trace window foreground (traces color)
color_time_grids \#80e0e0e0 #<color> color of the time grid lines
font_trace_label courier,16,Normal #<font> font used for trace labels
color_trace_label black #<color> color used for trace labels
color_trace_select_background lightgray #<color> color used for selected trace label backgrounds
color_trace_select_order_label blue #<color> color used for selected trace labels
font_trace_amp_label courier,12,Normal #<font> font used for trace amplitude labels
color_trace_amp_label \#808080 #<color> color used for trace amplitude labels
font_trace_filter_label courier,14,Normal #<font> font used for trace filter labels
color_trace_filter_label blue #<color> color used for trace filter labels
color_coordinates_status \#d0ffffff #<color> color used for coordinate status background
color_origin_status pink #<color> color used for origin status background
color_preferred_origin_status lightblue #<color> color used for preferred origin status background
linewidth 1 #<float> linewidth used for trace plots
color_detection_outline 0.0,1.0,0.7 #<color> color for detection flag outline
color_detection_text 0.0,1.0,0.7 #<color> color for detection flag text
color_detection_fill \#00000000 #<color> color for detection flag fill
linewidth_detection 3 #<float> detection flag linewidth
color_predicted_arrival_outline lightblue #<color> color for predicted arrival flag outline
color_predicted_arrival_text lightblue #<color> color for predicted arrival flag text
color_predicted_arrival_fill \#00000000 #<color> color for predicted arrival flag fill
linewidth_predicted_arrival 3 #<float> predicted arrival flag linewidth
color_arrival_normal_outline \#ffc0c0c0 #<color> color for normal arrival flag outline
color_arrival_normal_text \#ffc0c0c0 #<color> color for normal arrival flag text
color_arrival_normal_fill red #<color> color for normal arrival flag fill
linewidth_arrival_normal 3 #<float> normal arrival flag linewidth
color_arrival_defining_outline \#ffc0c0c0 #<color> color for defining arrival flag outline
color_arrival_defining_text \#ffc0c0c0 #<color> color for defining arrival flag text
color_arrival_defining_fill blue #<color> color for defining arrival flag fill
linewidth_arrival_defining 3 #<float> defining arrival flag linewidth
color_arrival_nondefining_outline \#ffc0c0c0 #<color> color for non-defining arrival flag outline
color_arrival_nondefining_text \#ffc0c0c0 #<color> color for non-defining arrival flag text
color_arrival_nondefining_fill green #<color> color for non-defining arrival flag fill
linewidth_arrival_nondefining 3 #<float> non-defining arrival flag linewidth
color_arrival_magnitude_outline \#ffc0c0c0 #<color> color for magnitude arrival flag outline
color_arrival_magnitude_text \#ffc0c0c0 #<color> color for magnitude arrival flag text
color_arrival_magnitude_fill 300.0,0.9,0.2 #<color> color for magnitude arrival flag fill
linewidth_arrival_magnitude 3 #<float> magnitude arrival flag linewidth
color_arrival_nonassociated_outline \#ffc0c0c0 #<color> color for non-associated arrival flag outline
color_arrival_nonassociated_text black #<color> color for non-associated arrival flag text
color_arrival_nonassociated_fill yellow #<color> color for non-associated arrival flag fill
linewidth_arrival_nonassociated 3 #<float> non-associated arrival flag linewidth
arrival_select_expr .* #<expr> arrival flag select expression applied to phase
arrival_reject_expr #<expr> arrival flag reject expression applied to phase
arrival_status_line &Arr{ # define status print line
format %s %s %s arid=%s phase=%s deltim=%s fm=%s auth=%s
arguments &Tbl{
epoch2str(time,\"%Y%j:%T\") %s
sta %s
chan %s
arid %ld
iphase %s
deltim %.2f
fm %s
auth %s
}
}
}
edit_display &Arr{ # these are display parameters for the arrival edit window
color_background \#e0e0e0 #<color> color of the trace window background
color_foreground gray #<color> color of the trace window foreground (traces color)
color_time_grids \#80000000 #<color> color of the time grid lines
linewidth 1 #<float> linewidth used for trace plots
color_detection_outline 0.0,1.0,0.7 #<color> color for detection flag outline
color_detection_text 0.0,1.0,0.7 #<color> color for detection flag text
color_detection_fill \#00000000 #<color> color for detection flag fill
color_detection_fill \#00000000 #<color> color for detection flag fill
color_predicted_arrival_outline pink #<color> color for predicted arrival flag outline
color_predicted_arrival_text pink #<color> color for predicted arrival flag text
color_predicted_arrival_fill \#00000000 #<color> color for predicted arrival flag fill
linewidth_predicted_arrival 3 #<float> predicted arrival flag linewidth
color_arrival_normal_outline \#ffc0c0c0 #<color> color for normal arrival flag outline
color_arrival_normal_text \#ffc0c0c0 #<color> color for normal arrival flag text
color_arrival_normal_fill red #<color> color for normal arrival flag fill
linewidth_arrival_normal 3 #<float> normal arrival flag linewidth
color_arrival_selected_outline black #<color> color for selected arrival flag outline
color_arrival_selected_text black #<color> color for selected arrival flag text
color_arrival_selected_fill cyan #<color> color for selected arrival flag fill
linewidth_arrival_selected 3 #<float> selected arrival flag linewidth
color_arrival_edit_outline red #<color> color for edited arrival flag outline
color_arrival_edit_text red #<color> color for edited arrival flag text
color_arrival_edit_fill lightblue #<color> color for edited arrival flag fill
linewidth_arrival_edit 3 #<float> edited arrival flag linewidth
color_arrival_defining_outline \#ffc0c0c0 #<color> color for defining arrival flag outline
color_arrival_defining_text \#ffc0c0c0 #<color> color for defining arrival flag text
color_arrival_defining_fill blue #<color> color for defining arrival flag fill
linewidth_arrival_defining 3 #<float> defining arrival flag linewidth
color_arrival_nondefining_outline \#ffc0c0c0 #<color> color for non-defining arrival flag outline
color_arrival_nondefining_text \#ffc0c0c0 #<color> color for non-defining arrival flag text
color_arrival_nondefining_fill green #<color> color for non-defining arrival flag fill
linewidth_arrival_nondefining 3 #<float> non-defining arrival flag linewidth
color_arrival_defining_tag_outline black #<color> color for tagged defining arrival flag outline
color_arrival_defining_tag_text black #<color> color for tagged defining arrival flag text
color_arrival_defining_tag_fill lightblue #<color> color for tagged defining arrival flag fill
linewidth_arrival_defining_tag 3 #<float> tagged defining arrival flag linewidth
color_arrival_nondefining_tag_outline black #<color> color for tagged non-defining arrival flag outline
color_arrival_nondefining_tag_text black #<color> color for tagged non-defining arrival flag text
color_arrival_nondefining_tag_fill lightgreen #<color> color for tagged non-defining arrival flag fill
linewidth_arrival_nondefining_tag 3 #<float> tagged non-defining arrival flag linewidth
color_arrival_nonassociated_outline black #<color> color for non-associated arrival flag outline
color_arrival_nonassociated_text black #<color> color for non-associated arrival flag text
color_arrival_nonassociated_fill yellow #<color> color for non-associated arrival flag fill
linewidth_arrival_nonassociated 3 #<float> non-associated arrival flag linewidth
color_arrival_residual_outline 0.0,1.0,0.7 #<color> color for arrival residual glyph outline
color_arrival_residual_text 0.0,1.0,0.7 #<color> color for arrival residual glyph text
linewidth_arrival_residual 5 #<float> arrival residual glyph linewidth
color_arrival_deltime_fill \#a0a0ffa0 #<color> color for arrival deltime glyph fill
arrival_select_expr .* #<expr> arrival flag select expression applied to phase
arrival_reject_expr [Mm].* #<expr> arrival flag reject expression applied to phase
arrival_status_line &Arr{ # define status print line
format %s %s %s arid=%s phase=%s deltim=%s fm=%s auth=%s
arguments &Tbl{
epoch2str(time,\"%Y%j:%T\") %s
sta %s
chan %s
arid %ld
iphase %s
deltim %.2f
fm %s
auth %s
}
}
}
}
# traceview_buttons_definitions contains definitions of task buttons along the top of the traceview window
# Note that the buttons definitions are defined in BQTaskbar(3)
traceview_buttons_definitions &Arr{
pal &Arr{ # enable/disable P-arrival alignment
height 20
description enable/disable P-arrival alignment
states &Arr{
on &Arr{
label Pal
description enable P-arrival alignment
action command display palign on
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
off &Arr{
label Pal
show_not_symbol yes
description disable P-arrival alignment
action command display palign off
opacity 0.5
background_color \#fff2e5
fill_color blue
order 1
}
}
}
spa &Arr{ # show/hide predicted arrivals
height 20
description show/hide predicted arrivals
states &Arr{
on &Arr{
label Spa
description show predicted arrivals
action command display show_pred on
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
off &Arr{
label Spa
show_not_symbol yes
description hide predicted arrivals
action command display show_pred off
opacity 0.5
background_color \#fff2e5
fill_color blue
order 1
}
}
}
stad &Arr{ # hide/show traces without arrivals or detections
height 20
description hide/show traces without arrivals or detections
states &Arr{
on &Arr{
label Stad
description hide traces without arrivals or detections
action command traces stad on
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
off &Arr{
label Stad
show_not_symbol yes
description hide traces without arrivals or detections
action command traces stad off
opacity 0.5
background_color \#fff2e5
fill_color blue
order 1
}
}
}
ds &Arr{ # enable/disable trace distance sorting
height 20
description enable/disable trace distance sorting
states &Arr{
on &Arr{
label Ds
description enable trace distance sorting
action command traces auto_distance_sort on
opacity 0.5
background_color #fff2e5
fill_color blue
order 0
}
off &Arr{
label Ds
show_not_symbol yes
description disable trace distance sorting
action command traces auto_distance_sort off
opacity 0.5
background_color #fff2e5
fill_color blue
order 1
}
}
}
le &Arr{ # show last event
height 20
description show last event
states &Arr{
on &Arr{
label Evl
description show last event
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command event show 10000000
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
pe &Arr{ # show previous event
height 20
description show previous event
states &Arr{
on &Arr{
label Ev-
description show previous event
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command event show -1
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
ce &Arr{ # show current event
height 20
description show current event
states &Arr{
on &Arr{
label Ev
description show current event
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command event show +0
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
ne &Arr{ # show next event
height 20
description show next event
states &Arr{
on &Arr{
label Ev+
description show next event
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command event show +1
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
fe &Arr{ # show first event
height 20
description show first event
states &Arr{
on &Arr{
label Ev0
description show first event
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command event show 0
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
cle &Arr{ # clear event selection
height 20
description unselect event
states &Arr{
on &Arr{
label ClEv
description unselect event
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command event show noev
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
fo &Arr { # show first origin
height 20
description first origin
states &Arr{
on &Arr{
label Or0
description first origin
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command origin show 0
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
no &Arr{ # show next origin
height 20
description next origin
states &Arr{
on &Arr{
label Or+
description next origin
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command origin show +1
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
pref &Arr{ # show preferred origin
height 20
description preferred origin
states &Arr{
on &Arr{
label PrefOr
description preferred origin
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command origin show pref
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
po &Arr{ # show previous origin
height 20
description previous origin
states &Arr{
on &Arr{
label Or-
description previous origin
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command origin show -1
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
lo &Arr{ # show last origin
height 20
description last origin
states &Arr{
on &Arr{
label Orl
description last origin
action &Tbl{
command display batch on
command arrivals tag clear_all
command arrivals select clear
command origin show 1000000
command display batch off
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
adda &Arr{ # enable add arrivals mode
height 20
description Add arrivals
states &Arr{
on &Arr{
label AddA
description Add arrivals
action &Tbl{
command arrivals add_mode on
}
opacity 0.5
background_color \#fff2e5
fill_color blue
order 0
}
}
}
}
# traceview_buttons specifies which task buttons are displayed and where they are dispayed
# Note that the buttons are defined in BQTaskbar(3)
traceview_buttons &Tbl{
pal nwb 0.0v+5 ftop 1 1
spa nwb +1r-1 0r 0 0
stad nwb +1r-1 0r 1 1
ds nwb +1r-1 0r 0 1
fe nwb +1r-1 0r 0 0
ne nwb +1r-1 0r 0 0
ce nwb +1r-1 0r 0 0
pe nwb +1r-1 0r 0 0
le nwb +1r-1 0r 0 0
cle nwb +1r-1 0r 0 0
fo nwb +1r-1 0r 0 0
no nwb +1r-1 0r 0 0
pref nwb +1r-1 0r 0 0
po nwb +1r-1 0r 0 0
adda nwb +1r-1 0r 0 0
}
# events_params define the parameters for the events tableview
events_params &Arr{
# column_definitions defines the column display definitions for the events
# tableview as defined in BQEVTableview(3)
column_definitions &Arr{
evid &Arr{
label evid
text_template XXXXXX
source events[%index].evid
sort evid
alignment e
format %ld
}
time &Arr{
label time
text_template XXXXXXXXXXXXXXXXXXXXXX
source events[%index].origins[pref_origin].record_origin{epoch2str(time,"%Y%j:%T")}
sort origins[pref_origin].time
}
lat &Arr{
label lat
text_template XXXXXXXXXX
source events[%index].origins[pref_origin].record_origin{lat}
sort origins[pref_origin].record_origin{lat}
alignment e
format %.3lf
}
lon &Arr{
label lon
text_template XXXXXXXXXX
source events[%index].origins[pref_origin].record_origin{lon}
sort origins[pref_origin].record_origin{lon}
alignment e
format %.3lf
}
depth &Arr{
label depth
text_template XXXXXXXX
source events[%index].origins[pref_origin].record_origin{depth}
sort origins[pref_origin].record_origin{depth}
alignment e
format %.2lf
}
region &Arr{
label region
text_template XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
source events[%index].origins[pref_origin].record_origin{grname(lat,lon)}
sort origins[pref_origin].record_origin{grname(lat,lon)}
alignment w
}
auth &Arr{
label auth
text_template XXXXXXXXXXXXXXXXXX
source events[%index].origins[pref_origin].record_origin{auth}
sort origins[pref_origin].record_origin{auth}
alignment w
}
magnitude &Arr{
label magnitude
text_template XXXXXXXXXX
source events[%index].magnitude;events[%index].magtype
sort magnitude;magtype
alignment e
format %4.2f;(%s)
null -999.00()
}
}
# column_names define the particular column names to display for the events
# tableview as defined in BQEVTableview(3)
column_names &Tbl{
evid
time
magnitude
depth
auth
region
}
font courier,12
font_header courier,12,Normal
default_hover_interaction no
show_record_numbers yes
default_cell_height 15
auto_select_event no
}
# origins_params define the parameters for the origins tableview
origins_params &Arr{
# column_definitions defines the column display definitions for the origins
# tableview as defined in BQEVTableview(3)
column_definitions &Arr{
evid &Arr{
label evid
text_template XXXXXX
source origins[%index].record_origin{evid}
sort record_origin{evid}
alignment e
format %ld
}
orid &Arr{
label orid
text_template XXXXXX
source origins[%index].orid
sort orid
alignment e
format %ld
}
ndef &Arr{
label ndef
text_template XXXXXX
source origins[%index].record_origin{ndef}
sort record_origin{ndef}
alignment e
format %ld
}
nass &Arr{
label nass
text_template XXXXXX
source origins[%index].record_origin{nass}
sort record_origin{nass}
alignment e
format %ld
}
latency &Arr{
label latency
text_template XXXXXX:XX:XX:XX.XXX
source origins[%index].record_origin{strtdelta(lddate-time)}
sort record_origin{lddate-time}
alignment e
}
time &Arr{
label time
text_template XXXXXXXXXXXXXXXXXXXXXX
source origins[%index].record_origin{epoch2str(time,"%Y%j:%T")}
sort time
}
lat &Arr{
label lat
text_template XXXXXXXXXX
source origins[%index].record_origin{lat}
sort record_origin{lat}
alignment e
format %.3lf
}
lon &Arr{
label lon
text_template XXXXXXXXXX
source origins[%index].record_origin{lon}
sort record_origin{lon}
alignment e
format %.3lf
}
depth &Arr{
label depth
text_template XXXXXXXX
source origins[%index].record_origin{depth}
sort record_origin{depth}
alignment e
format %.2lf
}
region &Arr{
label region
text_template XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
source origins[%index].record_origin{grname(lat,lon)}
sort record_origin{grname(lat,lon)}
alignment e
}
auth &Arr{
label auth
text_template XXXXXXXXXXXXXXXXXX
source origins[%index].record_origin{auth}
sort record_origin{auth}
alignment e
}
magnitude &Arr{
label magnitude
text_template XXXXXXXXXX'
source origins[%index].magnitude;origins[%index].magtype
sort magnitude;magtype
alignment e
format %4.2f;(%s)
null -999.00()
}
}
# column_names define the particular column names to display for the origins
# tableview as defined in BQEVTableview(3)
column_names &Tbl{
evid
orid
ndef
nass
time
depth
magnitude
auth
latency
}
font courier,12
font_header courier,12,Normal
default_hover_interaction no
show_record_numbers yes
default_cell_height 15
}
-
use_wheel
This is a Boolean that enables or disables the mouse wheel and trackpad gestures to control the
main display. This is overridden by the -usewheel or -dontusewheel command line arguments.
-
max_events
This is an integer that specifies the maximum number of most recent events that the EVServer instance should process.
If this is set to <= 0, then all events will be processed.
-
max_traces
This will set a maximum number of traces, specified as an integer, to be displayed. If set to <= 0,
then there is no maximum number of traces to be displayed. This forces no more than this number of traces
to ever be displayed regardless of other settings.
-
min_pixels_traces
This will set a minimum vertical pixel size for each trace, specified as an integer, to be displayed.
If set to <= 0, then there is no minimum trace vertical pixel size to be displayed.
This constrains each trace vertical height to be no less than this number of pixels and is enforced
regardless of other settings.
-
auto_distance_sort
This is a Boolean that will enable or disable the automatic distance sorting of traces.
-
predicted_phases
This is used for determining the predicted arrival times. An example is P,S or basic.
The value can be any phase list that is recognized by the tttaup(3) routines.
-
default_phase
This is the default phase code used whenever a new arrival is added.
-
preserve_time_scale_on_resize
This is a Boolean that when set, then the pixels per second time scale is preserved when the display is
resized keeping the time at the left of the display unchanged. If this is unset, then the
left and right edge time values are preserved during resizes. Note that the behavior of dbpick(1)
corresponds to the no value.
-
preserve_traces_scale_on_resize
This is a Boolean that when set, then the pixels per non-dimensional Y-axis trace value scale is preserved when the
display is resized keeping the value at the top of the display unchanged. If this is unset, then the
top and bottom edge Y-axis values are preserved during resizes. Note that the behavior of dbpick(1)
corresponds to the no value.
-
auto_select_event
This controls whether or not an event is automatically selected
when a database change has been detected. If set to mostrecent, then
the most recent event is automatically selected when it changes.
If set to lastmodified, then
the last modified event is automatically selected when it changes.
If set to no, then events are not automatically selected.
-
aliases
This is an associative array that contains command aliases.
The contents of the aliases array contain alias name keys with the values set to command definitions.
Commands issued by sendCommand or typed into the command console can be alias names
defined by the key values in the aliases array. The alias name is replaced by the corresponding aliases
array value. Any fields after the alias name are appended to the command value in aliases. Aliases
are recursively processed so that aliases of aliases are allowed and properly processed. Aliases can be
a list of commands by specifying the value as a &Tbl.
-
hotkeys
This specifies hot key command alias definitions.
The contents of the hotkeys array contain hotkeys as associative array keys with the
values set to command definitions. A hot key should be a single lower case printable keyboard character or a combination
of a single character and a modifier key in the
form <modifier_key>-<key>. [{shift|control|controlshift}-]{up|down|left|right},
Modifier keys can be shift, control or controlshift.The up, down, left and right arrow keyboard keys
are specified as up, down, left and right.
The values are the commands that will be executed. Variable substitutions are made based
upon the mouse position when the key was pressed.
The mouse X-position in world coordinates (epoch time) is substituted for the %xw token.
The mouse X-position in world coordinates relative to the left edge of the display is substituted for the %dxw token.
The mouse Y-position in world coordinates (Y-axis non-dimensional value) is substituted for the %yw token.
The mouse Y-position in world coordinates relative to the bottom edge of the display is substituted for the %dyw token.
-
arrivals_menu
This specifies popup menus that appear when a key is pressed on an arrival flag and the BQTraceview object is in edit mode.
The contents of the arrivals_menus array may contain three
tables, right, corresponding to a mouse right button click popup
menu, middle, corresponding to a mouse middle button click popup
menu, or left, corresponding to a mouse left button click popup menu.
All three menus can be defined. Within each of the right, middle abd left
menus are a list of associative arrays each corresponding to a popup menu entry.
Within each of these associative arrays are two parameters, label, for
the menu item label and command, for the command executed for that item.
-
traceview_display_params
This specifies a number of display parameters.
The contents of the traceview_display_params array contain display parameters for the normal (main) display
window, when the display is not in edit mode, and for the arrival edit display window, when the display is in edit mode.
Main display window parameters are defined in an associative array named main_display.
Arrival edit display window parameters are defined in an associative array named edit_display.
The individual parameters are defined above in the example parameter file. Note that
only parameters that change need to be specified.
-
traceview_buttons_definitions
This specifies button definitions for the taskbar.
The contents of the traceview_buttons_definitions array is parsed the same as
the BQTaskbar(3) taskbar_buttons_definitions configuration parameter except that
the first field in the action parameter may be command, in which case the
remaining fields are interpreted as commands sent to the BQTraceview object (see COMMANDS previously).
-
traceview_buttons
This specifies buttons for the taskbar.
The contents of the traceview_buttons array is parsed the same as
the BQTaskbar(3) taskbar_buttons configuration parameter.
-
events_params
This specifies display parameters for the events spreadsheet in the BQEVTableview object.
The contents of the events_params array is parsed the same as the
the BQEVTableview(3) OBJECT CONFIGURATION PARAMETERS.
-
origins_params
This specifies display parameters for the origins spreadsheet in the BQEVTableview object.
The contents of the origins_params array is parsed the same as the
the BQEVTableview(3) OBJECT CONFIGURATION PARAMETERS.
SEE ALSO
BQTraceview(3), BQCommandConsole(3), BQEVTableview(3), BQTaskbar(3), EV(3)
AUTHOR
Danny Harvey