Dynamic Data Processing

Use the Data Processing option (Geosoft.uxo.gxnet.dll(Geosoft.GX.UXO.UxaProcessDynamicData;Run)*) to perform basic or initial processing of the dynamic data and to analyze the survey data for quality control (QC).

ClosedExpand to see the locations (menus) where this option is available.

UX-Analyze extension:

  • AGC Dynamic Data
  • AGC Expert User > Dynamic Data Prep and QC

Dynamic Data Processing dialog options

Database prefix

Select the database prefix.

Script Parameter: UXANALYZE.DYN_DBPREFIX

Lines to process

Select the lines you want to process.

The available options are: Selected lines (default), Current line, and All lines.

Script Parameter: UXANALYZE.LINES_TO_PROCESS

Height above ground (m)

Enter the height of the sensor cart above the ground.

Default: the value from the Parameter database channel UXA_HeightOfTransmitterAssemblyAboveGround.

Script Parameter: UXANALYZE. HEIGHT_ABOVE_GROUND

GPS antenna offset (m)

Specify the GPS antenna offset, which is the offset between the GPS antenna and the EM sensors.

The default values are read from the UXA_GpsAntennaOffset channels in the Parameter database (see the Application Notes below).

The GPS antenna offset is used to calculate the sensor coils coordinates.

Script Parameters:

  • UXANALYZE.GPSANTENNAOFFSETX
  • UXANALYZE.GPSANTENNAOFFSETY
  • UXANALYZE.GPSANTENNAOFFSETZ

Magnetic declination (deg)

Specify the magnetic declination. The value of the magnetic declination will be added to the heading channel to make it relative to true north, instead of magnetic north. The result is saved in the UXA_YAW_True channel.

Default: the value from the Parameter database channel, UXA_MagneticDeclination. You can enter a new value or use the IGRF tool to recalculate magnetic declination. IGRF will be automatically calculated using the location and date information from the first file imported.

Script Parameter: UXANALYZE.MAGNETIC_DECLINATION

Data to process

The following tools/functions can be executed:

  • Time and position (GPS fix quality & separation)
  • Elevation
  • Platform attitude (pitch & roll & heading)
  • Transmitter currents
  • Saturated receiver data
  • Flat lined receiver data

See the Application Notes below for details.

Script Parameters:

  • UXANALYZE.PROCESS_TIMEPOSITION
  • UXANALYZE.PROCESS_ELEVATION
  • UXANALYZE.PROCESS_PLATFORM_ATTITUDE
  • UXANALYZE.PROCESS_TRANSMITTER_CURRENTS
  • UXANALYZE.PROCESS_SATURATED
  • UXANALYZE.PROCESS_FLATLINED

GPS/RTS time interval (s)

Enter the GPS/RTS minimum and maximum time values.

Default values are calculated from the dataset using the median of the first measurements in the database, the first 15 (non zero) readings of the acquisition time channel (UXA_ACQ_Time). This is typically more consistent than the GPS/RTS time, where:

  • Minimum = minMultiplier times the minimum of the first difference.
  • Maximum = maxMultiplier times the minimum of the first difference.

Review the default values, particularly when working with large datasets, to ensure they are appropriate for the entire dataset.

Script Parameters:

UXANALYZE.GPSUTC_MIN

UXANALYZE.GPSUTC_MAX

Maximum ‘small’ gap to interpolate (s)

Enter the maximum length of small gaps in the data that will be automatically interpolated through.

Default: 1.5

Script Parameter: UXANALYZE. MAX_SMALL_GAP_TO_INTERPOLATE

Despike filter length (s)

Enter the maximum length of the spikes that will be removed.

Default: 1.5

Script Parameter: UXANALYZE. DESPIKE_FILTER_LENGTH

Identify sample separations larger than (m)

Enter the maximum allowable sample separation for your project.

Default: none

Script Parameter: UXANALYZE. MAX_SAMPLE_SEPARATION

Load database view

Select the database view to load or choose not to load at the end of the processing. When a database view option is selected, one of the three database view files will be automatically loaded:

  • Time and position (default): Database prefix_QC_Time_XY.dbview
  • Elevation and platform attitude: Database prefix_QC_Elev_PRY.dbview
  • Transmitter current and transient data: Database prefix_QC_Curr_TEM.dbview

  • Do not load a view

The database views, if they do not already exist, will be saved to your project directory. You can edit these to customize them for your project to add/remove channels or database profiles; they are not overwritten on subsequent runs of the tool. See the Application Notes below for details.

The original database view files are in the C:\Program Files\Geosoft\Desktop Applications \etc folder, and they are copied to your working project directory when the dialog is first run in a project.

When not selected, no output channels will be loaded, and the existing database view will not change.

Script Parameter:UXANALYZE.LOAD_DB_VIEW

  • 0 Load view for time and position
  • 1 Load view for elevation and platform attitude
  • 2 Load view for transmitter current and transient data
  • 3 Do not load a view

[More]

Click the More button to display more parameters.

Acceptable GPS/RTS fix quality codes

Select one or more acceptable GPS fix quality codes:

  • 1 - GPS (SPS)
  • 2 - Differential GPS (DGPS)
  • 3 - GPS (PPS)
  • 4 - Real-Time Kinematic (RTK), fixed integers (default)
  • 5 - Real-Time Kinematic (RTK), float integers
    The channel UXA_GPSFIXQ is used for this function.

Script Parameter:

  • UXANALYZE.GPS_FIX_QUALITY_CODE_1
  • UXANALYZE.GPS_FIX_QUALITY_CODE_2
  • UXANALYZE.GPS_FIX_QUALITY_CODE_3
  • UXANALYZE.GPS_FIX_QUALITY_CODE_4
  • UXANALYZE.GPS_FIX_QUALITY_CODE_5

Channel to calculate final position

Select the heading channel to be used to calculate the final position. The available options are:

  • Heading from IMU (Inertial Measurement Unit) - default

  • Course over ground from X and Y.

Script Parameter:UXANALYZE.PROCESS_HEADING_OPTION

Application Notes

This Dynamic Data Processing option verifies the quality of the imported dynamic data and possibly corrects it through the following steps:

  • Each part of the data, such as time, position, or elevation, can be processed individually or in combination with the others. You can select which data to process, using the options in the dialog; each option is called a processing step hereafter.
  • Each processing step has one or more corrected or filtered channels, which will have the name of the original channel and _FILT as suffix. If the data passes the processing step, the filtered channel will have the same data as the original, otherwise it will be either an interpolated value or dummy. The latter happens when the gap in data is larger than a certain number of points, which prevents the interpolation from extracting its value from the neighbouring points.
  • Each processing step requires some predefined thresholds against which the data will be tested. These thresholds are saved in the "uxa.config" file.
  • Each processing step has an output QC channel, for example, "UXA_TIME_QC", which is associated with time. These QC channels will have the following values depending on the quality of the data:
    • * ("Dummy"): data has passed the quality control.
    • 1: there is a small gap or segment where the data has not passed the quality control. When this happens, the data is set to dummy, and the tool will try to determine its value through interpolation.
    • 2: there is a large gap or segment where the data has not passed the quality control and its value could not be determined through interpolation.
  • The tool also generates an overall QC channel, UXA_QC_Prepro, which sums up all the QC channels associated with the processing steps. This channel shows only the data that could not be interpolated after set to dummy, so it will be a multiple of 2, depending on how many processing steps have failed. For instance, if the Elevation and platform attitude processing steps fail for a data point, UXA_QC_Prepro will have a value of 4 for that data point. If no processing step fails, the channel will contain dummies.
  • At the end of the processing, UXA_X_Array, UXA_Y_Array, and UXA_Z_Array will be set as default (current) coordinate channels.

Assumptions

  • There is a single continuous survey line with no stops or gaps.
  • Units are meters and seconds.
  • The following channels are required to run the tool: UXA_X_Raw, UXA_Y_Raw, UXA_Z_Raw, UXA_PITCH, UXA_ROLL, UXA_YAW, UXA_GPSUTC, UXA_ACQ_TIME, UXA_GPSFIXQ, and transmitter current channels (UXA_TXZ_CURRENT).
  • Channels that contain a single constant value for all the selected lines will not be filtered unless that value is outside the specific thresholds for that channel.

Processing

The details of each processing step as well as the input and output channels are explained below.

Time and Position

Input: UXA_GPSUTC, UXA_ACQ_TIME, UXA_X_Raw, UXA_Y_Raw

Output: UXA_GPSUTC_diff, UXA_GPSUTC_FILT, UXA_ACQ_TIME_diff, UXA_ACQ_TIME_FILT, UXA_TIME_FILT_diff, UXA_X_Array, UXA_Y_Array, UXA_Point2Point, UXA_TIME_QC, UXA_POSITION_QC

Process:

  • Identify readings with poor fix quality. These will be filtered out and linearly interpolated to fill the (small) gaps, UXA_X_Array and UXA_Y_Array.

  • Identify readings with the same/duplicate time. These will be filtered out and linearly interpolated to fill the (small) gaps, UXA_GPSUTC_Filt and UXA_ACQ_TIME_Filt.
  • Identify readings with UXA_GPSUTC and UXA_ACQ_TIME being outside of a min/max range. These will be filtered out and linearly interpolated to fill the (small) gaps, UXA_GPSUTC_Filt and UXA_ACQ_TIME_Filt.
  • Identify readings where the difference between UXA_GPSUTC_FILT, UXA_ACQ_TIME_FILT is more than a threshold (timeDiff max).

Also, see "Sample Separation" under the Other Output Channels section below.

Elevation

Input: UXA_Z_Raw

Output: UXA_ELEV_QC, UXA_Z_Array

Process:

  • Remove spikes from the data using a non-linear filter (elevation nlFiltTolerance).
  • Identify readings that were modified as a result.
Platform Attitude (IMU)

Input: UXA_PITCH, UXA_ROLL, UXA_YAW

Output: UXA_PITCH_FILT, UXA_ROLL_FILT, UXA_YAW_True, UXA_YAW_True_FILT, UXA_IMU_QC

Process:

  • Identify the readings with the same/duplicate pitch, roll, or heading values.
  • Identify the readings with zero pitch, roll, or heading values.
  • Identify the readings that are outside of predefined pitch and roll ranges (platformAttitude).
  • Interpolate the filtered pitch, roll, and heading channels.
  • Apply a non-linear filter and low-pass filter on the filtered pitch, roll, and heading channels.
Transmitter Current

Input: Transmitter current channel(s) UXA_TX[Coil Name]Z_CURRENT, sensor data channels UXA_RX[COIL_NUMBER][XYZ]_TX[Coil Name]Z

Output: UXA_TX[Coil Name]Z_CURRENT_FILT, normalized sensor data channels UXA_RX[Coil Name][XYZ]_TX[Coil Name]Z_NORM, UXA_TX_CURRENT_QC

Process:

  • Apply non-linear and low pass filters on transmitter current channels.
  • Identify the filtered transmitter current data that are outside of predefined minimum and maximum currents.
  • Interpolate the filtered transmitter current data.
  • Normalize the sensor data channels by dividing the sensor data by the maximum transmitter current.
Saturated Receiver Data

Input: sensor data channels UXA_RX[Coil Name][XYZ]_TX[Coil Name]Z

Output: UXA_SATURATED_QC

Process:

  • Multiply the data by the maximum current.

  • Identify measurements and Tx-Rx pairs where the absolute data value for the first valid time (UXA_GateFirstValidTime) or later (i.e. the low gate or higher) is greater than the saturation threshold (UXA_ReceiverSaturationThreshold). For legacy MetalMapper (original) data, the current is not saved; therefore, we identify flags where the sensor data is outside ±800 for the low gate (8) or higher.
Flat Lined Receiver Data

Input: sensor data channels UXA_RX[Coil Name][XYZ]_TX[Coil Name]Z

Output: UXA_FLATLINED_QC

Process:

  • Calculate the log of the absolute value of the sensor transient data.

  • Calculate the difference between successive gates, in the transient data.

  • For a moving window along the transient data (array), determine the maximum successive difference. The length of the window is 0.25 (nSuccessiveDiffMultiplier) of the number of gates (UXA_Windows).
  • Identify measurements and Tx-Rx pairs where the maximum difference within any window is less than 0.02 (lowerBound).

Sensor Table Channels

The following channels are recreated from the sensor table file if they do not exist in the database. Some of them, marked with an asterisk (*) in the list below, will be recreated even if they exist – if the format of the data does not match that of the sensor table.

ClosedClick to see the channels.

  • UXA_Cart

  • UXA_DecayTime

  • UXA_EquipmentVersion*

  • UXA_FiringSequence*

  • UXA_FiringSequenceTimes

  • UXA_GateCenters

  • UXA_GateFirstValidTime

  • UXA_HDF5EMITagDefinitionVersion*

  • UXA_HeightOfTransmitterAssemblyAboveGround*

  • UXA_HeightOfZCoilCenterAboveTransmitterAseembly*

  • UXA_QCWindowEndTime

  • UXA_QCWindowStartTime

  • UXA_ReceiverGains*

  • UXA_ReceiverLayout*

  • UXA_ReceiverNormalVectors*

  • UXA_ReceiverSaturationThreshold

  • UXA_ReceiverThickness*

  • UXA_ReceiverTurns*

  • UXA_TransmissionCurrentThreshold

  • UXA_TransmitterLayout*

  • UXA_TransmitterNormalVectors*

  • UXA_TransmitterThickness*

  • UXA_TransmitterTurns*

Other Output Channels

After all the processing steps are done, the following channels are also created/updated:

  • Speed: this channel is calculated by dividing the sample separation by the time difference, and is saved as UXA_Speed.This channel is only created/updated when either the Time and position or the Platform attitude option is selected. The channel is calculated from the final X/Y array channels.
  • Instrument centre coordinates: the sensor array centre is calculated using the UXA_X_Array, UXA_Y_Array, and UXA_Z_Array channels and the 'GPS offset' channels. The result is saved back into the ‘array’ channels.
  • Sample Separation: a sample separation channel, UXA_Point2Point, is calculated using the ‘array’ channels. Readings that are greater than a sample separation threshold are identified as part of the position quality control. This channel is only created/updated when either Time and position, Elevation or Platform attitude is selected. The channel is calculated from the final X/Y array channels.
  • Course over Ground (COG): this channel is only created/updated when either Time and position, Elevation or Platform attitude is selected. It is calculated using the following process:
    • Determine the first difference of filtered X and Y channels.
    • Apply non-linear and low-pass filters on the difference channels.
    • Interpolate the difference channels.
    • Identify the data if the sample separation value is less than a minimum threshold.
    • Interpolate the resulting channels.
    • Calculate the COG by dividing difference X by difference Y and convert it to degrees.

      The channel is calculated on the filtered X/Y array channels:  UXA_X_Raw_FILT and UXA_Y_Raw_FILT.

    • Ensure that the COG channel follows the sign convention used by the heading channel: UXA_COG = UXA_COG - round((UXA_COG - UXA_HEADING_FILT) / 360) * 360.
  • Sum of Z component sensor data are calculated; the channels are:
    • UXA_SumCoaxialZ – the sum of all the coaxial (same direction) Z components. Most often used with sensors like the MetalMapper or the MPV.
    • UXA_SumMonostatZ – the sum of all the monostatic (i.e., coaxial and coincident) Z components. Most often used with sensors like the MetalMapper 2x2.

Database Views

When the 'Data Processing' tool is executed with one of the three database views loaded, the following channels will be displayed in each of the five profile windows: 

Time and position

ClosedClick to see the channels that will be loaded.

  • UXA_X_Array

  • UXA_Y_Array

  • UXA_QC_Prepro

  • UXA_X_Raw

  • UXA_Y_Raw

  • UXA_GPSFIXQ

  • UXA_ACQ_TIME

  • UXA_ACQ_TIME_diff

  • UXA_GPSUTC

  • UXA_GPSUTC_FILT

  • UXA_GPSUTC_diff

  • UXA_TIME_FILT_diff

  • UXA_Z_Raw

  • UXA_Z_Array

  • UXA_Point2Point

  • UXA_SPEED

  • UXA_PITCH_FILT

  • UXA_ROLL_FILT

  • UXA_YAW_TRUE_FILT

  • UXA_COG

  • UXA_ELEV_QC

  • UXA_TIME_QC

  • UXA_IMU_QC

  • UXA_POSITION_QC

  • UXA_TX_CURRENT_QC

Profile window 1

UXA_X_Array

UXA_X_Raw

Y-axis options: scale to fit each line; same axis scale for all profiles.

Profile window 2

UXA_Y_Array

UXA_Y_Raw

Y-axis options: scale to fit each line; same axis scale for all profiles.

Profile window 3

UXA_ACQ_TIME

UXA_GPSUTC

Y-axis options: scale to fit each line; same axis scale for all profiles.

Profile window 4

UXA_Point2Point

UXA_SPEED

Y-axis options: same axis scale for all lines; same axis scale for all profiles.

  • Point2Point: 0 to 0.8
  • Speed: 2 to 4

Profile window 5

UXA_QC_Prepro

UXA_ELEV_QC

UXA_TIME_QC

UXA_IMU_QC

UXA_POSITION_QC

UXA_TX_CURRENT_QC

Y-axis options: same axis scale for all lines; same axis scale for all profiles.

Elevation and platform attitude

The current and filtered current channels are sensor specific and should be those named of the transmitters (UXA_TXZ_CURRENT and UXA_TXZ_CURRENT_FILT).

ClosedClick to see the channels that will be loaded.

  • UXA_X_Array

  • UXA_Y_Array

  • UXA_QC_Prepro

  • UXA_X_Raw

  • UXA_Y_Raw

  • UXA_GPSFIXQ

  • UXA_Z_Raw

  • UXA_Z_Array

  • UXA_PITCH
  • UXA_PITCH_FILT
  • UXA_ROLL
  • UXA_ROLL_FILT
  • UXA_YAW
  • UXA_YAW_True_FILT
  • UXA_COG
  • UXA_ELEV_QC
  • UXA_TIME_QC
  • UXA_IMU_QC
  • UXA_POSITION_QC
  • UXA_TX_CURRENT_QC

Profile window 1

UXA_Z_Array

UXA_Z_Raw

Y-axis options: scale to fit each line; same axis scale for all profiles.

Profile window 2

empty/closed

Profile window 3

UXA_PITCH

UXA_PITCH_FILT

UXA_ROLL

UXA_ROLL_FILT

Y-axis options: same axis scale for all lines; same axis scale for all profiles (-10 to 10).

Profile window 4

UXA_YAW

UXA_YAW_True_FILT

UXA_COG

Y-axis options: same axis scale for all lines; same axis scale for all profiles (-90 to 360).

Profile window 5

UXA_QC_Prepro

UXA_ELEV_QC

UXA_IMU_QC

UXA_POSITION_QC

UXA_TX_CURRENT_QC

Y-axis options: same axis scale for all lines; same axis scale for all profiles.

Transmitter current and transient data

The current and filtered current channels are sensor specific, and should be those named of the transmitters (e.g., UXA_TXZ_CURRENT and UXA_TXZ_CURRENT_FILT).

For the normalized transients, the receiver-transmitter combinations are sensor specific and should be those named of the transmitter-receiver pairs. Also for the transmitter-receiver arrays, the gate that is displayed is the first valid time gate defined in UXA_GateFirstValidTime (i.e., UXA_RX1Z_TX1Z_NORM[5]).

ClosedClick to see the channels that will be loaded.

  • UXA_X_Array

  • UXA_Y_Array

  • UXA_QC_Prepro

  • UXA_FLATLINED_QC

  • UXA_SATURATED_QC

  • UXA_TX_CURRENT_QC

Profile window 1

Filtered current (e.g., UXA_TXZ_CURRENT_FILT) - 1 to n channels.

Y-axis options: same axis scale for all lines; same axis scale for all profiles. Range: TransmissionCurrentThreshold-0.1 to (TransmissionCurrentThreshold * txCurrent maxMultiplier)+0.1

Profile window 2

Receivers in the Z direction (e.g. UXA_RX1Z_TX1Z_NORM[5]) - 1 to n channels.

Y-axis options: same axis scale for all lines; same axis scale for all profiles.

Profile window 3

Receivers in the Y direction (e.g., UXA_RX1Y_TX1Z_NORM[5]) - 1 to n channels.

Y-axis options: same axis scale for all lines; same axis scale for all profiles.

Profile window 4

Receivers in the X direction (e.g., UXA_RX1X_TX1Z_NORM[5]) - 1 to n channels.

Y-axis options: same axis scale for all lines; same axis scale for all profiles.

Profile window 5

UXA_QC_Prepro

UXA_FLATLINED_QC

UXA_SATURATED_QC

UXA_TX_CURRENT_QC

Y-axis options: same axis scale for all lines; same axis scale for all profiles.

UX-Analyze Configuration File (uxa.config)

The configuration file, uxa.config, resides in the "C:\Program Files\Geosoft\Desktop Applications \etc" folder. It contains various default or standard settings for the tool.

ClosedExpand to see the <preProcess> section.

    <preProcess>
    • <dynamicProcessing smallGapTime = "1.5" despikeLengthTime = "1.5"/>
    • <acqTime multiplier="0.5" />
    • <gpsUtc minMultiplier="0.5" maxMultiplier="1.2" />
    • <timeDiff max="0.5" />
    • <position minSampleSeparationMultiplier="0.1"/>
    • <elevation nlFiltTolerance="2"/>
    • <platformAttitude minPitchRoll="-45" maxPitchRoll="45" nlFiltTolerance="45" lowPassFiltCutoffMultiplier="0.65"/>
    • <transmitterCurrents nlFiltTolerance="1" bsplineFiltSmoothness="0.7" bsplineFiltTension="0.7" />
    • <flatLinedRxData nSuccessiveDiffMultiplier="0.25" lowerBound="0.02" />
    • <txCurrent maxMultiplier="3" />
    </preProcess>

If the offset between the GPS antenna and the sensor coils have already been accounted for prior to importing the data, you should enter zero (0) in the respective fields.

  • It is not recommended that you edit this file unless directed by Support.
  • *The GX tool will search in the "gx" folder. The GX.Net tools, however, are embedded in the Geosoft.uxo.gxnet.dll located in the bin folder. If running this GX interactively, bypassing the menu, first change the folder to point to the bin folder, then supply the GX.Net tool in the specified format.