Last updated

API / geotoolkit / seismic / pipeline / SeismicPipeline / SeismicPipeline

Class: SeismicPipeline

pipeline.SeismicPipeline.SeismicPipeline

Description

This class is an implementation of the seismic data processing pipeline that handles seismic traces from the data source to the seismic image generation stage.

The first operation performed by the SeismicPipeline is to read the seismic traces. The users can apply one or more filters, perform gain control, scale data, interpolate the trace samples based on the display scale and finally generate the seismic image (Rasterization process) based on the selected plot type. Moreover, the user may want to create custom operations (filters) and apply them as well. The SeismicPipeline provides a flexible structure for users to insert their own trace processing. The SeismicPipeline is organized as a succession of trace processors working on individual trace data (samples). The output data from one trace process serves as the input data for the next process in pipeline. The base class for the trace processors is "geotoolkit.seismic.pipeline.processor.SeismicTraceProcessor.html" - SeismicTraceProcessor. The default trace processes are data normalization, interpolation and rasterization process, which can be configured using the methods provided in this class.

The first stage of a SeismicPipeline always needs to be a Seismic Reader (geotoolkit.seismic.data.SeismicReader). The last 3 stages of the pipelines are Data Normalization, Data Interpolation and Rasterization in that order. Any additional processor (such as filtering, AGC or any custom processor) are inserted between the Seismic Reader and Data Normalization and applied in the order which they are inserted.

Data Normalization: The data normalization stage is used to normalize the seismic amplitudes before scaling and rasterization. The normalization process applies one constant scalar value across the entire trace. The normalization factor can be the same for all the traces in a dataset or can be calculated on the fly for each trace (trace normalization options). The normalization factor can be calculated based on the dataset min and max values, the average or the RMS value. The user can also provide custom limits to make comparison between datasets easier.

Data Interpolation: The data interpolation stage adjusts the number of samples in the trace to match the height of the display (based on vertical scale settings). This may require interpolation (adding samples) or decimation (removing samples). See methods setSamplesInterpolationType() and setSamplesInterpolationEdge() to control how samples are interpolated.

Rasterization: The rasterization stage generates the seismic image. Usually seismic data is represented as a density plot (based on a colormap), as wiggles (monochrome or colored) or a combination of both. Use method setPlotType() to control the display type and method setColorMap() to specify a colormap if required. These plot types include both density displays, variable area wiggle fill displays and combinations of both. A list of supported plot types is provided below:

  • Wiggle - Wiggle display
  • NegativeFill - Negative monochrome variable area fill
  • PositiveFill - Positive monochrome variable area fill
  • NegativeColorFill - Negative color variable area fill. Color varies inside the lobe based on the sample amplitude at each sample location.
  • PositiveColorFill - Positive color variable area fil. Color varies inside the lobe based on the sample amplitude at each sample location.
  • SimpleDensity - Density color fill
  • InterpolatedDensity - Interpolated density color fill (between traces).

The general logic of the pipeline can be presented as: When a seismic image needs to render specific portion of seismic data (range of traces, range of samples) it requests pipeline to provide necessary data trace by trace. Pipeline sends request to the "geotoolkit.seismic.data.SeismicReader.html" - geotoolkit.seismic.data.SeismicReader that provides seismic data and forwards loaded traces to each seismic traces processor. The data are modified by every process in pipeline and then forwarded to rasterizer that produces an image the users see on the output device like screen.

Throws

if reader is null or statistics is null

Hierarchy

Table of contents

Constructors
Methods
Css Properties
Name Type Description
clippingmodeClippingModeClipping mode
colorsColorMapOptionsColors
colors-alphanumberAlpha value
colors-colormapstringColor map, predefined color map name, color map options or color map instance
colors-colormapColorMapColor map, predefined color map name, color map options or color map instance
colors-colormap-maxnumber
colors-colormap-minnumber
colors-colormap-namestringColor map name
colors-colormap-negativefillstylestringPositive fill style
colors-colormap-negativefillstyleFillStylePositive fill style
colors-colormap-negativefillstyle-colorstringColor in CSS form
colors-colormap-negativefillstyle-evenoddmodebooleanEven-odd fill mode
colors-colormap-negativefillstyle-fillpatternPatternPattern
colors-colormap-negativefillstyle-fillpattern-containernamestringAn optional container name, which creates an image pattern. This parameter is used for serialization if you want to save are reference to pattern instead of the pattern itself
colors-colormap-negativefillstyle-fillpattern-patternnamestringName of this pattern for indexing
colors-colormap-negativefillstyle-fillpattern-scalablebooleanFlag that sets scalability of the pattern coordinates, or relative to the shape it is filling (It is not supported)
colors-colormap-negativefillstyle-foregroundstringForeground color
colors-colormap-negativefillstyle-patternPatternPattern
colors-colormap-positivefillstylestringPositive fill style
colors-colormap-positivefillstyleFillStylePositive fill style
colors-colormap-scaleKnownScales
colors-colormap-sizenumberColor map size
colors-colormap-tracelinestylestringTrace line style
colors-colormap-tracelinestyleLineStyleTrace line style
colors-colormap-tracelinestyle-colorstringColor in CSS form
colors-colormap-tracelinestyle-fillstringOptional fill style to be used to fill lines generated with this style
colors-colormap-tracelinestyle-fillFillStyleOptional fill style to be used to fill lines generated with this style
colors-colormap-tracelinestyle-linecapCapStyleThe line cap style
colors-colormap-tracelinestyle-linedashoffsetnumberLine dash offset of dashed line
colors-colormap-tracelinestyle-linejoinJoinStyleThe line join style
colors-colormap-tracelinestyle-pixelsnapmodebooleanPixel Snap Mode, default(
colors-colormap-tracelinestyle-scalablebooleanTrue if width should depend on transformation
colors-colormap-tracelinestyle-unitstringOptional unit for the width
colors-colormap-tracelinestyle-widthnumber | stringThe line thickness
colors-opacitynumberOpacity value
colors-reversedbooleanReversed color map
maximumtracesperpixelnumberDefine maximum traces per pixel, which can be displayed in the image
namestringPipeline name
normalizationNormalizationOptionsNormalization options
normalization-biasnumberThe bias value defines the start of the VA fill Bias can be null (default - means that fill starts from trace location), in swing model space from -1 to 1, or in normalization limits model space, see biastype option
normalization-biastypeBiasTypeBias type, default is BiasType.Relative
normalization-limitsRangeNormalization limits (min,max), which is used for NormalizationType.Limits only
normalization-limits-highnumberUpper range boundary
normalization-limits-lownumberLower range boundary
normalization-limits-maxnumber
normalization-limits-minnumber
normalization-scalenumberScale factor
normalization-swingnumberThe location in trace spacing units where the normalized value of data samples are mapped. This location can be modified by specifying a normalization scale factor
normalization-typeNormalizationTypeEnum of normalization types
plotPlotOptionsPlot options
plot-clippingfactornumberClipping factor for traces
plot-decimationspacingnumberDecimation spacing is the minimum spacing between seismic traces on a seismic image. It is a measured in device units (pixels). Decimation spacing is an important factor when interpreting seismic images, as it affects the resolution of the image. The greater the decimation spacing, the lower the resolution of the image. A higher resolution image will allow for more detail in the interpretation, while a lower resolution image will be less detailed
plot-densityclippingfactornumberClipping factor for density
plot-densitydecimationbooleanDecimation for traces in density mode
plot-sampledecimationDecimationTypeDefine samples decimation type
plot-typePlotTypeOptionsPlot type
plot-type-interpolateddensitybooleanInterpolated density
plot-type-negativecolorfillbooleanNegative color fill
plot-type-negativefillbooleanNegative fill
plot-type-positivecolorfillbooleanPositive color fill
plot-type-positivefillbooleanPositive fill
plot-type-reversedbooleanReversed amplitude direction
plot-type-simpledensitybooleanSimple density
plot-type-wigglebooleanWiggle
plot-wigglesantialiasingbooleanWiggles antialiasing flag
rasterizationlimitstypeRasterizationLimitsTypeRasterization limits type
renderingsideRenderingSideRendering side
statisticsStatisticsStatistics information
statistics-averagenumberAverage
statistics-maxnumberMaximum
statistics-minnumberMinimum
statistics-rmsnumberRms
traceoffsetnumberOriginal trace offset
versionstringVersion

Contents

Constructors

new SeismicPipeline(options)

new SeismicPipeline(options?)

Create a pipeline

Parameters

Name Type Description
Optional optionsOptionsobject with all props or pipeline name

Overrides

EventDispatcher.constructor

Methods

addTraceProcessor

addTraceProcessor(processor): SeismicPipeline

Adds trace processors to the seismic pipeline. The added trace processors should be made active to apply it to the data before rendering to a seismic image.

Parameters

Name Type Description
processorSeismicTraceProcessorprocessor to apply for seismic trace samples

Returns

SeismicPipeline

this


await

await(callback): void

Adds a callback method to the trace data fetching process. The callback method is triggered when the seismic pipeline is ready to process the query.

Parameters

Name Type Description
callback() => voidWhenever pipeline is ready to process your query, callback function is triggered.

Returns

void


clear

clear(): SeismicPipeline

This method clears the pipeline and processors memory allocations

Returns

SeismicPipeline


clearTraceProcessors

clearTraceProcessors(): SeismicPipeline

Remove all trace processors

Returns

SeismicPipeline

this


clone

clone(): SeismicPipeline

Creates a clone of the seismic pipeline. All inheritors should implement copy constructor or provide custom implementation for this method.

Returns

SeismicPipeline

clone


copyConstructor

Protected copyConstructor(src): SeismicPipeline

Construct a new seismic pipeline from the specified seismic pipeline.

Parameters

Name Type Description
srcSeismicPipelinean instance of the seismic pipeline to make a copy.

Returns

SeismicPipeline


dispose

dispose(): void

Disposes this pipeline. Once disposed, the pipeline should not be used anymore.
Please clear all listeners and invalidate handlers to avoid memory leaks.

Returns

void

Overrides

EventDispatcher.dispose


exportToImage

exportToImage(seismicModelBounds, canvas, targetBounds?, offsetX?, offsetY?, fetchCallback?, validationCallback?, targetDeviceBounds?): void

Render seismic model in to the canvas

Parameters

Name Type Description
seismicModelBoundsRectseismic source model bounds
canvasHTMLCanvasElementtarget image
Optional targetBoundsRecttarget bounds
Optional offsetXnumberx position on the canvas
Optional offsetYnumbery position on the canvas
Optional fetchCallback(fetchResult: FetchResult) => voidCallback function which is executed when data (query result) has arrived for the selection.
Optional validationCallbackValidationCallbackCallback function which is executed before data requested.
Optional targetDeviceBoundsRecttarget device bounds

Returns

void


getBias

getBias(targetBiasType?): number

Gets the bias value, wich defines the start of the VA fill as a fraction of the swing spacing.

Parameters

Name Type
Optional targetBiasTypeBiasType

Returns

number


getBiasType

getBiasType(): BiasType

Gets the bias value, wich defines the start of the VA fill as a fraction of the swing spacing.

Returns

BiasType


getClassName

getClassName(): string

Returns

string

Inherited from

EventDispatcher.getClassName


getClippingMode

getClippingMode(): ClippingMode

Get clipping mode

Returns

ClippingMode

clipping mode


getColorMap

getColorMap(): ColorMap

Returns the color map used to render the seismic image.

Returns

ColorMap


getDataLimits

getDataLimits(): Rect

Return data limits of traces and samples

Returns

Rect


getModelLimits

getModelLimits(): Rect

Returns the current model limits

Returns

Rect


getModelToSamplesTransformation

getModelToSamplesTransformation(): Transformation

Returns model to sample transformation

Returns

Transformation

transformation


getName

getName(): string

Returns the name of the seismic pipeline.

Returns

string


getNormalization

getNormalization(): NormalizationOptionsOut

Return normalization

Returns

NormalizationOptionsOut


getNumberOfSamples

getNumberOfSamples(): number

Returns the number of samples available from the seismic metadata.

Returns

number


getNumberOfTraces

getNumberOfTraces(): number

Returns the number of traces available from the seismic metadata.

Returns

number


getOptions

getOptions(): Omit<OptionsOut, "normalization"> & { normalization: NormalizationOptionsOut }

Returns current pipeline settings

Returns

Omit<OptionsOut, "normalization"> & { normalization: NormalizationOptionsOut }


getPlotType

getPlotType(): Required<PlotTypeOptions>

Returns the rasterization plot type

Returns

Required<PlotTypeOptions>

object containing plot properties


getProperties

getProperties(): OptionsOut

Gets the pipeline properties

Returns

OptionsOut

pipeline options


getRasterizationLimitsType

getRasterizationLimitsType(): RasterizationLimitsType

Gets rasterization limits type

Returns

RasterizationLimitsType

rasterization limits type


getReader

getReader(): SeismicReader

Returns the seismic reader. The seismic reader is responsible for reading seismic data from various sources and providing it to the seismic pipeline.

Returns

SeismicReader


getRenderingSide

getRenderingSide(): RenderingSide

Gets rendering side

Returns

RenderingSide

rendering side


getSamplesInterpolationEdge

getSamplesInterpolationEdge(): InterpolationEdge

Returns interpolation edge

Returns

InterpolationEdge


getSamplesInterpolationType

getSamplesInterpolationType(): InterpolationType

Returns interpolation type defined under InterpolationType

Returns

InterpolationType


getScaleFactor

getScaleFactor(): number

Gets normalization scale

Returns

number


getStatistics

getStatistics(): Statistics

Returns a object that has seismic data statistics, namely 'average', 'min', 'max', 'rms'

Returns

Statistics

object


getSwing

getSwing(): number

Gets the location in trace spacing units where the normalized value of data samples are mapped.

Returns

number

swing


getTimeStamp

getTimeStamp(): number

Gets time stamp

Returns

number

timeStamp


getTraceDecimation

getTraceDecimation(): number

Return trace decimation factor if no decimation it returns Number.NaN

Returns

number


getTraceMapping

getTraceMapping(): TraceMapping

returns trace mapping

Returns

TraceMapping


getTraceOffset

getTraceOffset(): number

Returns trace offset

Returns

number

trace offset


getTraceProcessor

getTraceProcessor(index): SeismicTraceProcessor

Returns the existing trace processor by index.

Parameters

Name Type Description
indexstring | numberIndex of the trace process in the collection or its name

Returns

SeismicTraceProcessor


getTraceProcessorsCount

getTraceProcessorsCount(): number

Returns a count of SeismicTraceProcessor[s] applied to the seismic pipeline

Returns

number

amount of processes


getTraceStatus

getTraceStatus(traceId): Status

Returns the trace status by id

Parameters

Name Type Description
traceIdnumbertrace id

Returns

Status


getTracesInterpolationEdge

getTracesInterpolationEdge(): InterpolationEdge

Returns interpolation edge

Returns

InterpolationEdge


getTracesInterpolationType

getTracesInterpolationType(): InterpolationType

Returns interpolation type defined under InterpolationType

Returns

InterpolationType


getTransformation

getTransformation(): Transformation

Returns seismic transformation which determines how many traces and samples per unit is displayed on the screen.

Returns

Transformation


hasEventListener

hasEventListener(type, callback?): boolean

Check if a list of event listeners for this type contains this listener

Parameters

Name Type Description
typestringtype of event or property
Optional callbackFunctionto be called, if null, check if any callback is registered

Returns

boolean

Inherited from

EventDispatcher.hasEventListener


invalidate

invalidate(params?): SeismicPipeline

Invalidate node

Parameters

Name Type Description
Optional paramsInvalidationTypeadditional invalidate parameters

Returns

SeismicPipeline


isDisposed

isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

EventDispatcher.isDisposed


isFetching

isFetching(): boolean

Returns the current state of trace data fetching process. This method is useful to check if a pipeline is still receiving traces from the data source

Returns

boolean


isSilent

isSilent(): boolean

Return true if the event dispatcher doesn't notify any events

Returns

boolean

Inherited from

EventDispatcher.isSilent


notify

notify<E>(type, source, args?): SeismicPipeline

Notify listeners

Type parameters

NameType
Eextends string

Parameters

Name Type Description
typeEevent types
sourceSeismicPipelineof the event
Optional argsEventMap[E]arguments of the event

Returns

SeismicPipeline

this

Overrides

EventDispatcher.notify


off

off<E>(type?, callback?): SeismicPipeline

Detach listener on event. Calling .off() with no arguments removes all attached listeners. Calling .off(type) with no callback removes all attached listeners for specific type.

Type parameters

NameType
Eextends string

Parameters

Name Type Description
Optional typeEtype of the event
Optional callback(eventType: E, sender: SeismicPipeline, args: EventMap[E]) => voidfunction to be called

Returns

SeismicPipeline

this

Overrides

EventDispatcher.off


on

on<E>(type, callback): SeismicPipeline

Attach listener on event that will be called whenever the specified event is delivered to the target

If the callback function is already in the list of event listeners for this target, the function is not added a second time.

If a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an "on" call, the second function will also be added to the list of event listeners for that target.

Type parameters

NameType
Eextends string

Parameters

Name Type Description
typeEtype of event or property
callback(eventType: E, sender: SeismicPipeline, args: EventMap[E]) => voidto be called

Returns

SeismicPipeline

this

Overrides

EventDispatcher.on


refresh

refresh(): SeismicPipeline

This method invalidates the pipeline and any existing trace processors.

Returns

SeismicPipeline


removeTraceProcessor

removeTraceProcessor(processor): SeismicPipeline

Removes an existing trace processor from the seismic pipeline.

Parameters

Name Type Description
processorSeismicTraceProcessorThe Seismic Data Trace Processor

Returns

SeismicPipeline

this


resetModelLimits

resetModelLimits(): SeismicPipeline

Reset model limits of the seismic pipeline to null.

Returns

SeismicPipeline

this


select

select(condition, fetchCallback?, validationCallback?): void

Executes a query with specified condition. This query result will be applied to all the trace processors active in the seismic pipeline.

Throws

if condition is not specified

Parameters

Name Type Description
conditionSelectConditionobject Condition to select range of traces based on parameters namely, from and to.
Optional fetchCallback(fetchResult: FetchResult) => voidCallback function which is executed when data (query result) has arrived for the selection.
Optional validationCallbackValidationCallbackCallback function which is executed before data requested.

Returns

void


setClippingMode

setClippingMode(clippingMode): SeismicPipeline

Set clipping mode

Parameters

Name Type Description
clippingModeClippingModeclipping mode

Returns

SeismicPipeline

this


setColorMap

setColorMap(colorMap, updateColorMapLimits?): SeismicPipeline

Sets color map for rendering the seismic image. if pipeline has option reversed for colors then colormap will be reversed

Parameters

Name Type Description
colorMapColorMapsets the color map
Optional updateColorMapLimitsbooleantrue to update colormap limits from previous colormap or normalization limits

Returns

SeismicPipeline


setNormalization

setNormalization(normalization, updateColorMapLimits?): SeismicPipeline

Sets data normalization parameters on the seismic pipeline.

Example

import {NormalizationType} from '@int/geotoolkit/seismic/pipeline/NormalizationType';
pipeline.setNormalization({
'type'   : NormalizationType.Limits,
'limits' : {
'min': -1,
'max': 1
},
'scale'  : 0.4
})

Parameters

Name Type Description
normalizationNormalizationOptionsnormalization options
Optional updateColorMapLimitsbooleantrue for update colormap limits from normalization

Returns

SeismicPipeline

this


setOptions

setOptions(options?): SeismicPipeline

Set pipeline options

Parameters

Name Type Description
Optional optionsOptionspipeline options

Returns

SeismicPipeline


setPlotType

setPlotType(plotType, invalidate?): SeismicPipeline

Sets the rasterization plot type

Parameters

Name Type Description
plotTypePlotTypeOptionsobject that contains combination of flags that specify how to render seismic
Optional invalidatebooleanflag set to notify the listener if pipeline changes

Returns

SeismicPipeline


setProperties

setProperties(props?): SeismicPipeline

Sets the pipeline properties

Parameters

Name Type Description
Optional propsOptionsobject with all props

Returns

SeismicPipeline

this


setRasterizationLimitsType

setRasterizationLimitsType(rasterizationLimitsType): SeismicPipeline

Sets rasterization limits type

Parameters

Name Type Description
rasterizationLimitsTypeRasterizationLimitsTyperasterization limits type

Returns

SeismicPipeline

this


setReader

setReader(reader?): SeismicPipeline

Sets reader

Parameters

Name Type Description
Optional readerSeismicReaderreader

Returns

SeismicPipeline

this


setRenderingSide

setRenderingSide(renderingSide): SeismicPipeline

Sets rendering side

Parameters

Name Type Description
renderingSideRenderingSiderendering side

Returns

SeismicPipeline

this


setSamplesInterpolationEdge

setSamplesInterpolationEdge(interpolationEdge): boolean

Sets the interpolation edge.

Parameters

Name Type Description
interpolationEdgeInterpolationEdgeSpecifies how interpolation handles edge (begin and end elements) of data

Returns

boolean


setSamplesInterpolationType

setSamplesInterpolationType(interpolationType): boolean

Sets interpolation type.

Parameters

Name Type Description
interpolationTypeInterpolationTypeEnum of seismic pipeline interpolation types

Returns

boolean


setSilent

setSilent(bool): SeismicPipeline

Set silent mode

Parameters

Name Type Description
boolbooleanflag to enable silent mode

Returns

SeismicPipeline

this

Inherited from

EventDispatcher.setSilent


setStatistics

setStatistics(statistics): SeismicPipeline

Sets a object that has seismic data statistics, namely 'average', 'min', 'max', 'rms'

Throws

if statistics is null

Parameters

Name Type Description
statisticsStatisticsobject

Returns

SeismicPipeline

this


setTraceDecimation

setTraceDecimation(tracesPerPixel): SeismicPipeline

Sets trace decimation factor

Parameters

Name Type Description
tracesPerPixelnumbertraces per pixel

Returns

SeismicPipeline


setTraceMapping

setTraceMapping(mapping): SeismicPipeline

Sets trace mapping. If this mapping is set the trace decimation is off.

Parameters

Name Type Description
mappingTraceMappinga new trace mapping

Returns

SeismicPipeline

this


setTraceOffset

setTraceOffset(offset): SeismicPipeline

Set trace offset

Parameters

Name Type Description
offsetnumbertrace offset

Returns

SeismicPipeline

this


setTraceStatus

setTraceStatus(traceId, status): SeismicPipeline

Sets the trace status by id

Parameters

Name Type Description
traceIdnumbertrace id
statusStatustrace status

Returns

SeismicPipeline

this


setTracesInterpolationEdge

setTracesInterpolationEdge(interpolationEdge): boolean

Sets the interpolation edge.

Parameters

Name Type Description
interpolationEdgeInterpolationEdgeSpecifies how interpolation handles edge (begin and end elements) of data

Returns

boolean


setTracesInterpolationType

setTracesInterpolationType(interpolationType): boolean

Sets interpolation type.

Parameters

Name Type Description
interpolationTypeInterpolationTypeEnum of seismic pipeline interpolation types

Returns

boolean


updateTimeStamp

updateTimeStamp(silent?, invalidationType?): SeismicPipeline

Update time stamp to indicate that pipeline has been changed.

Parameters

Name Type Description
Optional silentbooleansilent mode. If this parameter equals to true then pipeline doesn't send invalidate event
Optional invalidationTypeInvalidationTypedescribe a reason of pipeline invalidation

Returns

SeismicPipeline

this


getClassName

Static getClassName(): string

Returns

string

Inherited from

EventDispatcher.getClassName