Last updated

API / geotoolkit / seismic / data / MemoryReader / MemoryReader

Class: MemoryReader

data.MemoryReader.MemoryReader

A seismic reader that keeps all traces in memory. This reader should only be used for small seismic datasets given that all its data is kept in memory. This reader can work in synchronous or asynchronous mode. See the setTraceProcessor method for further details and examples.

Example

import {MemoryReader} from '@int/geotoolkit/seismic/data/MemoryReader';
const reader = new MemoryReader({
'numberOfTraces': 1024,
'numberOfSamples': 100,
'sampleRate': 0.004
})

Hierarchy

Table of contents

Constructors
Methods

Contents

Constructors

new MemoryReader(options)

new MemoryReader(options?)

Creates memory reader

Parameters

Name Type Description
Optional optionsnumber | OptionsnullValue or options is passed when a value does not exist. There will be a break in the wiggles in that area. Fill will not fill that area. User can set a custom color for NullValue

Overrides

SeismicReader.constructor

Methods

clone

clone(): MemoryReader

Return clone of the reader

Returns

MemoryReader


copyConstructor

Protected copyConstructor(src, deepCopy?): MemoryReader

Copy constructor function.
Function used as part of the cloning mechanism.
Implementations should copy the given instance state to this instance.

Parameters

Name Type Description
srcMemoryReaderSource to copy from
Optional deepCopybooleandeep copy

Returns

MemoryReader

this

Overrides

SeismicReader.copyConstructor


dispose

dispose(): void

Dispose.

Returns

void

Inherited from

SeismicReader.dispose


getClassName

getClassName(): string

Returns

string

Inherited from

SeismicReader.getClassName


getMetaData

getMetaData(): SeismicMetaData

returns seismic meta data information

Returns

SeismicMetaData

Overrides

SeismicReader.getMetaData


getModelLimits

getModelLimits(): Rect

Returns seismic model limits

Returns

Rect

Overrides

SeismicReader.getModelLimits


getNullValue

getNullValue(): number

Returns null value

Returns

number

null value

Inherited from

SeismicReader.getNullValue


getNumberOfSamples

getNumberOfSamples(): number

Returns number of samples

Returns

number

Overrides

SeismicReader.getNumberOfSamples


getNumberOfTraces

getNumberOfTraces(): number

Returns number of traces

Returns

number

Overrides

SeismicReader.getNumberOfTraces


getOptions

getOptions(): any

Returns supported extra options

Returns

any

options options

Inherited from

SeismicReader.getOptions


getOriginalMetaData

getOriginalMetaData(): SeismicMetaData

Returns seismic original meta data information before any decimation

Returns

SeismicMetaData

Inherited from

SeismicReader.getOriginalMetaData


getSampleRate

getSampleRate(): number

returns sample rate

Returns

number

Overrides

SeismicReader.getSampleRate


getStatistics

getStatistics(): Statistics

Returns statistics

Returns

Statistics

Overrides

SeismicReader.getStatistics


getTimeStamp

getTimeStamp(): number

Return the value to indicate if data was changed

Returns

number

Inherited from

SeismicReader.getTimeStamp


getTraceHeaderFields

getTraceHeaderFields(): FieldDesc[]

Return trace header fields

Returns

FieldDesc[]

Overrides

SeismicReader.getTraceHeaderFields


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

SeismicReader.hasEventListener


invalidate

invalidate(rect?): void

Invalidate data and notify that data is changed

Parameters

Name Type Description
Optional rectRectoptional area of tracers and samples to invalidate. It is not supported now

Returns

void

Inherited from

SeismicReader.invalidate


isDisposed

isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

SeismicReader.isDisposed


isSilent

isSilent(): boolean

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

Returns

boolean

Inherited from

SeismicReader.isSilent


loadMetaData

loadMetaData(callback): void

load SeismicMetaData seismic meta data

Parameters

Name Type Description
callback(reader: SeismicReader) => voidmethod to be called when data is ready

Returns

void

Overrides

SeismicReader.loadMetaData


notify

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

Notify listeners

Type parameters

NameType
Eextends string

Parameters

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

Returns

MemoryReader

this

Inherited from

SeismicReader.notify


off

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

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: MemoryReader, args: EventMap[E]) => voidfunction to be called

Returns

MemoryReader

this

Inherited from

SeismicReader.off


on

on<E>(type, callback): MemoryReader

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: MemoryReader, args: EventMap[E]) => voidto be called

Returns

MemoryReader

this

Inherited from

SeismicReader.on


queryInterface

queryInterface<T>(someInterface): InstanceType<T>

Returns interface, if reader can provide it

Type parameters

NameType
Textends Constructor<any>

Parameters

Name Type Description
someInterfaceTinterface

Returns

InstanceType<T>

internal instance of this interface

Inherited from

SeismicReader.queryInterface


readDataSetStatistics

readDataSetStatistics(callback): void

read Seismic data statistics

Parameters

Name Type Description
callback(reader: MemoryReader, statistics: Statistics) => voidmethod to be called when data is ready

Returns

void


select

select(query, callback): void

returns seismic trace section

Parameters

Name Type Description
querySelectQuerythis specifies the condition of the request
callbackSelectCallbackmethod to be called when data is ready

Returns

void

Overrides

SeismicReader.select


setNumberOfSamples

setNumberOfSamples(numberOfSamples): MemoryReader

Sets number of samples per trace

Parameters

Name Type Description
numberOfSamplesnumbernumber of samples per trace

Returns

MemoryReader

this


setNumberOfTraces

setNumberOfTraces(numberOfTraces): MemoryReader

Set number of traces

Parameters

Name Type Description
numberOfTracesnumberThe number of traces in the memory reader

Returns

MemoryReader

this


setSilent

setSilent(bool): MemoryReader

Set silent mode

Parameters

Name Type Description
boolbooleanflag to enable silent mode

Returns

MemoryReader

this

Inherited from

SeismicReader.setSilent


setTraceProcessor

setTraceProcessor(traceProcessor): MemoryReader

Sets the 'trace processor' of this memory reader.
The trace processor is a delegate object responsible for providing data to the reader.

Example

// Example of asynchronous reader
import {MemoryReader} from '@int/geotoolkit/seismic/data/MemoryReader';
import {Statistics} from '@int/geotoolkit/seismic/data/Statistics';
const reader = new MemoryReader({
'numberOfTraces': 1024,
'numberOfSamples': 100,
'sampleRate': 0.004
})
.setTraceProcessor({
'getAsyncData': (query, callback) => {
callback({'getTraceData': (reader: MemoryReader, samples: number[], traceId: number) => {
for (let i = 0; i < reader.getNumberOfSamples(); i++) {
trace[i] = Math.cos(i / 8);
}
}});
},
'getDataStatistics': (): Statistics => ({
'average': 0,
'min': -1,
'max': 1,
'rms': Math.sqrt(2) / 2
})
});

Example

// Example of synchronous reader
...
reader
.setTraceProcessor({
'getTraceData': (reader: MemoryReader, samples: number[], traceId: number) => {
for (let i = 0; i < reader.getNumberOfSamples(); i++) {
trace[i] = Math.cos(i / 8);
}
},
...
});

Parameters

Name Type Description
traceProcessorExtendedTraceProcessorobject that implements following set of functions which provide trace data and statistics to reader.

Returns

MemoryReader

this


update

update(query?, callback?): void

Update reader if seismic meta data is changed

Parameters

Name Type Description
Optional queryRecord<string, any>this specifies the condition of the request
Optional callbackUpdateCallbackmethod to be called when data is ready

Returns

void

Overrides

SeismicReader.update


updateTimeStamp

Protected updateTimeStamp(): void

Update time stamp

Returns

void

Inherited from

SeismicReader.updateTimeStamp


getClassName

Static getClassName(): string

Returns

string

Inherited from

SeismicReader.getClassName