Seismic Widget Class
Overview
The Seismic and Segy widget classes are used to display a seismic section that
the end-user can view and manipulate. The programmer has complete control over
the display of the seismic section and the end-user, using a build-in panel, can
change the resource values for the Seismic widget.
Inherited Behavior and Resources
The Seismic widget inherits behavior and resources from the Core,
Primitive, CompBase, EditObject, Grid and Image classes.
- The class pointer is xintSeismicWidgetClass.
- The class name is XintSeismic.
- The header file is included as <Xint/Seismic.h>.
XmNadjustTimeLimit
If this resource is True, the starting and ending times of the trace display
will be taken from the values specified for the XmNstartingTime and
XmNendingTime resources. If set to False, the starting and ending times of the
trace data will be used.
XmNagcWindowLength
Specifies the length of the window used by the AGC operation expressed as
number of samples.
XmNallocateReadWriteColor
Specifies whether the widget allocates the trace background, foreground and
overlay colors as read/write cells or not. This resource must be set to True if
you want to use the convenience functions XintSeismicEditForeground,
XintSeismicEditBackground or XintSeismicEditOverlayForeground.
XmNannotationCallback
Specifies the list of callbacks that will be used to draw application defined
annotation on the horizontal axis of the section display.
XmNannotationFont
Specifies the name of the font used to draw the annotation for the horizontal
axis of the section display.
XmNapplyAgc
Specifies whether the AGC operation will be applied to the seismic data. The
default is False, indicating that the AGC operation will not be applied to the
section.
XmNapplyFilter
Specifies whether the bandpass filter operation will be applied to the seismic
data. The default is False, indicating that the bandpass filter operation will
not be applied to the section.
XmNchangePanelCallback
Specifies the list of callback procedures called by the EditPlot action
procedure so that the callback procedures can display a panel allowing the
end-user to change the plot attributes of a section.
XmNclippingFactor
Specifies the trace maximum extent in trace units. Trace amplitudes that extend
above this value will be clipped.
XmNconstantTraceSpacing
Specifies whether the traces are displayed with fixed spacing or a best try
fixed spacing. The default is True, indicating that the space between traces
must be the same for all pairs of traces. When this resource is False, the
trace spacing may vary between some traces, but the widget will do its best
to use the same spacing between every pair of traces. For instance, assume that
the resolution of the screen is 100 pixels per inch and the value of the
resource XmNtracesPerInch is 30. If XmNconstantTraceSpacing is True, then the
widget will leave 2 pixels between every pair of traces, resulting in the
display of less than 30 traces per inch. If XmNconstantTraceSpacing is False,
then the widget will leave 2 pixels between some pairs of traces and 3 pixels
between other pairs of traces so that the number of traces per inch will be
exactly 30.
XmNdataRec
Specifies a pointer to a XintSeismicDataRec structure that specifies the trace
data to be displayed. If the value of this resource is NULL, then the Seismic
widget will be created with an empty display.
XmNendingTime
Specifies the ending time (or depth) of the traces displayed on the plot. If
this resource is not specified, then the Seismic widget will use the ending
time (or depth) of the data in the XintSeismicDataRec structure when displaying
the traces.
XmNfilterHighFrequency
Specifies the upper limit of the bandpass filter that can be applied to the
trace data (controlled by resource XmNapplyFilter).
XmNfilterLowFrequency
Specifies the lower limit of the bandpass filter that can be applied to the
trace data (controlled by resource XmNapplyFilter).
XmNfilterPassFlag
Specifies whether a band-pass filter or a band-reject filter will be applied
to the data. (controlled by resource XmNapplyFilter).
XmNfilterTransitionFactor
Specifies the transition factor for the band-pass or band-reject filter.
(controlled by resource XmNapplyFilter).
XmNgapKeyName
If the value of this resource is not NULL then gaps will be displayed between
groups of traces. For instance, if a gap is to be inserted after a certain
number of primary key changes, then specify any character string as the value
of this resource.
XmNgapKeyIncrement
Specifies the spacing between gaps in terms of number of primary key changes.
For example, if the primary key is traces and the gap key increment is 20, then
a gap is inserted after 20 traces.
XmNgapWidth
Specifies the width of a gap as a number of traces.
XmNimageWidth
Specifies the width in pixels of the seismic image when the application
specifies the position of each trace using resource XmNtracePositionArray.
XmNinchesPerSecond
Specifies the number of inches per second for the vertical (time) axis. The
default value depends on the sampling rate of the data, and it corresponds to
one pixel per sample in the data. For a depth dataset, this number represents
the vertical scale in inches per kilofoot or inches per kilometer.
XmNinterpolationMode
Specifies the mode of interpolation in the time or depth direction. Possible
values for this resource are XintLINEAR_INTERPOLATION,
XintQUADRATIC_INTERPOLATION or XintSTEP_INTERPOLATION.
XmNmaxNormalizationLimit
Specifies the upper limit to use for trace normalization when the value of
XmNtraceNormalization is XintNORMALIZE_USING_LIMITS.
XmNminNormalizationLimit
Specifies the lower limit to use for trace normalization when the value of
XmNtraceNormalization is XintNORMALIZE_USING_LIMITS.
XmNmaxOverlayNormalizationLimit
Specifies the upper limit to use for trace normalization of the overlay data
when the value of the resource XmNoverlayTraceNormalization is
XintNORMALIZE_USING_LIMITS.
XmNminOverlayNormalizationLimit
Specifies the lower limit to use for trace normalization of the overlay data
when the value of the resource XmNoverlayTraceNormalization is
XintNORMALIZE_USING_LIMITS.
XmNmuteBottomArray
Specifies an array of floating point numbers each of which represents the
time (or depth) after which a trace's display will be muted (set to zero
amplitude). The size of this array must be the same as the number of traces in
the XintSeismicData structure. If the value of this resource is NULL then no
trace will be muted at the bottom.
XmNmuteTopArray
Specifies an array of floating point numbers each of which represents the
time (or depth) before which a trace's display will be muted (set to zero
amplitude). The size of this array must be the same as the number of traces
in the XintSeismicData structure. If the value of this resource is NULL, then
no trace will be muted at the top.
XmNnewPixmapCallback
Specifies the list of callback procedures called when a new pixmap representing
a seismic section has been created by the Seismic widget. This resource is
ignored if XmNbuildPixmap is set to False.
XmNoverlapFactor
Specifies an integer that controls the maximum extent of a wiggle on the plot.
The maximum trace extent is determined by multiplying overlap factor and
scaling factor (specified by the XmNscale resource). For instance, if the
scaling factor is 1 and the overlap factor is 4, then the maximum amount of
overlap for a wiggle is 4 trace increments.
XmNoverlayData
Specifies a pointer to an array of data that will be overlaid onto the
displayed seismic section. The size of the array, as well as the format of the
overlay data must be identical to that of the trace data array contained in the
XintSeismicDataRec.
XmNoverlayForeground
Specifies the color (as a pixel value) for displaying the overlay data. If the
display visual type is PseudoColor and the specified pixel indicates a
read-only color cell, then the Seismic widget will allocate a read-write color
cell in the application's colormap for this color.
XmNoverlayInterpolationMode
Specifies the mode of interpolation in the time or depth direction for the
overlay. Possible values for this resource are XintLINEAR_INTERPOLATION,
XintQUADRATIC_INTERPOLATION or XintSTEP_INTERPOLATION.
XmNoverlayPlotType
Specifies the type of display to use for the overlay data. Possible values for
this resource are XintWIGGLE, XintPOSITIVE_FILL and XintNEGATIVE_FILL or a
combination of these values formed by adding two or more of the defined
constants.
XmNoverlayScale
Specifies the amplitude scale factor to apply to the overlay data before
displaying it on the seismic section.
XmNoverlayTraceNormalization
Specifies the type of normalization to perform on the overlay traces before
they are displayed. Possible values for this resource are:
| Resource Value | Description
|
|---|
| XintNO_TRACE_NORMALIZATION (Default) | Use all of the trace extent.
|
| XintNORMALIZE_TRACE_AVERAGE | Use the average value of the traces.
|
| XintNORMALIZE_TRACE_MAXIMUM | Use the maximum trace value.
|
| XintNORMALIZE_USING_LIMITS | Use the limits specified by XmNminNormalizationLimit and XmNmaxNormalizationLimit.
|
XmNplotBackground
Specifies the color (as a pixel value) of the background of the seismic widget.
If the display visual type is PseudoColor and the specified pixel indicates a
read-only color cell, then the Seismic widget will allocate a read-write color
cell in the applications's colormap to use for the seismic widget background
color.
XmNplotDirection
Specifies the order of the traces displayed in the seismic section. Possible
values are XintPLOT_L_TO_R or XintPLOT_R_TO_L.
XmNplotForeground
Specifies the color (as a pixel value) of the foreground of the seismic section
display. If the display visual type is PseudoColor and the specified pixel
indicates a read-only color cell, then the Seismic widget will allocate a
read-write color cell in the applications's colormap to use for the seismic
section foreground color.
XmNplotType
Specifies the type of trace display to use in the seismic section display. The
defined constants for this resource are:
| Resource Value | Description
|
|---|
| XintCOLOR_FILL | Both positive and negative variant VA color fill (uses samples for colors).
|
| XintDENSITY | Background color fill (uses samples for colors).
|
| XintDENSITY_AND_NEGATIVE_FILL | Background color fill and negative monochrome VA display (uses samples for colors).
|
| XintDENSITY_AND_POSITIVE_FILL | Background color fill and positive monochrome variable area display.
|
| XintDENSITY_AND_WIGGLE | Background color fill and wiggle trace display (uses samples for colors).
|
| XintINTERPOLATED_DENSITY | Interpolated background color fill (uses samples for colors).
|
| XintLOBE_FILL | Positive and negative color fill, where the color of the fill is constant inside each lobe, based on the minimum or maximum amplitude.
|
| XintNEGATIVE_FILL | Negative monochrome variable area fill display.
|
| XintNEGATIVE_COLOR_FILL | Negative sample variant VA color fill (uses samples for colors).
|
| XintNEGATIVE_FILL_AND_WIGGLE | Negative monochrome variable area fill plus wiggle trace display.
|
| XintPOSITIVE_FILL | Positive monochrome VA fill display.
|
| XintPOSITIVE_AND_NEGATIVE_FILL | Positive and negative monochrome VA fill display.
|
| XintPOSITIVE_FILL_AND_WIGGLE (Default) | Positive monochrome VA fill plus wiggle trace display.
|
| XintPOSITIVE_COLOR_FILL | Positive sample variant VA color fill (uses samples for colors).
|
| XintWIGGLE | Wiggle trace display.
|
There are other possible values for this resource specified by performing a
logical OR operation on values specified by the constants in the table above.
For instance, positive sample variant VA (variable area) color fill and wiggle
trace display can be specified by ORing together the constants, XintWIGGLE and
XintPOSITIVE_COLOR_FILL.
XmNprimaryAnnotationBase
Specifies whether the annotation start and increment resource values refer to
the primary key (XintBASE_PKEY) or the trace number (XintBASE_TN). Specify
XintBASE_TN to have an annotation every nth trace, or XintBASE_PKEY to
annotate based on the primary key (to annotate shot points for example).
XmNprimaryAnnotationFormat
Specifies the format used to draw the primary annotation on the horizontal
axis. Use any C format descriptor (such as "%5.2f") suitable for displaying
floating point data.
XmNprimaryAnnotationIncrement
Specifies the increment between each of the primary annotations in terms of
primary key units.
XmNprimaryAnnotationName
Specifies the name of the key used to draw the annotation for the primary key
values.
XmNprimaryAnnotationStart
Specifies the first primary key value to annotate.
XmNprimaryKeyEnd
Specifies the last primary key value to display.
XmNprimaryKeyIncrement
Specifies the increment to use for the primary key when selecting the data for
display.
XmNprimaryKeyName
Specifies whether the primary keys defined in the XintSeismicKeyRec data
structure are used to select the data for display. If this resource is NULL,
then the widget will generate primary keys that are sequential integers
beginning with 1. If the resource value is not NULL, then the primary key
values in the XintSeismicKeyRec data structure will be used.
XmNprimaryKeyStart
Specifies the first primary key value to display.
XmNprimaryTimingFont
Specifies the name of a font to use for the primary annotation on the vertical
axis.
XmNprimaryTimingLine
Specifies the interval in milliseconds between two primary timing lines. The
value specified must be a multiple of the secondary timing line value. A thick
horizontal line will be drawn at each of the intervals.
XmNprocessTraceCallback
Specifies the list of callback procedures called before a trace is rasterized.
The application can implement application defined trace processing using this
callback. To have this callback activated when the widget is first created use
this resource instead of the XtAddCallback function to specify the callback
list.
XmNreadAhead
Specifies the number of traces that are read in advance. These traces are used
to calculate the scale factor whenever the resource XmNtraceNormalization is
set to XintNO_TRACE_NORMALIZATION. This scale factor is based on the maximum
sample value in the traces read and is used to scale the traces in that set. A
new scale factor is computed for each successive set of traces.
If zero (0) is specified, all the traces will be read in advance. This can be
expensive in terms of memory allocation..
XmNscale
Specifies the amplitude scale factor to apply to the trace data before
displaying it in the seismic section display area.
XmNsecondaryAnnotationBase
Specifies whether the secondary annotation start and increment resource values
refer to the secondary key value (XintBASE_SKEY) or the trace sequence number
(XintBASE_TN). Specify XintBASE_TN to have an annotation every nth trace, or
XintBASE_SKEY to annotate based on the secondary key value (to annotate shot
points for example).
XmNsecondaryAnnotationFormat
Specifies the format used to draw the secondary annotation on the horizontal
axis. Use any C format descriptor (such as "%5.2f") suitable for displaying
floating point data.
XmNsecondaryAnnotationIncrement
Specifies the increment between each of the secondary annotations in terms of
secondary key units.
XmNsecondaryAnnotationName
Specifies the name of the key used to draw the secondary key annotations. If
this resource is NULL, then no secondary annotation will be displayed. If this
resource is not NULL, then the secondary annotation (specified in the
XintSeismicKeyRec data structure) will be displayed.
XmNsecondaryAnnotationStart
Specifies the first secondary key value to annotate. This resource only applies
if resource XmNsecondaryAnnotationName is not NULL.
XmNsecondaryKeyEnd
Specifies the last secondary key value of the first trace to display
XmNsecondaryKeyIncrement
Specifies the increment to use for the secondary key when selecting the traces
to be displayed.
XmNsecondaryKeyName
Specifies whether the secondary keys defined in the XintSeismicKeyRec data
structure are used to select the data for display. If this resource is NULL,
then the widget will not use secondary keys. If the resource value is not NULL,
then the secondary key values in the XintSeismicKeyRec data structure will be
used for data selection.
XmNsecondaryKeyStart
Specifies the secondary key value of the first trace to display. This resource
only applies if resource XmNsecondaryKeyName is not NULL.
XmNsecondaryTimingFont
Specifies the name of a font to use for the secondary annotation on the
vertical axis.
XmNsecondaryTimingLine
Specifies the interval in milliseconds between two secondary timing lines. A
thin horizontal line will be drawn at each of these intervals.
XmNselectionCallback
Specifies a list of callbacks that is called when a user selects the Seismic
widget. The callback structure is XintSeismicSelectionCallbackStruct . The
reason sent by the callback is XintCR_SELECTION.
XmNstartingTime
Specifies the starting time (or depth) of the traces displayed on the plot. If
this resource is not specified, then the Seismic widget will use the starting
time (or depth) of the data in the XintSeismicDataRec structure when displaying
the traces.
XmNtraceColorArray
Specifies an array of pixel values containing the color to use for drawing each
trace wiggle and monochrome fill. If this array is not specified, all the
traces will be drawn using the color specified in resource XmNplotForeground.
A convenience function, XintSeismicUpdateTraceColor, is provided to change the
color of a range of traces without having to re-rasterize the entire dataset.
The size of the array specified should be as large as the total number of
traces in the dataset. For file based subclasses of Seismic (such as Segy),
the size of this array should be as large as the number of traces contained
in the file.
XmNtraceColorCallback
Specifies the list of callback procedures called before a trace is rasterized. The application can supply an array of pixels to be applied sample by sample to the trace. To have this callback activated when the widget is first created use this resource instead of the XtAddCallback function to specify the callback list.
XmNtraceNormalization
Specifies the type of normalization to perform on the traces before they are
displayed. Possible values for this resource are:
| Resource Value | Description
|
|---|
| XintNO_TRACE_NORMALIZATION (Default) | Use all of the trace extent.
|
| XintNORMALIZE_TRACE_AVERAGE | Use the average value of the traces.
|
| XintNORMALIZE_TRACE_MAXIMUM | Use the maximum trace value.
|
| XintNORMALIZE_USING_LIMITS | Use the limits specified by XmNminNormalizationLimit and XmNmaxNormalizationLimit.
|
XmNtracePositionArray
Specifies an array of floating point numbers each of which represents the
horizontal display position of a trace inside the range defined by the Grid
resources XmNhorizontalStart and XmNhorizontalEnd. When this resource is set,
resource XmNtracesPerInch is ignored, and the user should manually set the
width of the Seismic plot using resource XmNimageWidth. Resource
XmNtracePositionArray can be used for plots where the trace spacing is not
constant or to open one or more gaps between the traces to insert graphic
objects such as a LogCurve. If the position of a trace is outside the limits
specified by resources XmNhorizontalStart and XmNhorizontalEnd the trace will
not be displayed.
The size of the array specified should be as large as the total number of
traces in the dataset. For file based subclasses of Seismic (such as Segy),
the size of this array should be as large as the number of traces contained in
the file.
XmNtraceStatusArray
Specifies an array of integers each of which specifies how the corresponding
trace in the trace data array is to be displayed. You must use one of the
following defined constants as the value of each element in the array:
| Trace Status Value | Description
|
|---|
| XintTRACE_NORMAL | Specifies that the corresponding trace is to be displayed as defined in the trace data array.
|
| XintTRACE_INVERTED | Specifies that the corresponding trace is to be displayed opposite to the way it is defined in the trace data array (positive amplitude becomes negative amplitude and negative amplitude becomes positive amplitude).
|
| XintTRACE_KILLED | Specifies that the corresponding trace is not displayed.
|
The size of the array should as large as the total number of traces in the
dataset. For file based subclasses of Seismic (such as Segy), the size of
this array should be as large as the number of traces contained in the file.
XmNtracesPerInch
Specifies the number of traces displayed per inch of the screen. The default
value of this resource is one trace per two pixels. For instance, if the screen
resolution is 100 pixels per inch, the default value for this resource is 50
traces per inch.
XmNuseBitmap
Specifies whether the Seismic widget will use a bitmap of depth 1 or a pixmap
of the depth of the screen to store the seismic image when the plot type is
monochrome (plot options wiggle, positive and negative fill). This resource
should normally be set to True because bitmaps use less memory. However, if we
wish to highlight some traces using action HighlightTrace or use function
XintSeismicUpdateTraceColor to change the color of some traces, this resource
should be set to False, so that it is not necessary to re-rasterize the entire
image the first time you assign a color to some traces.
XmNvirtualMode
Specifies the scrolling mode to be used. Possible values are: XintVIRTUAL_NONE,
XintVIRTUAL_WINDOW, and XintVIRTUAL_FULL. If you wish the entire seismic
section to be pre-rasterized into an image or a pixmap then use
XintVIRTUAL_NONE (default). The window size of the widget is the same as the
image or pixmap. This option does not handle large datasets or high zoom
factors very well because X has a maximum pixmap and window size (32K pixels).
If using XintVIRTUAL_WINDOW the entire seismic section is pre-rasterized into
an image ora pixmap. However, the widget window size is always set to the size
of the visible viewport. This option can only be used if the Seismic widget
is created as a child of a INT scrolled widget. Option XintVIRTUAL_WINDOW is
better than XintVIRTUAL_NONE because it eliminates flashing entirely during
scroll operations. It also offers the ability to automatically switch to mode
XintVIRTUAL_FULL when the pixmap or image size (width or height) is greater
than the value of resource XmNvirtualThreshold. This option combines the
advantages of both XintVIRTUAL_NONE and XintVIRTUAL_FULL and should be used in
most cases. It is especially useful when working with small to medium datasets
that may need to be zoomed to large resolutions.
When using XintVIRTUAL_FULL, only the visible portion of the seismic section is
rasterized. As the user scrolls, new data is rasterized on demand. The widget
window size as well as the image is always set to the size of the visible
viewport. This option can only be used if the Seismic widget is created as a
child of a INT scrolled widget. Resource XmNbuildPixmap is also ignored (always
assumed to be False). This option should be used when dealing with a very large
dataset and when it is important to bring the initial display up fast.
Scrolling will be slower than in the other modes, especially if using a slow
machine.
XmNvirtualThreshold
Specifies the pixmap or image threshold to be used when XmNvirtualMode is set
to XintVIRTUAL_WINDOW. Any pixmap or image greater than the threshold will
automatically be switched to XintVIRTUAL_FULL. For more information see
XmNzoomPreserveAmplitude
Specifies how the data in a scaled view of a seismic section should be
normalized when a zoom operation is performed. With one exception, all
normalization operations will be performed based on the amplitudes of the
samples in the area being scaled according to the normalization options in
effect at the time the zoom operation is performed. The one exception occurs
when the value of XmNzoomPreserveAmplitude is True and the value of
XmNtraceNormalization is set to XintNO_TRACE_NORMALIZATION. In this case, the
traces in the scaled view will be normalized using the trace normalization
limits defined for the original seismic section.