modified: profiler.py

server
esea_info 3 years ago
parent 51609549e0
commit 2da97eaf80
  1. 117
      profiler.py

@ -353,7 +353,12 @@ class Profiler(object):
self.hhp = HandHeldPath() self.hhp = HandHeldPath()
self.ramses = Ramses() self.ramses = Ramses()
self.info_dict = {} 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() self.setDeviceEnum()
@ -440,38 +445,38 @@ class Profiler(object):
# self.printTest(self.filelist) # self.printTest(self.filelist)
pass pass
# def dealAllMeasurements(self, ): def dealAllMeasurements(self, ):
# log.info(f" 所有测量文件", __name__, "dealAllMeasurements", ) log.info(f" 所有测量文件", __name__, "dealAllMeasurements", )
# if len(self.filelist)<1: if len(self.filelist)<1:
# pass pass
# # 前面已经考虑各种文件错误 # 前面已经考虑各种文件错误
# for df in self.filelist: for df in self.filelist:
# # 处理信息帧 # 处理信息帧
# self.info_dict = {} self.info_dict = {}
# self.info_path_fname:Path = df["info_path"] self.info_path_fname:Path = df["info_path"]
# self.sensor_path_fname:Path = df["sensor_path"] self.sensor_path_fname:Path = df["sensor_path"]
# hex_info = self.read_bin( self.info_path_fname ) hex_info = self.read_bin( self.info_path_fname )
# try: try:
# self.info_dict = self.decode_info( hex_info ) self.info_dict = self.decode_info( hex_info )
# except: except:
# log.error( f"处理信息文件" log.error( f"处理信息文件"
# + "/" +self.info_path_fname.stem + "/" +self.info_path_fname.stem
# + "出现错误", __name__, "dealAllMeasurements" ) + "出现错误", __name__, "dealAllMeasurements" )
# raise MyException( "处理文件"+ self.info_path_fname + "出现错误") raise MyException( "处理文件"+ self.info_path_fname + "出现错误")
# pass pass
# try: # awrams每次只有一组数据 try: # awrams每次只有一组数据
# self.dealOneMeasurement(self.sensor_path_fname ) self.dealOneMeasurement(self.sensor_path_fname )
# # self.measurement_interval = int(self.info_dict['Measure_Interval']) # self.measurement_interval = int(self.info_dict['Measure_Interval'])
# # self.measurement_repeat = int(self.info_dict['Measure_Repeat']) # self.measurement_repeat = int(self.info_dict['Measure_Repeat'])
# # self.dealOneHandheldMeasurement(self.sensor_path_fname ) # self.dealOneHandheldMeasurement(self.sensor_path_fname )
# except Exception as e: except Exception as e:
# log.error( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误",__name__,"dealAllMeasurements") log.error( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误",__name__,"dealAllMeasurements")
# raise MyException( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误" ) raise MyException( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误" )
# pass pass
# log.info(f"Finished !! ", __name__, "dealAllMeasurements") log.info(f"Finished !! ", __name__, "dealAllMeasurements")
# return True,self.error_result return True,self.error_result
# pass pass
# def dealOneMeasurement_Handheld(self, fpath:Path): # def dealOneMeasurement_Handheld(self, fpath:Path):
# '''handheld一次测量包含多组数据''' # '''handheld一次测量包含多组数据'''
@ -538,6 +543,7 @@ class Profiler(object):
hex_info = self.read_bin( info_path ) hex_info = self.read_bin( info_path )
try: try:
self.info_dict = self.decode_info( hex_info ) self.info_dict = self.decode_info( hex_info )
self.depth_m_offset = self.info_dict['Depth']
except: except:
log.error( f"处理信息文件" log.error( f"处理信息文件"
+ "/" +self.info_path_fname.stem + "/" +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") log.warning(f"current_measure_time: {self.current_measure_time}", __name__, "dealOneMeasurement_Profiler")
# 获得真实波长
self.real_wavelength = self.getWavelenthDict()
# 读取数据 buf
self.hhb.readFile2Buf(sensor_path) self.hhb.readFile2Buf(sensor_path)
log.debug(f"buf: {self.hhb.get_buf_size()}", __name__, "dealOneMeasurement_Profiler") log.debug(f"buf: {self.hhb.get_buf_size()}", __name__, "dealOneMeasurement_Profiler")
self.decode_sensor_buf() self.decode_sensor_buf()
@ -567,6 +577,8 @@ class Profiler(object):
self.res = {} self.res = {}
return # 返回退出 return # 返回退出
# 剖面 - 校正文件要用水的,计算深度值 ?? # 剖面 - 校正文件要用水的,计算深度值 ??
# group_num = int(len_total/self.measurement_repeat) # group_num = int(len_total/self.measurement_repeat)
@ -699,6 +711,39 @@ class Profiler(object):
+ str(self.info_dict['second']) + str(self.info_dict['second'])
return ymdhms 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,) : def decode_sensor_buf(self,) :
# 处理Buf,对多组数据取平均 # 处理Buf,对多组数据取平均
self.intensity_before_avg = [] self.intensity_before_avg = []
@ -727,6 +772,14 @@ class Profiler(object):
self.intensity_before_avg.append( res ) self.intensity_before_avg.append( res )
pass 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) : def getAvg( self, d:list) :
log.info(f"getAvg: 平均多组数据", __name__, "getAvg") log.info(f"getAvg: 平均多组数据", __name__, "getAvg")
data = d data = d

Loading…
Cancel
Save