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).
Expand 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:
|
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:
See the Application Notes below for details. Script Parameters:
|
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:
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:
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
|
[More] | Click the More button to display more parameters. |
Acceptable GPS/RTS fix quality codes | Select one or more acceptable GPS fix quality codes:
The channel UXA_GPSFIXQ is used for this function. Script Parameter:
|
Channel to calculate final position | Select the heading channel to be used to calculate the final position. The available options are:
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.
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*
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
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.
|
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 attitudeThe current and filtered current channels are sensor specific and should be those named of the transmitters (UXA_TXZ_CURRENT and UXA_TXZ_CURRENT_FILT).
UXA_X_Array UXA_Y_Array UXA_QC_Prepro UXA_X_Raw UXA_Y_Raw UXA_GPSFIXQ UXA_Z_Raw UXA_Z_Array | |
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 dataThe 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]).
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.
Expand 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>
- <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" />
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.
*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.
Got a question? Visit the Seequent forums or Seequent support
© 2024 Seequent, The Bentley Subsurface Company
Privacy | Terms of Use