immersion factors

server
esea_info 2 years ago
parent c783d8ac66
commit 68cf04e5c3
  1. 29
      profiler.py
  2. 2
      receive.py

@ -9,7 +9,7 @@ from scipy.optimize import leastsq
from datetime import datetime, timedelta
from myRamses import RamsesFactoryHandle,AirWater
from tools.mylogger import log
from myconfig import TOKEN,NEWLINE,DATA_DIR,SAVE_EXT_NAME
from myconfig import TOKEN,NEWLINE,DATA_DIR,SAVE_EXT_NAME,CAL_DIR
from myconfig import RamsesPROFILE
TIME_STR = "2022-06-10 16:16:16"
@ -288,6 +288,7 @@ class Profiler(object):
depth : List[float] =None
wavelength:List[np.ndarray] =None
spectrum:List[np.ndarray] =None
immersion_factors:np.ndarray = None
beginWavelength: float = None
endWavelength: float = None
rowFactor:float = None
@ -329,6 +330,12 @@ class Profiler(object):
self.newWavelength = np.arange(self.beginWavelength,self.endWavelength,self.wvInterval)
pass
def set_immersion_factors(self, ifs:np.ndarray):
wv = ifs[:, 0]
val = ifs[:, 1]
self.immersion_factors = np.interp(self.newWavelength,wv,val)
pass
def set_ramses_sensor_numbers(self, num:int = 3):
self.data.data_frame = DataFrame()
self.data.data_frame.set_ramses_num( num )
@ -487,7 +494,11 @@ class Profiler(object):
'''' Get Lu0 Ku '''
log.info( " get_lu0_Ku......... ", __class__, "get_Lu0_Ku" )
x = np.array(self.depth)
y = np.log(self.Lu) # ln_Lu
## 浸没因子处理 ##
tmp = self.deal_Lu_by_immersion_factors()
y = np.log(tmp) # ln_Lu
self.Ku,ln_Lu0 = self.leastsq_linear_fitting( x, y)
self.Lu0 = np.exp(ln_Lu0)
@ -506,6 +517,12 @@ class Profiler(object):
# log.warning(t)
# log.warning(self.Ed0)
def deal_Lu_by_immersion_factors ( self, ):
'''' ?????? 浸没因子处理 Lu ??? '''
ifs = self.immersion_factors
lu = self.Lu
return lu
def leastsq_linear_fitting( self, arr_depth:np.ndarray, arr_data:np.ndarray ):
'''最小二乘拟合
# arr_depth np一维数组
@ -634,6 +651,14 @@ class ProfilerHandle(object):
self.profiler.data.set_data_frame( bytes_list, pth, self.aw.callback ) # 目录也要传过去
pass
def read_immersion_factors(self,)->np.ndarray:
assert fpath.exists(), f">>>> not find {fpath} "
fname = "immersion_factors_Lu.dat"
fpath = CAL_DIR.joinpath( "profiler" ,fname)
ret = np.loadtxt(fpath,skiprows=2)
return ret
pass
def read_bin(self,fpath: Path):
assert fpath.exists(), f">>>> not find {fpath} "
ret = b''

@ -219,6 +219,8 @@ class DealData:
self.profiler_hdl.read_info_path(infopath)
self.profiler_hdl.profiler.reset_profiler()
self.profiler_hdl.profiler.data.set_wavelength( ) # 设置波长
# self.profiler_hdl.read_immersion_factors( ) # 读取浸没因子
self.profiler_hdl.profiler.set_immersion_factors( self.profiler_hdl.read_immersion_factors( ) ) #设置浸没因子
self.profiler_hdl.profiler.get_depth_offset()
self.profiler_hdl.read_sensor_path(sensorpath)

Loading…
Cancel
Save