def encode(self): """ Encode the data into RTB format. :return: """ result = [] self.num_elements = (8 * int( self.NumBeams)) + 1 # 8 is the number of list plus 1 for NumBeams # Generate header result += Ensemble.generate_header(self.ds_type, self.num_elements, self.element_multiplier, self.image, self.name_len, self.Name) # Add the data result += Ensemble.float_to_bytes(self.NumBeams) for beam in range(len(self.SNR)): result += Ensemble.float_to_bytes(self.SNR[beam]) for beam in range(len(self.Range)): result += Ensemble.float_to_bytes(self.Range[beam]) for beam in range(len(self.Pings)): result += Ensemble.float_to_bytes(self.Pings[beam]) for beam in range(len(self.Amplitude)): result += Ensemble.float_to_bytes(self.Amplitude[beam]) for beam in range(len(self.Correlation)): result += Ensemble.float_to_bytes(self.Correlation[beam]) for beam in range(len(self.BeamVelocity)): result += Ensemble.float_to_bytes(self.BeamVelocity[beam]) for beam in range(len(self.InstrumentVelocity)): result += Ensemble.float_to_bytes(self.InstrumentVelocity[beam]) for beam in range(len(self.EarthVelocity)): result += Ensemble.float_to_bytes(self.EarthVelocity[beam]) return result
def encode(self): """ Encode the data into RTB format. :return: """ result = [] # Generate header result += Ensemble.generate_header(self.ds_type, self.num_elements, self.element_multiplier, self.image, self.name_len, self.Name) # Add the data for beam in range(self.element_multiplier): for bin_num in range(self.num_elements): val = self.Correlation[bin_num][beam] result += Ensemble.float_to_bytes(val) return result
def test_ancillary(): ss = SystemSetup() ss.BtSamplesPerSecond = 1.0 ss.BtSystemFreqHz = 3.0 ss.BtCPCE = 1.2 ss.BtNCE = 2.3 ss.BtRepeatN = 23.5 ss.WpSamplesPerSecond = 13.6 ss.WpSystemFreqHz = 11.25 ss.WpCPCE = 25.3 ss.WpNCE = 54.6 ss.WpRepeatN = 35.0 ss.WpLagSamples = 23.78 ss.Voltage = 45.69 ss.XmtVoltage = 1400.23 ss.BtBroadband = 3.0 ss.BtLagLength = 4.0 ss.BtNarrowband = 5.0 ss.BtBeamMux = 6.0 ss.WpBroadband = 6.0 ss.WpLagLength = 6.0 ss.WpTransmitBandwidth = 6.0 ss.WpReceiveBandwidth = 6.0 ss.TransmitBoostNegVolt = 6.0 ss.WpBeamMux = 6.0 ss.Reserved = 6.0 ss.Reserved1 = 6.0 # Populate data result = ss.encode() # Value type assert 0xA == result[0] assert 0x0 == result[1] assert 0x0 == result[2] assert 0x0 == result[3] # Num Elements assert 0x19 == result[4] assert 0x0 == result[5] assert 0x0 == result[6] assert 0x0 == result[7] # Element Multiplier assert 0x1 == result[8] assert 0x0 == result[9] assert 0x0 == result[10] assert 0x0 == result[11] # Imag assert 0x0 == result[12] assert 0x0 == result[13] assert 0x0 == result[14] assert 0x0 == result[15] # Name Length assert 0x8 == result[16] assert 0x0 == result[17] assert 0x0 == result[18] assert 0x0 == result[19] # Name assert ord('E') == result[20] assert ord('0') == result[21] assert ord('0') == result[22] assert ord('0') == result[23] assert ord('0') == result[24] assert ord('1') == result[25] assert ord('4') == result[26] assert ord('\0') == result[27] # Length assert len(result) == 28 + (25 * Ensemble.BytesInFloat) # Data # Bottom Track Samples Per Second assert Ensemble.float_to_bytes(1.0)[0] == result[28] assert Ensemble.float_to_bytes(1.0)[1] == result[29] assert Ensemble.float_to_bytes(1.0)[2] == result[30] assert Ensemble.float_to_bytes(1.0)[3] == result[31] # Bottom Track System Frequency (Hz) assert Ensemble.float_to_bytes(3.0)[0] == result[32] assert Ensemble.float_to_bytes(3.0)[1] == result[33] assert Ensemble.float_to_bytes(3.0)[2] == result[34] assert Ensemble.float_to_bytes(3.0)[3] == result[35] # Bottom Track Cycles per Code Elements assert Ensemble.float_to_bytes(1.2)[0] == result[36] assert Ensemble.float_to_bytes(1.2)[1] == result[37] assert Ensemble.float_to_bytes(1.2)[2] == result[38] assert Ensemble.float_to_bytes(1.2)[3] == result[39] # Bottom Track Number of Code Elements assert Ensemble.float_to_bytes(2.3)[0] == result[40] assert Ensemble.float_to_bytes(2.3)[1] == result[41] assert Ensemble.float_to_bytes(2.3)[2] == result[42] assert Ensemble.float_to_bytes(2.3)[3] == result[43] # Bottom Track Number of Code Repeats assert Ensemble.float_to_bytes(23.5)[0] == result[44] assert Ensemble.float_to_bytes(23.5)[1] == result[45] assert Ensemble.float_to_bytes(23.5)[2] == result[46] assert Ensemble.float_to_bytes(23.5)[3] == result[47] # Water Profile Samples per Second assert Ensemble.float_to_bytes(13.6)[0] == result[48] assert Ensemble.float_to_bytes(13.6)[1] == result[49] assert Ensemble.float_to_bytes(13.6)[2] == result[50] assert Ensemble.float_to_bytes(13.6)[3] == result[51] # Water Profile System Frequency (Hz) assert Ensemble.float_to_bytes(11.25)[0] == result[52] assert Ensemble.float_to_bytes(11.25)[1] == result[53] assert Ensemble.float_to_bytes(11.25)[2] == result[54] assert Ensemble.float_to_bytes(11.25)[3] == result[55] # Water Profile Cycles per Code Element assert Ensemble.float_to_bytes(25.3)[0] == result[56] assert Ensemble.float_to_bytes(25.3)[1] == result[57] assert Ensemble.float_to_bytes(25.3)[2] == result[58] assert Ensemble.float_to_bytes(25.3)[3] == result[59] # Water Profile Number of Code Element assert Ensemble.float_to_bytes(54.6)[0] == result[60] assert Ensemble.float_to_bytes(54.6)[1] == result[61] assert Ensemble.float_to_bytes(54.6)[2] == result[62] assert Ensemble.float_to_bytes(54.6)[3] == result[63] # Water Profile Number of Code Repeats assert Ensemble.float_to_bytes(35.0)[0] == result[64] assert Ensemble.float_to_bytes(35.0)[1] == result[65] assert Ensemble.float_to_bytes(35.0)[2] == result[66] assert Ensemble.float_to_bytes(35.0)[3] == result[67] # Water Profile Lag Samples assert Ensemble.float_to_bytes(23.78)[0] == result[68] assert Ensemble.float_to_bytes(23.78)[1] == result[69] assert Ensemble.float_to_bytes(23.78)[2] == result[70] assert Ensemble.float_to_bytes(23.78)[3] == result[71] # Voltage input to ADCP assert Ensemble.float_to_bytes(45.69)[0] == result[72] assert Ensemble.float_to_bytes(45.69)[1] == result[73] assert Ensemble.float_to_bytes(45.69)[2] == result[74] assert Ensemble.float_to_bytes(45.69)[3] == result[75] # Transmit Voltage assert Ensemble.float_to_bytes(1400.23)[0] == result[76] assert Ensemble.float_to_bytes(1400.23)[1] == result[77] assert Ensemble.float_to_bytes(1400.23)[2] == result[78] assert Ensemble.float_to_bytes(1400.23)[3] == result[79] # Bottom Track Broadband assert Ensemble.float_to_bytes(3.0)[0] == result[80] assert Ensemble.float_to_bytes(3.0)[1] == result[81] assert Ensemble.float_to_bytes(3.0)[2] == result[82] assert Ensemble.float_to_bytes(3.0)[3] == result[83] # Bottom Track Lag Length assert Ensemble.float_to_bytes(4.0)[0] == result[84] assert Ensemble.float_to_bytes(4.0)[1] == result[85] assert Ensemble.float_to_bytes(4.0)[2] == result[86] assert Ensemble.float_to_bytes(4.0)[3] == result[87] # Bottom Track Narrowband assert Ensemble.float_to_bytes(5.0)[0] == result[88] assert Ensemble.float_to_bytes(5.0)[1] == result[89] assert Ensemble.float_to_bytes(5.0)[2] == result[90] assert Ensemble.float_to_bytes(5.0)[3] == result[91] # Bottom Track Beam MUX assert Ensemble.float_to_bytes(6.0)[0] == result[92] assert Ensemble.float_to_bytes(6.0)[1] == result[93] assert Ensemble.float_to_bytes(6.0)[2] == result[94] assert Ensemble.float_to_bytes(6.0)[3] == result[95] # Water Profile Broadband assert Ensemble.float_to_bytes(6.0)[0] == result[96] assert Ensemble.float_to_bytes(6.0)[1] == result[97] assert Ensemble.float_to_bytes(6.0)[2] == result[98] assert Ensemble.float_to_bytes(6.0)[3] == result[99] # Water Profile Lag Length assert Ensemble.float_to_bytes(6.0)[0] == result[100] assert Ensemble.float_to_bytes(6.0)[1] == result[101] assert Ensemble.float_to_bytes(6.0)[2] == result[102] assert Ensemble.float_to_bytes(6.0)[3] == result[103] # Water Profile Transmit Bandwidth assert Ensemble.float_to_bytes(6.0)[0] == result[104] assert Ensemble.float_to_bytes(6.0)[1] == result[105] assert Ensemble.float_to_bytes(6.0)[2] == result[106] assert Ensemble.float_to_bytes(6.0)[3] == result[107] # Water Profile Receive Bandwidth assert Ensemble.float_to_bytes(6.0)[0] == result[108] assert Ensemble.float_to_bytes(6.0)[1] == result[109] assert Ensemble.float_to_bytes(6.0)[2] == result[110] assert Ensemble.float_to_bytes(6.0)[3] == result[111] # Transmit Boost Negative Voltage assert Ensemble.float_to_bytes(6.0)[0] == result[112] assert Ensemble.float_to_bytes(6.0)[1] == result[113] assert Ensemble.float_to_bytes(6.0)[2] == result[114] assert Ensemble.float_to_bytes(6.0)[3] == result[115] # WP Beam Mux assert Ensemble.float_to_bytes(6.0)[0] == result[116] assert Ensemble.float_to_bytes(6.0)[1] == result[117] assert Ensemble.float_to_bytes(6.0)[2] == result[118] assert Ensemble.float_to_bytes(6.0)[3] == result[119] # Reserved assert Ensemble.float_to_bytes(6.0)[0] == result[120] assert Ensemble.float_to_bytes(6.0)[1] == result[121] assert Ensemble.float_to_bytes(6.0)[2] == result[122] assert Ensemble.float_to_bytes(6.0)[3] == result[123] # Reserved 1 assert Ensemble.float_to_bytes(6.0)[0] == result[124] assert Ensemble.float_to_bytes(6.0)[1] == result[125] assert Ensemble.float_to_bytes(6.0)[2] == result[126] assert Ensemble.float_to_bytes(6.0)[3] == result[127]
def test_ancillary(): anc = AncillaryData() anc.FirstBinRange = 1.0 # Blank. Depth to the first bin in meters. anc.BinSize = 3.0 # Size of a bin in meters. anc.FirstPingTime = 1.2 # First Ping Time in seconds. anc.LastPingTime = 2.3 # Last Ping Time in seconds. (If averaging pings, this will be the last ping) anc.Heading = 23.5 # Heading in degrees. anc.Pitch = 13.6 # Pitch in degrees. anc.Roll = 11.25 # Roll in degrees. anc.WaterTemp = 25.3 # Water Temperature in fahrenheit anc.SystemTemp = 54.6 # System Temperature in fahrenheit anc.Salinity = 35.0 # Water Salinity set by the user in PPT anc.Pressure = 23.78 # Pressure from pressure sensor in Pascals anc.TransducerDepth = 45.69 # Transducer Depth, used by Pressure sensor in meters anc.SpeedOfSound = 1400.23 # Speed of Sound in m/s. anc.RawMagFieldStrength = 3.0 # Raw magnetic field strength anc.RawMagFieldStrength2 = 4.0 # Raw magnetic field strength anc.RawMagFieldStrength3 = 5.0 # Raw magnetic field strength anc.PitchGravityVector = 4.0 # Pitch Gravity Vector anc.RollGravityVector = 5.0 # Roll Gravity Vector anc.VerticalGravityVector = 6.0 # Vertical Gravity Vector # Populate data result = anc.encode() # Value type assert 0xA == result[0] assert 0x0 == result[1] assert 0x0 == result[2] assert 0x0 == result[3] # Num Elements assert 0x13 == result[4] assert 0x0 == result[5] assert 0x0 == result[6] assert 0x0 == result[7] # Element Multiplier assert 0x1 == result[8] assert 0x0 == result[9] assert 0x0 == result[10] assert 0x0 == result[11] # Imag assert 0x0 == result[12] assert 0x0 == result[13] assert 0x0 == result[14] assert 0x0 == result[15] # Name Length assert 0x8 == result[16] assert 0x0 == result[17] assert 0x0 == result[18] assert 0x0 == result[19] # Name assert ord('E') == result[20] assert ord('0') == result[21] assert ord('0') == result[22] assert ord('0') == result[23] assert ord('0') == result[24] assert ord('0') == result[25] assert ord('9') == result[26] assert ord('\0') == result[27] # Length assert len(result) == 28 + ( (anc.element_multiplier * anc.num_elements) * Ensemble.BytesInFloat) # Data # First Bin Range assert Ensemble.float_to_bytes(1.0)[0] == result[28] assert Ensemble.float_to_bytes(1.0)[1] == result[29] assert Ensemble.float_to_bytes(1.0)[2] == result[30] assert Ensemble.float_to_bytes(1.0)[3] == result[31] # Bin SIze assert Ensemble.float_to_bytes(3.0)[0] == result[32] assert Ensemble.float_to_bytes(3.0)[1] == result[33] assert Ensemble.float_to_bytes(3.0)[2] == result[34] assert Ensemble.float_to_bytes(3.0)[3] == result[35] # First Ping TIme assert Ensemble.float_to_bytes(1.2)[0] == result[36] assert Ensemble.float_to_bytes(1.2)[1] == result[37] assert Ensemble.float_to_bytes(1.2)[2] == result[38] assert Ensemble.float_to_bytes(1.2)[3] == result[39] # Last Ping TIme assert Ensemble.float_to_bytes(2.3)[0] == result[40] assert Ensemble.float_to_bytes(2.3)[1] == result[41] assert Ensemble.float_to_bytes(2.3)[2] == result[42] assert Ensemble.float_to_bytes(2.3)[3] == result[43] # Heading assert Ensemble.float_to_bytes(23.5)[0] == result[44] assert Ensemble.float_to_bytes(23.5)[1] == result[45] assert Ensemble.float_to_bytes(23.5)[2] == result[46] assert Ensemble.float_to_bytes(23.5)[3] == result[47] # Pitch assert Ensemble.float_to_bytes(13.6)[0] == result[48] assert Ensemble.float_to_bytes(13.6)[1] == result[49] assert Ensemble.float_to_bytes(13.6)[2] == result[50] assert Ensemble.float_to_bytes(13.6)[3] == result[51] # Roll assert Ensemble.float_to_bytes(11.25)[0] == result[52] assert Ensemble.float_to_bytes(11.25)[1] == result[53] assert Ensemble.float_to_bytes(11.25)[2] == result[54] assert Ensemble.float_to_bytes(11.25)[3] == result[55] # Water Temp assert Ensemble.float_to_bytes(25.3)[0] == result[56] assert Ensemble.float_to_bytes(25.3)[1] == result[57] assert Ensemble.float_to_bytes(25.3)[2] == result[58] assert Ensemble.float_to_bytes(25.3)[3] == result[59] # System Temp assert Ensemble.float_to_bytes(54.6)[0] == result[60] assert Ensemble.float_to_bytes(54.6)[1] == result[61] assert Ensemble.float_to_bytes(54.6)[2] == result[62] assert Ensemble.float_to_bytes(54.6)[3] == result[63] # Salinity assert Ensemble.float_to_bytes(35.0)[0] == result[64] assert Ensemble.float_to_bytes(35.0)[1] == result[65] assert Ensemble.float_to_bytes(35.0)[2] == result[66] assert Ensemble.float_to_bytes(35.0)[3] == result[67] # Pressure assert Ensemble.float_to_bytes(23.78)[0] == result[68] assert Ensemble.float_to_bytes(23.78)[1] == result[69] assert Ensemble.float_to_bytes(23.78)[2] == result[70] assert Ensemble.float_to_bytes(23.78)[3] == result[71] # Transducer Depth assert Ensemble.float_to_bytes(45.69)[0] == result[72] assert Ensemble.float_to_bytes(45.69)[1] == result[73] assert Ensemble.float_to_bytes(45.69)[2] == result[74] assert Ensemble.float_to_bytes(45.69)[3] == result[75] # Speed of Sound assert Ensemble.float_to_bytes(1400.23)[0] == result[76] assert Ensemble.float_to_bytes(1400.23)[1] == result[77] assert Ensemble.float_to_bytes(1400.23)[2] == result[78] assert Ensemble.float_to_bytes(1400.23)[3] == result[79] # Raw Mag assert Ensemble.float_to_bytes(3.0)[0] == result[80] assert Ensemble.float_to_bytes(3.0)[1] == result[81] assert Ensemble.float_to_bytes(3.0)[2] == result[82] assert Ensemble.float_to_bytes(3.0)[3] == result[83] # Raw Mag 2 assert Ensemble.float_to_bytes(4.0)[0] == result[84] assert Ensemble.float_to_bytes(4.0)[1] == result[85] assert Ensemble.float_to_bytes(4.0)[2] == result[86] assert Ensemble.float_to_bytes(4.0)[3] == result[87] # Raw Mag 3 assert Ensemble.float_to_bytes(5.0)[0] == result[88] assert Ensemble.float_to_bytes(5.0)[1] == result[89] assert Ensemble.float_to_bytes(5.0)[2] == result[90] assert Ensemble.float_to_bytes(5.0)[3] == result[91] # Raw Pitch assert Ensemble.float_to_bytes(4.0)[0] == result[92] assert Ensemble.float_to_bytes(4.0)[1] == result[93] assert Ensemble.float_to_bytes(4.0)[2] == result[94] assert Ensemble.float_to_bytes(4.0)[3] == result[95] # Raw Roll assert Ensemble.float_to_bytes(5.0)[0] == result[96] assert Ensemble.float_to_bytes(5.0)[1] == result[97] assert Ensemble.float_to_bytes(5.0)[2] == result[98] assert Ensemble.float_to_bytes(5.0)[3] == result[99] # Raw Vert assert Ensemble.float_to_bytes(6.0)[0] == result[100] assert Ensemble.float_to_bytes(6.0)[1] == result[101] assert Ensemble.float_to_bytes(6.0)[2] == result[102] assert Ensemble.float_to_bytes(6.0)[3] == result[103]
def encode(self): """ Encode the data into RTB format. :return: """ result = [] # Generate header result += Ensemble.generate_header(self.ds_type, self.num_elements, self.element_multiplier, self.image, self.name_len, self.Name) # Add the data result += Ensemble.float_to_bytes(self.FirstBinRange) result += Ensemble.float_to_bytes(self.BinSize) result += Ensemble.float_to_bytes(self.FirstPingTime) result += Ensemble.float_to_bytes(self.LastPingTime) result += Ensemble.float_to_bytes(self.Heading) result += Ensemble.float_to_bytes(self.Pitch) result += Ensemble.float_to_bytes(self.Roll) result += Ensemble.float_to_bytes(self.WaterTemp) result += Ensemble.float_to_bytes(self.SystemTemp) result += Ensemble.float_to_bytes(self.Salinity) result += Ensemble.float_to_bytes(self.Pressure) result += Ensemble.float_to_bytes(self.TransducerDepth) result += Ensemble.float_to_bytes(self.SpeedOfSound) result += Ensemble.float_to_bytes(self.RawMagFieldStrength) result += Ensemble.float_to_bytes(self.RawMagFieldStrength2) result += Ensemble.float_to_bytes(self.RawMagFieldStrength3) result += Ensemble.float_to_bytes(self.PitchGravityVector) result += Ensemble.float_to_bytes(self.RollGravityVector) result += Ensemble.float_to_bytes(self.VerticalGravityVector) return result
def encode(self): """ Encode the data into RTB format. :return: """ result = [] # Generate header result += Ensemble.generate_header(self.ds_type, self.num_elements, self.element_multiplier, self.image, self.name_len, self.Name) # Add the data result += Ensemble.float_to_bytes(self.BtSamplesPerSecond) result += Ensemble.float_to_bytes(self.BtSystemFreqHz) result += Ensemble.float_to_bytes(self.BtCPCE) result += Ensemble.float_to_bytes(self.BtNCE) result += Ensemble.float_to_bytes(self.BtRepeatN) result += Ensemble.float_to_bytes(self.WpSamplesPerSecond) result += Ensemble.float_to_bytes(self.WpSystemFreqHz) result += Ensemble.float_to_bytes(self.WpCPCE) result += Ensemble.float_to_bytes(self.WpNCE) result += Ensemble.float_to_bytes(self.WpRepeatN) result += Ensemble.float_to_bytes(self.WpLagSamples) result += Ensemble.float_to_bytes(self.Voltage) result += Ensemble.float_to_bytes(self.XmtVoltage) result += Ensemble.float_to_bytes(self.BtBroadband) result += Ensemble.float_to_bytes(self.BtLagLength) result += Ensemble.float_to_bytes(self.BtNarrowband) result += Ensemble.float_to_bytes(self.BtBeamMux) result += Ensemble.float_to_bytes(self.WpBroadband) result += Ensemble.float_to_bytes(self.WpLagLength) result += Ensemble.float_to_bytes(self.WpTransmitBandwidth) result += Ensemble.float_to_bytes(self.WpReceiveBandwidth) result += Ensemble.float_to_bytes(self.TransmitBoostNegVolt) result += Ensemble.float_to_bytes(self.WpBeamMux) result += Ensemble.float_to_bytes(self.Reserved) result += Ensemble.float_to_bytes(self.Reserved1) return result
def encode(self): """ Encode the data into RTB format. :return: """ result = [] self.num_elements = (15 * int(self.NumBeams)) + 14 # Generate header result += Ensemble.generate_header(self.ds_type, self.num_elements, self.element_multiplier, self.image, self.name_len, self.Name) # Add the data result += Ensemble.float_to_bytes(self.FirstPingTime) result += Ensemble.float_to_bytes(self.LastPingTime) result += Ensemble.float_to_bytes(self.Heading) result += Ensemble.float_to_bytes(self.Pitch) result += Ensemble.float_to_bytes(self.Roll) result += Ensemble.float_to_bytes(self.WaterTemp) result += Ensemble.float_to_bytes(self.SystemTemp) result += Ensemble.float_to_bytes(self.Salinity) result += Ensemble.float_to_bytes(self.Pressure) result += Ensemble.float_to_bytes(self.TransducerDepth) result += Ensemble.float_to_bytes(self.SpeedOfSound) result += Ensemble.float_to_bytes(self.Status) result += Ensemble.float_to_bytes(self.NumBeams) result += Ensemble.float_to_bytes(self.ActualPingCount) for beam in range(len(self.Range)): result += Ensemble.float_to_bytes(self.Range[beam]) for beam in range(len(self.SNR)): result += Ensemble.float_to_bytes(self.SNR[beam]) for beam in range(len(self.Amplitude)): result += Ensemble.float_to_bytes(self.Amplitude[beam]) for beam in range(len(self.Correlation)): result += Ensemble.float_to_bytes(self.Correlation[beam]) for beam in range(len(self.BeamVelocity)): result += Ensemble.float_to_bytes(self.BeamVelocity[beam]) for beam in range(len(self.BeamGood)): result += Ensemble.float_to_bytes(self.BeamGood[beam]) for beam in range(len(self.InstrumentVelocity)): result += Ensemble.float_to_bytes(self.InstrumentVelocity[beam]) for beam in range(len(self.InstrumentGood)): result += Ensemble.float_to_bytes(self.InstrumentGood[beam]) for beam in range(len(self.EarthVelocity)): result += Ensemble.float_to_bytes(self.EarthVelocity[beam]) for beam in range(len(self.EarthGood)): result += Ensemble.float_to_bytes(self.EarthGood[beam]) for beam in range(len(self.SNR_PulseCoherent)): result += Ensemble.float_to_bytes(self.SNR_PulseCoherent[beam]) for beam in range(len(self.Amp_PulseCoherent)): result += Ensemble.float_to_bytes(self.Amp_PulseCoherent[beam]) for beam in range(len(self.Vel_PulseCoherent)): result += Ensemble.float_to_bytes(self.Vel_PulseCoherent[beam]) for beam in range(len(self.Noise_PulseCoherent)): result += Ensemble.float_to_bytes(self.Vel_PulseCoherent[beam]) for beam in range(len(self.Corr_PulseCoherent)): result += Ensemble.float_to_bytes(self.Vel_PulseCoherent[beam]) return result
def test_range_tracking_data(): rt = RangeTracking() rt.NumBeams = 4.0 rt.Range = [1.1, 2.2, 3.3, 4.4] rt.Pings = [1, 2, 3, 4] rt.SNR = [1.1, 2.2, 3.3, 4.4] rt.Amplitude = [1.1, 2.2, 3.3, 4.4] rt.Correlation = [1.1, 2.2, 3.3, 4.4] rt.BeamVelocity = [1.1, 2.2, 3.3, 4.4] rt.InstrumentVelocity = [1.1, 2.2, 3.3, 4.4] rt.EarthVelocity = [1.1, 2.2, 3.3, 4.4] # Populate data result = rt.encode() # Value type assert 0x0A == result[0] assert 0x0 == result[1] assert 0x0 == result[2] assert 0x0 == result[3] # Num Elements assert 0x21 == result[4] assert 0x0 == result[5] assert 0x0 == result[6] assert 0x0 == result[7] # Element Multiplier assert 0x1 == result[8] assert 0x0 == result[9] assert 0x0 == result[10] assert 0x0 == result[11] # Imag assert 0x0 == result[12] assert 0x0 == result[13] assert 0x0 == result[14] assert 0x0 == result[15] # Name Length assert 0x8 == result[16] assert 0x0 == result[17] assert 0x0 == result[18] assert 0x0 == result[19] # Name assert ord('E') == result[20] assert ord('0') == result[21] assert ord('0') == result[22] assert ord('0') == result[23] assert ord('0') == result[24] assert ord('1') == result[25] assert ord('5') == result[26] assert ord('\0') == result[27] # Length assert len(result) == (33 * Ensemble.BytesInFloat) + 28 # Data # Number of Beams assert Ensemble.float_to_bytes(4)[0] == result[28] assert Ensemble.float_to_bytes(4)[1] == result[29] assert Ensemble.float_to_bytes(4)[2] == result[30] assert Ensemble.float_to_bytes(4)[3] == result[31] index = 32 # SNR Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # SNR Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # SNR Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # SNR Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Range Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Range Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Range Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Range Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Pings Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # Pings Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # Pings Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # Pings Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1 # Amplitude Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Amplitude Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Amplitude Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Amplitude Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Correlation Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Correlation Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Correlation Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Correlation Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Beam Velocity Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Beam Velocity Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Beam Velocity Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Beam Velocity Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Instrument Velocity Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Instrument Velocity Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Instrument Velocity Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Instrument Velocity Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Earth Velocity Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Earth Velocity Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Earth Velocity Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Earth Velocity Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1
def test_BottomTrackdata(): bt = BottomTrack() bt.FirstPingTime = 12.5 bt.LastPingTime = 12.8 bt.Heading = 152.36 bt.Pitch = 12.6 bt.Roll = 223.1 bt.WaterTemp = 15.23 bt.SystemTemp = 78.58 bt.Salinity = 35.0 bt.Pressure = 23.36 bt.TransducerDepth = 156.2 bt.SpeedOfSound = 1402.36 bt.Status = 9.0 bt.NumBeams = 4.0 bt.ActualPingCount = 23 bt.Range = [1.1, 2.2, 3.3, 4.4] bt.SNR = [1.1, 2.2, 3.3, 4.4] bt.Amplitude = [1.1, 2.2, 3.3, 4.4] bt.Correlation = [1.1, 2.2, 3.3, 4.4] bt.BeamVelocity = [1.1, 2.2, 3.3, 4.4] bt.BeamGood = [1, 2, 3, 4] bt.InstrumentVelocity = [1.1, 2.2, 3.3, 4.4] bt.InstrumentGood = [1, 2, 3, 4] bt.EarthVelocity = [1.1, 2.2, 3.3, 4.4] bt.EarthGood = [1, 2, 3, 4] bt.SNR_PulseCoherent = [1, 2, 3, 4] bt.Amp_PulseCoherent = [1, 2, 3, 4] bt.Vel_PulseCoherent = [1, 2, 3, 4] bt.Noise_PulseCoherent = [1, 2, 3, 4] bt.Corr_PulseCoherent = [1, 2, 3, 4] # Populate data result = bt.encode() # Value type assert 0x0A == result[0] assert 0x0 == result[1] assert 0x0 == result[2] assert 0x0 == result[3] # Num Elements assert 0x4A == result[4] assert 0x0 == result[5] assert 0x0 == result[6] assert 0x0 == result[7] # Element Multiplier assert 0x1 == result[8] assert 0x0 == result[9] assert 0x0 == result[10] assert 0x0 == result[11] # Imag assert 0x0 == result[12] assert 0x0 == result[13] assert 0x0 == result[14] assert 0x0 == result[15] # Name Length assert 0x8 == result[16] assert 0x0 == result[17] assert 0x0 == result[18] assert 0x0 == result[19] # Name assert ord('E') == result[20] assert ord('0') == result[21] assert ord('0') == result[22] assert ord('0') == result[23] assert ord('0') == result[24] assert ord('1') == result[25] assert ord('0') == result[26] assert ord('\0') == result[27] # Length assert len(result) == (74 * Ensemble.BytesInFloat) + 28 # Data # First Ping Time assert Ensemble.float_to_bytes(12.5)[0] == result[28] assert Ensemble.float_to_bytes(12.5)[1] == result[29] assert Ensemble.float_to_bytes(12.5)[2] == result[30] assert Ensemble.float_to_bytes(12.5)[3] == result[31] # Last Ping Time assert Ensemble.float_to_bytes(12.8)[0] == result[32] assert Ensemble.float_to_bytes(12.8)[1] == result[33] assert Ensemble.float_to_bytes(12.8)[2] == result[34] assert Ensemble.float_to_bytes(12.8)[3] == result[35] # Heading assert Ensemble.float_to_bytes(152.36)[0] == result[36] assert Ensemble.float_to_bytes(152.36)[1] == result[37] assert Ensemble.float_to_bytes(152.36)[2] == result[38] assert Ensemble.float_to_bytes(152.36)[3] == result[39] # Pitch assert Ensemble.float_to_bytes(12.6)[0] == result[40] assert Ensemble.float_to_bytes(12.6)[1] == result[41] assert Ensemble.float_to_bytes(12.6)[2] == result[42] assert Ensemble.float_to_bytes(12.6)[3] == result[43] # Roll assert Ensemble.float_to_bytes(223.1)[0] == result[44] assert Ensemble.float_to_bytes(223.1)[1] == result[45] assert Ensemble.float_to_bytes(223.1)[2] == result[46] assert Ensemble.float_to_bytes(223.1)[3] == result[47] # Water Temp assert Ensemble.float_to_bytes(15.23)[0] == result[48] assert Ensemble.float_to_bytes(15.23)[1] == result[49] assert Ensemble.float_to_bytes(15.23)[2] == result[50] assert Ensemble.float_to_bytes(15.23)[3] == result[51] # System Temp assert Ensemble.float_to_bytes(78.58)[0] == result[52] assert Ensemble.float_to_bytes(78.58)[1] == result[53] assert Ensemble.float_to_bytes(78.58)[2] == result[54] assert Ensemble.float_to_bytes(78.58)[3] == result[55] # Salinity assert Ensemble.float_to_bytes(35)[0] == result[56] assert Ensemble.float_to_bytes(35)[1] == result[57] assert Ensemble.float_to_bytes(35)[2] == result[58] assert Ensemble.float_to_bytes(35)[3] == result[59] # Pressure assert Ensemble.float_to_bytes(23.36)[0] == result[60] assert Ensemble.float_to_bytes(23.36)[1] == result[61] assert Ensemble.float_to_bytes(23.36)[2] == result[62] assert Ensemble.float_to_bytes(23.36)[3] == result[63] # XDCR Depth assert Ensemble.float_to_bytes(156.2)[0] == result[64] assert Ensemble.float_to_bytes(156.2)[1] == result[65] assert Ensemble.float_to_bytes(156.2)[2] == result[66] assert Ensemble.float_to_bytes(156.2)[3] == result[67] # Speed of Sound assert Ensemble.float_to_bytes(1402.36)[0] == result[68] assert Ensemble.float_to_bytes(1402.36)[1] == result[69] assert Ensemble.float_to_bytes(1402.36)[2] == result[70] assert Ensemble.float_to_bytes(1402.36)[3] == result[71] # Status assert Ensemble.float_to_bytes(9.0)[0] == result[72] assert Ensemble.float_to_bytes(9.0)[1] == result[73] assert Ensemble.float_to_bytes(9.0)[2] == result[74] assert Ensemble.float_to_bytes(9.0)[3] == result[75] # Number of Beams assert Ensemble.float_to_bytes(4)[0] == result[76] assert Ensemble.float_to_bytes(4)[1] == result[77] assert Ensemble.float_to_bytes(4)[2] == result[78] assert Ensemble.float_to_bytes(4)[3] == result[79] # Ping Count assert Ensemble.float_to_bytes(23)[0] == result[80] assert Ensemble.float_to_bytes(23)[1] == result[81] assert Ensemble.float_to_bytes(23)[2] == result[82] assert Ensemble.float_to_bytes(23)[3] == result[83] # Range Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[84] assert Ensemble.float_to_bytes(1.1)[1] == result[85] assert Ensemble.float_to_bytes(1.1)[2] == result[86] assert Ensemble.float_to_bytes(1.1)[3] == result[87] # Range Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[88] assert Ensemble.float_to_bytes(2.2)[1] == result[89] assert Ensemble.float_to_bytes(2.2)[2] == result[90] assert Ensemble.float_to_bytes(2.2)[3] == result[91] # Range Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[92] assert Ensemble.float_to_bytes(3.3)[1] == result[93] assert Ensemble.float_to_bytes(3.3)[2] == result[94] assert Ensemble.float_to_bytes(3.3)[3] == result[95] # Range Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[96] assert Ensemble.float_to_bytes(4.4)[1] == result[97] assert Ensemble.float_to_bytes(4.4)[2] == result[98] assert Ensemble.float_to_bytes(4.4)[3] == result[99] # SNR Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[100] assert Ensemble.float_to_bytes(1.1)[1] == result[101] assert Ensemble.float_to_bytes(1.1)[2] == result[102] assert Ensemble.float_to_bytes(1.1)[3] == result[103] # SNR Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[104] assert Ensemble.float_to_bytes(2.2)[1] == result[105] assert Ensemble.float_to_bytes(2.2)[2] == result[106] assert Ensemble.float_to_bytes(2.2)[3] == result[107] # SNR Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[108] assert Ensemble.float_to_bytes(3.3)[1] == result[109] assert Ensemble.float_to_bytes(3.3)[2] == result[110] assert Ensemble.float_to_bytes(3.3)[3] == result[111] # SNR Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[112] assert Ensemble.float_to_bytes(4.4)[1] == result[113] assert Ensemble.float_to_bytes(4.4)[2] == result[114] assert Ensemble.float_to_bytes(4.4)[3] == result[115] # Amp Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[116] assert Ensemble.float_to_bytes(1.1)[1] == result[117] assert Ensemble.float_to_bytes(1.1)[2] == result[118] assert Ensemble.float_to_bytes(1.1)[3] == result[119] # Amp Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[120] assert Ensemble.float_to_bytes(2.2)[1] == result[121] assert Ensemble.float_to_bytes(2.2)[2] == result[122] assert Ensemble.float_to_bytes(2.2)[3] == result[123] # Amp Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[124] assert Ensemble.float_to_bytes(3.3)[1] == result[125] assert Ensemble.float_to_bytes(3.3)[2] == result[126] assert Ensemble.float_to_bytes(3.3)[3] == result[127] # Amp Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[128] assert Ensemble.float_to_bytes(4.4)[1] == result[129] assert Ensemble.float_to_bytes(4.4)[2] == result[130] assert Ensemble.float_to_bytes(4.4)[3] == result[131] # Corr Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[132] assert Ensemble.float_to_bytes(1.1)[1] == result[133] assert Ensemble.float_to_bytes(1.1)[2] == result[134] assert Ensemble.float_to_bytes(1.1)[3] == result[135] # Corr Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[136] assert Ensemble.float_to_bytes(2.2)[1] == result[137] assert Ensemble.float_to_bytes(2.2)[2] == result[138] assert Ensemble.float_to_bytes(2.2)[3] == result[139] # Corr Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[140] assert Ensemble.float_to_bytes(3.3)[1] == result[141] assert Ensemble.float_to_bytes(3.3)[2] == result[142] assert Ensemble.float_to_bytes(3.3)[3] == result[143] # Corr Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[144] assert Ensemble.float_to_bytes(4.4)[1] == result[145] assert Ensemble.float_to_bytes(4.4)[2] == result[146] assert Ensemble.float_to_bytes(4.4)[3] == result[147] # Beam Velocity Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[148] assert Ensemble.float_to_bytes(1.1)[1] == result[149] assert Ensemble.float_to_bytes(1.1)[2] == result[150] assert Ensemble.float_to_bytes(1.1)[3] == result[151] # Beam Velocity Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[152] assert Ensemble.float_to_bytes(2.2)[1] == result[153] assert Ensemble.float_to_bytes(2.2)[2] == result[154] assert Ensemble.float_to_bytes(2.2)[3] == result[155] # Beam Velocity Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[156] assert Ensemble.float_to_bytes(3.3)[1] == result[157] assert Ensemble.float_to_bytes(3.3)[2] == result[158] assert Ensemble.float_to_bytes(3.3)[3] == result[159] # Beam Velocity Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[160] assert Ensemble.float_to_bytes(4.4)[1] == result[161] assert Ensemble.float_to_bytes(4.4)[2] == result[162] assert Ensemble.float_to_bytes(4.4)[3] == result[163] # Beam Good Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[164] assert Ensemble.float_to_bytes(1)[1] == result[165] assert Ensemble.float_to_bytes(1)[2] == result[166] assert Ensemble.float_to_bytes(1)[3] == result[167] # Beam Good Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[168] assert Ensemble.float_to_bytes(2)[1] == result[169] assert Ensemble.float_to_bytes(2)[2] == result[170] assert Ensemble.float_to_bytes(2)[3] == result[171] # Beam Good Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[172] assert Ensemble.float_to_bytes(3)[1] == result[173] assert Ensemble.float_to_bytes(3)[2] == result[174] assert Ensemble.float_to_bytes(3)[3] == result[175] # Beam Good Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[176] assert Ensemble.float_to_bytes(4)[1] == result[177] assert Ensemble.float_to_bytes(4)[2] == result[178] assert Ensemble.float_to_bytes(4)[3] == result[179] index = 180 # Instrument Velocity Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Instrument Velocity Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Instrument Velocity Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Instrument Velocity Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Instrument Good Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # Instrument Good Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # Instrument Good Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # Instrument Good Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1 # Earth Velocity Beam 0 assert Ensemble.float_to_bytes(1.1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1.1)[3] == result[index] index += 1 # Earth Velocity Beam 1 assert Ensemble.float_to_bytes(2.2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2.2)[3] == result[index] index += 1 # Earth Velocity Beam 2 assert Ensemble.float_to_bytes(3.3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3.3)[3] == result[index] index += 1 # Earth Velocity Beam 3 assert Ensemble.float_to_bytes(4.4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4.4)[3] == result[index] index += 1 # Earth Good Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # Earth Good Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # Earth Good Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # Earth Good Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1 # SNR Pulse Coherent Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # SNR Pulse Coherent Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # SNR Pulse Coherent Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # SNR Pulse Coherent Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1 # Amp Pulse Coherent Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # Amp Pulse Coherent Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # Amp Pulse Coherent Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # Amp Pulse Coherent Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1 # Vel Pulse Coherent Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # Vel Pulse Coherent Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # Vel Pulse Coherent Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # Vel Pulse Coherent Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1 # Noise Pulse Coherent Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # Noise Pulse Coherent Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # Noise Pulse Coherent Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # Noise Pulse Coherent Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1 # Corr Pulse Coherent Beam 0 assert Ensemble.float_to_bytes(1)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(1)[3] == result[index] index += 1 # Corr Pulse Coherent Beam 1 assert Ensemble.float_to_bytes(2)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(2)[3] == result[index] index += 1 # Corr Pulse Coherent Beam 2 assert Ensemble.float_to_bytes(3)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(3)[3] == result[index] index += 1 # Corr Pulse Coherent Beam 3 assert Ensemble.float_to_bytes(4)[0] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[1] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[2] == result[index] index += 1 assert Ensemble.float_to_bytes(4)[3] == result[index] index += 1