{ "cells": [ { "cell_type": "markdown", "id": "9ae77456-72fc-477a-944e-7530cee0b10d", "metadata": {}, "source": [ "# Prepare Eastern Victoria gravimeter data" ] }, { "cell_type": "markdown", "id": "e12d6241-ef18-4168-b3ec-19ed29115a25", "metadata": {}, "source": [ "This tutorial demonstrates the preparation of XYZ airborne gravity data for QC.\n", "___" ] }, { "cell_type": "markdown", "id": "b02dddad-a441-457c-b7ae-274c449649a3", "metadata": {}, "source": [ "First, import the required python packages, ..." ] }, { "cell_type": "code", "execution_count": 1, "id": "3f30b81f-4f81-4fc6-8485-ab8638a1c745", "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "import galileoQC as qc" ] }, { "cell_type": "markdown", "id": "d0aee71d-1db5-465e-b698-2b13c0d6d915", "metadata": {}, "source": [ "... then set the path to the geowhizz files.\n", "\n", "This is all very much step by step to illustrate the process, and you can certainly compress some of these steps in your own work." ] }, { "cell_type": "code", "execution_count": 2, "id": "9f785ebc-b42e-4cb0-8192-3820e9f02437", "metadata": {}, "outputs": [], "source": [ "# Our survey data consists of 4 XYZ files, all in the same directory.\n", "data_root = r'./EastVicData/'\n", "\n", "# The name of the input file for the survey data.\n", "EastVicXYZ_file = Path(data_root + r'EastVic.xyz')\n", "\n", "# For the EastVic survey, we have test line data in a separate XYZ file ...\n", "EastVicTestXYZ_file = Path(data_root + r'EastVicTest.xyz')\n", "\n", "# ... and another XYZ file with the repeat line data.\n", "EastVicRepXYZ_file = Path(data_root + r'EastVicRepeats.xyz')\n", "\n", "# Finally, we also have the planned drape file, or plan file.\n", "# ... sometimes, but not this time, the plan data is in a different directory.\n", "plan_root = data_root\n", "EastVicXYZ_plan = Path(plan_root + r'EastVicPlan.xyz')" ] }, { "cell_type": "markdown", "id": "d939c6bf-a11f-41a9-97c8-d8be835f134d", "metadata": {}, "source": [ "___" ] }, { "cell_type": "markdown", "id": "bc5d7b8a-06c0-4398-b1cd-44b7ea401d71", "metadata": {}, "source": [ "**The Survey Plan Data**" ] }, { "cell_type": "markdown", "id": "ede9483f-e771-43b4-aa97-4f8306ec5457", "metadata": {}, "source": [ "Usually (ideally) there is a drape plan data file with the planned positions of the aircraft for each flight-line. It is best to convert the plan data to geowhizz format first because information in the plan can be used to better prepare the survey data.\n", "\n", "You can use any `projectName` you like. It is only used in titles for plots." ] }, { "cell_type": "code", "execution_count": 3, "id": "664d188b-17a6-4d0d-b0ac-299e8be167f2", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accessing XYZ data in EastVicData/EastVicPlan.xyz.\n", "First few records are:\n", "/Clearance_m Drape_m Line Terrain_m W84_Latitude_deg\n", "W84_Longitude_deg W84_UTM_55S_X_m W84_UTM_55S_Y_m\n", "//Flight 0\n", "//Date 2022/03/11\n", "Line 2340\n", "\n", " Found 41 header records\n", " Found 20 lines\n", " Found 8 fields\n", "\n", "Channel precisions (number of decimal places):\n", "[2 2 2 2 8 8 2 2]\n", "Creating: EastVicData/EastVicPlan.hdf5\n" ] } ], "source": [ "# Convert the plan data from XYZ to geoWhizz format\n", "EastVicHDF_plan = qc.xyzToHDF(Path(EastVicXYZ_plan), projectName='EastVic')" ] }, { "cell_type": "code", "execution_count": 4, "id": "cd79dd0e-53fa-439a-808a-47bff7773e0c", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting BlockID = Survey Plan for EastVicPlan.hdf5.\n", "Setting Acquirer = Sander Geophysics for EastVicPlan.hdf5.\n" ] } ], "source": [ "# Add in some meta-data (used in plot titles)\n", "block_name = 'Survey Plan'\n", "qc.updateProject(EastVicHDF_plan, acquirer='Sander Geophysics', blockID=block_name)" ] }, { "cell_type": "code", "execution_count": 5, "id": "b7e71a23-e099-475d-a60c-862af356f2db", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Changed CoordFrame attribute(s) for EastVicPlan.hdf5.\n" ] } ], "source": [ "# Set meta-data in the CoordFrame group. The `x`, `y`, and `alt` are the names of\n", "# the default x, y, z channels used in many QC functions. It is advisable to include\n", "# at least these 3 metadata.\n", "qc.updateCoordFrame(EastVicHDF_plan,\n", " x='W84_UTM_55S_X_m', \n", " y='W84_UTM_55S_Y_m', \n", " alt='Drape_m', \n", " geoDatum='WGS84', \n", " projection='UTM', \n", " utmz='55')" ] }, { "cell_type": "code", "execution_count": 6, "id": "37150a4f-b9a3-4f7c-97de-281ea9813260", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Changed channel attribute(s) for W84_UTM_55S_X_m in EastVicPlan.hdf5.\n", "Changed channel attribute(s) for W84_UTM_55S_Y_m in EastVicPlan.hdf5.\n", "Changed channel attribute(s) for Drape_m in EastVicPlan.hdf5.\n", "Changed channel attribute(s) for Clearance_m in EastVicPlan.hdf5.\n", "Changed channel attribute(s) for Terrain_m in EastVicPlan.hdf5.\n", "Changed channel attribute(s) for W84_Latitude_deg in EastVicPlan.hdf5.\n", "Changed channel attribute(s) for W84_Longitude_deg in EastVicPlan.hdf5.\n" ] } ], "source": [ "# Set the attributes for each channel. The `units` are used in plot labels and in\n", "# some QC analysis so should always be set if known. The `descriptions` are rarely\n", "# used, so definitely optional.\n", "qc.updateChannelAttributes(EastVicHDF_plan, 'W84_UTM_55S_X_m', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_plan, 'W84_UTM_55S_Y_m', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_plan, 'Drape_m', units='m', description='Height relative to WGS84')\n", "qc.updateChannelAttributes(EastVicHDF_plan, 'Clearance_m', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_plan, 'Terrain_m', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_plan, 'W84_Latitude_deg', units='deg')\n", "qc.updateChannelAttributes(EastVicHDF_plan, 'W84_Longitude_deg', units='deg')" ] }, { "cell_type": "code", "execution_count": 7, "id": "8b1ae136-42dc-4b63-b8de-343193252cb3", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: Survey Plan\n", " ProjectName: EastVic\n", "\n", "Coordinates\n", " AltitudeChannel: Drape_m\n", " GeoDatum: WGS84\n", " Projection: UTM\n", " UTMZone: 55\n", " XChannel: W84_UTM_55S_X_m\n", " YChannel: W84_UTM_55S_Y_m\n", "20 lines: total distance flown [km] = 2,770.8\n", "\n", "20 lines:\n", "['2340.000', '2341.000', '2341.100', '2341.500', '2342.000',\n", "'2343.000', '2343.100', '2343.500', '2344.000', '2345.000',\n", "'2345.100', '2345.500', '2346.000', '2347.000', '2347.100',\n", "'2347.500', '2348.000', '2349.000', '2349.100', '2349.500']\n", "\n", "8 channels:\n", "['Clearance_m', 'Drape_m', 'Line', 'Terrain_m', 'W84_Latitude_deg',\n", "'W84_Longitude_deg', 'W84_UTM_55S_X_m', 'W84_UTM_55S_Y_m']\n" ] } ], "source": [ "# Summary report of the newly created geowhizz plan data file.\n", "qc.reportWhizz(EastVicHDF_plan)" ] }, { "cell_type": "markdown", "id": "d19d0d66-28eb-455f-9f6a-d3cad8e5fd06", "metadata": {}, "source": [ "___" ] }, { "cell_type": "markdown", "id": "fa3aed9e-5b9e-48b7-9c82-12f2f9b28ab9", "metadata": {}, "source": [ "**The Measured Survey Data**" ] }, { "cell_type": "code", "execution_count": 8, "id": "b498ba70-f441-4a3c-be7e-6d9d37ab170c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accessing XYZ data in EastVicData/EastVic.xyz.\n", "First few records are:\n", "/ ATMCOR B100s_267_GEOID B100s_267_GRS80 B56s_267_GEOID\n", "B56s_267_GRS80 DEM DOY EOTCOR FA100s_GEOID FA100s_GRS80\n", "FA56s_GEOID FA56s_GRS80 FACOR_GEOID FACOR_GRS80 FLIGHT FTIME\n", "FX FY FZ HDOP LALT LAT LATCOR\n", "LINE LONG MGA_X MGA_Y MGA_Z MSL_Z NSATS\n", "PDOP RALT STATCOR TACOR V_EAST V_NORTH VDOP\n", "YEAR\n", "//Flight 0\n", "//Date 2022/07/13\n", "Line 2341.50\n", "\n", " Found 17 header records\n", " Found 8 lines\n", " Found 38 fields\n", "\n", "Channel precisions (number of decimal places):\n", "[2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 8 2 2 8 2 2 2 2 2 2 2 2 2 2\n", "2 2 2]\n", "Creating: EastVicData/EastVic.hdf5\n" ] } ], "source": [ "# Now run through the same steps for the measured data.\n", "EastVicHDF_file = qc.xyzToHDF(Path(EastVicXYZ_file), projectName='EastVic')" ] }, { "cell_type": "code", "execution_count": 9, "id": "20e50051-5fe5-455b-92a3-38749b0bd647", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting BlockID = EastVic Field Data for EastVic.hdf5.\n", "Setting Acquirer = Sander Geophysics for EastVic.hdf5.\n" ] } ], "source": [ "# The block name appears on some plots, so it is useful to set it so that it\n", "# indicates for which data the plots are shown.\n", "block_name = 'EastVic Field Data'\n", "qc.updateProject(EastVicHDF_file, acquirer='Sander Geophysics', blockID=block_name)" ] }, { "cell_type": "code", "execution_count": 10, "id": "dea3740d-2ca2-401a-8f53-6df91edfd307", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Changed CoordFrame attribute(s) for EastVic.hdf5.\n" ] } ], "source": [ "# In measured data, we can also name the default time channel.\n", "qc.updateCoordFrame(EastVicHDF_file, \n", " lat='LAT', \n", " lon='LONG', \n", " x='MGA_X', \n", " y='MGA_Y', \n", " time='FTIME', \n", " alt='MGA_Z',\n", " geoDatum='GDA2020', \n", " htDatum='GRS80', \n", " projection='MGA', \n", " utmz='55')" ] }, { "cell_type": "code", "execution_count": 11, "id": "5e1a23cc-6a87-43fe-ad13-25868a789f44", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting Line attributes for EastVicData/EastVic.hdf5 to include flight numbers from FLIGHT.\n", "Setting Line attributes for EastVicData/EastVic.hdf5 to include date values from DOY.\n", "\n", "Setting Line attributes for EastVic.hdf5 according to the SGL_GA scheme.\n", "Verifying planned line numbers against provided plan file(s).\n" ] } ], "source": [ "# The `line_type` tells the code how to extract the planned line number, the segment \n", "# number, and the repeat number from each reported survey line number. This is necessary\n", "# for comparing positioning of measured data aginst planned positions. Flight numbers\n", "# and dates are recorded as line meta-data in the geowhizz file.\n", "\n", "# More details on Line Types can be found elsewhere in the documentation.\n", "\n", "qc.updateLineAttributes(EastVicHDF_file, planfiles=EastVicHDF_plan, line_type='SGL_GA', flight_chan='FLIGHT', date_chan=\"DOY\")" ] }, { "cell_type": "code", "execution_count": 12, "id": "843eed5e-98b6-4907-a1e6-ee9c6228a4a7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Changed channel attribute(s) for FTIME in EastVic.hdf5.\n", "Changed channel attribute(s) for MGA_X in EastVic.hdf5.\n", "Changed channel attribute(s) for MGA_Y in EastVic.hdf5.\n", "Changed channel attribute(s) for MGA_Z in EastVic.hdf5.\n", "Changed channel attribute(s) for MSL_Z in EastVic.hdf5.\n", "Changed channel attribute(s) for LAT in EastVic.hdf5.\n", "Changed channel attribute(s) for LONG in EastVic.hdf5.\n", "Changed channel attribute(s) for DEM in EastVic.hdf5.\n", "Changed channel attribute(s) for RALT in EastVic.hdf5.\n", "Changed channel attribute(s) for LALT in EastVic.hdf5.\n", "Changed channel attribute(s) for FX in EastVic.hdf5.\n", "Changed channel attribute(s) for FY in EastVic.hdf5.\n", "Changed channel attribute(s) for FZ in EastVic.hdf5.\n", "Changed channel attribute(s) for V_EAST in EastVic.hdf5.\n", "Changed channel attribute(s) for V_NORTH in EastVic.hdf5.\n", "Changed channel attribute(s) for EOTCOR in EastVic.hdf5.\n", "Changed channel attribute(s) for LATCOR in EastVic.hdf5.\n", "Changed channel attribute(s) for STATCOR in EastVic.hdf5.\n", "Changed channel attribute(s) for ATMCOR in EastVic.hdf5.\n", "Changed channel attribute(s) for FACOR_GRS80 in EastVic.hdf5.\n", "Changed channel attribute(s) for FACOR_GEOID in EastVic.hdf5.\n", "Changed channel attribute(s) for TACOR in EastVic.hdf5.\n", "Changed channel attribute(s) for FA56s_GRS80 in EastVic.hdf5.\n", "Changed channel attribute(s) for FA56s_GEOID in EastVic.hdf5.\n", "Changed channel attribute(s) for FA100s_GRS80 in EastVic.hdf5.\n", "Changed channel attribute(s) for FA100s_GEOID in EastVic.hdf5.\n", "Changed channel attribute(s) for B56s_267_GRS80 in EastVic.hdf5.\n", "Changed channel attribute(s) for B56s_267_GEOID in EastVic.hdf5.\n", "Changed channel attribute(s) for B100s_267_GRS80 in EastVic.hdf5.\n", "Changed channel attribute(s) for B100s_267_GEOID in EastVic.hdf5.\n" ] } ], "source": [ "# The channel metadata are not in the `XYZ` data file and must be delivered separately.\n", "# Particularly important are the units, some of which are used by __galileoQC__.\n", "# The following command should be run on all data channels which is tedious (but\n", "# necessary). Note that, unlike `XYZ` files, ASEG-GDF2 files include metadata which\n", "# is automatically read into the metadata.\n", "\n", "# Set the units for each relevant channel. We could include descriptions for each\n", "# as well if we want, these are only used by `reportChannels`.\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FTIME', units='s')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'MGA_X', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'MGA_Y', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'MGA_Z', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'MSL_Z', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'LAT', units='degree')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'LONG', units='degree')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'DEM', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'RALT', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'LALT', units='m')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FX', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FY', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FZ', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'V_EAST', units='m/s')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'V_NORTH', units='m/s')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'EOTCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'LATCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'STATCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'ATMCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FACOR_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FACOR_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'TACOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FA56s_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FA56s_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FA100s_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'FA100s_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'B56s_267_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'B56s_267_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'B100s_267_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicHDF_file, 'B100s_267_GEOID', units='mGal')" ] }, { "cell_type": "code", "execution_count": 13, "id": "61fab30e-dbdb-42ef-ba01-96fca7a7a901", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Field Data\n", " ProjectName: EastVic\n", "\n", "Coordinates\n", " AltitudeChannel: MGA_Z\n", " GeoDatum: GDA2020\n", " HeightDatum: GRS80\n", " LatitudeChannel: LAT\n", " LongitudeChannel: LONG\n", " Projection: MGA\n", " TimeChannel: FTIME\n", " UTMZone: 55\n", " XChannel: MGA_X\n", " YChannel: MGA_Y\n", "8 lines: total distance flown [km] = 981.3\n", "\n", "8 lines:\n", "['2341.500', '2343.500', '2343.510', '2345.500', '2345.510',\n", "'2347.500', '2349.500', '2349.510']\n", "\n", "38 channels:\n", "['ATMCOR', 'B100s_267_GEOID', 'B100s_267_GRS80', 'B56s_267_GEOID',\n", "'B56s_267_GRS80', 'DEM', 'DOY', 'EOTCOR', 'FA100s_GEOID',\n", "'FA100s_GRS80', 'FA56s_GEOID', 'FA56s_GRS80', 'FACOR_GEOID',\n", "'FACOR_GRS80', 'FLIGHT', 'FTIME', 'FX', 'FY', 'FZ', 'HDOP', 'LALT',\n", "'LAT', 'LATCOR', 'LINE', 'LONG', 'MGA_X', 'MGA_Y', 'MGA_Z', 'MSL_Z',\n", "'NSATS', 'PDOP', 'RALT', 'STATCOR', 'TACOR', 'VDOP', 'V_EAST',\n", "'V_NORTH', 'YEAR']\n" ] } ], "source": [ "qc.reportWhizz(EastVicHDF_file)" ] }, { "cell_type": "code", "execution_count": 14, "id": "edfa7ff0-f0e4-4c58-9962-7e2819fd71de", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Field Data\n", " ProjectName: EastVic\n", "\n", "Coordinates\n", " AltitudeChannel: MGA_Z\n", " GeoDatum: GDA2020\n", " HeightDatum: GRS80\n", " LatitudeChannel: LAT\n", " LongitudeChannel: LONG\n", " Projection: MGA\n", " TimeChannel: FTIME\n", " UTMZone: 55\n", " XChannel: MGA_X\n", " YChannel: MGA_Y\n", "\n", "Line \n", "1 lines: total distance flown [km] = 192.3\n", " Date: 106.0\n", " Flight: 1012.0\n", " LineNumber: 2341.5\n", " LineType: SGL_GA\n", " LineVariety: Traverse\n", " PlannedLine: 2341.5\n", " ReflightNumber: 0\n", " Segment: 5\n", "['2341.500', '2343.500', '2343.510', '2345.500', '2345.510',\n", "'2347.500', '2349.500', '2349.510']\n", "\n", "38 channels:\n", "['ATMCOR', 'B100s_267_GEOID', 'B100s_267_GRS80', 'B56s_267_GEOID',\n", "'B56s_267_GRS80', 'DEM', 'DOY', 'EOTCOR', 'FA100s_GEOID',\n", "'FA100s_GRS80', 'FA56s_GEOID', 'FA56s_GRS80', 'FACOR_GEOID',\n", "'FACOR_GRS80', 'FLIGHT', 'FTIME', 'FX', 'FY', 'FZ', 'HDOP', 'LALT',\n", "'LAT', 'LATCOR', 'LINE', 'LONG', 'MGA_X', 'MGA_Y', 'MGA_Z', 'MSL_Z',\n", "'NSATS', 'PDOP', 'RALT', 'STATCOR', 'TACOR', 'VDOP', 'V_EAST',\n", "'V_NORTH', 'YEAR']\n", "\n", "Channel \n", " Name: ATMCOR\n", " Units: mGal\n" ] } ], "source": [ "# The report functions allow you to look in more detail at specific elements within\n", "# the data.\n", "qc.reportWhizz(EastVicHDF_file, line='2341.500', channel='ATMCOR')" ] }, { "cell_type": "code", "execution_count": 15, "id": "b61cf638-ed0b-4fff-826b-60b46550f913", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Field Data\n", " ProjectName: EastVic\n", "\n", "5 flights including 8 lines.\n", "\n", "Flights\n", " 1012\n", " L2341.500 \n", " 1014\n", " L2343.500 \n", " 1018\n", " L2343.510 L2345.500 L2345.510 L2347.500 \n", " 1021\n", " L2349.500 \n", " 1022\n", " L2349.510 \n", "\n" ] } ], "source": [ "# Setting the `detailed` flag to True provides additional information.\n", "qc.reportFlights(EastVicHDF_file, detailed=True)" ] }, { "cell_type": "code", "execution_count": 16, "id": "751f52b5-7c44-4ab5-b191-095574767484", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Field Data\n", " ProjectName: EastVic\n", "\n", "Sample time and distance statistics\n", " Min = 0.500 s, 26.2 m\n", " Max = 0.500 s, 32.4 m\n", " Mean = 0.500 s, 29.7 m\n", " Stdev = 0 s, 0.9 m\n" ] } ], "source": [ "# We can also report sampling information, ...\n", "qc.reportSampling(EastVicHDF_file)" ] }, { "cell_type": "code", "execution_count": 17, "id": "6aee967e-dbb7-4da2-acf1-84936770cbd1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", "\n", "38 channels:\n", "\n", "\n", "38 channels:\n", "['ATMCOR', 'B100s_267_GEOID', 'B100s_267_GRS80', 'B56s_267_GEOID',\n", "'B56s_267_GRS80', 'DEM', 'DOY', 'EOTCOR', 'FA100s_GEOID',\n", "'FA100s_GRS80', 'FA56s_GEOID', 'FA56s_GRS80', 'FACOR_GEOID',\n", "'FACOR_GRS80', 'FLIGHT', 'FTIME', 'FX', 'FY', 'FZ', 'HDOP', 'LALT',\n", "'LAT', 'LATCOR', 'LINE', 'LONG', 'MGA_X', 'MGA_Y', 'MGA_Z', 'MSL_Z',\n", "'NSATS', 'PDOP', 'RALT', 'STATCOR', 'TACOR', 'VDOP', 'V_EAST',\n", "'V_NORTH', 'YEAR']\n" ] } ], "source": [ "# ... and the channel information.\n", "qc.reportChannels(EastVicHDF_file)" ] }, { "cell_type": "markdown", "id": "705d4dff-42a6-4d82-991b-32ed3e868f55", "metadata": {}, "source": [ "___" ] }, { "cell_type": "markdown", "id": "4c019564-ef35-449e-b402-e82c49579921", "metadata": {}, "source": [ "**The Measured Test-Line Data**" ] }, { "cell_type": "markdown", "id": "4ccec207-8c3e-43cf-9dcc-f6ca8a4e9b9b", "metadata": {}, "source": [ "The test line data have all the same properties as the survey data, so we repeat all the same steps, but for different input and output files.\n", "And we change the block name." ] }, { "cell_type": "markdown", "id": "826dbfd1-7beb-4f1e-b70f-1298715a5a80", "metadata": {}, "source": [ "
\n", "WARNING - \n", "The supplier used underscores in the channel names for the survey data (coordinates and Bouguer gravity), but dashes for the repeat and test line data (e.g. `MGA_X` vs `MGA-X`). So we must get that right for `updateCoordFrame` and `updateChannelAttributes`.\n", "
" ] }, { "cell_type": "code", "execution_count": 18, "id": "bea24378-e091-4ada-a771-ee9d273d40e5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accessing XYZ data in EastVicData/EastVicTest.xyz.\n", "First few records are:\n", "/\n", "/\n", "/ LINE FLIGHT YEAR DOY FTIME MGA-X MGA-Y\n", "MGA-Z MSL-Z LAT LONG PDOP VDOP HDOP\n", "NSATS DEM RALT LALT FX FY\n", "FZ V_EAST V_NORTH EOTCOR LATCOR STATCOR\n", "ATMCOR FACOR_GRS80 FACOR_GEOID TACOR FA56s_GRS80\n", "FA56s_GEOID FA100s_GRS80 FA100s_GEOID B56s-267_GRS80 B56s-267_GEOID\n", "B100s-267_GRS80 B100s-267_GEOID\n", " Line 8001.04\n", "\n", " Found 3 header records\n", " Found 4 lines\n", " Found 38 fields\n", "\n", "Channel precisions (number of decimal places):\n", "[2 0 0 0 2 2 2 2 2 7 7 2 2 2 0 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n", "3 3 3]\n", "Creating: EastVicData/EastVicTest.hdf5\n" ] } ], "source": [ "EastVicTestHDF_file = qc.xyzToHDF(EastVicTestXYZ_file, projectName='EastVic')" ] }, { "cell_type": "code", "execution_count": 19, "id": "c73f0396-09a9-4ca3-af1c-0d60c966c417", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting BlockID = EastVic Test Line Data for EastVicTest.hdf5.\n", "Setting Acquirer = Sander Geophysics for EastVicTest.hdf5.\n", "Changed CoordFrame attribute(s) for EastVicTest.hdf5.\n" ] } ], "source": [ "block_name = 'EastVic Test Line Data'\n", "qc.updateProject(EastVicTestHDF_file, acquirer='Sander Geophysics', blockID=block_name)\n", "qc.updateCoordFrame(EastVicTestHDF_file, \n", " lat='LAT', \n", " lon='LONG', \n", " x='MGA-X', \n", " y='MGA-Y', \n", " time='FTIME', \n", " alt='MGA-Z',\n", " geoDatum='GDA2020', \n", " htDatum='GRS80', \n", " projection='MGA', \n", " utmz='55')" ] }, { "cell_type": "code", "execution_count": 20, "id": "5ecd4d16-3895-4808-a7a4-6f369b8ad50d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting Line attributes for EastVicData/EastVicTest.hdf5 to include flight numbers from FLIGHT.\n", "Setting Line attributes for EastVicData/EastVicTest.hdf5 to include date values from DOY.\n", "\n", "Setting Line attributes for EastVicTest.hdf5 according to the SGL_GA scheme.\n", "Verifying planned line numbers against provided plan file(s).\n" ] } ], "source": [ "qc.updateLineAttributes(EastVicTestHDF_file, planfiles=EastVicHDF_plan, line_type='SGL_GA', flight_chan='FLIGHT', date_chan=\"DOY\")" ] }, { "cell_type": "code", "execution_count": 21, "id": "4d3519b3-b946-4ba5-8826-cd7e78a7ed8b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Changed channel attribute(s) for FTIME in EastVicTest.hdf5.\n", "Changed channel attribute(s) for MGA-X in EastVicTest.hdf5.\n", "Changed channel attribute(s) for MGA-Y in EastVicTest.hdf5.\n", "Changed channel attribute(s) for MGA-Z in EastVicTest.hdf5.\n", "Changed channel attribute(s) for MSL-Z in EastVicTest.hdf5.\n", "Changed channel attribute(s) for LAT in EastVicTest.hdf5.\n", "Changed channel attribute(s) for LONG in EastVicTest.hdf5.\n", "Changed channel attribute(s) for DEM in EastVicTest.hdf5.\n", "Changed channel attribute(s) for RALT in EastVicTest.hdf5.\n", "Changed channel attribute(s) for LALT in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FX in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FY in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FZ in EastVicTest.hdf5.\n", "Changed channel attribute(s) for V_EAST in EastVicTest.hdf5.\n", "Changed channel attribute(s) for V_NORTH in EastVicTest.hdf5.\n", "Changed channel attribute(s) for EOTCOR in EastVicTest.hdf5.\n", "Changed channel attribute(s) for LATCOR in EastVicTest.hdf5.\n", "Changed channel attribute(s) for STATCOR in EastVicTest.hdf5.\n", "Changed channel attribute(s) for ATMCOR in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FACOR_GRS80 in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FACOR_GEOID in EastVicTest.hdf5.\n", "Changed channel attribute(s) for TACOR in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FA56s_GRS80 in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FA56s_GEOID in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FA100s_GRS80 in EastVicTest.hdf5.\n", "Changed channel attribute(s) for FA100s_GEOID in EastVicTest.hdf5.\n", "Changed channel attribute(s) for B56s-267_GRS80 in EastVicTest.hdf5.\n", "Changed channel attribute(s) for B56s-267_GEOID in EastVicTest.hdf5.\n", "Changed channel attribute(s) for B100s-267_GRS80 in EastVicTest.hdf5.\n", "Changed channel attribute(s) for B100s-267_GEOID in EastVicTest.hdf5.\n" ] } ], "source": [ "qc.updateChannelAttributes(EastVicTestHDF_file, 'FTIME', units='s')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'MGA-X', units='m')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'MGA-Y', units='m')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'MGA-Z', units='m')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'MSL-Z', units='m')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'LAT', units='degree')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'LONG', units='degree')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'DEM', units='m')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'RALT', units='m')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'LALT', units='m')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FX', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FY', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FZ', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'V_EAST', units='m/s')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'V_NORTH', units='m/s')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'EOTCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'LATCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'STATCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'ATMCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FACOR_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FACOR_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'TACOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FA56s_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FA56s_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FA100s_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'FA100s_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'B56s-267_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'B56s-267_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'B100s-267_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicTestHDF_file, 'B100s-267_GEOID', units='mGal')" ] }, { "cell_type": "code", "execution_count": 22, "id": "f2b3a34a-fbe0-4396-833c-4b438dcf047e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Test Line Data\n", " ProjectName: EastVic\n", "\n", "Coordinates\n", " AltitudeChannel: MGA-Z\n", " GeoDatum: GDA2020\n", " HeightDatum: GRS80\n", " LatitudeChannel: LAT\n", " LongitudeChannel: LONG\n", " Projection: MGA\n", " TimeChannel: FTIME\n", " UTMZone: 55\n", " XChannel: MGA-X\n", " YChannel: MGA-Y\n", "4 lines: total distance flown [km] = 200.4\n", "\n", "4 lines:\n", "['8001.040', '8001.050', '8001.060', '8001.070']\n", "\n", "38 channels:\n", "['ATMCOR', 'B100s-267_GEOID', 'B100s-267_GRS80', 'B56s-267_GEOID',\n", "'B56s-267_GRS80', 'DEM', 'DOY', 'EOTCOR', 'FA100s_GEOID',\n", "'FA100s_GRS80', 'FA56s_GEOID', 'FA56s_GRS80', 'FACOR_GEOID',\n", "'FACOR_GRS80', 'FLIGHT', 'FTIME', 'FX', 'FY', 'FZ', 'HDOP', 'LALT',\n", "'LAT', 'LATCOR', 'LINE', 'LONG', 'MGA-X', 'MGA-Y', 'MGA-Z', 'MSL-Z',\n", "'NSATS', 'PDOP', 'RALT', 'STATCOR', 'TACOR', 'VDOP', 'V_EAST',\n", "'V_NORTH', 'YEAR']\n" ] } ], "source": [ "qc.reportWhizz(EastVicTestHDF_file)" ] }, { "cell_type": "code", "execution_count": 23, "id": "f9297c66-245f-427a-94ba-a0d4b5a3c573", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Test Line Data\n", " ProjectName: EastVic\n", "\n", "1 flights including 4 lines.\n", "\n", "Flights\n", " 2019 \n", "\n" ] } ], "source": [ "qc.reportFlights(EastVicTestHDF_file, detailed=False)" ] }, { "cell_type": "code", "execution_count": 24, "id": "68ef064c-a8e6-4bdf-ab31-8908200355bd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Test Line Data\n", " ProjectName: EastVic\n", "\n", "Sample time and distance statistics\n", " Min = 0.500 s, 27.3 m\n", " Max = 0.500 s, 33.2 m\n", " Mean = 0.500 s, 30.3 m\n", " Stdev = 0 s, 1 m\n" ] } ], "source": [ "qc.reportSampling(EastVicTestHDF_file)" ] }, { "cell_type": "markdown", "id": "c8ef368c-f925-4865-8614-1f2a5a3026bc", "metadata": {}, "source": [ "___" ] }, { "cell_type": "markdown", "id": "99f88e21-c8bb-4eb4-a4aa-50b449a0befe", "metadata": {}, "source": [ "**The Measured Repeat-Line Data**" ] }, { "cell_type": "markdown", "id": "921c5302-d4dd-46ce-b66a-ea11ab838a78", "metadata": {}, "source": [ "Similarly, the repeat-line data have all the same properties as the survey data, so we repeat all the same steps, but for different input and output files.\n", "Again, we change the block name." ] }, { "cell_type": "code", "execution_count": 25, "id": "06e6a278-6a25-413b-aea5-69dbcf233fbf", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Accessing XYZ data in EastVicData/EastVicRepeats.xyz.\n", "First few records are:\n", "/\n", "/\n", "/ LINE FLIGHT YEAR DOY FTIME MGA-X MGA-Y\n", "MGA-Z MSL-Z LAT LONG PDOP VDOP HDOP\n", "NSATS DEM RALT LALT FX FY\n", "FZ V_EAST V_NORTH EOTCOR LATCOR STATCOR\n", "ATMCOR FACOR_GRS80 FACOR_GEOID TACOR FA56s_GRS80\n", "FA56s_GEOID FA100s_GRS80 FA100s_GEOID B56s-267_GRS80 B56s-267_GEOID\n", "B100s-267_GRS80 B100s-267_GEOID\n", " Line 7001.16\n", "\n", " Found 3 header records\n", " Found 10 lines\n", " Found 38 fields\n", "\n", "Channel precisions (number of decimal places):\n", "[2 0 0 0 2 2 2 2 2 7 7 2 2 2 0 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\n", "3 3 3]\n", "Creating: EastVicData/EastVicRepeats.hdf5\n" ] } ], "source": [ "EastVicRepHDF_file = qc.xyzToHDF(EastVicRepXYZ_file, projectName='EastVic')" ] }, { "cell_type": "code", "execution_count": 26, "id": "7227d4aa-7db3-490c-b902-a2375712d784", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting BlockID = EastVic Repeat Line Data for EastVicRepeats.hdf5.\n", "Setting Acquirer = Sander Geophysics for EastVicRepeats.hdf5.\n", "Changed CoordFrame attribute(s) for EastVicRepeats.hdf5.\n", "Changed CoordFrame attribute(s) for EastVicRepeats.hdf5.\n" ] } ], "source": [ "block_name = 'EastVic Repeat Line Data'\n", "qc.updateProject(EastVicRepHDF_file, acquirer='Sander Geophysics', blockID=block_name)\n", "qc.updateCoordFrame(EastVicRepHDF_file, lat='LAT', lon='LONG', x='MGA-X', y='MGA-Y', time='FTIME', alt='MGA-Z')\n", "qc.updateCoordFrame(EastVicRepHDF_file, geoDatum='GDA2020', htDatum='GRS80', projection='MGA', utmz='55')" ] }, { "cell_type": "code", "execution_count": 27, "id": "d30e3e48-992c-480b-b122-b50829b48601", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Setting Line attributes for EastVicData/EastVicRepeats.hdf5 to include flight numbers from FLIGHT.\n", "Setting Line attributes for EastVicData/EastVicRepeats.hdf5 to include date values from DOY.\n", "\n", "Setting Line attributes for EastVicRepeats.hdf5 according to the SGL_GA scheme.\n", "Verifying planned line numbers against provided plan file(s).\n" ] } ], "source": [ "qc.updateLineAttributes(EastVicRepHDF_file, planfiles=EastVicHDF_plan, line_type='SGL_GA', flight_chan='FLIGHT', date_chan=\"DOY\")" ] }, { "cell_type": "code", "execution_count": 28, "id": "5db868d9-cc78-48fa-aa31-9e8aa3db07cc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Changed channel attribute(s) for FTIME in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for MGA-X in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for MGA-Y in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for MGA-Z in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for MSL-Z in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for LAT in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for LONG in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for DEM in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for RALT in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for LALT in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FX in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FY in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FZ in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for V_EAST in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for V_NORTH in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for EOTCOR in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for LATCOR in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for STATCOR in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for ATMCOR in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FACOR_GRS80 in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FACOR_GEOID in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for TACOR in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FA56s_GRS80 in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FA56s_GEOID in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FA100s_GRS80 in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for FA100s_GEOID in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for B56s-267_GRS80 in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for B56s-267_GEOID in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for B100s-267_GRS80 in EastVicRepeats.hdf5.\n", "Changed channel attribute(s) for B100s-267_GEOID in EastVicRepeats.hdf5.\n" ] } ], "source": [ "qc.updateChannelAttributes(EastVicRepHDF_file, 'FTIME', units='s')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'MGA-X', units='m')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'MGA-Y', units='m')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'MGA-Z', units='m')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'MSL-Z', units='m')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'LAT', units='degree')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'LONG', units='degree')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'DEM', units='m')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'RALT', units='m')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'LALT', units='m')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FX', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FY', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FZ', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'V_EAST', units='m/s')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'V_NORTH', units='m/s')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'EOTCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'LATCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'STATCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'ATMCOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FACOR_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FACOR_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'TACOR', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FA56s_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FA56s_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FA100s_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'FA100s_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'B56s-267_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'B56s-267_GEOID', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'B100s-267_GRS80', units='mGal')\n", "qc.updateChannelAttributes(EastVicRepHDF_file, 'B100s-267_GEOID', units='mGal')" ] }, { "cell_type": "code", "execution_count": 29, "id": "d7c4aac6-ed54-4b39-b48a-f69f1b26302a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Repeat Line Data\n", " ProjectName: EastVic\n", "\n", "Coordinates\n", " AltitudeChannel: MGA-Z\n", " GeoDatum: GDA2020\n", " HeightDatum: GRS80\n", " LatitudeChannel: LAT\n", " LongitudeChannel: LONG\n", " Projection: MGA\n", " TimeChannel: FTIME\n", " UTMZone: 55\n", " XChannel: MGA-X\n", " YChannel: MGA-Y\n", "10 lines: total distance flown [km] = 501.3\n", "\n", "10 lines:\n", "['7001.160', '7001.170', '7001.180', '7001.190', '7001.200',\n", "'7001.210', '7001.220', '7001.230', '7001.240', '7001.250']\n", "\n", "38 channels:\n", "['ATMCOR', 'B100s-267_GEOID', 'B100s-267_GRS80', 'B56s-267_GEOID',\n", "'B56s-267_GRS80', 'DEM', 'DOY', 'EOTCOR', 'FA100s_GEOID',\n", "'FA100s_GRS80', 'FA56s_GEOID', 'FA56s_GRS80', 'FACOR_GEOID',\n", "'FACOR_GRS80', 'FLIGHT', 'FTIME', 'FX', 'FY', 'FZ', 'HDOP', 'LALT',\n", "'LAT', 'LATCOR', 'LINE', 'LONG', 'MGA-X', 'MGA-Y', 'MGA-Z', 'MSL-Z',\n", "'NSATS', 'PDOP', 'RALT', 'STATCOR', 'TACOR', 'VDOP', 'V_EAST',\n", "'V_NORTH', 'YEAR']\n" ] } ], "source": [ "qc.reportWhizz(EastVicRepHDF_file)" ] }, { "cell_type": "code", "execution_count": 30, "id": "6be5f05f-e312-4269-b3c1-76598576bad7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Repeat Line Data\n", " ProjectName: EastVic\n", "\n", "7 flights including 10 lines.\n", "\n", "Flights\n", " 2004 2006 2009 2011 2013 2015 9501 \n", "\n" ] } ], "source": [ "qc.reportFlights(EastVicRepHDF_file)" ] }, { "cell_type": "code", "execution_count": 31, "id": "c4a1ca6b-fdea-44c6-82f3-e6755352f9f4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Whizz Version 1.0\n", " Acquirer: Sander Geophysics\n", " BlockID: EastVic Repeat Line Data\n", " ProjectName: EastVic\n", "\n", "Sample time and distance statistics\n", " Min = 0.500 s, 26.4 m\n", " Max = 0.500 s, 34.5 m\n", " Mean = 0.500 s, 30.7 m\n", " Stdev = 0 s, 1 m\n" ] } ], "source": [ "qc.reportSampling(EastVicRepHDF_file)" ] }, { "cell_type": "markdown", "id": "a8bb2343-7925-4982-b679-8e1b3a369849", "metadata": {}, "source": [ "___" ] }, { "cell_type": "markdown", "id": "7a141fb1-f869-4e3d-bafe-af89c2db4318", "metadata": {}, "source": [ "**Make a survey flight-line map**\n", "\n", "A map showing the flown lines (blue) against the planned lines (red). This provides a visual check that the lines are in about the right location and shows the amount of the survey flown so far. The map title, and the x and y axes are labelled using metadata stored in the `geoWhizz` file." ] }, { "cell_type": "code", "execution_count": 32, "id": "2e96c0a5-ed4a-4d7b-b9dc-daabf5656063", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAr0AAAJFCAYAAADQ5U+sAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACnqElEQVR4nOzdd1iV5R/H8fdhD8E9EEUERBqu0sw0xZHaMlPL0kzFvfdO03LvvQeWZZaZLc3MbZorR+YAVMS9tzLP8/vj/A5DUbGwA/h5XRdX8DzPOed7btA+3tzP9zYZhmEgIiIiIpKF2dm6ABERERGRx02hV0RERESyPIVeEREREcnyFHpFREREJMtT6BURERGRLE+hV0RERESyPIVeEREREcnyFHpFREREJMtT6BURERGRLE+hV+QJExoaislkYufOnfe9JjIyEpPJRGho6H9X2P9Z6zOZTKxfv/6e84ZhEBAQgMlkIjg4+D+v736sY3a/j8GDBz+W1/3yyy+ZOHFiimPff/89JpOJmTNn3vdxq1evxmQyMX78eIB0r/Hq1avkyZOHr776KsXxVatWUbNmTQoWLIizszMFCxYkODiYkSNHpttrZ0Tr169P8fNgb29P/vz5eeeddzh48GDidf/Vn70mTZpQt27dx/oaIhmNg60LEJGMx8vLi61bt+Lv72+zGjw8PJg3b949wXbDhg0cOXIEDw8P2xT2EJ06daJRo0b3HC9UqNBjeb0vv/yS/fv307Vr18Rjr7/+OgUKFGD+/Pm0bds21cctWLAAR0dHmjRpAsDWrVvTtcYhQ4ZQsGBBGjZsmHhs5syZtGvXjvr16zN16lRy5crFiRMn2LJlC0uXLqVv377p9voZ1fDhw6latSqxsbHs3LmTTz75hDVr1vDXX3/h7e39n9UxePBggoKCWLt2LdWqVfvPXlfElhR6ReQezs7OvPjiizatoWHDhnzxxRdMmzYNT0/PxOPz5s2jQoUKXL9+3YbV3Z+Pj4/Nx87BwYEPP/yQ0aNHs3//fp599tkU569evcp3331HnTp1yJs3L0C61nz58mVmzZrFhAkTMJlMicdHjBhB5cqVWbp0aYrrmzRpgtlsTrfXv337Nm5ubun2fOmpWLFiiWNduXJlcuTIQYsWLQgNDWXAgAH/WR3+/v7Url2bkSNHKvTKE0PLG0TkHqn9inXw4MGYTCb+/vtv3n//fbJnz07+/PkJCQnh2rVrKR5vGAbTp0+ndOnSuLq6kjNnTho0aMDRo0fTXMP7778PwOLFixOPXbt2jW+//ZaQkJBUHzNkyBDKly9Prly58PT05LnnnmPevHkYhpHiOl9fX9544w2+++47SpYsiYuLC35+fkyePDnN9f0bq1ev5q233qJQoUK4uLgQEBBAmzZtuHjxYorrLly4QOvWrSlcuDDOzs7kzZuXihUr8ttvvwEQHBzMzz//zPHjx1P86hygRYsWgGVG926LFy8mOjo6xTimtrzh1KlTia/v5OREwYIFadCgAefOnXvg+wsNDSU+Pj7FLC/ApUuX8PLySvUxdnZJ/zt60K/4767T+nP5559/0qBBA3LmzIm/vz8TJ07EZDIRERFxz3P06dMHJyenFOP922+/Ub16dTw9PXFzc6NixYqsWbMm8fymTZswmUwpfh6tPvvsM0wmEzt27LjvmNyPNQAfP378vtdERETQvHlzihUrhpubG97e3rz55pv89ddfKa6zLqFYvHgxAwYMoGDBgnh6elKjRg0OHz58z/M2adKE3377jSNHjjxy3SKZkUKviDyS+vXrExgYyLfffkvfvn358ssv6datW4pr2rRpQ9euXalRowbLly9n+vTp/P3337z00ksPDUxWnp6eNGjQgPnz5yceW7x4MXZ2dveEKavIyEjatGnD119/zbJly6hXrx6dOnXi008/vefaPXv20LVrV7p168Z3333HSy+9RJcuXRg7dmyK64KDg1PMVj6M2WwmPj7+no/kjhw5QoUKFZgxYwa//vorgwYNYtu2bVSqVIm4uLjE65o0acLy5csZNGgQv/76K3PnzqVGjRpcunQJgOnTp1OxYkUKFCjA1q1bEz8AAgMDqVSpEosWLUrxnGAJwt7e3tSqVeu+7+PUqVOUK1eO7777ju7du7Ny5UomTpxI9uzZuXLlygPH4Oeff6ZMmTLkyJEjxfEKFSrw7bffMnjwYPbu3UtCQsJDxzOt6tWrR0BAAN988w0zZ87kgw8+wMnJ6Z7gnJCQwKJFi3jzzTfJkycPAIsWLaJmzZp4enqycOFCvv76a3LlykWtWrUSg+/LL79MmTJlmDZt2j2vPXXqVMqVK0e5cuUeuW5rKLfOuKfm9OnT5M6dm5EjR/LLL78wbdo0HBwcKF++fKphtn///hw/fpy5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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "qc.linesMap([EastVicHDF_file], whizzPlanFile=EastVicHDF_plan)" ] }, { "cell_type": "markdown", "id": "10e3cb59-fe90-48b2-bc74-bb5e1ce7cf23", "metadata": {}, "source": [ "The test and repeat line numbers do not appear in the plan file, and so they are not shown in the line map above. But if we do not provide a plan file, then `linesMap` will plot them." ] }, { "cell_type": "code", "execution_count": 33, "id": "47715a70-96e0-4ade-834f-2a85063b7f60", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "No file of planned data provided.\n" ] }, { "data": { "image/png": "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4sSJqlKlit555x09+uijunjxop544gnnuKioKK1fvz5biMlNRkaG0tLSsk338vrfj+nXX39V69at9eCDD6pMmTKKj4/XK6+8orZt2+qHH36Q3W6XlPmC2L59u55//nnVqVNHp06d0vbt250b5tmzZ+uhhx7Sr7/+qo8++silXp06ddS2bVstWrRI06ZNcy5TygxKQUFB6tKlS67PIzExUS1atJDD4dDTTz+tRo0a6cSJE1q9erX++uuvPH+Gn376qZo0aaKyZcvmOD89PT3bOso6dzBLQX6W8fHx6tGjh9q1a6d58+apbNmySkxM1GeffaaLFy8qMDBQn332mbp27aqYmBg9+OCDkuT8QB8yZIimTZumefPm6d///rez9p49e7RlyxaNGTPGpafLxcbG6h//+IciIyM1Z84cBQQEaP/+/frxxx9zfUxeDh48KCnzZ3dpL7feequCg4M1Y8YMValSRatXr9a//vUv/fnnn5owYYLLMp5++mk1bdpUc+fO1enTpzVx4kRFRUVpx44dCg0NlSStXbtWXbt2VatWrTRnzhyVKVNG7733nvr166fz5887P6xOnjwpSZowYYKqVKmis2fP6qOPPlJUVJS+/PJLRUVF5buOr4ann35abdq00dy5c5WcnKynnnpKPXv21N69e50/r0WLFumBBx7QXXfdpYULF8put+uNN95Qly5dtHr1anXs2NFy/apVq6pZs2b69ttvlZaWJi8vryJZV3/88YcqVKigadOmqVKlSjp58qQWLlyoVq1aaceOHapbt65LH1FRUfrggw9kjMkWwnLaBnl4eDiDVWpqqk6ePKknnnhCQUFBunjxor744gvdfffdmj9/vh544AFJ0nfffad+/fqpX79+mjhxokqWLKlDhw7pq6++kiQ1bdpU8+fP1+DBg/Xss8+qR48ekqRq1apJyvylNi4uTosWLdKjjz7q7GX16tX6448/sm2XLzd+/Hg999xzuvvuu/X444+rTJky+vHHH7MFustt3rxZJ06c0G233ZbjfGNMjuvI09PTuS7j4+NVt25d9e/fX+XLl1dSUpJef/11tWjRQnv27FHFihUlSaNGjdLbb7+tKVOmqEmTJjp37px+/PFH53Z63LhxOnfunJYsWaLvvvvOWSswMFDe3t6Kjo7W4sWLdfz4cZf3zfz581WyZEndd999uT7PM2fOqG3btoqPj9dTTz2lVq1a6ezZs9qwYYOSkpIUHh6e53rKTUG3Oy+99JImTpyoZ599Vu3bt5fD4dC+ffuc5/w9+OCDOnnypF599VUtXbpUgYGBkqT69etb6is/DodDd955p2JiYvT4449rw4YNeu6551SmTBnnay0jI0N33XWXvv76a40ePVq33nqrDh06pAkTJigqKkrbtm2Tj4+P5R7uvPNOjR49Whs2bHC+jwrymZ/fuvrll1/UvXt3jRw5UqVKldK+ffv04osvasuWLc73Y5ZmzZqpdOnS+vTTT9WhQ4eCN1+Y3ZgFOcyddZjn0sMWWbt2Lz9XaPjw4aZkyZLO3alZ51/MmDHDZdzhw4eNj4+PGT16dIH7yzoc+OOPPxpjjGnRooUZNGiQMcbke5g7PT3dOBwOM3nyZFOhQgWX3b01atQwNpst23kNnTp1Mv7+/ubcuXPOaR06dDCenp559mzM/9ZZbv++/vrrHB+XkZFhHA6HOXTokJFkPv74Y+e80qVLO88nyk1uh7mN+d+6XLp0qXPajz/+aCSZZ555xmWsLjv0NmTIEGO3282ePXvyeebZ+fr6mmHDhmWbnvUayulfWFhYrsvL7We5ZMkSl/OJcpLfYcXIyEhTsWJFc/HiRee0xx9/3EhyOXcxa11mHX44c+aM8ff3N23bti30oYSs1/XixYuNw+Ew58+fN998842pW7euqV+/vvnrr7+cY7t06WKqVauW7XSPESNGmJIlS5qTJ0+6LLNp06Yu/cTHxxu73W4efPBB57Tw8HDTpEkT43A4XJZ5xx13mMDAwGyHBbOkpaUZh8NhOnbsaHr37u2cfrUOc9eoUcMMHDjQ+X3Wc+zevbvLuPfff99Icp5vd+7cOVO+fHnTs2dPl3Hp6emmcePGpmXLllfcX79+/Ywkc/To0RznF8W6SktLMxcvXjS1a9c2jz32WLb5b775ppFk9u7d65w2cODAXN9jHTt2zLOWw+EwMTExpkmTJs7pL7/8spFkTp06letjczvMbUzm9q1mzZqmUaNGLtOjo6ONr6+vy+s6a/uQ5bfffjOenp5mwIABudbOzYsvvmgkmSNHjmSbl9d2+u233851mWlpaebs2bOmVKlSZtasWc7pDRo0cJ5bnZvcDnMb87/X9SuvvOKcduLECePt7Z3tuV/+npg8ebKRZNasWZNn/fzossPcBd3u3HHHHSYiIiLPZV+Nw9xZ62zt2rXOaVmv/ffff99lbPfu3U3dunWd38fFxRlJ5sMPP3QZl/U6nj179hX1d+HCBSPJdOvWLcf5eX3mF3RdZS1j/fr1RpLZtWtXtjFt2rQxrVq1ynM5l7umtwa68847Xb5v1KiRUlJSdOzYMUnSihUrZLPZdP/99ystLc35r0qVKmrcuHGhdm9HRkYqLCxM8+bN0w8//KCtW7fmeohbyjzkefvtt6tMmTLy9PSU3W7X+PHjdeLECWd/WW655RY1btzYZdp9992n5ORkl6skv/zyyxx/g83No48+qq1bt2b7FxER4Rxz7NgxDRs2TNWrV5eXl5fsdrtq1KghSdq7d69zXMuWLbVgwQJNmTJFmzZtksPhKHAfktS3b1/5+fm57DWeN2+ebDabBg8enOdjV61apdtuu0316tUrVM1Tp07p/PnzCggIyHXMF198kW39LFu2zGVMQX6WERERKlGihB566CEtXLiwUKdRZImJidGff/6pTz75RFLmHp1FixapXbt2ql27dq6P+/bbb5WcnKzhw4dbvgK1X79+stvtzkOwycnJ+vTTT517dFNSUvTll1+qd+/e8vX1dXk/de/eXSkpKdq0aZPLMu+77z6XfmrUqKFbb73VebjjwIED2rdvnwYMGOB8vpcuMykpyeWQ8Zw5c9S0aVOVLFnS+Vr98ssvXV6n11pO2yBJzr1V3377rU6ePKmBAwe6PL+MjAx17dpVW7duzfHQUGGYHI5UXOm6SktL0wsvvKD69eurRIkS8vLyUokSJfTLL7/kuIys91hiYqLLdB8fnxy3QbNnz3YZ98EHH6hNmzYqXbq0s9/Y2FiXWlmHsPv27av3338/W638ZG1rdu/ere+//16SdOLECS1fvlzR0dHy9/fP9bFr1qxRenq6HnnkkULVlDL38tpsNufew8v17ds3x3XUvXt355izZ8/qqaeeUq1ateTl5SUvLy+VLl1a586dy7adXrVqlcaMGaN169bpwoULheo163Pu0kPd77zzjlJTU/P8vJMyt9N16tTR7bffXqiaeSnMdqdly5batWuXhg8frtWrVys5ObnI+rDCZrOpZ8+eLtMaNWrksid7xYoVKlu2rHr27Ony3CIiIlSlSpUrPgSf07ahoJ/5efntt9903333qUqVKs7PxMjIyFyXERAQUOj3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cuRIjldzX9p7ZGSkypYtq9WrV2vHjh1q3bp1gd9jn332mcaPH6+dO3fq+eefz/c907lzZ3l6eur1118vUGi9VNaFJ7/++qvzNIjCsNlsMsZk+3nMnTs3z5uwV65cWYMGDdKuXbs0c+ZMnT9/Xr6+vi7rKKeLO6pWraquXbsqLi5OaWlp8vDwyPPzLku3bt00fvx4ffXVV4W70CIPvr6+hd7uSFLZsmXVp08fJSYmauTIkYqPj1f9+vWvu+3DHXfcoffee0/p6elq1apVkS47a7saEhLizD+F+czPbV1ZyQ2//fabyxG/grAUJr/66qsc/5rHpeeMWNGmTRs99NBDGjx4sLZt26b27durVKlSSkpK0saNG9WwYUM9/PDDhVrmtGnT8h3To0cPvfLKK7rvvvv00EMP6cSJE3r55Zdz3RNatWpV3XnnnZo4caICAwO1aNEirVmzRi+++KJLkOjYsaPWr19f4PMmExISsp3HJmX+BhkWFqbw8HCFhYVpzJgxMsaofPnyWr58udasWeMy/vTp07rtttt03333KTw8XH5+ftq6das+++wzlz1KDRs21NKlS/X666+rWbNmzkNclxoyZIhGjRqln3/+WUOHDi3QlWqTJ0/WqlWr1L59ez399NNq2LChTp06pc8++0yjRo3K8yrBqKgorVq1Ktf533//vcqUKZNtev369eXv71/gn+WcOXP01VdfqUePHgoODlZKSorz/NCsc4j8/PxUo0YNffzxx+rYsaPKly+vihUruvx1h+bNm6tRo0aaOXOmjDH5Hn6TpNKlS2vGjBl68MEHdfvtt+sf//iHKleurAMHDmjXrl167bXX8l3G5ex2u1544QX17dtXs2bN0rPPPqtZs2apbdu2ateunR5++GGFhITozJkzOnDggJYvX57tKr5jx46pd+/e+sc//qHTp09rwoQJKlmypPOuC1LmBqhbt27q0qWLBg0apKCgIJ08eVJ79+7V9u3b9cEHH0jK3Og+99xzmjBhgiIjI/Xzzz9r8uTJqlmzpsv7oSDrOCc//PCDlixZkm16ixYtnOcTWVG6dGm9+uqrGjhwoE6ePKk+ffooICBAx48f165du3T8+PFsexBzkvVezsjI0OnTp7Vjxw7NmzdPhw4d0owZM5ynYkhFs67uuOMOLViwQOHh4WrUqJG+//57TZ8+PdfDmJs2bVJE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n9GjR+u1117TN998o0GDBmnHjh3y9va29Lzsdrvza5vN5vJ91rSMjAxLywaAokKYBHDD69q1qy5evChJ6tKlS7b5FSpUUKdOnfTaa6/pn//8Z67nTUrSDz/8oG3btmndunUqX768c/qpU6fUvn17/fjjj2rQoIH8/PxcHpeRkaHBgwcrKipKgwcPVnR0tBo0aKAJEyYU6NZCAHCjIkwCuOF5enpq7969zq9zMnv2bLVp00bNmzfXxIkT1ahRI3l4eGjr1q3at2+fmjVrJinzwpuWLVuqffv22ZbRunVrxcbG6t///ne2ebNmzdIPP/ygn376SZLk7++vuXPnqkePHrr77rvVsmXLonq6AHBd4ZxJAMWCv7+//P39c50fFhamHTt26Pbbb9fYsWPVuHFjNW/eXK+++qqeeOIJPffcc7p48aIWLVqk6OjoHJcRHR2tRYsWOfeCZtm/f7+eeeYZvfbaawoMDHRO79y5swYPHqxBgwa5nJMJAMWJzRhj3N0EANysoqKiFBERoZkzZxbZMm02mz766CP16tWryJYJALlhzyQAuNns2bNVunRp/fDDD1e0nGHDhql06dJF1BUAFAx7JgHAjRITE51/DjI4OFglSpSwvKxjx44574UZGBiY54VGAFBUCJMAAACwjMPcAAAAsIwwCQAAAMsIkwAAALCMMAkAAADLCJMAAACwjDAJAAAAywiTAAAAsIwwCQAAAMsIkwAAALDs/wHWQ5nrcNl/UAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "qc.linesMap([EastVicRepHDF_file, EastVicTestHDF_file])" ] }, { "cell_type": "code", "execution_count": null, "id": "3acea4b6-4733-43dc-b5f4-d10f35007780", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.5" } }, "nbformat": 4, "nbformat_minor": 5 }