Skip to content

Instantly share code, notes, and snippets.

@epifanio
Created October 17, 2017 16:18
Show Gist options
  • Save epifanio/eb40377c1e19d31fda71136942f18afb to your computer and use it in GitHub Desktop.
Save epifanio/eb40377c1e19d31fda71136942f18afb to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pyxtf\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from typing import List\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Read the test file"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/epi/Envs/epy/lib/python3.6/site-packages/pyxtf-0.1-py3.6.egg/pyxtf/xtf_io.py:83: UserWarning: Unsupported packet type 'XTFHeaderType.benthos_caati_sara' encountered\n"
]
}
],
"source": [
"# Read the test file\n",
"# Note that at this point, the header_7125 and header_7125_snippet is not implemented, which is why a warning is shown\n",
"# The bathymetry and sonar headers are implemented, however - which can be read while ignoring the unimplemented packets\n",
"test_file = r'/Volumes/Data/2017/153-0113.XTF'\n",
"(fh, p) = pyxtf.xtf_read(test_file)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Print XTFFileHeader"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"FileFormat: 123\n",
"SystemType: 1\n",
"RecordingProgramName: b'Isis'\n",
"RecordingProgramVersion: b'7.7.20'\n",
"SonarName: b'BenthosC3DContr'\n",
"SonarType: 34\n",
"NoteString: b'Benthos C3D (CAATI/SARA)'\n",
"ThisFileName: b'D:\\\\C3D\\\\2017\\\\153-0113.XTF'\n",
"NavUnits: 3\n",
"NumberOfSonarChannels: 2\n",
"NumberOfBathymetryChannels: 0\n",
"NumberOfSnippetChannels: 0\n",
"NumberOfForwardLookArrays: 0\n",
"NumberOfEchoStrengthChannels: 0\n",
"NumberOfInterferometryChannels: 2\n",
"Reserved1: 0\n",
"Reserved2: 0\n",
"ReferencePointHeight: 0.0\n",
"ProjectionType: [204, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n",
"SpheriodType: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n",
"NavigationLatency: 0\n",
"OriginY: 0.0\n",
"OriginX: 0.0\n",
"NavOffsetY: 0.0\n",
"NavOffsetX: 0.0\n",
"NavOffsetZ: 0.0\n",
"NavOffsetYaw: 0.0\n",
"MRUOffsetY: 0.0\n",
"MRUOffsetX: 0.0\n",
"MRUOffsetZ: 0.0\n",
"MRUOffsetYaw: 0.0\n",
"MRUOffsetPitch: 0.0\n",
"MRUOffsetRoll: 0.0\n",
"ChanInfo: [<pyxtf.xtf_ctypes.XTFChanInfo object at 0x111908488>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x111908510>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x111908598>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x111908620>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x1119086a8>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x111908730>]\n",
"bathy_info: []\n",
"sonar_info: [<pyxtf.xtf_ctypes.XTFChanInfo object at 0x1117982f0>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x111798378>]\n",
"subbottom_info: [<pyxtf.xtf_ctypes.XTFChanInfo object at 0x111798048>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x1117980d0>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x111798158>, <pyxtf.xtf_ctypes.XTFChanInfo object at 0x1117981e0>]\n",
"\n"
]
}
],
"source": [
"# This prints all the ctypes fields present\n",
"print(fh)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Print XTFChanInfo belonging to the first channel"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"XTF Channels: sonar=2, bathy=0, snippet=0, forward=0, echo=0, interferometry=2\n",
"Number of data channels: 4\n",
"\n",
"TypeOfChannel: 1\n",
"SubChannelNumber: 0\n",
"CorrectionFlags: 1\n",
"UniPolar: 0\n",
"BytesPerSample: 2\n",
"Reserved: 1024\n",
"ChannelName: b'PORT'\n",
"VoltScale: 5.0\n",
"Frequency: 200.0\n",
"HorizBeamAngle: 0.10000000149011612\n",
"TiltAngle: 30.0\n",
"BeamWidth: 50.0\n",
"OffsetX: 0.0\n",
"OffsetY: 0.0\n",
"OffsetZ: 0.0\n",
"OffsetYaw: 0.0\n",
"OffsetPitch: 0.0\n",
"OffsetRoll: 0.0\n",
"BeamsPerArray: 0\n",
"SampleFormat: 0\n",
"ReservedArea2: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '...', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n",
"\n"
]
}
],
"source": [
"# The ChanInfo field is an array of XTFChanInfo objects\n",
"# Note that the ChanInfo field always has a size of 6, even if the number of channels is less. \n",
"# Use the fh.NumXChannels fields to calculate the number (the function xtf_channel_count does this)\n",
"n_channels = fh.channel_count(verbose=True)\n",
"actual_chan_info = [fh.ChanInfo[i] for i in range(0, n_channels)]\n",
"print('Number of data channels: {}\\n'.format(n_channels))\n",
"\n",
"# Print the first channel\n",
"print(actual_chan_info[0])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Inspect the type of packets returned in the packets dictionary"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[<XTFHeaderType.custom_vendor_data: 199>, <XTFHeaderType.navigation: 42>, <XTFHeaderType.sonar: 0>]\n"
]
}
],
"source": [
"# Print the keys in the packets-dictionary\n",
"print([key for key in p])"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"MagicNumber: 64206\n",
"HeaderType: 0\n",
"SubChannelNumber: 0\n",
"NumChansToFollow: 2\n",
"Reserved1: [0, 0]\n",
"NumBytesThisRecord: 4608\n",
"Year: 2017\n",
"Month: 6\n",
"Day: 2\n",
"Hour: 1\n",
"Minute: 13\n",
"Second: 38\n",
"HSeconds: 31\n",
"JulianDay: 153\n",
"EventNumber: 0\n",
"PingNumber: 1\n",
"SoundVelocity: 750.0\n",
"OceanTide: 18.0\n",
"Reserved2: 0\n",
"ConductivityFreq: 0.0\n",
"TemperatureFreq: 0.0\n",
"PressureFreq: 0.0\n",
"PressureTemp: 0.0\n",
"Conductivity: 0.0\n",
"WaterTemperature: 0.0\n",
"Pressure: 0.0\n",
"ComputedSoundVelocity: 0.0\n",
"MagX: 0.0\n",
"MagY: 0.0\n",
"MagZ: 0.0\n",
"AuxVal1: 0.0\n",
"AuxVal2: 0.0\n",
"AuxVal3: 0.0\n",
"AuxVal4: 0.0\n",
"AuxVal5: 0.0\n",
"AuxVal6: 0.0\n",
"SpeedLog: 0.0\n",
"Turbidity: 0.0\n",
"ShipSpeed: 2.200000047683716\n",
"ShipGyro: 0.0\n",
"ShipYcoordinate: 0.0\n",
"ShipXcoordinate: 0.0\n",
"ShipAltitude: 0\n",
"ShipDepth: 0\n",
"FixTimeHour: 1\n",
"FixTimeMinute: 13\n",
"FixTimeSecond: 38\n",
"FixTimeHsecond: 0\n",
"SensorSpeed: 2.200000047683716\n",
"KP: 0.0\n",
"SensorYcoordinate: 41.078696666666666\n",
"SensorXcoordinate: -68.94556833333333\n",
"SonarStatus: 0\n",
"RangeToFish: 0\n",
"BearingToFish: 0\n",
"CableOut: 0\n",
"Layback: 0.0\n",
"CableTension: 0.0\n",
"SensorDepth: 0.0\n",
"SensorPrimaryAltitude: 2.7825000286102295\n",
"SensorAuxAltitude: 97.2300033569336\n",
"SensorPitch: 0.0\n",
"SensorRoll: 0.0\n",
"SensorHeading: 311.29998779296875\n",
"Heave: 0.0\n",
"Yaw: 0.0\n",
"AttitudeTimeTag: 325840676\n",
"DOT: 0.0\n",
"NavFixMilliseconds: 325840484\n",
"ComputerClockHour: 1\n",
"ComputerClockMinute: 13\n",
"ComputerClockSecond: 38\n",
"ComputerClockHsec: 31\n",
"FishPositionDeltaX: 0\n",
"FishPositionDeltaY: 0\n",
"FishPositionErrorCode: 0\n",
"OptionalOffset: 0\n",
"CableOutHundredths: 0\n",
"ReservedSpace2: [0, 0, 0, 0, 0, 0]\n",
"data: [array([ 263, 283, 226, 171, 197, 212, 477, 166, 241, 340, 340,\n",
" 713, 327, 379, 173, 302, 312, 199, 304, 272, 251, 235,\n",
" 376, 334, 256, 257, 310, 218, 227, 236, 344, 414, 368,\n",
" 322, 177, 392, 346, 353, 111, 270, 303, 129, 188, 202,\n",
" 256, 462, 596, 235, 188, 348, 198, 197, 283, 235, 388,\n",
" 264, 124, 237, 211, 280, 208, 283, 347, 131, 192, 238,\n",
" 241, 222, 174, 181, 235, 217, 152, 119, 107, 177, 202,\n",
" 163, 155, 287, 367, 161, 260, 232, 204, 131, 145, 201,\n",
" 263, 193, 202, 255, 188, 321, 219, 411, 426, 287, 265,\n",
" 235, 237, 228, 170, 266, 225, 347, 202, 301, 158, 200,\n",
" 298, 272, 358, 411, 312, 241, 199, 264, 163, 152, 168,\n",
" 243, 189, 178, 162, 223, 195, 159, 242, 124, 184, 117,\n",
" 102, 227, 162, 211, 274, 182, 161, 110, 156, 154, 161,\n",
" 220, 180, 160, 179, 216, 137, 99, 156, 213, 246, 205,\n",
" 166, 195, 145, 148, 139, 211, 205, 212, 192, 194, 223,\n",
" 140, 101, 123, 102, 140, 101, 96, 158, 82, 156, 141,\n",
" 72, 162, 198, 88, 138, 137, 130, 136, 131, 126, 76,\n",
" 155, 144, 135, 98, 115, 117, 127, 193, 190, 95, 129,\n",
" 96, 206, 237, 160, 73, 104, 204, 177, 169, 140, 129,\n",
" 179, 148, 187, 167, 205, 253, 128, 96, 123, 109, 121,\n",
" 159, 86, 129, 106, 86, 90, 131, 136, 98, 167, 73,\n",
" 100, 165, 72, 180, 134, 53, 99, 95, 145, 187, 114,\n",
" 101, 173, 178, 246, 266, 216, 276, 190, 121, 109, 250,\n",
" 371, 219, 142, 150, 195, 225, 168, 118, 89, 138, 88,\n",
" 179, 175, 172, 166, 141, 291, 96, 115, 366, 345, 205,\n",
" 427, 247, 217, 251, 278, 161, 168, 95, 127, 83, 211,\n",
" 155, 173, 164, 256, 243, 284, 239, 302, 280, 75, 82,\n",
" 58, 44, 94, 77, 165, 181, 117, 146, 176, 185, 230,\n",
" 165, 192, 89, 118, 161, 105, 95, 138, 55, 112, 186,\n",
" 89, 117, 79, 93, 117, 101, 181, 280, 124, 76, 94,\n",
" 111, 91, 123, 98, 61, 82, 115, 99, 124, 163, 181,\n",
" 86, 96, 163, 199, 137, 126, 92, 114, 132, 100, 92,\n",
" 185, 213, 153, 87, 85, 99, 115, 236, 133, 113, 217,\n",
" 127, 109, 78, 114, 142, 160, 94, 164, 110, 53, 66,\n",
" 77, 78, 173, 207, 73, 131, 87, 74, 126, 139, 108,\n",
" 146, 110, 189, 146, 200, 206, 208, 156, 50, 170, 174,\n",
" 95, 117, 119, 58, 135, 143, 154, 133, 138, 264, 415,\n",
" 375, 95, 409, 299, 408, 288, 117, 202, 129, 196, 153,\n",
" 144, 144, 115, 103, 117, 81, 70, 42, 104, 174, 62,\n",
" 93, 148, 97, 93, 55, 101, 114, 92, 75, 104, 107,\n",
" 168, 178, 94, 125, 155, 151, 180, 114, 134, 131, 123,\n",
" 85, 179, 238, 148, 118, 197, 180, 142, 131, 140, 106,\n",
" 162, 141, 79, 96, 92, 119, 140, 193, 200, 191, 136,\n",
" 78, 82, 163, 95, 76, 149, 158, 105, 70, 90, 114,\n",
" 107, 63, 137, 146, 118, 63, 122, 153, 111, 61, 105,\n",
" 120, 132, 178, 131, 119, 148, 148, 116, 80, 81, 78,\n",
" 111, 80, 95, 76, 108, 82, 81, 123, 88, 93, 162,\n",
" 117, 64, 78, 105, 84, 75, 280, 267, 221, 167, 122,\n",
" 200, 107, 163, 145, 154, 144, 152, 157, 134, 111, 84,\n",
" 67, 141, 103, 171, 142, 118, 176, 164, 128, 183, 111,\n",
" 159, 174, 70, 111, 121, 139, 101, 150, 123, 103, 74,\n",
" 92, 70, 67, 190, 191, 142, 91, 110, 86, 69, 53,\n",
" 78, 114, 151, 96, 66, 97, 102, 70, 113, 124, 102,\n",
" 79, 88, 117, 98, 42, 127, 177, 126, 73, 84, 134,\n",
" 100, 31, 92, 87, 124, 157, 115, 45, 47, 67, 70,\n",
" 109, 97, 75, 79, 60, 80, 82, 80, 105, 64, 96,\n",
" 93, 49, 61, 65, 141, 179, 328, 205, 840, 490, 622,\n",
" 363, 410, 285, 236, 95, 111, 140, 134, 139, 99, 58,\n",
" 108, 110, 105, 128, 98, 77, 90, 169, 167, 196, 132,\n",
" 345, 439, 174, 90, 169, 122, 106, 60, 177, 128, 175,\n",
" 89, 93, 164, 145, 128, 99, 282, 132, 92, 89, 91,\n",
" 119, 118, 161, 169, 101, 112, 105, 58, 69, 59, 63,\n",
" 69, 80, 85, 87, 157, 155, 64, 127, 190, 182, 295,\n",
" 471, 239, 210, 325, 182, 140, 128, 94, 208, 238, 365,\n",
" 349, 131, 238, 145, 310, 124, 147, 150, 134, 115, 111,\n",
" 231, 229, 108, 163, 138, 98, 93, 61, 99, 63, 130,\n",
" 87, 62, 78, 86, 87, 64, 77, 121, 139, 129, 81,\n",
" 101, 80, 96, 53, 41, 43, 34, 76, 72, 57, 60,\n",
" 51, 82, 89, 86, 119, 81, 142, 138, 78, 63, 127,\n",
" 85, 50, 107, 107, 81, 62, 65, 82, 133, 116, 67,\n",
" 109, 68, 49, 79, 79, 43, 50, 61, 90, 95, 209,\n",
" 147, 85, 117, 92, 101, 75, 87, 132, 88, 134, 100,\n",
" 133, 63, 172, 166, 189, 80, 90, 88, 71, 65, 104,\n",
" 64, 50, 121, 124, 41, 65, 59, 39, 138, 218, 92,\n",
" 40, 41, 88, 100, 92, 48, 60, 42, 85, 135, 104,\n",
" 115, 140, 156, 190, 104, 87, 118, 83, 65, 105, 96,\n",
" 95, 77, 76, 187, 132, 224, 234, 195, 257, 342, 86,\n",
" 117, 116, 198, 290, 441, 287, 155, 148, 396, 557, 702,\n",
" 230, 362, 236, 725, 329, 223, 87, 507, 895, 335, 463,\n",
" 284, 384, 392, 422, 360, 756, 425, 468, 447, 1039, 1271,\n",
" 502, 424, 1038, 1361, 402, 801, 1535, 789, 497, 628, 328,\n",
" 494, 350, 344, 257, 231, 144, 62, 127, 54, 56, 71,\n",
" 48, 78, 74, 75, 37, 40, 54, 40, 34, 47, 46,\n",
" 32, 97, 88, 29, 40, 51, 41, 120, 68, 47, 42,\n",
" 75, 81, 167, 385, 272, 376, 442, 468, 582, 420, 921,\n",
" 455, 597, 383, 405, 681, 521, 726, 1388, 1210, 602, 1194,\n",
" 1386, 1333, 2085, 4304, 5488, 3784], dtype=uint16), array([3523, 5024, 4675, 2673, 2567, 1328, 1813, 1449, 1785, 1081, 1446,\n",
" 1401, 785, 549, 783, 478, 449, 419, 684, 533, 549, 454,\n",
" 275, 237, 218, 178, 183, 78, 58, 53, 56, 77, 95,\n",
" 122, 163, 183, 109, 124, 173, 58, 84, 516, 572, 609,\n",
" 568, 417, 684, 463, 739, 352, 733, 1365, 1046, 796, 796,\n",
" 665, 699, 977, 547, 887, 1038, 1582, 785, 1052, 1102, 1319,\n",
" 549, 1402, 1634, 736, 1667, 993, 427, 545, 1334, 2437, 743,\n",
" 2048, 1085, 606, 1245, 771, 1800, 1260, 1208, 1102, 420, 1163,\n",
" 670, 617, 780, 485, 272, 917, 592, 429, 749, 585, 318,\n",
" 259, 249, 766, 333, 375, 527, 481, 390, 729, 717, 453,\n",
" 528, 291, 286, 371, 1029, 920, 1279, 189, 1129, 883, 906,\n",
" 1941, 1157, 759, 1487, 1800, 820, 2015, 944, 907, 2335, 2125,\n",
" 703, 1145, 1496, 427, 794, 1613, 2303, 1332, 1063, 986, 1404,\n",
" 1830, 2160, 2266, 1365, 1027, 1155, 1964, 1199, 1571, 2408, 2907,\n",
" 2592, 1729, 1709, 1166, 1435, 881, 1163, 1223, 1198, 1062, 1008,\n",
" 1410, 2431, 3603, 2815, 2579, 1163, 1611, 1312, 1709, 936, 1023,\n",
" 1711, 1486, 1304, 435, 669, 840, 851, 1146, 401, 673, 575,\n",
" 607, 593, 409, 265, 571, 393, 466, 246, 389, 345, 927,\n",
" 474, 273, 164, 232, 159, 223, 319, 127, 103, 89, 70,\n",
" 51, 93, 91, 82, 58, 148, 86, 61, 77, 106, 88,\n",
" 87, 85, 75, 74, 85, 82, 71, 88, 90, 77, 76,\n",
" 89, 100, 76, 62, 109, 125, 121, 76, 74, 100, 72,\n",
" 63, 89, 89, 81, 77, 78, 125, 101, 105, 59, 137,\n",
" 34, 71, 61, 71, 36, 47, 103, 78, 164, 145, 88,\n",
" 36, 83, 71, 78, 103, 92, 116, 58, 79, 97, 165,\n",
" 149, 99, 95, 75, 76, 62, 79, 58, 84, 97, 74,\n",
" 41, 60, 85, 102, 88, 127, 63, 57, 62, 89, 84,\n",
" 79, 125, 92, 128, 198, 164, 51, 90, 117, 41, 62,\n",
" 41, 57, 67, 158, 74, 157, 138, 135, 112, 76, 87,\n",
" 183, 186, 185, 64, 144, 124, 64, 52, 81, 116, 116,\n",
" 149, 157, 193, 92, 32, 66, 77, 114, 77, 97, 137,\n",
" 103, 112, 157, 169, 133, 135, 117, 72, 78, 96, 116,\n",
" 86, 131, 87, 103, 95, 188, 146, 65, 77, 96, 146,\n",
" 174, 157, 61, 208, 101, 199, 128, 94, 127, 219, 127,\n",
" 108, 65, 125, 113, 112, 57, 65, 78, 185, 208, 192,\n",
" 192, 72, 185, 166, 70, 160, 125, 155, 131, 191, 194,\n",
" 98, 140, 93, 158, 111, 214, 219, 191, 212, 119, 162,\n",
" 157, 155, 80, 237, 66, 189, 179, 131, 160, 186, 92,\n",
" 72, 109, 118, 180, 87, 126, 77, 132, 241, 118, 153,\n",
" 104, 209, 115, 206, 93, 155, 159, 299, 359, 229, 125,\n",
" 139, 161, 167, 162, 106, 115, 160, 166, 92, 153, 186,\n",
" 128, 331, 287, 197, 211, 200, 176, 153, 181, 105, 157,\n",
" 186, 109, 198, 75, 179, 78, 135, 172, 76, 235, 149,\n",
" 135, 185, 118, 204, 134, 115, 102, 119, 128, 218, 321,\n",
" 134, 156, 189, 218, 238, 207, 241, 131, 165, 150, 156,\n",
" 264, 192, 88, 156, 183, 174, 151, 150, 283, 163, 80,\n",
" 169, 98, 96, 109, 266, 218, 125, 107, 120, 125, 146,\n",
" 152, 95, 125, 167, 221, 224, 117, 95, 152, 163, 190,\n",
" 130, 254, 163, 217, 240, 186, 144, 191, 175, 139, 216,\n",
" 178, 191, 183, 275, 254, 189, 77, 153, 139, 224, 250,\n",
" 123, 207, 154, 76, 102, 72, 84, 126, 155, 143, 175,\n",
" 153, 223, 97, 204, 101, 236, 174, 196, 69, 146, 166,\n",
" 48, 41, 211, 140, 183, 243, 143, 52, 128, 67, 116,\n",
" 157, 241, 128, 79, 211, 275, 42, 133, 109, 143, 178,\n",
" 90, 270, 91, 89, 224, 92, 171, 222, 139, 78, 111,\n",
" 112, 127, 239, 156, 418, 161, 196, 213, 80, 155, 66,\n",
" 194, 160, 186, 117, 81, 142, 157, 99, 60, 98, 108,\n",
" 91, 146, 123, 192, 207, 104, 174, 201, 82, 100, 191,\n",
" 111, 242, 262, 256, 101, 161, 75, 76, 218, 177, 77,\n",
" 64, 65, 69, 150, 111, 158, 206, 116, 152, 294, 216,\n",
" 196, 256, 191, 121, 157, 289, 175, 81, 42, 121, 260,\n",
" 214, 218, 309, 213, 210, 148, 208, 87, 262, 133, 81,\n",
" 132, 109, 168, 133, 314, 300, 378, 403, 177, 170, 232,\n",
" 248, 142, 206, 263, 147, 171, 162, 84, 79, 212, 225,\n",
" 194, 129, 89, 109, 192, 197, 147, 253, 136, 88, 214,\n",
" 126, 181, 236, 99, 227, 318, 277, 223, 327, 290, 284,\n",
" 91, 121, 103, 143, 141, 159, 180, 322, 408, 88, 170,\n",
" 128, 226, 278, 105, 338, 97, 155, 79, 102, 238, 179,\n",
" 211, 68, 380, 187, 187, 122, 131, 175, 120, 303, 240,\n",
" 154, 217, 141, 193, 363, 136, 79, 199, 100, 331, 366,\n",
" 108, 371, 208, 280, 187, 236, 124, 129, 183, 201, 258,\n",
" 107, 205, 349, 597, 304, 275, 511, 782, 397, 276, 503,\n",
" 551, 511, 690, 482, 607, 610, 506, 366, 467, 297, 262,\n",
" 153, 134, 264, 246, 172, 264, 432, 333, 133, 166, 146,\n",
" 217, 309, 213, 225, 148, 236, 165, 249, 312, 335, 287,\n",
" 252, 357, 404, 175, 189, 165, 356, 350, 269, 217, 175,\n",
" 194, 204, 168, 179, 237, 300, 449, 278, 237, 170, 260,\n",
" 289, 221, 436, 248, 149, 140, 234, 150, 259, 170, 263,\n",
" 220, 182, 222, 222, 236, 245, 217, 291, 187, 260, 128,\n",
" 224, 195, 169, 302, 210, 290, 208, 280, 262, 223, 307,\n",
" 241, 234, 267, 489, 344, 320, 199, 208, 260, 195, 184,\n",
" 244, 365, 246, 199, 195, 211, 413, 188, 429, 410, 263,\n",
" 168, 181, 271, 220, 194, 344, 285, 152, 365, 396, 389,\n",
" 216, 334, 335, 336, 290, 280, 264, 336, 322, 379, 560,\n",
" 395, 382, 311, 182, 250, 312, 202, 455, 149, 238, 180,\n",
" 390, 357, 336, 399, 484, 389, 257, 397, 489, 386, 145,\n",
" 222, 180, 169, 259, 403, 303], dtype=uint16)]\n",
"ping_chan_headers: [<pyxtf.xtf_ctypes.XTFPingChanHeader object at 0x111798598>, <pyxtf.xtf_ctypes.XTFPingChanHeader object at 0x111798620>]\n",
"\n"
]
}
],
"source": [
"# The returned packets is a Dict[XTFHeaderType, List[XTFClass]]\n",
"# The values in the dict are lists of pings, of the class in question\n",
"sonar_ch = p[pyxtf.XTFHeaderType.sonar] # type: List[pyxtf.XTFPingHeader]\n",
"\n",
"# Each element in the list is a ping (XTFPingHeader)\n",
"# This retrieves the first ping in the file of the sonar type\n",
"sonar_ch_ping1 = sonar_ch[0]\n",
"\n",
"# The properties in the header defines the attributes common for all subchannels \n",
"# (e.g sonar often has port/stbd subchannels)\n",
"print(sonar_ch_ping1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Inspect the subchannels in the first sonar package (in this case there are two)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(952,)\n",
"(952,)\n"
]
}
],
"source": [
"# The data and header for each subchannel is contained in the data and ping_chan_headers respectively.\n",
"# The data is a list of numpy arrays (one for each subchannel)\n",
"sonar_subchan0 = sonar_ch_ping1.data[0] # type: np.ndarray\n",
"sonar_subchan1 = sonar_ch_ping1.data[1] # type: np.ndarray\n",
"\n",
"print(sonar_subchan0.shape)\n",
"print(sonar_subchan1.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plot a signal-view of both subchannels of the first ping"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11198d1d0>]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x11190b588>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, (ax1, ax2) = plt.subplots(2,1, figsize=(12,8))\n",
"ax1.semilogy(np.arange(0, sonar_subchan0.shape[0]), sonar_subchan0)\n",
"ax2.semilogy(np.arange(0, sonar_subchan1.shape[0]), sonar_subchan1)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ChannelNumber: 0\n",
"DownsampleMethod: 2\n",
"SlandRange: 49.97999954223633\n",
"GroundRange: 0.0\n",
"TimeDelay: 0.0\n",
"TimeDuration: 0.06663999706506729\n",
"SecondsPerPing: 0.01500600203871727\n",
"ProcessingFlags: 0\n",
"Frequency: 0\n",
"InitialGainCode: 0\n",
"GainCode: 0\n",
"BandWidth: 0\n",
"ContactNumber: 0\n",
"ContactClassification: 0\n",
"ContactSubNumber: 0\n",
"ContactType: 0\n",
"NumSamples: 952\n",
"MillivoltScale: 0\n",
"ContactTimeOffTrack: 0.0\n",
"ContactCloseNumber: 0\n",
"Reserved2: 0\n",
"FixedVSOP: 0.0\n",
"Weight: 0\n",
"ReservedSpace: [0, 0, 0, 0]\n",
"\n"
]
}
],
"source": [
"# Each subchannel has a XTFPingChanHeader, \n",
"# which contains information that can change from ping to ping in each of the subchannels\n",
"sonar_ping1_ch_header0 = sonar_ch_ping1.ping_chan_headers[0]\n",
"print(sonar_ping1_ch_header0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Concatenate the sonar data to produce a dense array/image"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'concatenate_channel' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-10-52e292b492bf>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# The function concatenate_channels concatenates all the individual pings for a channel, and returns it as a dense numpy array\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mnp_chan1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconcatenate_channel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mXTFHeaderType\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msonar\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfile_header\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchannel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweighted\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mnp_chan2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconcatenate_channel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mXTFHeaderType\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msonar\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfile_header\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfh\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchannel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mweighted\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'concatenate_channel' is not defined"
]
}
],
"source": [
"# The function concatenate_channels concatenates all the individual pings for a channel, and returns it as a dense numpy array\n",
"np_chan1 = concatenate_channel(p[XTFHeaderType.sonar], file_header=fh, channel=0, weighted=True)\n",
"np_chan2 = concatenate_channel(p[XTFHeaderType.sonar], file_header=fh, channel=1, weighted=True)\n",
"\n",
"\n",
"# Clip to range (max cannot be used due to outliers)\n",
"# More robust methods are possible (through histograms / statistical outlier removal)\n",
"upper_limit = 2 ** 14\n",
"np_chan1.clip(0, upper_limit-1, out=np_chan1)\n",
"np_chan2.clip(0, upper_limit-1, out=np_chan2)\n",
"\n",
"# The sonar data is logarithmic (dB), add small value to avoid log10(0)\n",
"np_chan1 = np.log10(np_chan1 + 0.0001)\n",
"np_chan2 = np.log10(np_chan2 + 0.0001)\n",
"\n",
"# Transpose so that the largest axis is horizontal\n",
"np_chan1 = np_chan1 if np_chan1.shape[0] < np_chan1.shape[1] else np_chan1.T\n",
"np_chan2 = np_chan2 if np_chan2.shape[0] < np_chan2.shape[1] else np_chan2.T\n",
"\n",
"# The following plots the waterfall-view in separate subplots\n",
"fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 12))\n",
"ax1.imshow(np_chan1, cmap='gray', vmin=0, vmax=np.log10(upper_limit))\n",
"ax2.imshow(np_chan2, cmap='gray', vmin=0, vmax=np.log10(upper_limit))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment