Prepare Vinton Dome FTG data

See EastVic Data for latest organisation of Prepare tutorials

The Geosoft XYZ data format file is commonly used in geophysics to transmit geophysical survey data in a text-readable form.

This tutorial demonstrates the preparation of XYZ airborne gravity gradiometer data, from the Vinton Dome FTG survey, for QC. The preparation consists of converting the data to geoWhizz format and storing in a HDF5 file, compiling the project, line, and channel metadata.

We need all the data in HDF5 geoWhizz format because all the QC functions expect that format. (More on the geoWhizz format elsewhere in the galileoQC documentation.)


First, import the required modules, and set the path to the XYZ file.

from pathlib import Path
import galileoQC as qc
# There was no plan data supplied with the Vinton Dome project.
vintonXYZ_file = Path(r'./VintonData/VintonDome.xyz')

The Measured Survey Data

vintonHDF_file = vintonXYZ_file.with_suffix(".hdf5")
if not vintonHDF_file.exists():
    vintonHDF_file = qc.xyzToHDF(vintonXYZ_file, projectName='Vinton Dome')
block_name = 'Vinton Dome Data'
qc.updateProject(vintonHDF_file, acquirer='Bell Geospace', blockID=block_name)
Setting BlockID = Vinton Dome Data for VintonDome.hdf5.
Setting Acquirer = Bell Geospace for VintonDome.hdf5.
qc.updateCoordFrame(vintonHDF_file, 
                    lat='Lat', 
                    lon='Lon', 
                    x='X', 
                    y='Y', 
                    time='Time', 
                    alt='Altitude', 
                    geoDatum='WGS84', 
                    htDatum='WGS84', 
                    projection='UTM', 
                    utmz='15')
Changed CoordFrame attribute(s) for VintonDome.hdf5.
qc.updateChannelAttributes(vintonHDF_file, 'Altitude', units='m')
qc.updateChannelAttributes(vintonHDF_file, 'Drape', units='m', description='Planned Height')
qc.updateChannelAttributes(vintonHDF_file, 'Lat', units='degree')
qc.updateChannelAttributes(vintonHDF_file, 'Lon', units='degree')
qc.updateChannelAttributes(vintonHDF_file, 'Terrain', units='m')
qc.updateChannelAttributes(vintonHDF_file, 'Time', units='s')
qc.updateChannelAttributes(vintonHDF_file, 'YYMMDD')
qc.updateChannelAttributes(vintonHDF_file, 'HHMMSS')
qc.updateChannelAttributes(vintonHDF_file, 'X', units='metre')
qc.updateChannelAttributes(vintonHDF_file, 'Y', units='metre')
qc.updateChannelAttributes(vintonHDF_file, 'Cross1_raw', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Cross2_raw', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Cross3_raw', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Inline1_raw', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Inline2_raw', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Inline3_raw', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'TC_Txx_100', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'TC_Txz_100', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'TC_Tyx_100', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'TC_Tyy_100', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'TC_Tyz_100', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'TC_Tzz_100', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Txx_slv', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Txz_slv', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Tyx_slv', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Tyy_slv', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Tyz_slv', units='eotvos')
qc.updateChannelAttributes(vintonHDF_file, 'Tzz_slv', units='eotvos')
Changed channel attribute(s) for Altitude in VintonDome.hdf5.
Changed channel attribute(s) for Drape in VintonDome.hdf5.
Changed channel attribute(s) for Lat in VintonDome.hdf5.
Changed channel attribute(s) for Lon in VintonDome.hdf5.
Changed channel attribute(s) for Terrain in VintonDome.hdf5.
Changed channel attribute(s) for Time in VintonDome.hdf5.
No changes made.
No changes made.
Changed channel attribute(s) for X in VintonDome.hdf5.
Changed channel attribute(s) for Y in VintonDome.hdf5.
Changed channel attribute(s) for Cross1_raw in VintonDome.hdf5.
Changed channel attribute(s) for Cross2_raw in VintonDome.hdf5.
Changed channel attribute(s) for Cross3_raw in VintonDome.hdf5.
Changed channel attribute(s) for Inline1_raw in VintonDome.hdf5.
Changed channel attribute(s) for Inline2_raw in VintonDome.hdf5.
Changed channel attribute(s) for Inline3_raw in VintonDome.hdf5.
Changed channel attribute(s) for TC_Txx_100 in VintonDome.hdf5.
Changed channel attribute(s) for TC_Txz_100 in VintonDome.hdf5.
Changed channel attribute(s) for TC_Tyx_100 in VintonDome.hdf5.
Changed channel attribute(s) for TC_Tyy_100 in VintonDome.hdf5.
Changed channel attribute(s) for TC_Tyz_100 in VintonDome.hdf5.
Changed channel attribute(s) for TC_Tzz_100 in VintonDome.hdf5.
Changed channel attribute(s) for Txx_slv in VintonDome.hdf5.
Changed channel attribute(s) for Txz_slv in VintonDome.hdf5.
Changed channel attribute(s) for Tyx_slv in VintonDome.hdf5.
Changed channel attribute(s) for Tyy_slv in VintonDome.hdf5.
Changed channel attribute(s) for Tyz_slv in VintonDome.hdf5.
Changed channel attribute(s) for Tzz_slv in VintonDome.hdf5.

The line numbering for Vinton Dome is not obvious but we need to be able to distinguish between traverse and control lines for several purposes, including odd-even grid analysis. So let’s work it out and set the metadata appropriately for each flight-line.

qc.updateLineVariety(vintonHDF_file, trav_lines=['11.000', '111.000', 
                       '131.000', '131.100', '151.000', '151.100', '151.200', 
                       '171.000', '191.000', '211.000', 
                       '211.100', '231.000', '251.000', '271.000', '271.100', 
                       '291.000', '291.100', '31.000', '31.100', 
                       '311.000', '331.000', '351.000', '371.000', '371.100', 
                       '391.000', '401.000', '411.000', '411.100', 
                       '421.000', '431.000', '431.100', '441.000', '451.000', 
                       '461.000', '461.100', '471.000', '481.000', '491.000', 
                       '501.000', '501.100', '51.000', '51.100', 
                       '511.000', '521.000', '531.000', '541.000', '541.100', 
                       '541.200', '551.000', '561.000', '581.000',  
                       '601.000', '601.100', '621.000', '641.000', '641.100', 
                       '661.000', '661.100', '681.000', '701.000', 
                       '71.000', '721.000', '741.000', '741.100', '761.000', 
                       '761.100', '781.000', '801.000', '821.000', 
                       '841.000', '841.100', '861.000', '881.000',  
                       '91.000'], ctrl_lines=['10.000', '100.000', '110.000',  
                       '120.000', '130.000', '140.000', 
                       '150.000', '160.000', 
                       '170.000', '20.000', 
                       '30.000', '40.000', 
                       '50.000', '60.000', 
                       '70.000', '80.000', '90.000'])
"Traverse" line variety set for given flight-lines.
"Control" line variety set for given flight-lines.
qc.reportWhizz(vintonHDF_file)
Whizz Version 1.0
    Acquirer: Bell Geospace
    BlockID: Vinton Dome Data
    ProjectName: Vinton Dome

Coordinates
    AltitudeChannel: Altitude
    GeoDatum: WGS84
    HeightDatum: WGS84
    LatitudeChannel: Lat
    LongitudeChannel: Lon
    Projection: UTM
    TimeChannel: Time
    UTMZone: 15
    XChannel: X
    YChannel: Y
91 lines: total distance flown [km] = 1,439.4

91 lines:
['10.000', '100.000', '11.000', '110.000', '111.000', '120.000',
'130.000', '131.000', '131.100', '140.000', '150.000', '151.000',
'151.100', '151.200', '160.000', '170.000', '171.000', '191.000',
'20.000', '211.000', '211.100', '231.000', '251.000', '271.000',
'271.100', '291.000', '291.100', '30.000', '31.000', '31.100',
'311.000', '331.000', '351.000', '371.000', '371.100', '391.000',
'40.000', '401.000', '411.000', '411.100', '421.000', '431.000',
'431.100', '441.000', '451.000', '461.000', '461.100', '471.000',
'481.000', '491.000', '50.000', '501.000', '501.100', '51.000',
'51.100', '511.000', '521.000', '531.000', '541.000', '541.100',
'541.200', '551.000', '561.000', '581.000', '60.000', '601.000',
'601.100', '621.000', '641.000', '641.100', '661.000', '661.100',
'681.000', '70.000', '701.000', '71.000', '721.000', '741.000',
'741.100', '761.000', '761.100', '781.000', '80.000', '801.000',
'821.000', '841.000', '841.100', '861.000', '881.000', '90.000',
'91.000']

28 channels:
['Altitude', 'Cross1_raw', 'Cross2_raw', 'Cross3_raw', 'Drape',
'HHMMSS', 'Inline1_raw', 'Inline2_raw', 'Inline3_raw', 'Lat', 'Lon',
'TC_Txx_100', 'TC_Txz_100', 'TC_Tyx_100', 'TC_Tyy_100', 'TC_Tyz_100',
'TC_Tzz_100', 'Terrain', 'Time', 'Txx_slv', 'Txz_slv', 'Tyx_slv',
'Tyy_slv', 'Tyz_slv', 'Tzz_slv', 'X', 'Y', 'YYMMDD']
qc.reportFlights(vintonHDF_file)
No flight data found in data file so no report possible.
qc.reportSampling(vintonHDF_file)
Whizz Version 1.0
    Acquirer: Bell Geospace
    BlockID: Vinton Dome Data
    ProjectName: Vinton Dome

Sample time and distance statistics
  Min   = 1.000 s, 40.7 m
  Max   = 1.000 s, 65.4 m
  Mean  = 1.000 s, 51.8 m
  Stdev = 0 s, 3 m

Make a survey flight-line map

qc.linesMap([vintonHDF_file], whizzPlanFile=vintonHDF_file)
../_images/1d1ba89ec1189b67e04162c6dbddc51fc693c37b4a31fb78af1f42890d2b4aa3.png