def avg_range(self): """ Return the average range (depth to the bottom). This will determine the good values for the range and average them together. :return: Average range. """ # Average the range return Ensemble.get_avg_range(self.Range)
def accum_rt_range(self, awc): """ Create the Range Tracking dataframe. This takes all the information from the Range Tracking and creates a row in the dataframe for each bin,beam value. :param awc: Average data. :return: """ # Convert the east array to df # params: vel_array, dt, ss_code, ss_config, blank, bin_size # DF Columns: Index, time_stamp, ss_code, ss_config, bin_num, beam_num, bin_depth, value df = Ensemble.array_beam_1d_to_df( awc[AverageWaterColumn.INDEX_RANGE_TRACK], awc[AverageWaterColumn.INDEX_LAST_TIME], awc[AverageWaterColumn.INDEX_SS_CODE], awc[AverageWaterColumn.INDEX_SS_CONFIG], awc[AverageWaterColumn.INDEX_FIRST_ENS_NUM], awc[AverageWaterColumn.INDEX_LAST_ENS_NUM]) # Store the range results if self.df_rt_range.empty: self.df_rt_range = df else: self.df_rt_range = pd.concat([self.df_rt_range, df], ignore_index=True) # Average the Range Track Range avg_range = Ensemble.get_avg_range( awc[AverageWaterColumn.INDEX_RANGE_TRACK]) # Create a dict entry dict_result = {} dict_result[0] = { 'time_stamp': awc[AverageWaterColumn.INDEX_LAST_TIME], 'ss_code': awc[AverageWaterColumn.INDEX_SS_CODE], 'ss_config': awc[AverageWaterColumn.INDEX_SS_CONFIG], 'bin_num': 0, 'beam_num': 0, 'bin_depth': avg_range, 'first_ens_num': awc[AverageWaterColumn.INDEX_FIRST_ENS_NUM], 'last_ens_num': awc[AverageWaterColumn.INDEX_LAST_ENS_NUM], 'value': avg_range } # Create the dataframe from the dictionary # important to set the 'orient' parameter to "index" to make the keys as rows df = pd.DataFrame.from_dict(dict_result, "index") # Store the range results if self.df_avg_rt_range.empty: self.df_avg_rt_range = df else: self.df_avg_rt_range = pd.concat([self.df_avg_rt_range, df], ignore_index=True)
def avg_range(self): # Average the ranges #range_count = 0 #range_accum = 0.0 #for beam in range(int(self.NumBeams)): # if self.Range[beam] > 0.0: # range_count += 1 # range_accum += self.Range[beam] #if range_count > 0: # return range_accum / range_count #else: # return 0.0 return Ensemble.get_avg_range(self.Range)