|
|
|
|
@ -353,7 +353,12 @@ class Profiler(object): |
|
|
|
|
self.hhp = HandHeldPath() |
|
|
|
|
self.ramses = Ramses() |
|
|
|
|
self.info_dict = {} |
|
|
|
|
self.res = {} # 最终结果{lsky: esky: lwater: Lw: Rs:} |
|
|
|
|
self.res = {} # 最终结果{ld: esky: lu: Lw: Rs:} |
|
|
|
|
self.depth_m_offset = 0.0 |
|
|
|
|
self.depth_m = 0.0 |
|
|
|
|
self.tilt_x = 0.0 |
|
|
|
|
self.tilt_y = 0.0 |
|
|
|
|
self.depth_tilt_x_y = [] # [ {"depth":, "tilt_x": ,"tilt_y": }] |
|
|
|
|
|
|
|
|
|
# 方法 |
|
|
|
|
self.setDeviceEnum() |
|
|
|
|
@ -440,38 +445,38 @@ class Profiler(object): |
|
|
|
|
# self.printTest(self.filelist) |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
# def dealAllMeasurements(self, ): |
|
|
|
|
# log.info(f" 所有测量文件", __name__, "dealAllMeasurements", ) |
|
|
|
|
# if len(self.filelist)<1: |
|
|
|
|
# pass |
|
|
|
|
# # 前面已经考虑各种文件错误 |
|
|
|
|
# for df in self.filelist: |
|
|
|
|
# # 处理信息帧 |
|
|
|
|
# self.info_dict = {} |
|
|
|
|
# self.info_path_fname:Path = df["info_path"] |
|
|
|
|
# self.sensor_path_fname:Path = df["sensor_path"] |
|
|
|
|
# hex_info = self.read_bin( self.info_path_fname ) |
|
|
|
|
# try: |
|
|
|
|
# self.info_dict = self.decode_info( hex_info ) |
|
|
|
|
# except: |
|
|
|
|
# log.error( f"处理信息文件" |
|
|
|
|
# + "/" +self.info_path_fname.stem |
|
|
|
|
# + "出现错误", __name__, "dealAllMeasurements" ) |
|
|
|
|
# raise MyException( "处理文件"+ self.info_path_fname + "出现错误") |
|
|
|
|
# pass |
|
|
|
|
def dealAllMeasurements(self, ): |
|
|
|
|
log.info(f" 所有测量文件", __name__, "dealAllMeasurements", ) |
|
|
|
|
if len(self.filelist)<1: |
|
|
|
|
pass |
|
|
|
|
# 前面已经考虑各种文件错误 |
|
|
|
|
for df in self.filelist: |
|
|
|
|
# 处理信息帧 |
|
|
|
|
self.info_dict = {} |
|
|
|
|
self.info_path_fname:Path = df["info_path"] |
|
|
|
|
self.sensor_path_fname:Path = df["sensor_path"] |
|
|
|
|
hex_info = self.read_bin( self.info_path_fname ) |
|
|
|
|
try: |
|
|
|
|
self.info_dict = self.decode_info( hex_info ) |
|
|
|
|
except: |
|
|
|
|
log.error( f"处理信息文件" |
|
|
|
|
+ "/" +self.info_path_fname.stem |
|
|
|
|
+ "出现错误", __name__, "dealAllMeasurements" ) |
|
|
|
|
raise MyException( "处理文件"+ self.info_path_fname + "出现错误") |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
# try: # awrams每次只有一组数据 |
|
|
|
|
# self.dealOneMeasurement(self.sensor_path_fname ) |
|
|
|
|
# # self.measurement_interval = int(self.info_dict['Measure_Interval']) |
|
|
|
|
# # self.measurement_repeat = int(self.info_dict['Measure_Repeat']) |
|
|
|
|
# # self.dealOneHandheldMeasurement(self.sensor_path_fname ) |
|
|
|
|
# except Exception as e: |
|
|
|
|
# log.error( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误",__name__,"dealAllMeasurements") |
|
|
|
|
# raise MyException( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误" ) |
|
|
|
|
# pass |
|
|
|
|
# log.info(f"Finished !! ", __name__, "dealAllMeasurements") |
|
|
|
|
# return True,self.error_result |
|
|
|
|
# pass |
|
|
|
|
try: # awrams每次只有一组数据 |
|
|
|
|
self.dealOneMeasurement(self.sensor_path_fname ) |
|
|
|
|
# self.measurement_interval = int(self.info_dict['Measure_Interval']) |
|
|
|
|
# self.measurement_repeat = int(self.info_dict['Measure_Repeat']) |
|
|
|
|
# self.dealOneHandheldMeasurement(self.sensor_path_fname ) |
|
|
|
|
except Exception as e: |
|
|
|
|
log.error( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误",__name__,"dealAllMeasurements") |
|
|
|
|
raise MyException( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误" ) |
|
|
|
|
pass |
|
|
|
|
log.info(f"Finished !! ", __name__, "dealAllMeasurements") |
|
|
|
|
return True,self.error_result |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
# def dealOneMeasurement_Handheld(self, fpath:Path): |
|
|
|
|
# '''handheld一次测量包含多组数据''' |
|
|
|
|
@ -538,6 +543,7 @@ class Profiler(object): |
|
|
|
|
hex_info = self.read_bin( info_path ) |
|
|
|
|
try: |
|
|
|
|
self.info_dict = self.decode_info( hex_info ) |
|
|
|
|
self.depth_m_offset = self.info_dict['Depth'] |
|
|
|
|
except: |
|
|
|
|
log.error( f"处理信息文件" |
|
|
|
|
+ "/" +self.info_path_fname.stem |
|
|
|
|
@ -556,6 +562,10 @@ class Profiler(object): |
|
|
|
|
|
|
|
|
|
log.warning(f"current_measure_time: {self.current_measure_time}", __name__, "dealOneMeasurement_Profiler") |
|
|
|
|
|
|
|
|
|
# 获得真实波长 |
|
|
|
|
self.real_wavelength = self.getWavelenthDict() |
|
|
|
|
|
|
|
|
|
# 读取数据 buf |
|
|
|
|
self.hhb.readFile2Buf(sensor_path) |
|
|
|
|
log.debug(f"buf: {self.hhb.get_buf_size()}", __name__, "dealOneMeasurement_Profiler") |
|
|
|
|
self.decode_sensor_buf() |
|
|
|
|
@ -567,6 +577,8 @@ class Profiler(object): |
|
|
|
|
self.res = {} |
|
|
|
|
return # 返回退出 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 剖面 - 校正文件要用水的,计算深度值 ?? |
|
|
|
|
|
|
|
|
|
# group_num = int(len_total/self.measurement_repeat) |
|
|
|
|
@ -699,6 +711,39 @@ class Profiler(object): |
|
|
|
|
+ str(self.info_dict['second']) |
|
|
|
|
return ymdhms |
|
|
|
|
|
|
|
|
|
def decode_sensor_buf_profiler(self,) : |
|
|
|
|
# 处理Buf,对多组数据取平均, |
|
|
|
|
self.intensity_before_avg = [] |
|
|
|
|
# res_before_avg = [] |
|
|
|
|
self.clearRes() # 清空数据 |
|
|
|
|
while True: |
|
|
|
|
if not self.hhb.decode_one_group_handheld() : |
|
|
|
|
break # 清空数据 |
|
|
|
|
|
|
|
|
|
res = {} |
|
|
|
|
ip_buf = self.hhb.one_group_data[:26] |
|
|
|
|
buf = self.hhb.one_group_data[26:] |
|
|
|
|
for i in range(1,4,1): |
|
|
|
|
temp_buf = buf[7:71] + buf[79:143] + \ |
|
|
|
|
buf[151:215] + buf[223:287] + \ |
|
|
|
|
buf[295:359] + buf[367:431] + \ |
|
|
|
|
buf[439:503] + buf[511:575] |
|
|
|
|
|
|
|
|
|
# Ramses类 标定处理,设置buf 标定文件 |
|
|
|
|
self.ramses.setBuf(temp_buf) |
|
|
|
|
func = self.getFuncBySeq(i) |
|
|
|
|
cfg = self.getCfgByFunc( func) |
|
|
|
|
self.ramses.setCalCfg(cfg) |
|
|
|
|
self.ramses.resetItSpectrum() |
|
|
|
|
self.ramses.ConvertAndCalibrate() |
|
|
|
|
res.update({ func : self.ramses.spectrum }) |
|
|
|
|
|
|
|
|
|
# 处理 深度倾斜 数据 |
|
|
|
|
self.decode_ip_buf(ip_buf) |
|
|
|
|
|
|
|
|
|
self.intensity_before_avg.append( res ) |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
def decode_sensor_buf(self,) : |
|
|
|
|
# 处理Buf,对多组数据取平均 |
|
|
|
|
self.intensity_before_avg = [] |
|
|
|
|
@ -727,6 +772,14 @@ class Profiler(object): |
|
|
|
|
self.intensity_before_avg.append( res ) |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
def decode_ip_buf( self,buf) : |
|
|
|
|
'''Ed校正文件去处理数据''' |
|
|
|
|
depth_m = 0.0 |
|
|
|
|
tilt_x = 0.0 |
|
|
|
|
tilt_y = 0.0 |
|
|
|
|
self.depth_tilt_x_y.append( {"depth":depth_m, "tilt_x":tilt_x ,"tilt_y":tilt_y } ) |
|
|
|
|
pass |
|
|
|
|
|
|
|
|
|
def getAvg( self, d:list) : |
|
|
|
|
log.info(f"getAvg: 平均多组数据", __name__, "getAvg") |
|
|
|
|
data = d |
|
|
|
|
|