API / geotoolkit / seismic / pipeline / processor / AGC / AGC
Defines implementation of the automatic gain control.
Automatic gain control (AGC) increases the amplitude of the trace samples, automatically. AGC applies a fixed length window, which slides in the original trace and computes the average amplitude of the window samples. The gain is calculated and used to normalize the sample in the center part of this window to a fixed value, usually 1.0. Basically the sample amplitude is divided by the average value. The window then slides down one sample and the next gain correction is computed. The process continues until the whole trace has been processed.
AGC is commonly used to improve visibility of late-arriving events.
This version of AGC also includes noise reduction based on RMS values to to zero samples with absolute values less than provided percentage of RMS. It is optional, but it helps to avoid increase noise values
Throws
if wasm or js version of the filter is not registered
Constructors
Methods
Css Properties
| Name | Type | Description |
|---|---|---|
agclength | number | AGC length |
apply | boolean | Whether the processor is active or not |
desiredaverage | number | Desired average amplitude |
name | string | Name of the processor |
noisereduction | NoiseReductionMode | Enable or disable noise reduction |
noisereductionpercentage | number | Percentage to zero samples with absolute values less than provided percentage of RMS |
startsample | number | Start sample to start the AGC process |
step | number | Step |
units | Units | Enum of AGC units |
windowlength | number | The AGC window size |
Methods
▸ apply(apply): AGC
Sets apply
| Name | Type | Description |
|---|---|---|
apply | boolean | whether the processor is active or not |
▸ clone(): SeismicTraceProcessor
Clones processor
this
▸ Protected copyConstructor(src): void
Copy constructor
| Name | Type | Description |
|---|---|---|
src | SeismicTraceProcessor | Source to copy from |
void
SeismicTraceProcessor.copyConstructor
▸ dispose(): void
Dispose
void
▸ Protected equalsProcessor(other): boolean
Return true if processors are identical
| Name | Type | Description |
|---|---|---|
other | SeismicTraceProcessor | seismic processor |
boolean
SeismicTraceProcessor.equalsProcessor
▸ getAgcLength(): number
Get AGC length
number
▸ getClassName(): string
string
SeismicTraceProcessor.getClassName
▸ getDesiredAverage(): number
Get desired average
number
▸ getName(): string
Returns name of the processor
string
▸ getNoiseReduction(): NoiseReductionMode
Get noise reduction
▸ getNoiseReductionPercentage(): number
Get noise reduction percentage
number
▸ getProperties(): OptionsOut
Returns properties
of the data filter
SeismicTraceProcessor.getProperties
▸ getStartSample(): number
Get start sample
number
▸ getState(): OptionsOut
Returns state of the AGC data filter
state see AGC.getProperties
SeismicTraceProcessor.getState
▸ getStep(): number
Get step
number
▸ getUnits(): Units
Get units
▸ getWindowLength(): number
Get window length
number
▸ invalidate(): AGC
Invalidate owner
SeismicTraceProcessor.invalidate
▸ isApplicable(): boolean
Returns true if processor is active
boolean
SeismicTraceProcessor.isApplicable
▸ process(pipeline, metadata, dataIn, dataOut): boolean
The function returns 'True' if the process was applied to the traces or 'False' if it was not applied.
| Name | Type | Description |
|---|---|---|
pipeline | SeismicPipeline | the seismic pipeline name |
metadata | SeismicMetaData | seismic metadata |
dataIn | Float32Array | The input data array on which the process should be applied |
dataOut | Float32Array | The output/processed data array |
boolean
returns whether the processing was successful
▸ setAgcLength(agcLength): AGC
Set AGC length
| Name | Type |
|---|---|
agcLength | number |
▸ setDesiredAverage(desiredAverage): AGC
Set desired average
| Name | Type |
|---|---|
desiredAverage | number |
▸ setName(name): AGC
Set name of the processor
| Name | Type | Description |
|---|---|---|
name | string | processor name |
▸ setNoiseReduction(noiseReduction): AGC
Set noise reduction
| Name | Type |
|---|---|
noiseReduction | NoiseReductionMode |
▸ setNoiseReductionPercentage(noiseReductionPercentage): AGC
Set noise reduction percentage
| Name | Type |
|---|---|
noiseReductionPercentage | number |
▸ setProperties(props?): AGC
Sets properties
| Name | Type | Description |
|---|---|---|
Optional props | Options | of the data filter |
this
SeismicTraceProcessor.setProperties
▸ setStartSample(startSample): AGC
Set start sample
| Name | Type |
|---|---|
startSample | number |
▸ setState(state): AGC
Sets state of the AGC filter
Throws
if state is null
| Name | Type | Description |
|---|---|---|
state | Options | state of the data filter see AGC.setProperties |
this
SeismicTraceProcessor.setState
▸ setStep(step): AGC
Set step
| Name | Type |
|---|---|
step | number |
▸ setUnits(units): AGC
Set units
| Name | Type |
|---|---|
units | Units |
▸ setWindowLength(windowLength): AGC
Set window length
| Name | Type |
|---|---|
windowLength | number |
▸ verify(stateValue, value): any
Returns stateValue not null, value instead
| Name | Type | Description |
|---|---|---|
stateValue | any | value |
value | any | default value |
any
▸ verifyBoolean(value, defaultValue): boolean
Returns stateValue if true or false, value instead
| Name | Type | Description |
|---|---|---|
value | boolean | value |
defaultValue | boolean | default value |
boolean
SeismicTraceProcessor.verifyBoolean
▸ verifyString(value, defaultValue): string
Returns stateValue if string, value instead
| Name | Type | Description |
|---|---|---|
value | string | value |
defaultValue | string | default value |
string
SeismicTraceProcessor.verifyString
▸ Static getClassName(): string
string
SeismicTraceProcessor.getClassName
▸ Static verifyState(state, name): Options
Sets state 'name' and 'apply' values to respectively name and false. Returns state object
| Name | Type | Description |
|---|---|---|
state | Options | the default properties |
name | string | name of the processor |