parent
22a3d76048
commit
d45df33b25
File diff suppressed because it is too large
Load Diff
@ -1,2 +1,102 @@ |
||||
AWRAMS 数据接收处理 |
||||
分支: server desktop |
||||
# AWRAMS 相关的服务器端处理文件 |
||||
系统通过config.py 配置测量类型,awrams surface profiler |
||||
并得到配置文件 |
||||
系统从网络获得数据存为文件后,依据获得的配置文件然后处理文件。 |
||||
|
||||
## 实施流程 |
||||
### 服务器配置 |
||||
python >3.8 |
||||
numpy > 1.21.4 |
||||
### 标定文件 |
||||
|
||||
calfile/awrams |
||||
直接拷贝在这个目录下 |
||||
|
||||
### 设备ID config.py |
||||
可以定义多个ID, 后面为每个id定义传感器的序列号 |
||||
```python |
||||
DEVICE_ID = [ 2 ] |
||||
``` |
||||
|
||||
### 设备配置文件 |
||||
```python |
||||
CURRENT_DIR =Path() |
||||
DATA_DIR = Path("data") |
||||
CAL_DIR = Path("calfile") |
||||
OUTPUT_DIR = Path("data","output") |
||||
YAML_FILE_NAME = "config.yml" |
||||
FILE_MARK = ['Spectrum','DATA'] |
||||
BEGIN_WAVELENGTH = 350 |
||||
END_WAVELENGTH = 950 |
||||
SAVE_EXT_NAME = ".csv" |
||||
INTERVAL = 1.0 |
||||
SEPARATOR = ";" |
||||
NEWLINE = "\n" |
||||
``` |
||||
### 设置应用类型 config.py |
||||
```python |
||||
class Device(Enum) : |
||||
AWRAMS = 1 |
||||
SURFACE = 2 |
||||
PROFILE = 3 |
||||
|
||||
[label](myserver.py)class RamsesFunc(Enum): |
||||
Lsky = 1 |
||||
Lwater = 2 |
||||
Esky = 3 |
||||
|
||||
class RamsesSURFACE(Enum): |
||||
Lsky = 1 |
||||
Lwater = 2 |
||||
Esky = 3 |
||||
|
||||
class RAMSESPROFILE(Enum): |
||||
Lu = 1 #upwelling |
||||
Ed = 2 |
||||
Esky = 3 |
||||
``` |
||||
|
||||
### 设置传感器序列号 config.py |
||||
依据系统类型,配置传感器的序列号。 传感器序列号见出厂设置的序列号 |
||||
如果存在不同组,需要为不同组设置 传感器序列号 |
||||
如下设置了两组AWRAMS ID: 2 and 3 |
||||
```python |
||||
class Config(object): |
||||
|
||||
def __init__(self) -> None: |
||||
self.AWRAMS = { # 每个ID对应一组 |
||||
"2" : { |
||||
"1":{"SN":"85B5","FUNC":RamsesFunc.Lsky.name}, |
||||
"2":{"SN":"852F","FUNC":RamsesFunc.Lwater.name}, |
||||
"3":{"SN":"50ED","FUNC":RamsesFunc.Esky.name}, |
||||
}, |
||||
"3" : { |
||||
"1":{"SN":"85B5","FUNC":RamsesFunc.Lsky.name}, |
||||
"2":{"SN":"852F","FUNC":RamsesFunc.Lwater.name}, |
||||
"3":{"SN":"50ED","FUNC":RamsesFunc.Esky.name}, |
||||
} |
||||
} |
||||
self.SURFACE = { |
||||
"1":{"SN":"854D","FUNC":RamsesSURFACE.Lsky.name}, |
||||
"2":{"SN":"8536","FUNC":RamsesSURFACE.Lwater.name}, |
||||
"3":{"SN":"50D3","FUNC":RamsesSURFACE.Esky.name}, |
||||
} |
||||
self.PROFILE = { |
||||
"1":{"SN":"85B5","FUNC":RAMSESPROFILE.Lu.name}, |
||||
"2":{"SN":"859F","FUNC":RAMSESPROFILE.Ed.name}, |
||||
"3":{"SN":"852F","FUNC":RAMSESPROFILE.Esky.name}, |
||||
} |
||||
``` |
||||
|
||||
### 获得传感器的标定参数 |
||||
将以上获得传感器配置,传递给configAWRAMS.py, 从标定文件获取正确的配置参数 |
||||
|
||||
### 数据文件夹 |
||||
data目录 |
||||
data目录依据设备类型进行分类 |
||||
|
||||
### 定义服务器设置 |
||||
app.py 定义端口, 参数传给了myserver |
||||
|
||||
### 处理数据 |
||||
将数据储存在特定目录,调用处理该目录的函数处理 |
@ -0,0 +1,200 @@ |
||||
#! python3 |
||||
# -*- encoding: utf-8 -*- |
||||
''' |
||||
@File : Ramses.py |
||||
@Time : 2023/03/03 11:09:50 |
||||
@Author : Jim @ Yiwin |
||||
@Version : 1.0 |
||||
@Contact : jim@yi-win.com |
||||
@Desc : |
||||
@para : 23 ..07 .... 06 05 04 03 02 01 00 |
||||
ip信息不包含 |
||||
''' |
||||
|
||||
import struct |
||||
import numpy as np |
||||
from pathlib import Path |
||||
from tools.mylogger import log |
||||
from myconfig import RamsesAWRAMS, RamsesSURFACE, RamsesPROFILE, DeviceType |
||||
|
||||
|
||||
class Ramses(object): |
||||
|
||||
def __init__(self,): |
||||
""" |
||||
@description :处理Ramses的数据标定 Hex -- realWavelength Intensity |
||||
@param : 23 ..07 .... 06 05 04 03 02 01 00 |
||||
ip信息不包含 |
||||
@Returns : realWavelength Intensity |
||||
""" |
||||
self.buf = b'' |
||||
self.it = None |
||||
self.light_int = None # 未标定的整数值 |
||||
self.spectrum = None # 光谱强度 |
||||
# self.current_buf = "" |
||||
# self.current_buf_seq = 0 |
||||
# self.current_it_int = {"it": 0, "light_int": []} # 积分时间及换算的整数值 |
||||
# self.res = {"wavelength": [], "light": []} |
||||
self.cal_cfg = {} |
||||
# self.current_cal = {} # 当前传感器的序列号 |
||||
pass |
||||
|
||||
def setBuf(self, buf: bytes): |
||||
self.buf = buf |
||||
pass |
||||
|
||||
def setCalCfg(self, d: dict): |
||||
self.cal_cfg = d |
||||
pass |
||||
|
||||
def getRealWavelength(self, d: dict): |
||||
self.cal_cfg = d |
||||
pass |
||||
|
||||
def getSpectrum(self): |
||||
return self.spectrum |
||||
|
||||
def resetPara(self, ): |
||||
self.buf = b'' |
||||
self.it = None |
||||
self.light_int = None |
||||
self.spectrum = None # 光谱强度 |
||||
self.cal_cfg = {} |
||||
pass |
||||
|
||||
def resetItSpectrum(self, ): |
||||
self.it = None |
||||
self.spectrum = None # 光谱强度 |
||||
pass |
||||
|
||||
def printPara(self, ): |
||||
print(f"**************Ramses printPara*******************") |
||||
print(f"{self.buf}") |
||||
print(f"{self.cal_cfg}") |
||||
print(f"{self.it}") |
||||
print(f"{self.light_int}") |
||||
print(f"{self.spectrum}") |
||||
print(f"**************Ramses printPara*******************") |
||||
pass |
||||
|
||||
def dealBuf(self, ip_included:bool=False): |
||||
"""多个传感器的数据处理, 头部是否包含Ip帧的信息""" |
||||
log.info(f" dealBuf ", __name__) |
||||
|
||||
res = {} |
||||
len_ = len(self.buf) |
||||
if len_ < 576: |
||||
return |
||||
if ip_included: |
||||
self.buf = self.buf[26:] |
||||
len_ = len_ - 26 |
||||
if len_ % 576 != 0: |
||||
return |
||||
|
||||
for i in range(int(len_/576)): |
||||
res.update({i+1: {}}) |
||||
temp_buf = self.buf[7:71] + self.buf[79:143] + \ |
||||
self.buf[151:215] + self.buf[223:287] + \ |
||||
self.buf[295:359] + self.buf[367:431] + \ |
||||
self.buf[439:503] + self.buf[511:575] |
||||
self.ConvertAndCalibrate( temp_buf ) |
||||
# print(len(temp_buf)) |
||||
temp = self.__ConvertBytesToInt(temp_buf) |
||||
res.update( { i+1: temp } ) |
||||
# print(res) |
||||
pass |
||||
|
||||
def ConvertAndCalibrate(self,) -> None: |
||||
log.debug(f" ConvertAndCalibrate ", __name__) |
||||
temp = self.__ConvertBytesToInt( ) |
||||
self.__CalibrateSpectrumData( ) |
||||
pass |
||||
|
||||
# 转换一个传感器的部分 |
||||
def __ConvertBytesToInt(self ) -> None: |
||||
res = {} |
||||
d = [] # List [ Tuple[ it:int, sing_set:tuple[int] ] ] |
||||
self.it = 2 << int(self.buf[1]) # integrated time |
||||
self.light_int = struct.unpack( |
||||
"<HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \ |
||||
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \ |
||||
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH \ |
||||
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH", self.buf[2:]) |
||||
|
||||
def __CalibrateSpectrumData(self ,) : |
||||
t0 = 8092 |
||||
log.debug(f" __CalibrateSpectrumData ..... ", __name__) |
||||
raw = np.asarray(self.light_int, dtype=float) |
||||
B0 = np.asarray(self.cal_cfg["b0"], dtype=float) |
||||
B1 = np.asarray(self.cal_cfg["b1"], dtype=float) |
||||
|
||||
Mn = raw/65535 |
||||
Bn = B0 + B1 * (self.it/t0) |
||||
Cn = Mn-Bn |
||||
|
||||
Offset = self.getOffset( |
||||
Cn, int(self.cal_cfg['DarkPixelStart']), int(self.cal_cfg['DarkPixelStop'])) |
||||
Dn = Cn-Offset |
||||
En = Dn * (t0/self.it) |
||||
Fn = En/np.asarray(self.cal_cfg["cal"], dtype=float) # 空气或水中的标定文件 |
||||
self.spectrum = Fn |
||||
|
||||
|
||||
def getOffset(self, data: np.ndarray, start: int, stop: int): |
||||
ret = 0.0 |
||||
for i in range(start-1, stop, 1): |
||||
ret = ret + data[i] |
||||
return ret / (stop - start + 1) |
||||
pass |
||||
|
||||
# def read_bin(self,fpath: Path): |
||||
# log.debug(f" readbin: ", __name__, "", "" ) |
||||
# ret = None |
||||
# if not fpath.exists() : |
||||
# log.info(f"not find file: {fpath} ") |
||||
# return ret |
||||
# with open(fpath, 'rb') as file: |
||||
# ret = file.read() |
||||
# return ret |
||||
# log.debug(f" readbin: {ret} ", __name__, "", "" ) |
||||
# return ret |
||||
# pass |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
log.info(f"******** Awarms server initiate *********", __name__, "", "") |
||||
r = Ramses() |
||||
buf_str = "\ |
||||
23a0000007fefe0a0781067d067d068e0693069c069c06b006b506cb06e40619076607e1076c081509cd09bb0a7d0bee0b1d0c6d0cca0ca40ddc0f30135b18b4224d320e43f852c8\ |
||||
23a0000006fefe17639c71c97c9484bb89358be98e5d98b1a37eadccb66abd26be31b97db124aa18a3f29c0499349735968e93a48eea8a028bc28cec8d048f1c92c096de9ab99d43\ |
||||
23a0000005fefee0a157a9ecb1b1b97dc034c507c741c7d2c65ec550c20dbde9b535ae56a60a9e2296cd8ee887278129798170c669b16503632e61605f3a5def5a8e5862561154be\ |
||||
23a0000004fefe3c51f54dda4a0c48634595426a3f5a3cc539903767362b36cc351f356634b633fc32c4310630fb2ec32fe63199349037e03ac03dc03eae3c303a9639d13a413da7\ |
||||
23a0000003fefe97412746bc49404caa4dc54d374ca646d63bde326b332739e43c503d2b3c363aca37ef342d32c22f782d1d2bd328ec250222101e691b2b1a7119d3184018fa174d\ |
||||
23a0000002fefed3177a17e3160616f81423149313f11233126711d8103b10a40f160f8a0efb0d580d660c6f0bd80aa10a580a000ab4099b0994097109e2082c087a0736072c077d\ |
||||
23a0000001fefe2a071e071607140718071e073c074d076a076e076b076007670763076c0760075c073d07350724071207fb06ef06d706cc06b706a506960684067b0672066306a2\ |
||||
23a0000000fefe58065406500642064e064306470642063f064806410644064306430641064206460640063c063e063e063d064406430644063c063c063c063c06400640064906ed\ |
||||
23a0000007fefe0a071b071c07260737073e0749075907650774078b07c0072c08e3082b0ada0be80d9c107b147318931ae51add1a271a77192f1bfb1d99207c265c30c738f03d53\ |
||||
23a0000006fefe07438f489d4d8452d957945cff639171a5832a97deab7fbe09c86cc5acb9d5ab299e90915287de7f8b7ae275ed6f056aff664f662665bc63936335655767926879\ |
||||
23a0000005fefec269206d3e724377fe7b7a8050831f85b68637881689e4884787008580823d7f887bee773d7496702a6cde654c5f895a1f570d5416514d4e9d4bde4897468c44c3\ |
||||
23a0000004fefe71421640db3dc83bbb39533777346c31b92e912c152b5b2aff292129e727cb26d925fd249223b4214020da1fe91ff41f28209420dc201520071e671c221c8d1cfe\ |
||||
23a0000003fefecd1dd31fe72164235924cb24b924f72331211e1ca018ef19221d121f621fe91e081ed51c761b311a2f193c18651788166015a013de11d1106e1041101810e80f2e\ |
||||
23a0000002fefee50fd90fbc0f6d0ff70e610ee00d930d460de40c900c450c010cbd0b7c0b480bfc0aab0a2c0a9e094d092b09fb08d008a208990881087d083908e6078d07660747\ |
||||
23a0000001fefe5b075a07500751074d074e0751075d076807730788077e077c077c07810777077a076c0765075c075607480740073607270723070d070d070b07ff06fd06f0062f\ |
||||
23a0000000fefef606f106ed06f506ef06eb06f106ec06f006e906e806ed06e606ef06e506ea06ec06ee06eb06e906ee06f006ef06ea06e906e606e606e606ec06ea06ea06f506f2\ |
||||
23a0000007fefe0605830479047d047e04810482048204850487048b048c04850487048c049304950498049c04a804a904b604b804c604d004e104f104190546059805ff059a06bb\ |
||||
23a0000006fefe90073209ea0b7610c117cc22b2324a487b645e8798acf2c927d28dc1f2a1ac809664804e543d7a308327a321d81dab1b0f1bca1bb41dba2098243329382e773335\ |
||||
23a0000005fefeca38213e544329486f4c1c500653335592564f577d573b57a556b4557e540a534451424f004d714a9b47994458410e3e9c3af8368c33b630982eca2c052b3429ae\ |
||||
23a0000004fefe632763255a234821321f0e1d061b291983171e16d814a91379124b1138104b0f610e990dd80c240c880bfc0a7b0af8097709020990082508de07c507ba07a50762\ |
||||
23a0000003fefe950781076407460727070007d306ab066e06270605060d0614061306fe05e805d105b405a00586057105630549053d0528051105fd04f304ee04e404dc04dd04c3\ |
||||
23a0000002fefed804d904d004c604bf04b904b904b104a804a604a6049d04980496048f04970491048c04880486047e0484047a047d047b047c0478047a04760476047004700430\ |
||||
23a0000001fefe6f0474046c046d0472046d047304750470046e04760472046f047604700473046f04730470047504700470046d046b047004710470046e046d046a046b046904e4\ |
||||
23a0000000fefe690470046e046b046c04680468046e0466046a046a0469046b046d04640466046c046c046b046a04660466046b046c046a046a0468046f046804740471048d0417\ |
||||
" |
||||
buf = bytearray.fromhex(buf_str) |
||||
one_senor = buf[:576] |
||||
r.setHex(one_senor) |
||||
r.ConvertBytesToInt() |
||||
# print(len(buf)) |
||||
# # print(buf[:576]) |
||||
# print(buf[:576].hex()) |
||||
# print(buf[576:578].hex() ) |
@ -0,0 +1,116 @@ |
||||
from pathlib import * |
||||
from tools.mylogger import log |
||||
from configuration import Configuration |
||||
from receive import MyServer,MyThreadingTCPServer |
||||
|
||||
from myconfig import MyConfig,DeviceType |
||||
from myconfig import DEVICE_ID ,FILE_MARK,YAML_FILE_NAME,CURRENT_DIR,DATA_DIR,CAL_DIR |
||||
from myconfig import BEGIN_WAVELENGTH,END_WAVELENGTH,INTERVAL,ROWFACTOR |
||||
|
||||
from Ramses import Ramses |
||||
|
||||
IP = "" |
||||
PORT = 7887 |
||||
ADDRESS = (IP, PORT) # 绑定地址 |
||||
|
||||
if __name__ == "__main__": |
||||
log.info(f"******** Awarms server initiate.... *********", __name__, "", "") |
||||
|
||||
####################################### |
||||
device_id = DEVICE_ID # 多个设备 |
||||
device_type = DeviceType.AWRAMS.name |
||||
mycfg = MyConfig() |
||||
|
||||
# 配置反演需要的参数 波长 间隔 |
||||
retrieve = mycfg.get_retrieve() |
||||
log.info(f"Retrieve: {retrieve}", __name__, "", "") |
||||
|
||||
# log.info(f"syscfg: {device}", __name__, "", "") |
||||
mycfg.setDeviceType(DeviceType.AWRAMS) |
||||
init_para = mycfg.read_yaml() |
||||
log.info(f"Current Device: {device_type} ", __name__, "", "") |
||||
log.info(f"Sensor: {init_para}", __name__, "", "") |
||||
|
||||
|
||||
cal_cfg = {} |
||||
|
||||
cfgr = Configuration( ) |
||||
cfgr.setDeviceType(device_type) |
||||
cfgr.setSystemCfgDict(init_para) |
||||
|
||||
for k,v in init_para.items(): |
||||
cfgr.setSystemCfgDict(v) |
||||
try: |
||||
cfgr.getCalConfiguration() |
||||
except Exception as e: |
||||
log.error(f"读取配置文件失败. \n {e}",__name__, "", "" ) |
||||
raise |
||||
log.info(f"v: {cfgr.configuration}", __name__, "", "") |
||||
cal_cfg.update({k:cfgr.cal_configuration}) |
||||
|
||||
# log.warning(f"cal_cfg: {cal_cfg}", __name__, "", "") |
||||
log.warning(f"cal_cfg 2: {cal_cfg[2].keys()}", __name__, "", "") |
||||
log.warning(f"cal_cfg 3: {cal_cfg[3].keys()}", __name__, "", "") |
||||
log.info(f"传感器配置文件读取成功", __name__, "", "") |
||||
|
||||
# ???????????? |
||||
# 不同设备类型接收不同,修改receive.py |
||||
# 不同数据裂隙数据处理不同,修改AWRAMS.py |
||||
# 分支:服务器:处理不同的文件夹 awramse surface profile c |
||||
# 桌面: 服务器的, 读取标准trios文件处理的 -- 暂不考虑 |
||||
|
||||
# 启动接受服务器 |
||||
log.info(f"启动接受服务器, IP: {IP} , Port:{PORT} ", __name__, "", "") |
||||
|
||||
server_ = MyThreadingTCPServer(ADDRESS, MyServer, cfg=cal_cfg, retrieve = retrieve ) |
||||
|
||||
try: |
||||
server_.serve_forever() |
||||
except KeyboardInterrupt: |
||||
log.warning(" Ctrl+C 退出主程序 ",__name__, "", "") |
||||
server_.server_close() |
||||
except Exception as e: |
||||
log.info(" 系统异常, 如下: \n ",__name__, "", "") |
||||
log.info(e) |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# r= Ramses() |
||||
# p = Path("0.bin") |
||||
# buf = r.read_bin(p) |
||||
# print(buf.hex()) |
||||
|
||||
# buf_str= "\ |
||||
# 23a0000007fefe0a0781067d067d068e0693069c069c06b006b506cb06e40619076607e1076c081509cd09bb0a7d0bee0b1d0c6d0cca0ca40ddc0f30135b18b4224d320e43f852c8\ |
||||
# 23a0000006fefe17639c71c97c9484bb89358be98e5d98b1a37eadccb66abd26be31b97db124aa18a3f29c0499349735968e93a48eea8a028bc28cec8d048f1c92c096de9ab99d43\ |
||||
# 23a0000005fefee0a157a9ecb1b1b97dc034c507c741c7d2c65ec550c20dbde9b535ae56a60a9e2296cd8ee887278129798170c669b16503632e61605f3a5def5a8e5862561154be\ |
||||
# 23a0000004fefe3c51f54dda4a0c48634595426a3f5a3cc539903767362b36cc351f356634b633fc32c4310630fb2ec32fe63199349037e03ac03dc03eae3c303a9639d13a413da7\ |
||||
# 23a0000003fefe97412746bc49404caa4dc54d374ca646d63bde326b332739e43c503d2b3c363aca37ef342d32c22f782d1d2bd328ec250222101e691b2b1a7119d3184018fa174d\ |
||||
# 23a0000002fefed3177a17e3160616f81423149313f11233126711d8103b10a40f160f8a0efb0d580d660c6f0bd80aa10a580a000ab4099b0994097109e2082c087a0736072c077d\ |
||||
# 23a0000001fefe2a071e071607140718071e073c074d076a076e076b076007670763076c0760075c073d07350724071207fb06ef06d706cc06b706a506960684067b0672066306a2\ |
||||
# 23a0000000fefe58065406500642064e064306470642063f064806410644064306430641064206460640063c063e063e063d064406430644063c063c063c063c06400640064906ed\ |
||||
# 23a0000007fefe0a071b071c07260737073e0749075907650774078b07c0072c08e3082b0ada0be80d9c107b147318931ae51add1a271a77192f1bfb1d99207c265c30c738f03d53\ |
||||
# 23a0000006fefe07438f489d4d8452d957945cff639171a5832a97deab7fbe09c86cc5acb9d5ab299e90915287de7f8b7ae275ed6f056aff664f662665bc63936335655767926879\ |
||||
# 23a0000005fefec269206d3e724377fe7b7a8050831f85b68637881689e4884787008580823d7f887bee773d7496702a6cde654c5f895a1f570d5416514d4e9d4bde4897468c44c3\ |
||||
# 23a0000004fefe71421640db3dc83bbb39533777346c31b92e912c152b5b2aff292129e727cb26d925fd249223b4214020da1fe91ff41f28209420dc201520071e671c221c8d1cfe\ |
||||
# 23a0000003fefecd1dd31fe72164235924cb24b924f72331211e1ca018ef19221d121f621fe91e081ed51c761b311a2f193c18651788166015a013de11d1106e1041101810e80f2e\ |
||||
# 23a0000002fefee50fd90fbc0f6d0ff70e610ee00d930d460de40c900c450c010cbd0b7c0b480bfc0aab0a2c0a9e094d092b09fb08d008a208990881087d083908e6078d07660747\ |
||||
# 23a0000001fefe5b075a07500751074d074e0751075d076807730788077e077c077c07810777077a076c0765075c075607480740073607270723070d070d070b07ff06fd06f0062f\ |
||||
# 23a0000000fefef606f106ed06f506ef06eb06f106ec06f006e906e806ed06e606ef06e506ea06ec06ee06eb06e906ee06f006ef06ea06e906e606e606e606ec06ea06ea06f506f2\ |
||||
# 23a0000007fefe0605830479047d047e04810482048204850487048b048c04850487048c049304950498049c04a804a904b604b804c604d004e104f104190546059805ff059a06bb\ |
||||
# 23a0000006fefe90073209ea0b7610c117cc22b2324a487b645e8798acf2c927d28dc1f2a1ac809664804e543d7a308327a321d81dab1b0f1bca1bb41dba2098243329382e773335\ |
||||
# 23a0000005fefeca38213e544329486f4c1c500653335592564f577d573b57a556b4557e540a534451424f004d714a9b47994458410e3e9c3af8368c33b630982eca2c052b3429ae\ |
||||
# 23a0000004fefe632763255a234821321f0e1d061b291983171e16d814a91379124b1138104b0f610e990dd80c240c880bfc0a7b0af8097709020990082508de07c507ba07a50762\ |
||||
# 23a0000003fefe950781076407460727070007d306ab066e06270605060d0614061306fe05e805d105b405a00586057105630549053d0528051105fd04f304ee04e404dc04dd04c3\ |
||||
# 23a0000002fefed804d904d004c604bf04b904b904b104a804a604a6049d04980496048f04970491048c04880486047e0484047a047d047b047c0478047a04760476047004700430\ |
||||
# 23a0000001fefe6f0474046c046d0472046d047304750470046e04760472046f047604700473046f04730470047504700470046d046b047004710470046e046d046a046b046904e4\ |
||||
# 23a0000000fefe690470046e046b046c04680468046e0466046a046a0469046b046d04640466046c046c046b046a04660466046b046c046a046a0468046f046804740471048d0417\ |
||||
# " |
||||
# buf = bytearray.fromhex(buf_str) |
||||
# one_senor = buf |
||||
# r.setBuf(one_senor) |
||||
# r.setCalCfg(cal_cfg[2]["Lsky"]) |
||||
# r.dealBuf() |
||||
# print(r.cal_cfg) |
@ -0,0 +1,132 @@ |
||||
from pathlib import * |
||||
from mylogger import log |
||||
# from awrams.readfile import Readfile |
||||
# from awrams.AWRAMS import AWRAMS |
||||
from configuration import Configuration |
||||
|
||||
# import struct |
||||
# import threading |
||||
# import socketserver |
||||
# from socketserver import ThreadingTCPServer,TCPServer,ThreadingMixIn |
||||
# from myserver import MyThreadingTCPServer,MyTCPServer |
||||
from receive import MyServer, MyThreadingTCPServer |
||||
|
||||
from myconfig import MyConfig, DeviceType |
||||
from myconfig import DEVICE_ID, FILE_MARK, YAML_FILE_NAME, CURRENT_DIR, DATA_DIR, CAL_DIR |
||||
from myconfig import BEGIN_WAVELENGTH, END_WAVELENGTH, INTERVAL, ROWFACTOR |
||||
|
||||
from Ramses import Ramses |
||||
from AWRAMS import AWRAMS |
||||
|
||||
IP = "" |
||||
PORT = 7887 |
||||
ADDRESS = (IP, PORT) # 绑定地址 |
||||
|
||||
if __name__ == "__main__": |
||||
log.info(f"******** Awarms server initiate *********", __name__, "", "") |
||||
|
||||
####################################### |
||||
device_id = DEVICE_ID # 多个设备 |
||||
device_type = DeviceType.AWRAMS.name |
||||
mycfg = MyConfig() |
||||
|
||||
mycfg.setDeviceType(DeviceType.AWRAMS) |
||||
init_para = mycfg.read_yaml() |
||||
log.info(f"Current Device: {device_type} ", __name__, "", "") |
||||
log.info(f"Sensor: {init_para}", __name__, "", "") |
||||
|
||||
mycfg.setRetrieveCfg("retrieve.yml") |
||||
retrieve = mycfg.read_rtv_yaml() |
||||
log.warning(f"Retrieve 反演参数设置: {retrieve}", __name__, "", "") |
||||
|
||||
|
||||
cal_cfg = {} |
||||
# ddd = {"1": {'FUNC': 'Lsky', 'SN': '85B5'}, "2": {'FUNC': 'Esky', 'SN': ['50ED']}, "3": {'FUNC': 'Lwater', 'SN': ['852F']}} |
||||
|
||||
cfgr = Configuration() |
||||
cfgr.setDeviceType(device_type) |
||||
cfgr.setSystemCfgDict(init_para) |
||||
|
||||
for k, v in init_para.items(): |
||||
cfgr.setSystemCfgDict(v) |
||||
try: |
||||
cfgr.getCalConfiguration() |
||||
except Exception as e: |
||||
log.error(f"读取配置文件失败. \n {e}", __name__, "", "") |
||||
raise |
||||
log.info(f"v: {cfgr.configuration}", __name__, "", "") |
||||
cal_cfg.update({k: cfgr.cal_configuration}) |
||||
|
||||
|
||||
|
||||
a = AWRAMS() |
||||
a.setCfg(cal_cfg) |
||||
a.setRetrieve(retrieve) |
||||
p = ("data","2","17") |
||||
a.setOldFolder(p) |
||||
a.readOneFolder( ) |
||||
|
||||
|
||||
# 将参数 begin |
||||
# log.warning(f"cal_cfg: {cal_cfg}", __name__, "", "") |
||||
# log.warning(f"cal_cfg 2: {cal_cfg[2].keys()}", __name__, "", "") |
||||
# log.warning(f"cal_cfg 3: {cal_cfg[3].keys()}", __name__, "", "") |
||||
# log.info(f"传感器配置文件读取成功", __name__, "", "") |
||||
|
||||
# ???????????? |
||||
# 不同设备类型接收不同,修改receive.py |
||||
# 不同数据裂隙数据处理不同,修改AWRAMS.py |
||||
# 分支:服务器:处理不同的文件夹 awramse surface profile c |
||||
# 桌面: 服务器的, 读取标准trios文件处理的 -- 暂不考虑 |
||||
|
||||
# # 启动接受服务器 |
||||
# log.info(f"启动接受服务器, IP: {IP} , Port:{PORT} ", __name__, "", "") |
||||
|
||||
# server_ = MyThreadingTCPServer(ADDRESS, MyServer, cfg=cal_cfg, retrieve=retrieve ) |
||||
|
||||
# try: |
||||
# server_.serve_forever() |
||||
# except KeyboardInterrupt: |
||||
# log.info(" Ctrl+C 退出主程序 ") |
||||
# server_.server_close() |
||||
# except Exception as e: |
||||
# log.info(" 系统异常, 如下: \n ") |
||||
# log.info(e) |
||||
|
||||
# r= Ramses() |
||||
# p = Path("0.bin") |
||||
# buf = r.read_bin(p) |
||||
# print(buf.hex()) |
||||
|
||||
# buf_str= "\ |
||||
# 23a0000007fefe0a0781067d067d068e0693069c069c06b006b506cb06e40619076607e1076c081509cd09bb0a7d0bee0b1d0c6d0cca0ca40ddc0f30135b18b4224d320e43f852c8\ |
||||
# 23a0000006fefe17639c71c97c9484bb89358be98e5d98b1a37eadccb66abd26be31b97db124aa18a3f29c0499349735968e93a48eea8a028bc28cec8d048f1c92c096de9ab99d43\ |
||||
# 23a0000005fefee0a157a9ecb1b1b97dc034c507c741c7d2c65ec550c20dbde9b535ae56a60a9e2296cd8ee887278129798170c669b16503632e61605f3a5def5a8e5862561154be\ |
||||
# 23a0000004fefe3c51f54dda4a0c48634595426a3f5a3cc539903767362b36cc351f356634b633fc32c4310630fb2ec32fe63199349037e03ac03dc03eae3c303a9639d13a413da7\ |
||||
# 23a0000003fefe97412746bc49404caa4dc54d374ca646d63bde326b332739e43c503d2b3c363aca37ef342d32c22f782d1d2bd328ec250222101e691b2b1a7119d3184018fa174d\ |
||||
# 23a0000002fefed3177a17e3160616f81423149313f11233126711d8103b10a40f160f8a0efb0d580d660c6f0bd80aa10a580a000ab4099b0994097109e2082c087a0736072c077d\ |
||||
# 23a0000001fefe2a071e071607140718071e073c074d076a076e076b076007670763076c0760075c073d07350724071207fb06ef06d706cc06b706a506960684067b0672066306a2\ |
||||
# 23a0000000fefe58065406500642064e064306470642063f064806410644064306430641064206460640063c063e063e063d064406430644063c063c063c063c06400640064906ed\ |
||||
# 23a0000007fefe0a071b071c07260737073e0749075907650774078b07c0072c08e3082b0ada0be80d9c107b147318931ae51add1a271a77192f1bfb1d99207c265c30c738f03d53\ |
||||
# 23a0000006fefe07438f489d4d8452d957945cff639171a5832a97deab7fbe09c86cc5acb9d5ab299e90915287de7f8b7ae275ed6f056aff664f662665bc63936335655767926879\ |
||||
# 23a0000005fefec269206d3e724377fe7b7a8050831f85b68637881689e4884787008580823d7f887bee773d7496702a6cde654c5f895a1f570d5416514d4e9d4bde4897468c44c3\ |
||||
# 23a0000004fefe71421640db3dc83bbb39533777346c31b92e912c152b5b2aff292129e727cb26d925fd249223b4214020da1fe91ff41f28209420dc201520071e671c221c8d1cfe\ |
||||
# 23a0000003fefecd1dd31fe72164235924cb24b924f72331211e1ca018ef19221d121f621fe91e081ed51c761b311a2f193c18651788166015a013de11d1106e1041101810e80f2e\ |
||||
# 23a0000002fefee50fd90fbc0f6d0ff70e610ee00d930d460de40c900c450c010cbd0b7c0b480bfc0aab0a2c0a9e094d092b09fb08d008a208990881087d083908e6078d07660747\ |
||||
# 23a0000001fefe5b075a07500751074d074e0751075d076807730788077e077c077c07810777077a076c0765075c075607480740073607270723070d070d070b07ff06fd06f0062f\ |
||||
# 23a0000000fefef606f106ed06f506ef06eb06f106ec06f006e906e806ed06e606ef06e506ea06ec06ee06eb06e906ee06f006ef06ea06e906e606e606e606ec06ea06ea06f506f2\ |
||||
# 23a0000007fefe0605830479047d047e04810482048204850487048b048c04850487048c049304950498049c04a804a904b604b804c604d004e104f104190546059805ff059a06bb\ |
||||
# 23a0000006fefe90073209ea0b7610c117cc22b2324a487b645e8798acf2c927d28dc1f2a1ac809664804e543d7a308327a321d81dab1b0f1bca1bb41dba2098243329382e773335\ |
||||
# 23a0000005fefeca38213e544329486f4c1c500653335592564f577d573b57a556b4557e540a534451424f004d714a9b47994458410e3e9c3af8368c33b630982eca2c052b3429ae\ |
||||
# 23a0000004fefe632763255a234821321f0e1d061b291983171e16d814a91379124b1138104b0f610e990dd80c240c880bfc0a7b0af8097709020990082508de07c507ba07a50762\ |
||||
# 23a0000003fefe950781076407460727070007d306ab066e06270605060d0614061306fe05e805d105b405a00586057105630549053d0528051105fd04f304ee04e404dc04dd04c3\ |
||||
# 23a0000002fefed804d904d004c604bf04b904b904b104a804a604a6049d04980496048f04970491048c04880486047e0484047a047d047b047c0478047a04760476047004700430\ |
||||
# 23a0000001fefe6f0474046c046d0472046d047304750470046e04760472046f047604700473046f04730470047504700470046d046b047004710470046e046d046a046b046904e4\ |
||||
# 23a0000000fefe690470046e046b046c04680468046e0466046a046a0469046b046d04640466046c046c046b046a04660466046b046c046a046a0468046f046804740471048d0417\ |
||||
# " |
||||
# buf = bytearray.fromhex(buf_str) |
||||
# one_senor = buf |
||||
# r.setBuf(one_senor) |
||||
# r.setCalCfg(cal_cfg[2]["Lsky"]) |
||||
# r.dealBuf() |
||||
# print(r.cal_cfg) |
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = DLAB_2016-11-29_14-47-59_729_812 |
||||
IDDevice = SAM_852F |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = BACK |
||||
IDDataTypeSub2 = |
||||
IDDataTypeSub3 = |
||||
DateTime = 2016-11-29 14:41:43 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = SAM Calibration Station |
||||
MethodName = SAM_Calibration_Station |
||||
Mission = |
||||
MissionSub = 0 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = |
||||
IDDataCal = |
||||
IntegrationTime = 8192 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $03 $05 Intensity counts |
||||
Unit3 = $03 $05 Intensity counts |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 12 0 0 |
||||
1 0.0181271394490075 0.0246216519286131 0 |
||||
2 0.0179948670252732 0.024510637261161 0 |
||||
3 0.0180195207374602 0.0246496004937187 0 |
||||
4 0.0181005261905924 0.0246158903420498 0 |
||||
5 0.018089553708784 0.0244170047588795 0 |
||||
6 0.0180460947386496 0.0245126709060577 0 |
||||
7 0.0180426749981038 0.0246256846551714 0 |
||||
8 0.0180534564280807 0.0247016785610073 0 |
||||
9 0.0180790359128869 0.0245795106168697 0 |
||||
10 0.0180635226786445 0.024601391414026 0 |
||||
11 0.0180649523395645 0.0247430929974417 0 |
||||
12 0.0180630058790784 0.0246690990460763 0 |
||||
13 0.0180600544336154 0.0246595979967682 0 |
||||
14 0.0180597668962471 0.024549218035998 0 |
||||
15 0.0180588020408788 0.0245417076893854 0 |
||||
16 0.0180498552319141 0.0249321420235364 0 |
||||
17 0.0180704773142647 0.0245095865737246 0 |
||||
18 0.0180562171706652 0.0245109975567032 0 |
||||
19 0.0180717635554537 0.0246271043662396 0 |
||||
20 0.0180430410499234 0.0249088567021879 0 |
||||
21 0.0180523488508876 0.0244657876231882 0 |
||||
22 0.0180618142041841 0.0248177038501861 0 |
||||
23 0.0180579205853055 0.0247746806522609 0 |
||||
24 0.0180626933915622 0.0246467759093347 0 |
||||
25 0.0180613022899616 0.0244827044066167 0 |
||||
26 0.0180574472304024 0.0246539416709665 0 |
||||
27 0.0180710633810246 0.024721638131062 0 |
||||
28 0.0180638238251844 0.0244816703025508 0 |
||||
29 0.0180615148024098 0.0248143197952532 0 |
||||
30 0.0180669541091198 0.0247325126325631 0 |
||||
31 0.0180750465063777 0.0245241834309148 0 |
||||
32 0.0180621163975833 0.0244880571694591 0 |
||||
33 0.0180742925931686 0.0247891481591618 0 |
||||
34 0.0180599654505706 0.0245174540737672 0 |
||||
35 0.0180625609638543 0.0248839095525633 0 |
||||
36 0.018079003460247 0.0244844522938572 0 |
||||
37 0.0180789446616468 0.024819053561975 0 |
||||
38 0.0180641596925595 0.0246153722426461 0 |
||||
39 0.0180789860125912 0.0244569738236619 0 |
||||
40 0.0180726758933779 0.024594164032081 0 |
||||
41 0.0180883707577176 0.024739169721128 0 |
||||
42 0.0180761767655234 0.0246157473759408 0 |
||||
43 0.0180788425928601 0.0245033974853286 0 |
||||
44 0.0180748167207502 0.0247480762129667 0 |
||||
45 0.018087924097728 0.0246028704761041 0 |
||||
46 0.0180769134055532 0.0245055458173238 0 |
||||
47 0.0180908061015206 0.02469614722145 0 |
||||
48 0.0180821035597377 0.0244073975760008 0 |
||||
49 0.0180826006434528 0.0245040215437411 0 |
||||
50 0.0180812086694694 0.0244248794159556 0 |
||||
51 0.0180992416941691 0.0244697287048048 0 |
||||
52 0.0180889166948691 0.0246472875499521 0 |
||||
53 0.0180883470289057 0.0246650067939463 0 |
||||
54 0.0180961206574913 0.0244401485106133 0 |
||||
55 0.0180961166445305 0.0243791267698239 0 |
||||
56 0.0180882432153534 0.0246499286698909 0 |
||||
57 0.0180960383045557 0.0243780806209942 0 |
||||
58 0.0180981065496797 0.0247780093711051 0 |
||||
59 0.0180892262162838 0.0247202135322636 0 |
||||
60 0.018090062656905 0.0245516643449751 0 |
||||
61 0.0181151497688632 0.0244492274695042 0 |
||||
62 0.0180994168686337 0.0246700816544131 0 |
||||
63 0.0180945880554018 0.0246774251199509 0 |
||||
64 0.0181024354875717 0.0245070955769284 0 |
||||
65 0.0180812022138367 0.0246320020464858 0 |
||||
66 0.018095840622615 0.0244041100537399 0 |
||||
67 0.0181047246200187 0.0245954472358265 0 |
||||
68 0.0180913783846324 0.0243854736620815 0 |
||||
69 0.0181042299789754 0.0245493665880845 0 |
||||
70 0.018097802960468 0.0247136054955626 0 |
||||
71 0.0180910716548426 0.0246331129577409 0 |
||||
72 0.0181013286082848 0.0247415952572516 0 |
||||
73 0.0180952437383085 0.0248944354541623 0 |
||||
74 0.0181025522123893 0.0247328998106215 0 |
||||
75 0.0180982995207534 0.0246575704615342 0 |
||||
76 0.0180837411967154 0.0247710366748172 0 |
||||
77 0.0181112380044225 0.0247250916615888 0 |
||||
78 0.0181073538072781 0.0247268100478861 0 |
||||
79 0.018103745283096 0.0248027810861271 0 |
||||
80 0.0180962696604722 0.0248363912138882 0 |
||||
81 0.0181080471771214 0.0249100102065207 0 |
||||
82 0.0180900361364681 0.0245452771289432 0 |
||||
83 0.0181011494208593 0.0246815472221476 0 |
||||
84 0.0181086649986149 0.0246684887780455 0 |
||||
85 0.0181182547536976 0.0248864084046402 0 |
||||
86 0.0181057997445719 0.024731509076811 0 |
||||
87 0.0181089392757648 0.0246692868745663 0 |
||||
88 0.0181055429150778 0.0245807166643024 0 |
||||
89 0.0181146218027973 0.0247555966841634 0 |
||||
90 0.0181128730242519 0.024710914276389 0 |
||||
91 0.0181162224507446 0.0247437058838994 0 |
||||
92 0.018127437978399 0.0247758020372237 0 |
||||
93 0.0181252793544177 0.0244627418690115 0 |
||||
94 0.0181109518628667 0.0246814871728906 0 |
||||
95 0.0181264111838525 0.0246144002825787 0 |
||||
96 0.018109165222908 0.0247326369205602 0 |
||||
97 0.0181143328696165 0.0247778595970861 0 |
||||
98 0.0181233651720949 0.0250858798171903 0 |
||||
99 0.0181237422159377 0.02491093660596 0 |
||||
100 0.0181142894249535 0.0248098248290651 0 |
||||
101 0.0181268594141312 0.0248231980080813 0 |
||||
102 0.0181223244194237 0.0247223508668658 0 |
||||
103 0.0181331201564784 0.0247285340201608 0 |
||||
104 0.0181055589669212 0.0245271073409594 0 |
||||
105 0.0181385395728607 0.0246145044959695 0 |
||||
106 0.0181050559510032 0.0247301532553592 0 |
||||
107 0.0181237826944993 0.0247854968501228 0 |
||||
108 0.0181113664191696 0.0249164176717207 0 |
||||
109 0.0181140599882791 0.0248323871154641 0 |
||||
110 0.0181137768128247 0.0245063201734407 0 |
||||
111 0.0181257021111189 0.0249895534773082 0 |
||||
112 0.0181361358093148 0.0247316035147414 0 |
||||
113 0.0181222916178307 0.0250480786353239 0 |
||||
114 0.0181118017381829 0.0245604978699841 0 |
||||
115 0.0181256476744327 0.0248995078707639 0 |
||||
116 0.0181248496186543 0.0247918838915929 0 |
||||
117 0.0181254770363585 0.0246323141629729 0 |
||||
118 0.0181331583668447 0.0246174315481265 0 |
||||
119 0.0181230066227672 0.0245240120112333 0 |
||||
120 0.0181144363342157 0.0247643169185683 0 |
||||
121 0.0181321676889458 0.0246655463644507 0 |
||||
122 0.0181179351126425 0.024543567994421 0 |
||||
123 0.0181364284065034 0.0246558676112366 0 |
||||
124 0.0181453949313192 0.0245943996905025 0 |
||||
125 0.0181325621804444 0.0250753080058395 0 |
||||
126 0.0181156688366246 0.0250045579362867 0 |
||||
127 0.0181297948077507 0.0246554029277417 0 |
||||
128 0.0181383919656923 0.0250264155167244 0 |
||||
129 0.0181374979478067 0.0246469593737799 0 |
||||
130 0.0181199012889798 0.024665052703698 0 |
||||
131 0.0181422937849691 0.0248279473108028 0 |
||||
132 0.0181196791803209 0.0246961217354281 0 |
||||
133 0.0181355928382649 0.0245553355540586 0 |
||||
134 0.0181084210803862 0.0245557204628138 0 |
||||
135 0.018133168137532 0.0247270518159704 0 |
||||
136 0.0181404589894803 0.0247966155635732 0 |
||||
137 0.0181418954549861 0.0247140158903397 0 |
||||
138 0.0181177946590129 0.0247626610253931 0 |
||||
139 0.0181147076452641 0.0248185803249523 0 |
||||
140 0.0181089181641013 0.024609407466155 0 |
||||
141 0.0181443674388664 0.0247364268316634 0 |
||||
142 0.0181377502409103 0.0246575409605911 0 |
||||
143 0.0181289850620429 0.0248112543155938 0 |
||||
144 0.0181158340659255 0.0245781406559126 0 |
||||
145 0.0181305586661236 0.0247824863574285 0 |
||||
146 0.0181270701818138 0.0246500847281345 0 |
||||
147 0.0181084884283378 0.0247009649523946 0 |
||||
148 0.0181265399475526 0.0248219430833464 0 |
||||
149 0.0181359089897888 0.024708337569752 0 |
||||
150 0.0181099418180697 0.0246372621170157 0 |
||||
151 0.0181312042293899 0.0247286281089676 0 |
||||
152 0.0181193782082575 0.0245687148427376 0 |
||||
153 0.0181291396482737 0.0244441117615777 0 |
||||
154 0.0181114958807759 0.0246077550642157 0 |
||||
155 0.018131541667054 0.0247010606122576 0 |
||||
156 0.0181167600130213 0.0247215691791535 0 |
||||
157 0.018133784563213 0.0245714196777312 0 |
||||
158 0.01811013496362 0.024795434478477 0 |
||||
159 0.018139256671516 0.0244320022353862 0 |
||||
160 0.0181215378790981 0.0247462735133231 0 |
||||
161 0.0181241962039428 0.0246903013215404 0 |
||||
162 0.0181255386265836 0.0245514873393163 0 |
||||
163 0.0181152391008612 0.0245751469211505 0 |
||||
164 0.0181239868320727 0.0246573018109337 0 |
||||
165 0.018128921378099 0.0244665511564739 0 |
||||
166 0.0181191986718789 0.0246441606245413 0 |
||||
167 0.0181302022105147 0.0244944379267046 0 |
||||
168 0.0181156925654366 0.0247590790173862 0 |
||||
169 0.018128299020215 0.0244953459971555 0 |
||||
170 0.0181149622065629 0.0247222716158114 0 |
||||
171 0.0181265924649967 0.0246553421802375 0 |
||||
172 0.0181200464534764 0.0246119307568831 0 |
||||
173 0.018134817115486 0.0246354342804737 0 |
||||
174 0.0181138528846042 0.0243070187840778 0 |
||||
175 0.0181302275096157 0.0247393772751007 0 |
||||
176 0.0181219730236349 0.0245134415963769 0 |
||||
177 0.0181227435121171 0.0247120136665658 0 |
||||
178 0.0181128882037125 0.0245733489346753 0 |
||||
179 0.0181298839652721 0.0244120664057354 0 |
||||
180 0.0181217728990224 0.0245414062211677 0 |
||||
181 0.0181271213034454 0.0248899691161084 0 |
||||
182 0.0181002302783493 0.0246153303478156 0 |
||||
183 0.0181198512142075 0.0247247613906751 0 |
||||
184 0.0181077788321745 0.0246353044064992 0 |
||||
185 0.0181113704321304 0.0248533992931349 0 |
||||
186 0.0181110165936699 0.0244737232023303 0 |
||||
187 0.0181200574454996 0.0247406206787574 0 |
||||
188 0.0181026958065969 0.0245452593236402 0 |
||||
189 0.0181267051768535 0.0245186117675831 0 |
||||
190 0.018099050467861 0.024411721471631 0 |
||||
191 0.0181217983725999 0.0246871115538839 0 |
||||
192 0.0181250125797599 0.0245525059073826 0 |
||||
193 0.018113538826799 0.0247245782753535 0 |
||||
194 0.0181123129544992 0.0246827284818056 0 |
||||
195 0.0181229691103072 0.0247343388980489 0 |
||||
196 0.0181081715789076 0.0248475752134495 0 |
||||
197 0.0181231769118883 0.024459163701364 0 |
||||
198 0.0181145502674084 0.0247058137553385 0 |
||||
199 0.0181123405217955 0.0246986457244034 0 |
||||
200 0.0181137211548025 0.024567998615698 0 |
||||
201 0.0181167594895916 0.0243962081650239 0 |
||||
202 0.0181050918931742 0.02490341386546 0 |
||||
203 0.0181182652222911 0.024537072550077 0 |
||||
204 0.0181006336681525 0.0244906673919604 0 |
||||
205 0.0181259247432075 0.0245997164936153 0 |
||||
206 0.018101253059935 0.0246575069210413 0 |
||||
207 0.018119688602055 0.0242198948182748 0 |
||||
208 0.018109630726366 0.024409780344485 0 |
||||
209 0.0181146952574284 0.0242338197871209 0 |
||||
210 0.0181041917686091 0.0244076180475463 0 |
||||
211 0.0181114787820732 0.0245564188845504 0 |
||||
212 0.0181135109105496 0.0246008453847352 0 |
||||
213 0.0181156468525783 0.0245239058776628 0 |
||||
214 0.0180992396004504 0.0246243248187984 0 |
||||
215 0.0181260718269463 0.0246248141155061 0 |
||||
216 0.0181003136781442 0.0243052663582307 0 |
||||
217 0.0181070481243477 0.0245985008452839 0 |
||||
218 0.0181074850136501 0.0243217586073769 0 |
||||
219 0.0181076732738566 0.0246622282938758 0 |
||||
220 0.0181037805273608 0.0246268287331674 0 |
||||
221 0.0181054610855719 0.0244327690853459 0 |
||||
222 0.0180953817492662 0.0245608707339754 0 |
||||
223 0.0181251186615074 0.0244063069139137 0 |
||||
224 0.0181015350140535 0.0246343666605434 0 |
||||
225 0.0181170220768121 0.0244305303303416 0 |
||||
226 0.0180958751689736 0.0247014261446536 0 |
||||
227 0.0181153706561862 0.0246118652962104 0 |
||||
228 0.0181087792807607 0.0246281107149804 0 |
||||
229 0.0181190203568361 0.0246470772029907 0 |
||||
230 0.0181090340165361 0.0247607972291217 0 |
||||
231 0.0181264401469612 0.0247295342592388 0 |
||||
232 0.0181213607853913 0.0246461279359564 0 |
||||
233 0.0181053968781984 0.0245565616760977 0 |
||||
234 0.0181112694102031 0.0244480411475541 0 |
||||
235 0.0181143349633352 0.0245717391258137 0 |
||||
236 0.0181028416689998 0.0246028116487796 0 |
||||
237 0.0181058145750794 0.0248620650642601 0 |
||||
238 0.018112246653407 0.0244563693161703 0 |
||||
239 0.018102646778684 0.0245400739655581 0 |
||||
240 0.0181018787328736 0.024658254394642 0 |
||||
241 0.0181089858610059 0.0247536939606119 0 |
||||
242 0.0181129695097887 0.024581995678565 0 |
||||
243 0.0181304682872664 0.024518225986019 0 |
||||
244 0.0181118867082669 0.0249431329577538 0 |
||||
245 0.0181302966023328 0.024793957860264 0 |
||||
246 0.0181224601621861 0.0246779200026361 0 |
||||
247 0.0181439211278299 0.0246277942344484 0 |
||||
248 0.0181333813478864 0.0245882612250266 0 |
||||
249 0.0181515932110585 0.0245443142460891 0 |
||||
250 0.0181361972250634 0.0244427728726199 0 |
||||
251 0.0181645852590311 0.0245225095578749 0 |
||||
252 0.018168622995547 0.0246755827947801 0 |
||||
253 0.0182029242145575 0.0244593372157869 0 |
||||
254 0.01826668143855 0.0246154502717679 0 |
||||
255 0.0187321041138753 0.0255941653568822 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = DLAB_2018-05-04_11-56-28_529_586 |
||||
IDDevice = SAM_859F |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = BACK |
||||
IDDataTypeSub2 = |
||||
IDDataTypeSub3 = |
||||
DateTime = 2018-05-04 11:50:12 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = SAM Calibration Station |
||||
MethodName = SAM_Calibration_Station |
||||
Mission = |
||||
MissionSub = 0 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = |
||||
IDDataCal = |
||||
IntegrationTime = 8192 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $03 $05 Intensity counts |
||||
Unit3 = $03 $05 Intensity counts |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 12 0 0 |
||||
1 0.0165892037855774 0.018605511502516 0 |
||||
2 0.0165122714877024 0.0184837131056956 0 |
||||
3 0.0164973019224162 0.0183851120510798 0 |
||||
4 0.0166164505683762 0.0184840774161591 0 |
||||
5 0.0165490556826164 0.0185292503425739 0 |
||||
6 0.0165598147795938 0.0186302980552904 0 |
||||
7 0.0164974439463348 0.0183759157866635 0 |
||||
8 0.0165638938670541 0.0186312056020559 0 |
||||
9 0.0165295399561229 0.0185970883722841 0 |
||||
10 0.0165679375357729 0.018610557385725 0 |
||||
11 0.0165135498774463 0.018696732782741 0 |
||||
12 0.0165496044113927 0.0185527901750176 0 |
||||
13 0.0165162233817516 0.0184841121539561 0 |
||||
14 0.0165748471564411 0.0185602766066645 0 |
||||
15 0.0165168071803162 0.0183555554227304 0 |
||||
16 0.016561615028724 0.0185179326286786 0 |
||||
17 0.0165228899565738 0.0185996666499772 0 |
||||
18 0.0165630265440819 0.0186817794703681 0 |
||||
19 0.0165138880130166 0.0184706934143117 0 |
||||
20 0.016557182975186 0.0185104139030999 0 |
||||
21 0.0165155392591658 0.0185717901788923 0 |
||||
22 0.0165657065040199 0.0185864488309574 0 |
||||
23 0.016518681058554 0.0184904599190226 0 |
||||
24 0.0165595148543898 0.0185467707606851 0 |
||||
25 0.0165168741793146 0.0185513739551852 0 |
||||
26 0.0165713147040385 0.0186439978394227 0 |
||||
27 0.0165192898072665 0.0185915799003217 0 |
||||
28 0.0165624174464164 0.0186942077463949 0 |
||||
29 0.0165336104942318 0.0186620183770728 0 |
||||
30 0.0165711529642688 0.0186390987626822 0 |
||||
31 0.0165277786152653 0.0185678106936811 0 |
||||
32 0.0165778362888406 0.0186122998615499 0 |
||||
33 0.0165368341231259 0.0184338018739524 0 |
||||
34 0.0165763434674064 0.0186563994074951 0 |
||||
35 0.0165347332508855 0.0186582494133848 0 |
||||
36 0.0165844704110229 0.0184381484626158 0 |
||||
37 0.0165276158286362 0.0187957369005385 0 |
||||
38 0.016561547855249 0.0184585601477162 0 |
||||
39 0.0165227810832013 0.018382363401076 0 |
||||
40 0.0165862270410135 0.0185619393077496 0 |
||||
41 0.0165383602695828 0.0188072553604966 0 |
||||
42 0.0165776928691096 0.018482204891798 0 |
||||
43 0.0165375732058275 0.0185649745882186 0 |
||||
44 0.0165658438170714 0.0189122127337069 0 |
||||
45 0.0165459794864142 0.0186279875553889 0 |
||||
46 0.0165800024153139 0.0184615582465232 0 |
||||
47 0.0165525603932462 0.0185698745377681 0 |
||||
48 0.0165907623846741 0.0185120261558266 0 |
||||
49 0.0165508449397234 0.0184379972921025 0 |
||||
50 0.0165903560287695 0.0185804266236362 0 |
||||
51 0.0165476473078365 0.0185466583428899 0 |
||||
52 0.0165857165226035 0.0185885491584593 0 |
||||
53 0.0165481178711146 0.0184078979511364 0 |
||||
54 0.0165957271151451 0.0184049089295427 0 |
||||
55 0.0165507685189908 0.0184970417714545 0 |
||||
56 0.0165883062781607 0.0184417327399261 0 |
||||
57 0.0165548565047555 0.0183843069720872 0 |
||||
58 0.0166030835702795 0.0185357707492544 0 |
||||
59 0.0165500053585241 0.018271672720313 0 |
||||
60 0.0165961038100348 0.018684147226538 0 |
||||
61 0.0165517131350783 0.0187957920620654 0 |
||||
62 0.0166133108627067 0.0182829548236024 0 |
||||
63 0.0165473248751564 0.0184118543941909 0 |
||||
64 0.0165983146025071 0.0184413151881155 0 |
||||
65 0.0165525591719102 0.0184057733595452 0 |
||||
66 0.0166064242729443 0.0182871827102461 0 |
||||
67 0.0165435383848847 0.0183972310036081 0 |
||||
68 0.0165950365369267 0.0185852110132782 0 |
||||
69 0.0165586482293239 0.0183187237570663 0 |
||||
70 0.0166092385798323 0.0184794824260633 0 |
||||
71 0.0165697841956677 0.0185034061198914 0 |
||||
72 0.0165967129077004 0.0181402547467266 0 |
||||
73 0.0165732545344154 0.0184165518520597 0 |
||||
74 0.0166026855892496 0.0183788985240326 0 |
||||
75 0.0165687354170748 0.0181609569026518 0 |
||||
76 0.0166129015407006 0.0186252303518572 0 |
||||
77 0.0165534954131229 0.0183105499010758 0 |
||||
78 0.0166168593669527 0.0181418076484435 0 |
||||
79 0.0165646865140591 0.0183057028437498 0 |
||||
80 0.0166018156491291 0.018502016957137 0 |
||||
81 0.0165586096700045 0.0184040678908206 0 |
||||
82 0.0166129247460829 0.0184980723842845 0 |
||||
83 0.0165712166482126 0.0184303921584359 0 |
||||
84 0.0166143243970348 0.0185389638335849 0 |
||||
85 0.0165701301826831 0.0182085812003356 0 |
||||
86 0.0166189659969196 0.0184602108040376 0 |
||||
87 0.0165676643054824 0.0184275042081207 0 |
||||
88 0.0166299271377517 0.0185323186152219 0 |
||||
89 0.0165751742999882 0.0182322636497648 0 |
||||
90 0.0166072596667062 0.0183371464850892 0 |
||||
91 0.0165629157514673 0.0182259586523378 0 |
||||
92 0.0166089130065742 0.018483065481441 0 |
||||
93 0.0165693558557167 0.0182905728748417 0 |
||||
94 0.0166203017894511 0.0184016187888549 0 |
||||
95 0.0165698981288603 0.0183132295991711 0 |
||||
96 0.0166107804291794 0.0181924879994499 0 |
||||
97 0.0165637935430329 0.0184099916452902 0 |
||||
98 0.0166245248200721 0.0187024550929006 0 |
||||
99 0.0165754381085446 0.0183715293979111 0 |
||||
100 0.0166166770389491 0.0183022039271567 0 |
||||
101 0.01656780789969 0.0184077949596782 0 |
||||
102 0.0166270111110302 0.0183611756142407 0 |
||||
103 0.0165662229546329 0.018411879705651 0 |
||||
104 0.0166136421936913 0.0183403743072167 0 |
||||
105 0.0165698424708382 0.0184016243748323 0 |
||||
106 0.0166173691874565 0.0184520221102946 0 |
||||
107 0.0165821997730911 0.0183486391099018 0 |
||||
108 0.0166164975025705 0.01861046347148 0 |
||||
109 0.0165739878593907 0.0185649627180167 0 |
||||
110 0.016623824645643 0.0184582639163523 0 |
||||
111 0.0165631308810639 0.0186787228933602 0 |
||||
112 0.0166247172677161 0.0185190477294169 0 |
||||
113 0.0165669479047333 0.0186510274428554 0 |
||||
114 0.0166042075482691 0.0186025957968757 0 |
||||
115 0.0165806895040011 0.0183767100428249 0 |
||||
116 0.0166075213815439 0.0183237705130843 0 |
||||
117 0.0165708319274012 0.0183277608211268 0 |
||||
118 0.0166233251192561 0.0185572685578353 0 |
||||
119 0.0165772010196913 0.0184446809140601 0 |
||||
120 0.016621139974838 0.0186042166031303 0 |
||||
121 0.0165690780890356 0.0186733833972142 0 |
||||
122 0.0166295818486425 0.0186773335560441 0 |
||||
123 0.0165801878838955 0.0184308924525366 0 |
||||
124 0.0166132293821539 0.0186073100126766 0 |
||||
125 0.0165742146789166 0.0183468275076066 0 |
||||
126 0.0166257485986531 0.0185506345114271 0 |
||||
127 0.0165839324997932 0.0186062746866781 0 |
||||
128 0.0166274820232614 0.0184876664066378 0 |
||||
129 0.0165711257459257 0.0182968567502917 0 |
||||
130 0.0166118375826471 0.0184814123812545 0 |
||||
131 0.0165702390560556 0.0186338901878814 0 |
||||
132 0.0166138555785223 0.0185727479994544 0 |
||||
133 0.0165495885340259 0.0184737700659259 0 |
||||
134 0.0166076853895089 0.0185519168423637 0 |
||||
135 0.0165715106412136 0.0184109360245942 0 |
||||
136 0.0165914878582042 0.0186137698464147 0 |
||||
137 0.0165708420470416 0.0184927182249478 0 |
||||
138 0.0166090042578143 0.0183322589294271 0 |
||||
139 0.0165677817282062 0.0184634239629744 0 |
||||
140 0.0166140523880802 0.0185381407747276 0 |
||||
141 0.0165772907006423 0.0183129747389523 0 |
||||
142 0.0166172060518744 0.018566407740545 0 |
||||
143 0.0165733789362016 0.0184619363473684 0 |
||||
144 0.0166208616847272 0.0185385801467623 0 |
||||
145 0.0165699940909675 0.0184219012982279 0 |
||||
146 0.0166094990733341 0.0184126872285087 0 |
||||
147 0.0165568282643426 0.0186440826764544 0 |
||||
148 0.0166152531357555 0.0184714934310123 0 |
||||
149 0.0165675189665092 0.0186275679088368 0 |
||||
150 0.0166057366608274 0.0184197444127049 0 |
||||
151 0.0165695308557048 0.0184460824707018 0 |
||||
152 0.0165973481768498 0.018243945325 0 |
||||
153 0.0165636400036615 0.018415498022511 0 |
||||
154 0.0166118299056785 0.0184500097619367 0 |
||||
155 0.0165665354421491 0.0185133976878398 0 |
||||
156 0.0165949780872796 0.0184093356420695 0 |
||||
157 0.0165594520428288 0.0185570035730324 0 |
||||
158 0.0166050473039449 0.0186677780434563 0 |
||||
159 0.0165700478297475 0.0187476308123041 0 |
||||
160 0.0166062033856213 0.0184833070749635 0 |
||||
161 0.0165620390067611 0.0183987680202018 0 |
||||
162 0.0165990297819202 0.0183971864903508 0 |
||||
163 0.016574294763657 0.0184699862644854 0 |
||||
164 0.0165960321001693 0.0186248246702486 0 |
||||
165 0.016567221483977 0.0185793174579989 0 |
||||
166 0.0166072507684017 0.0187341727962561 0 |
||||
167 0.0165554031398131 0.0185118727160099 0 |
||||
168 0.0166002793830319 0.0185141533658448 0 |
||||
169 0.0165516576515327 0.0185683596905223 0 |
||||
170 0.0166026362123836 0.0185158860662092 0 |
||||
171 0.0165560230550254 0.0183562021741761 0 |
||||
172 0.0166113124082061 0.018351702145696 0 |
||||
173 0.0165672890064051 0.0183285858001638 0 |
||||
174 0.016604050693843 0.0184325741808572 0 |
||||
175 0.0165640243755198 0.0182299784613234 0 |
||||
176 0.0166057021144688 0.0183180300484981 0 |
||||
177 0.0165508046356384 0.0186951084852505 0 |
||||
178 0.0165935180674385 0.0184788363728647 0 |
||||
179 0.0165675029146658 0.0183958849576168 0 |
||||
180 0.0165893028882626 0.0184240855899527 0 |
||||
181 0.0165492090475113 0.0185323332784126 0 |
||||
182 0.0165956159735774 0.0186074587393249 0 |
||||
183 0.0165528561310127 0.0186410439047495 0 |
||||
184 0.0166073952349921 0.0184129410413568 0 |
||||
185 0.0165463099450159 0.0183934452819879 0 |
||||
186 0.0166001891786512 0.0185733495393955 0 |
||||
187 0.0165482056328235 0.0185109349700541 0 |
||||
188 0.0165952621351168 0.0185722325184776 0 |
||||
189 0.0165536456374398 0.0184577447695778 0 |
||||
190 0.0165997360630289 0.0184457087339014 0 |
||||
191 0.0165524916494821 0.0183168259212451 0 |
||||
192 0.0165986206343906 0.0184703884548581 0 |
||||
193 0.0165521507222869 0.0184217183574681 0 |
||||
194 0.016599824522644 0.0185029386434078 0 |
||||
195 0.0165434263709342 0.0186379566048659 0 |
||||
196 0.0166010940140834 0.018342027581965 0 |
||||
197 0.0165431388335659 0.0184254820843023 0 |
||||
198 0.0165863373101985 0.0186074793376165 0 |
||||
199 0.0165434326520903 0.0184241568111645 0 |
||||
200 0.0166064767903884 0.0182465302360413 0 |
||||
201 0.016561522556148 0.0184340305499022 0 |
||||
202 0.0165987263671851 0.0186743681002925 0 |
||||
203 0.0165499257972134 0.0184118549178763 0 |
||||
204 0.0165839637310972 0.0184971573313619 0 |
||||
205 0.0165457994266058 0.0183981095731159 0 |
||||
206 0.0165795458101604 0.018496162154576 0 |
||||
207 0.0165524665248577 0.0184611797965545 0 |
||||
208 0.016595737060309 0.0186299800037023 0 |
||||
209 0.0165466772181714 0.018466689839573 0 |
||||
210 0.0165879578484734 0.0186946017323634 0 |
||||
211 0.0165430683450362 0.0185245357776493 0 |
||||
212 0.0165948067512992 0.018476103782546 0 |
||||
213 0.0165396531408809 0.0182796915654308 0 |
||||
214 0.0165652856665609 0.0185767679830018 0 |
||||
215 0.0165523227561735 0.0183549425362727 0 |
||||
216 0.0165783818770389 0.0183019200896801 0 |
||||
217 0.0165503544861175 0.0185407187032971 0 |
||||
218 0.016572293692008 0.0184576592342989 0 |
||||
219 0.0165450638334354 0.0184396004676159 0 |
||||
220 0.0165749698134617 0.0183728665412509 0 |
||||
221 0.01655305398743 0.018711382183031 0 |
||||
222 0.0165967214570518 0.0185027394684012 0 |
||||
223 0.0165454616399886 0.0184419015411806 0 |
||||
224 0.0165946692637712 0.0184852501222893 0 |
||||
225 0.0165392806334286 0.0186597281263393 0 |
||||
226 0.0165890797327443 0.0187948452388963 0 |
||||
227 0.0165355112418597 0.0182642088071376 0 |
||||
228 0.0165804930433963 0.0186078693086637 0 |
||||
229 0.0165460245013662 0.0186437127800135 0 |
||||
230 0.0165847202614547 0.0185804302894338 0 |
||||
231 0.0165448417247764 0.0185832597615481 0 |
||||
232 0.0165611542361331 0.0185230038233477 0 |
||||
233 0.0165515342966058 0.0187595940557125 0 |
||||
234 0.0165765880835414 0.0185726041605364 0 |
||||
235 0.0165339756736686 0.018819251596084 0 |
||||
236 0.0165878632821788 0.0186927800054842 0 |
||||
237 0.0165440089481629 0.0187059691963698 0 |
||||
238 0.0165963711081224 0.0186125063681518 0 |
||||
239 0.0165516928957975 0.0187091867193515 0 |
||||
240 0.0165934388550809 0.0187669087185543 0 |
||||
241 0.0165544309564294 0.0187420275532877 0 |
||||
242 0.0165877533619469 0.0185165169325316 0 |
||||
243 0.0165399865655842 0.0184496782690904 0 |
||||
244 0.0165907330726123 0.0184827699483242 0 |
||||
245 0.016550628937744 0.0184833114390083 0 |
||||
246 0.0166034288593887 0.0188096297500146 0 |
||||
247 0.0165659505967252 0.0186457825592016 0 |
||||
248 0.0166105647761531 0.0186986550572133 0 |
||||
249 0.0165655829746165 0.018635516056428 0 |
||||
250 0.0166172674676229 0.0185666859920442 0 |
||||
251 0.0165796119367761 0.0185794000257273 0 |
||||
252 0.0166424952076873 0.0185533461543306 0 |
||||
253 0.0166246136286404 0.0186423201260233 0 |
||||
254 0.0167334388455894 0.0186220849228963 0 |
||||
255 0.0171297295465388 0.0196555486961812 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = DLAB_2018-06-11_15-23-57_730_586 |
||||
IDDevice = SAM_85B5 |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = BACK |
||||
IDDataTypeSub2 = |
||||
IDDataTypeSub3 = |
||||
DateTime = 2018-06-11 15:17:40 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = SAM Calibration Station |
||||
MethodName = SAM_Calibration_Station |
||||
Mission = |
||||
MissionSub = 0 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = |
||||
IDDataCal = |
||||
IntegrationTime = 8192 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $03 $05 Intensity counts |
||||
Unit3 = $03 $05 Intensity counts |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 12 0 0 |
||||
1 0.0164817607719245 0.0184759992200316 0 |
||||
2 0.0163219290778752 0.018442149942613 0 |
||||
3 0.0163731972698131 0.0187318928446685 0 |
||||
4 0.0164399246082603 0.0186864332877884 0 |
||||
5 0.0164430241843214 0.0188479230215774 0 |
||||
6 0.0163983356778795 0.0188454845678811 0 |
||||
7 0.0163990512062458 0.0188404723750983 0 |
||||
8 0.0163901000353671 0.0187262068433619 0 |
||||
9 0.0164207307910173 0.0187526368954241 0 |
||||
10 0.0164008709967505 0.018602897614217 0 |
||||
11 0.0164082743860791 0.0187456469175185 0 |
||||
12 0.0163908071888585 0.0186707166166917 0 |
||||
13 0.0164252516531235 0.0185607140585195 0 |
||||
14 0.0163975419840151 0.0187588039890341 0 |
||||
15 0.0164170151382283 0.0188965777575295 0 |
||||
16 0.0163836419600322 0.0187075898280626 0 |
||||
17 0.0164195574361616 0.0187674584136427 0 |
||||
18 0.0163940245365965 0.0186381709667486 0 |
||||
19 0.0164118187028877 0.0186427120172502 0 |
||||
20 0.016392199511795 0.0187927918685168 0 |
||||
21 0.0164065571877907 0.0186624507666358 0 |
||||
22 0.0163945228416475 0.0187624519813991 0 |
||||
23 0.0164219489863484 0.0187392302005435 0 |
||||
24 0.0163932453242865 0.0185522851677484 0 |
||||
25 0.0164305632429927 0.0186472895511667 0 |
||||
26 0.0163847816409121 0.018535703368402 0 |
||||
27 0.0164318688510797 0.0186348291557698 0 |
||||
28 0.0164176912348923 0.0186553691437886 0 |
||||
29 0.0164202520273408 0.0187121064399131 0 |
||||
30 0.0164088639423701 0.0186093935822463 0 |
||||
31 0.0164306347783817 0.0187113848014579 0 |
||||
32 0.0164189001829659 0.0186487433017847 0 |
||||
33 0.0164341838060573 0.0187725126758178 0 |
||||
34 0.0164138319878957 0.0187999361590481 0 |
||||
35 0.0164304957205646 0.0187205484228188 0 |
||||
36 0.016429661373662 0.0188728539369552 0 |
||||
37 0.0164248637917341 0.0187682175828836 0 |
||||
38 0.0164295341802509 0.0187626176405413 0 |
||||
39 0.0164375396881828 0.0188624825225437 0 |
||||
40 0.0164033339078497 0.0187837980957813 0 |
||||
41 0.0164426914575244 0.0188658971257905 0 |
||||
42 0.0164161851532397 0.0186604942780519 0 |
||||
43 0.0164508810382254 0.0189255700275998 0 |
||||
44 0.0164265781983975 0.0186329430155887 0 |
||||
45 0.0164319475400075 0.0188553270600577 0 |
||||
46 0.016422878946405 0.0187585744402754 0 |
||||
47 0.0164658096015204 0.0188853157288465 0 |
||||
48 0.016435585550728 0.0188095644639038 0 |
||||
49 0.016451332060129 0.0189702224107457 0 |
||||
50 0.0164379950720003 0.0190654765920908 0 |
||||
51 0.0164365183024095 0.0188298321355244 0 |
||||
52 0.0164243435026367 0.0189752702141345 0 |
||||
53 0.0164365261538547 0.0190654219542494 0 |
||||
54 0.0164254425304785 0.0188267308706973 0 |
||||
55 0.0164527732365019 0.0190373731906741 0 |
||||
56 0.0164500622197366 0.0189250398834323 0 |
||||
57 0.0164541095524632 0.0189864086530676 0 |
||||
58 0.0164375095037381 0.0190345625712336 0 |
||||
59 0.0164747180256422 0.0188082665969675 0 |
||||
60 0.0164484643634142 0.0190122781872102 0 |
||||
61 0.0164537975883766 0.0188972889222771 0 |
||||
62 0.0164461544682567 0.0185940174812091 0 |
||||
63 0.0164698387886849 0.0187732280300485 0 |
||||
64 0.0164431478882013 0.0188341576022108 0 |
||||
65 0.0164654240083262 0.0188008229329601 0 |
||||
66 0.0164472887403633 0.0188143481552986 0 |
||||
67 0.0164750846008916 0.0188958311567378 0 |
||||
68 0.016451503570586 0.0186248391588775 0 |
||||
69 0.0164619681511328 0.0188025980518404 0 |
||||
70 0.0164507452954629 0.0189280180821948 0 |
||||
71 0.0164756266995587 0.0188994067059584 0 |
||||
72 0.0164519861727467 0.0187979548826894 0 |
||||
73 0.0164677262265151 0.0188527726973303 0 |
||||
74 0.0164529956941139 0.0189566842708345 0 |
||||
75 0.0164743584294553 0.0188313071826812 0 |
||||
76 0.0164623034950781 0.0188952770976046 0 |
||||
77 0.0164737165301967 0.0189118414407716 0 |
||||
78 0.0164694078315855 0.0185289364804688 0 |
||||
79 0.0164841373171273 0.0186616668096203 0 |
||||
80 0.0164653304888909 0.0188390641851084 0 |
||||
81 0.0164847460658397 0.0188772853626504 0 |
||||
82 0.0164548329322745 0.0188133788136582 0 |
||||
83 0.0164595881163988 0.019095000402823 0 |
||||
84 0.016470273409792 0.0189106139222383 0 |
||||
85 0.0164793578807614 0.0190673035558238 0 |
||||
86 0.0164794932745707 0.0189999768176074 0 |
||||
87 0.0164779744561293 0.0188888352437313 0 |
||||
88 0.0164553809631447 0.0191460724704944 0 |
||||
89 0.0164876681992408 0.0188107766209993 0 |
||||
90 0.0164698851994495 0.0192259407753418 0 |
||||
91 0.0164899871671793 0.0189064331672789 0 |
||||
92 0.0164501525985938 0.0190127816234232 0 |
||||
93 0.0164753983097437 0.0187168141969277 0 |
||||
94 0.0164809215396783 0.0190825361670666 0 |
||||
95 0.0164902986078362 0.0190127334443682 0 |
||||
96 0.0164763052388946 0.0191085322585096 0 |
||||
97 0.0164924607213486 0.0188582193744177 0 |
||||
98 0.0164652690731423 0.0188903102908881 0 |
||||
99 0.0164867010756773 0.0189330562846849 0 |
||||
100 0.0164660367699995 0.0190078099289766 0 |
||||
101 0.0164911903575265 0.0189027331554994 0 |
||||
102 0.0164677717648968 0.0189810824236179 0 |
||||
103 0.0165022066329511 0.0189551510946003 0 |
||||
104 0.0164662370690886 0.0189044651576166 0 |
||||
105 0.016489524978776 0.0187674423539577 0 |
||||
106 0.0164685029961533 0.0189472727717265 0 |
||||
107 0.0164921269476923 0.0189907035714401 0 |
||||
108 0.0164558499561338 0.019064578646224 0 |
||||
109 0.0164738716398572 0.0188920054604669 0 |
||||
110 0.0164762743565437 0.0190449437611056 0 |
||||
111 0.0164791764251406 0.018889919447032 0 |
||||
112 0.0164705429760749 0.0187988736014097 0 |
||||
113 0.0164789927013245 0.0192020416947266 0 |
||||
114 0.016473611669785 0.0188233049209339 0 |
||||
115 0.0164614993326202 0.0187371501222097 0 |
||||
116 0.0164598238342293 0.0189721827396891 0 |
||||
117 0.0164727508024456 0.0188261000043749 0 |
||||
118 0.0164582863467961 0.0186942695412699 0 |
||||
119 0.0164685862214717 0.0189034198815958 0 |
||||
120 0.0164525792185689 0.0187198665844525 0 |
||||
121 0.0164773030703324 0.0186137942850658 0 |
||||
122 0.0164670838038268 0.0189533499660128 0 |
||||
123 0.0164831073820027 0.0187808211189513 0 |
||||
124 0.0164667688736388 0.0188594921044556 0 |
||||
125 0.0164761180255473 0.0188539249797306 0 |
||||
126 0.0164464892887724 0.0188040633235368 0 |
||||
127 0.0164720077067831 0.0187732121449252 0 |
||||
128 0.0164452072350208 0.018962250173627 0 |
||||
129 0.0164870899839261 0.0190127418233343 0 |
||||
130 0.016459772189168 0.0191750319229475 0 |
||||
131 0.0164701266750064 0.0189599365316131 0 |
||||
132 0.0164611727125027 0.0190203120446422 0 |
||||
133 0.0164680781457335 0.0190216017071741 0 |
||||
134 0.0164568425532749 0.0186128352425711 0 |
||||
135 0.0164788192716254 0.019228758377254 0 |
||||
136 0.0164516724638946 0.0189206767113985 0 |
||||
137 0.016478949431138 0.0188962342199195 0 |
||||
138 0.0164561298165336 0.0191006190232771 0 |
||||
139 0.0164755542917869 0.0190500058785614 0 |
||||
140 0.0164556124935377 0.0187485043195198 0 |
||||
141 0.0164507196474088 0.0190170367417068 0 |
||||
142 0.0164471687004911 0.0188547895842948 0 |
||||
143 0.0164601098013086 0.0188974739577785 0 |
||||
144 0.0164608579567913 0.0189445812034293 0 |
||||
145 0.0164729301643477 0.0189157249169963 0 |
||||
146 0.0164409632672129 0.0191215468876016 0 |
||||
147 0.0164714560119053 0.0187773754437052 0 |
||||
148 0.016453806137728 0.0190317306552542 0 |
||||
149 0.016458409701723 0.0190325910703354 0 |
||||
150 0.016446300156183 0.0190408668704134 0 |
||||
151 0.0164759950195736 0.0189401984804746 0 |
||||
152 0.0164447300416335 0.0190495591749313 0 |
||||
153 0.0164623949207948 0.0187950388279255 0 |
||||
154 0.0164359400870948 0.0189297027780659 0 |
||||
155 0.0164562215912033 0.0189593482583683 0 |
||||
156 0.0164493753055259 0.0190509148218212 0 |
||||
157 0.0164598233107996 0.0188672314761416 0 |
||||
158 0.0164437951962332 0.0189148159737365 0 |
||||
159 0.0164648208428636 0.0191385526975449 0 |
||||
160 0.0164373709693507 0.0190494453606418 0 |
||||
161 0.0164554146371204 0.0190579196374793 0 |
||||
162 0.0164451486108972 0.019121285044911 0 |
||||
163 0.0164645650602289 0.019044043895059 0 |
||||
164 0.0164504392635794 0.0186976181601587 0 |
||||
165 0.0164504671798287 0.0189873739797868 0 |
||||
166 0.0164356687760464 0.0191378319318987 0 |
||||
167 0.0164534369453303 0.0190663267080262 0 |
||||
168 0.0164388145883954 0.0190936695437077 0 |
||||
169 0.0164527186253391 0.0191095358142617 0 |
||||
170 0.0164332435518838 0.0189574708462769 0 |
||||
171 0.0164442846029797 0.0187806189763942 0 |
||||
172 0.0164340580084587 0.0189485074472935 0 |
||||
173 0.0164485673045837 0.0187745148995917 0 |
||||
174 0.0164290273258486 0.018830215822347 0 |
||||
175 0.016450102349345 0.0188787988134019 0 |
||||
176 0.0164311430285965 0.0189920377472294 0 |
||||
177 0.0164412099770665 0.0188564391932454 0 |
||||
178 0.0164335047432918 0.0190900863137682 0 |
||||
179 0.0164442961184326 0.0189570108759505 0 |
||||
180 0.0164228450979527 0.0190537807773504 0 |
||||
181 0.016437492579512 0.0188639551258354 0 |
||||
182 0.0164196870722445 0.0189272838752905 0 |
||||
183 0.016438840061973 0.0189407244351591 0 |
||||
184 0.0164283787964808 0.0191445909645512 0 |
||||
185 0.0164416083070495 0.0190009035661702 0 |
||||
186 0.016412027202375 0.0190382999392369 0 |
||||
187 0.016431280341648 0.0191088417565699 0 |
||||
188 0.0164384511537241 0.0189974830278224 0 |
||||
189 0.0164345854510949 0.0189503359820826 0 |
||||
190 0.0164129589071972 0.0189001894410414 0 |
||||
191 0.0164313105260926 0.0186533777428459 0 |
||||
192 0.0164068407121982 0.0188463448084005 0 |
||||
193 0.0164422922551586 0.0188216286040289 0 |
||||
194 0.0164141230147952 0.0190486301570651 0 |
||||
195 0.0164350718917399 0.0189039538661228 0 |
||||
196 0.0163981727167739 0.018976088908947 0 |
||||
197 0.0164302013786105 0.0186541344682217 0 |
||||
198 0.0164117635682952 0.0187053388537327 0 |
||||
199 0.0164348827591505 0.0188468777455567 0 |
||||
200 0.0164084963202615 0.0189798348304782 0 |
||||
201 0.0164184283983518 0.0190289182901957 0 |
||||
202 0.0164093013551022 0.0189938748355464 0 |
||||
203 0.0164248964188505 0.0188985777120001 0 |
||||
204 0.0163861197016389 0.0189140892729893 0 |
||||
205 0.0164414938504271 0.0189945299659582 0 |
||||
206 0.0163912936295035 0.0190288961208479 0 |
||||
207 0.0164153211453222 0.0188169428418004 0 |
||||
208 0.0164085420331198 0.0190174979339657 0 |
||||
209 0.0164144138672182 0.0187582286333621 0 |
||||
210 0.0163877472189763 0.0188360660863014 0 |
||||
211 0.016438808830669 0.0188666440757058 0 |
||||
212 0.0163928122734684 0.018693495185153 0 |
||||
213 0.016421485227656 0.0187786836097873 0 |
||||
214 0.0164041312657219 0.0186433495169208 0 |
||||
215 0.0164178255818423 0.0188323175463432 0 |
||||
216 0.0163971898903201 0.018976409578962 0 |
||||
217 0.0164201696744052 0.0187435457172076 0 |
||||
218 0.0163995320636409 0.018987845122068 0 |
||||
219 0.0164209146893099 0.0186761889543627 0 |
||||
220 0.0164032430055628 0.0190061624147675 0 |
||||
221 0.0164164507065617 0.0187835201934057 0 |
||||
222 0.0163974777766416 0.0188749633416704 0 |
||||
223 0.0164176661102679 0.0189686084124011 0 |
||||
224 0.0163930417101427 0.0188226435062976 0 |
||||
225 0.0164141233637484 0.0187423426373254 0 |
||||
226 0.01640118889304 0.018996327428748 0 |
||||
227 0.0164288055661428 0.0186609085131884 0 |
||||
228 0.0164032700494293 0.0187348848338127 0 |
||||
229 0.0164078024269885 0.0187956862776184 0 |
||||
230 0.0163929630212149 0.0190963977699816 0 |
||||
231 0.0164272534226787 0.0185138758125928 0 |
||||
232 0.0163858681064416 0.0187250730645117 0 |
||||
233 0.0164185958958479 0.0188906307863414 0 |
||||
234 0.0164030676566215 0.0188630606712045 0 |
||||
235 0.0164018004333774 0.0188464739841278 0 |
||||
236 0.0163995488133905 0.0189781192371696 0 |
||||
237 0.0164085041717066 0.0187965507076208 0 |
||||
238 0.0163987202242144 0.0186990834318551 0 |
||||
239 0.0164206611748704 0.0186847039040981 0 |
||||
240 0.0164022528510935 0.0187928330651002 0 |
||||
241 0.0164241117977671 0.0187593187717638 0 |
||||
242 0.016396216660077 0.0188783466983562 0 |
||||
243 0.0164233505565425 0.0187352552539389 0 |
||||
244 0.0164139434784166 0.0188740873905896 0 |
||||
245 0.0164194745597963 0.0187454707846687 0 |
||||
246 0.0163983088084895 0.0189869951806945 0 |
||||
247 0.016435900480916 0.0189396802065091 0 |
||||
248 0.0164233186273323 0.0187842685398153 0 |
||||
249 0.0164390513530853 0.0186674191444085 0 |
||||
250 0.0164271529241811 0.0189300391586424 0 |
||||
251 0.0164633723384753 0.0190247289817084 0 |
||||
252 0.016452145295368 0.01897844723878 0 |
||||
253 0.0165066871909724 0.0188266460336656 0 |
||||
254 0.0165379624630295 0.019144633383067 0 |
||||
255 0.0170330815720343 0.0204797029287844 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = AquaDLAB_2016-12-07_12-02-43_591_545 |
||||
IDDevice = SAM_852F |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = CAL |
||||
IDDataTypeSub2 = Aqua |
||||
IDDataTypeSub3 = |
||||
DateTime = 2016-12-07 12:01:43 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = |
||||
MethodName = |
||||
Mission = No Mission |
||||
MissionSub = 1 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = DLAB_2016-11-29_14-47-59_729_812 |
||||
IDDataCal = |
||||
IntegrationTime = 256 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $04 $09 1/Intensity (m^2 nm)/mW |
||||
Unit3 = $04 $09 1/Intensity (m^2 nm)/mW |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 7 0 0 |
||||
1 +NAN 0 0 |
||||
2 +NAN 0 0 |
||||
3 +NAN 0 0 |
||||
4 +NAN 0 0 |
||||
5 0.0757791569140749 0 0 |
||||
6 0.0831133762408903 0 0 |
||||
7 0.0873256015093429 0 0 |
||||
8 0.088798490578607 0 0 |
||||
9 0.0893180250587088 0 0 |
||||
10 0.0912184306930603 0 0 |
||||
11 0.0934315009445713 0 0 |
||||
12 0.0978927038642625 0 0 |
||||
13 0.10316713605413 0 0 |
||||
14 0.111042352696646 0 0 |
||||
15 0.119482024262908 0 0 |
||||
16 0.129446496806651 0 0 |
||||
17 0.140324929207819 0 0 |
||||
18 0.149929004563169 0 0 |
||||
19 0.157951375798488 0 0 |
||||
20 0.163167079267684 0 0 |
||||
21 0.163684554455683 0 0 |
||||
22 0.161710955408623 0 0 |
||||
23 0.158158176144384 0 0 |
||||
24 0.153120816765498 0 0 |
||||
25 0.149159625705894 0 0 |
||||
26 0.146361065436421 0 0 |
||||
27 0.144318454214309 0 0 |
||||
28 0.144129633718655 0 0 |
||||
29 0.144738939517372 0 0 |
||||
30 0.146583353055999 0 0 |
||||
31 0.149927549178646 0 0 |
||||
32 0.154781330782628 0 0 |
||||
33 0.161281049713208 0 0 |
||||
34 0.169324782015295 0 0 |
||||
35 0.178566729488516 0 0 |
||||
36 0.188750791302883 0 0 |
||||
37 0.199826540979236 0 0 |
||||
38 0.211193704798505 0 0 |
||||
39 0.222305048038871 0 0 |
||||
40 0.232787040612667 0 0 |
||||
41 0.242185638548782 0 0 |
||||
42 0.249199329450493 0 0 |
||||
43 0.253905646769863 0 0 |
||||
44 0.255480704613068 0 0 |
||||
45 0.254086308176615 0 0 |
||||
46 0.250712203525897 0 0 |
||||
47 0.245637528877396 0 0 |
||||
48 0.239859851966525 0 0 |
||||
49 0.233843628655063 0 0 |
||||
50 0.228059104546805 0 0 |
||||
51 0.222661940533832 0 0 |
||||
52 0.218199567518201 0 0 |
||||
53 0.214240155949967 0 0 |
||||
54 0.21061280671042 0 0 |
||||
55 0.206823867975479 0 0 |
||||
56 0.202504211638902 0 0 |
||||
57 0.198378089686984 0 0 |
||||
58 0.195008429198418 0 0 |
||||
59 0.192596053511712 0 0 |
||||
60 0.1913409806608 0 0 |
||||
61 0.191204589224151 0 0 |
||||
62 0.191982450755957 0 0 |
||||
63 0.193875999271111 0 0 |
||||
64 0.196568015329539 0 0 |
||||
65 0.200197325412529 0 0 |
||||
66 0.204781342874412 0 0 |
||||
67 0.210052890237844 0 0 |
||||
68 0.215505542064364 0 0 |
||||
69 0.22102191587617 0 0 |
||||
70 0.225647984382987 0 0 |
||||
71 0.229501509141454 0 0 |
||||
72 0.232213608637945 0 0 |
||||
73 0.233859853462842 0 0 |
||||
74 0.234864695710533 0 0 |
||||
75 0.235347731196379 0 0 |
||||
76 0.235169523165461 0 0 |
||||
77 0.2348286160222 0 0 |
||||
78 0.23395735104209 0 0 |
||||
79 0.232593294508701 0 0 |
||||
80 0.230910869907075 0 0 |
||||
81 0.228844605598996 0 0 |
||||
82 0.226021135136259 0 0 |
||||
83 0.222713212172475 0 0 |
||||
84 0.218813740820075 0 0 |
||||
85 0.214437631947854 0 0 |
||||
86 0.20945948892298 0 0 |
||||
87 0.203847193841702 0 0 |
||||
88 0.197707092492944 0 0 |
||||
89 0.191556734852924 0 0 |
||||
90 0.18600061167507 0 0 |
||||
91 0.181873354953207 0 0 |
||||
92 0.178782316057322 0 0 |
||||
93 0.176167924779435 0 0 |
||||
94 0.174141863608666 0 0 |
||||
95 0.172744990342331 0 0 |
||||
96 0.171801376758966 0 0 |
||||
97 0.170954015345458 0 0 |
||||
98 0.169960140045412 0 0 |
||||
99 0.168049955384139 0 0 |
||||
100 0.165224777136175 0 0 |
||||
101 0.161531979240228 0 0 |
||||
102 0.157405412608478 0 0 |
||||
103 0.153570487964493 0 0 |
||||
104 0.150141271545146 0 0 |
||||
105 0.14725256652001 0 0 |
||||
106 0.144660342475923 0 0 |
||||
107 0.142269456600007 0 0 |
||||
108 0.139762314536934 0 0 |
||||
109 0.136963054606891 0 0 |
||||
110 0.133984343960448 0 0 |
||||
111 0.131197679174342 0 0 |
||||
112 0.129003116254732 0 0 |
||||
113 0.127069994503092 0 0 |
||||
114 0.125436648144931 0 0 |
||||
115 0.12397269238396 0 0 |
||||
116 0.122419985358787 0 0 |
||||
117 0.120693422850158 0 0 |
||||
118 0.118931546980571 0 0 |
||||
119 0.117166660339047 0 0 |
||||
120 0.115631793601506 0 0 |
||||
121 0.114393230429202 0 0 |
||||
122 0.113425752529033 0 0 |
||||
123 0.112707849783804 0 0 |
||||
124 0.112359222280159 0 0 |
||||
125 0.11219082672674 0 0 |
||||
126 0.112343608199868 0 0 |
||||
127 0.112664705152637 0 0 |
||||
128 0.112877954686814 0 0 |
||||
129 0.112998494144185 0 0 |
||||
130 0.112887922565457 0 0 |
||||
131 0.11253063359053 0 0 |
||||
132 0.111841159102354 0 0 |
||||
133 0.110997003525569 0 0 |
||||
134 0.109948198155768 0 0 |
||||
135 0.108874849717231 0 0 |
||||
136 0.107795318097265 0 0 |
||||
137 0.106637360724801 0 0 |
||||
138 0.105678694194695 0 0 |
||||
139 0.104756017092462 0 0 |
||||
140 0.103825430274706 0 0 |
||||
141 0.102939456306441 0 0 |
||||
142 0.102001186921616 0 0 |
||||
143 0.100737446991222 0 0 |
||||
144 0.0991453606719906 0 0 |
||||
145 0.0971498679860747 0 0 |
||||
146 0.0948117209915638 0 0 |
||||
147 0.0924075366042346 0 0 |
||||
148 0.0899484551808979 0 0 |
||||
149 0.0873520434504222 0 0 |
||||
150 0.0848497958878303 0 0 |
||||
151 0.0823900490277647 0 0 |
||||
152 0.0799786063537234 0 0 |
||||
153 0.0776610830064481 0 0 |
||||
154 0.0752837851752474 0 0 |
||||
155 0.0729604964467151 0 0 |
||||
156 0.0707262742573907 0 0 |
||||
157 0.0684046065784823 0 0 |
||||
158 0.0660274200992436 0 0 |
||||
159 0.0636252573638505 0 0 |
||||
160 0.0612270512870042 0 0 |
||||
161 0.0587905905539405 0 0 |
||||
162 0.0563195707029216 0 0 |
||||
163 0.0538582650571118 0 0 |
||||
164 0.0514203967394221 0 0 |
||||
165 0.0490721477077881 0 0 |
||||
166 0.0468328465329872 0 0 |
||||
167 0.044723244642693 0 0 |
||||
168 0.0427398639178554 0 0 |
||||
169 0.0408841538190041 0 0 |
||||
170 0.0391762093418711 0 0 |
||||
171 0.0375882143782858 0 0 |
||||
172 0.0361234008364646 0 0 |
||||
173 0.0347811387811729 0 0 |
||||
174 0.0335210387242261 0 0 |
||||
175 0.0323747022105674 0 0 |
||||
176 0.0312594345687719 0 0 |
||||
177 0.030174948252246 0 0 |
||||
178 0.0291339080526091 0 0 |
||||
179 0.0281312995576928 0 0 |
||||
180 0.027138393963344 0 0 |
||||
181 0.0260756668210364 0 0 |
||||
182 0.0250906058668046 0 0 |
||||
183 0.0240551778532538 0 0 |
||||
184 0.0230712653382013 0 0 |
||||
185 0.0221310389230639 0 0 |
||||
186 0.0211757703478467 0 0 |
||||
187 0.0202209094313405 0 0 |
||||
188 0.0192572613107586 0 0 |
||||
189 0.0182920464007378 0 0 |
||||
190 0.0172950661682144 0 0 |
||||
191 0.0163207919630062 0 0 |
||||
192 0.0153269728531649 0 0 |
||||
193 0.0143853788804443 0 0 |
||||
194 0.0135213976548868 0 0 |
||||
195 0.0127456574145877 0 0 |
||||
196 0.0120278700767597 0 0 |
||||
197 +NAN 0 0 |
||||
198 +NAN 0 0 |
||||
199 +NAN 0 0 |
||||
200 +NAN 0 0 |
||||
201 +NAN 0 0 |
||||
202 +NAN 0 0 |
||||
203 +NAN 0 0 |
||||
204 +NAN 0 0 |
||||
205 +NAN 0 0 |
||||
206 +NAN 0 0 |
||||
207 +NAN 0 0 |
||||
208 +NAN 0 0 |
||||
209 +NAN 0 0 |
||||
210 +NAN 0 0 |
||||
211 +NAN 0 0 |
||||
212 +NAN 0 0 |
||||
213 +NAN 0 0 |
||||
214 +NAN 0 0 |
||||
215 +NAN 0 0 |
||||
216 +NAN 0 0 |
||||
217 +NAN 0 0 |
||||
218 +NAN 0 0 |
||||
219 +NAN 0 0 |
||||
220 +NAN 0 0 |
||||
221 +NAN 0 0 |
||||
222 +NAN 0 0 |
||||
223 +NAN 0 0 |
||||
224 +NAN 0 0 |
||||
225 +NAN 0 0 |
||||
226 +NAN 0 0 |
||||
227 +NAN 0 0 |
||||
228 +NAN 0 0 |
||||
229 +NAN 0 0 |
||||
230 +NAN 0 0 |
||||
231 +NAN 0 0 |
||||
232 +NAN 0 0 |
||||
233 +NAN 0 0 |
||||
234 +NAN 0 0 |
||||
235 +NAN 0 0 |
||||
236 +NAN 0 0 |
||||
237 +NAN 0 0 |
||||
238 +NAN 0 0 |
||||
239 +NAN 0 0 |
||||
240 +NAN 0 0 |
||||
241 +NAN 0 0 |
||||
242 +NAN 0 0 |
||||
243 +NAN 0 0 |
||||
244 +NAN 0 0 |
||||
245 +NAN 0 0 |
||||
246 +NAN 0 0 |
||||
247 +NAN 0 0 |
||||
248 +NAN 0 0 |
||||
249 +NAN 0 0 |
||||
250 +NAN 0 0 |
||||
251 +NAN 0 0 |
||||
252 +NAN 0 0 |
||||
253 +NAN 0 0 |
||||
254 +NAN 0 0 |
||||
255 +NAN 0 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = DLAB_2018-05-24_13-29-21_895_177 |
||||
IDDevice = SAM_859F |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = CAL |
||||
IDDataTypeSub2 = Aqua |
||||
IDDataTypeSub3 = |
||||
DateTime = 2018-05-24 13:29:21 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = |
||||
MethodName = |
||||
Mission = No Mission |
||||
MissionSub = 1 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = DLAB_2018-05-04_11-56-28_529_586 |
||||
IDDataCal = |
||||
IntegrationTime = 64 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit3 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 5 0 0 |
||||
1 +NAN 0 0 |
||||
2 +NAN 0 0 |
||||
3 +NAN 0 0 |
||||
4 +NAN 0 0 |
||||
5 0.308009257704273 0 0 |
||||
6 0.348985396550329 0 0 |
||||
7 0.39611199753429 0 0 |
||||
8 0.43986968240828 0 0 |
||||
9 0.477232425339663 0 0 |
||||
10 0.536318311921194 0 0 |
||||
11 0.599255756896796 0 0 |
||||
12 0.660195405447511 0 0 |
||||
13 0.721940911560072 0 0 |
||||
14 0.778381764258939 0 0 |
||||
15 0.806518994572799 0 0 |
||||
16 0.812862184246214 0 0 |
||||
17 0.800779958731845 0 0 |
||||
18 0.768238986615194 0 0 |
||||
19 0.729324871828135 0 0 |
||||
20 0.701235591002145 0 0 |
||||
21 0.674572715683613 0 0 |
||||
22 0.663056816542841 0 0 |
||||
23 0.662699926877705 0 0 |
||||
24 0.669382520005193 0 0 |
||||
25 0.684772623825422 0 0 |
||||
26 0.710275115045633 0 0 |
||||
27 0.74145572495904 0 0 |
||||
28 0.783988164111933 0 0 |
||||
29 0.834525694448954 0 0 |
||||
30 0.886966821712609 0 0 |
||||
31 0.949247521262016 0 0 |
||||
32 1.01565043430167 0 0 |
||||
33 1.07897249264832 0 0 |
||||
34 1.14377888540009 0 0 |
||||
35 1.19997013476615 0 0 |
||||
36 1.24429313837597 0 0 |
||||
37 1.2763795229717 0 0 |
||||
38 1.29391228294411 0 0 |
||||
39 1.29587029284695 0 0 |
||||
40 1.29012478792631 0 0 |
||||
41 1.27276079346714 0 0 |
||||
42 1.2450982196578 0 0 |
||||
43 1.21375364521069 0 0 |
||||
44 1.17906121512383 0 0 |
||||
45 1.14422362714978 0 0 |
||||
46 1.11315509839511 0 0 |
||||
47 1.08731507394343 0 0 |
||||
48 1.06746197368796 0 0 |
||||
49 1.05494171300318 0 0 |
||||
50 1.04869254224893 0 0 |
||||
51 1.04747349722362 0 0 |
||||
52 1.04822757370139 0 0 |
||||
53 1.04856210675178 0 0 |
||||
54 1.04679141002185 0 0 |
||||
55 1.04513065036628 0 0 |
||||
56 1.04725995618916 0 0 |
||||
57 1.0535067386541 0 0 |
||||
58 1.06471361999517 0 0 |
||||
59 1.08034380002613 0 0 |
||||
60 1.10113009018595 0 0 |
||||
61 1.12455239246124 0 0 |
||||
62 1.15132895471663 0 0 |
||||
63 1.1795169782144 0 0 |
||||
64 1.20798673857183 0 0 |
||||
65 1.23708055274173 0 0 |
||||
66 1.26532262623006 0 0 |
||||
67 1.29064822236823 0 0 |
||||
68 1.31210337451311 0 0 |
||||
69 1.32736540301797 0 0 |
||||
70 1.33430139824988 0 0 |
||||
71 1.33335932325033 0 0 |
||||
72 1.32335113190924 0 0 |
||||
73 1.30558590461423 0 0 |
||||
74 1.28227321775146 0 0 |
||||
75 1.25498704776805 0 0 |
||||
76 1.22525023251367 0 0 |
||||
77 1.19392661641762 0 0 |
||||
78 1.16317225749886 0 0 |
||||
79 1.13207700011805 0 0 |
||||
80 1.10111674556499 0 0 |
||||
81 1.07075040366943 0 0 |
||||
82 1.03893893539784 0 0 |
||||
83 1.0081446443131 0 0 |
||||
84 0.97774721715577 0 0 |
||||
85 0.947774052897518 0 0 |
||||
86 0.919152947182789 0 0 |
||||
87 0.894963764571428 0 0 |
||||
88 0.87836395884067 0 0 |
||||
89 0.867156996532193 0 0 |
||||
90 0.858153034494107 0 0 |
||||
91 0.851906778357719 0 0 |
||||
92 0.847981268808314 0 0 |
||||
93 0.844919850173329 0 0 |
||||
94 0.841944554421527 0 0 |
||||
95 0.83721825473176 0 0 |
||||
96 0.828398944802337 0 0 |
||||
97 0.815351600734525 0 0 |
||||
98 0.799543228463232 0 0 |
||||
99 0.782489183888857 0 0 |
||||
100 0.765962841341892 0 0 |
||||
101 0.751320667184625 0 0 |
||||
102 0.737812095757199 0 0 |
||||
103 0.725090001717255 0 0 |
||||
104 0.712873061263532 0 0 |
||||
105 0.698758948036327 0 0 |
||||
106 0.683766639638848 0 0 |
||||
107 0.672493396285743 0 0 |
||||
108 0.664610527729123 0 0 |
||||
109 0.658092136872804 0 0 |
||||
110 0.652228157780532 0 0 |
||||
111 0.645754399378545 0 0 |
||||
112 0.639368207275896 0 0 |
||||
113 0.633138158063289 0 0 |
||||
114 0.628392493836991 0 0 |
||||
115 0.626088937445665 0 0 |
||||
116 0.625599854321674 0 0 |
||||
117 0.627001238574581 0 0 |
||||
118 0.630202545823175 0 0 |
||||
119 0.632703647598273 0 0 |
||||
120 0.633210363154327 0 0 |
||||
121 0.63123164301687 0 0 |
||||
122 0.626485370072314 0 0 |
||||
123 0.618891745640103 0 0 |
||||
124 0.609361448964366 0 0 |
||||
125 0.598872648152344 0 0 |
||||
126 0.58927447780469 0 0 |
||||
127 0.580815044730471 0 0 |
||||
128 0.573341941514821 0 0 |
||||
129 0.567484926926375 0 0 |
||||
130 0.562800136636572 0 0 |
||||
131 0.558223116403165 0 0 |
||||
132 0.553158922485434 0 0 |
||||
133 0.547084299354418 0 0 |
||||
134 0.539847820827437 0 0 |
||||
135 0.531432360197925 0 0 |
||||
136 0.521203701656628 0 0 |
||||
137 0.509855867118928 0 0 |
||||
138 0.498554054755033 0 0 |
||||
139 0.487573187562371 0 0 |
||||
140 0.476425489189536 0 0 |
||||
141 0.466415695619565 0 0 |
||||
142 0.456641365086098 0 0 |
||||
143 0.446540473657011 0 0 |
||||
144 0.436135290849149 0 0 |
||||
145 0.424928637592468 0 0 |
||||
146 0.412541586513936 0 0 |
||||
147 0.399056656796071 0 0 |
||||
148 0.384717912438278 0 0 |
||||
149 0.369579305401316 0 0 |
||||
150 0.353784632326527 0 0 |
||||
151 0.337380068381195 0 0 |
||||
152 0.321095903578543 0 0 |
||||
153 0.305495669126019 0 0 |
||||
154 0.290421643260465 0 0 |
||||
155 0.276140762920409 0 0 |
||||
156 0.262854333224098 0 0 |
||||
157 0.250936131068681 0 0 |
||||
158 0.240006392992584 0 0 |
||||
159 0.229965608856624 0 0 |
||||
160 0.220954309792884 0 0 |
||||
161 0.212487857424938 0 0 |
||||
162 0.204661532835082 0 0 |
||||
163 0.197216204057537 0 0 |
||||
164 0.189605277840326 0 0 |
||||
165 0.182475141050851 0 0 |
||||
166 0.175121099828465 0 0 |
||||
167 0.167843462384963 0 0 |
||||
168 0.160673785509465 0 0 |
||||
169 0.153434661065448 0 0 |
||||
170 0.146286002352245 0 0 |
||||
171 0.139523451810534 0 0 |
||||
172 0.133107862589632 0 0 |
||||
173 0.126994143420237 0 0 |
||||
174 0.121367561058691 0 0 |
||||
175 0.116037239577153 0 0 |
||||
176 0.111252442566666 0 0 |
||||
177 0.106669531239736 0 0 |
||||
178 0.102319284531729 0 0 |
||||
179 0.098450973344807 0 0 |
||||
180 0.0947593486764351 0 0 |
||||
181 0.0911919684356708 0 0 |
||||
182 0.0879361030612687 0 0 |
||||
183 0.0844573547823388 0 0 |
||||
184 0.0813058869947144 0 0 |
||||
185 0.0782782092672921 0 0 |
||||
186 0.0751117681314502 0 0 |
||||
187 0.0722888539254525 0 0 |
||||
188 0.0693076153913147 0 0 |
||||
189 0.0660732713239472 0 0 |
||||
190 0.0627758734115707 0 0 |
||||
191 0.0592551057473219 0 0 |
||||
192 0.0560010918166818 0 0 |
||||
193 0.0532135140872552 0 0 |
||||
194 0.0505779890461858 0 0 |
||||
195 0.0480767985810033 0 0 |
||||
196 +NAN 0 0 |
||||
197 +NAN 0 0 |
||||
198 +NAN 0 0 |
||||
199 +NAN 0 0 |
||||
200 +NAN 0 0 |
||||
201 +NAN 0 0 |
||||
202 +NAN 0 0 |
||||
203 +NAN 0 0 |
||||
204 +NAN 0 0 |
||||
205 +NAN 0 0 |
||||
206 +NAN 0 0 |
||||
207 +NAN 0 0 |
||||
208 +NAN 0 0 |
||||
209 +NAN 0 0 |
||||
210 +NAN 0 0 |
||||
211 +NAN 0 0 |
||||
212 +NAN 0 0 |
||||
213 +NAN 0 0 |
||||
214 +NAN 0 0 |
||||
215 +NAN 0 0 |
||||
216 +NAN 0 0 |
||||
217 +NAN 0 0 |
||||
218 +NAN 0 0 |
||||
219 +NAN 0 0 |
||||
220 +NAN 0 0 |
||||
221 +NAN 0 0 |
||||
222 +NAN 0 0 |
||||
223 +NAN 0 0 |
||||
224 +NAN 0 0 |
||||
225 +NAN 0 0 |
||||
226 +NAN 0 0 |
||||
227 +NAN 0 0 |
||||
228 +NAN 0 0 |
||||
229 +NAN 0 0 |
||||
230 +NAN 0 0 |
||||
231 +NAN 0 0 |
||||
232 +NAN 0 0 |
||||
233 +NAN 0 0 |
||||
234 +NAN 0 0 |
||||
235 +NAN 0 0 |
||||
236 +NAN 0 0 |
||||
237 +NAN 0 0 |
||||
238 +NAN 0 0 |
||||
239 +NAN 0 0 |
||||
240 +NAN 0 0 |
||||
241 +NAN 0 0 |
||||
242 +NAN 0 0 |
||||
243 +NAN 0 0 |
||||
244 +NAN 0 0 |
||||
245 +NAN 0 0 |
||||
246 +NAN 0 0 |
||||
247 +NAN 0 0 |
||||
248 +NAN 0 0 |
||||
249 +NAN 0 0 |
||||
250 +NAN 0 0 |
||||
251 +NAN 0 0 |
||||
252 +NAN 0 0 |
||||
253 +NAN 0 0 |
||||
254 +NAN 0 0 |
||||
255 +NAN 0 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = DLAB_2018-06-13_11-58-21_312_112 |
||||
IDDevice = SAM_85B5 |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = CAL |
||||
IDDataTypeSub2 = Aqua |
||||
IDDataTypeSub3 = |
||||
DateTime = 2018-06-13 11:58:21 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = |
||||
MethodName = |
||||
Mission = No Mission |
||||
MissionSub = 1 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = DLAB_2018-06-11_15-23-57_730_586 |
||||
IDDataCal = |
||||
IntegrationTime = 64 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit3 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 5 0 0 |
||||
1 +NAN 0 0 |
||||
2 +NAN 0 0 |
||||
3 +NAN 0 0 |
||||
4 0.213368170535889 0 0 |
||||
5 0.269708461889978 0 0 |
||||
6 0.323681305990691 0 0 |
||||
7 0.361686162925288 0 0 |
||||
8 0.399727885563257 0 0 |
||||
9 0.426595980991839 0 0 |
||||
10 0.455395402116462 0 0 |
||||
11 0.489873358069589 0 0 |
||||
12 0.521706723967902 0 0 |
||||
13 0.569424753191682 0 0 |
||||
14 0.613678281579101 0 0 |
||||
15 0.668568867138568 0 0 |
||||
16 0.729648774358889 0 0 |
||||
17 0.791588424733509 0 0 |
||||
18 0.846278067578305 0 0 |
||||
19 0.889326585618736 0 0 |
||||
20 0.912464300651466 0 0 |
||||
21 0.912041091772509 0 0 |
||||
22 0.896201537846271 0 0 |
||||
23 0.875528861051999 0 0 |
||||
24 0.850358796139941 0 0 |
||||
25 0.830813460904554 0 0 |
||||
26 0.816907084374381 0 0 |
||||
27 0.809230927534884 0 0 |
||||
28 0.809079793968319 0 0 |
||||
29 0.815347896421343 0 0 |
||||
30 0.825892411944005 0 0 |
||||
31 0.84503183706585 0 0 |
||||
32 0.873670658313288 0 0 |
||||
33 0.907826486501149 0 0 |
||||
34 0.950360287322641 0 0 |
||||
35 1.00114116281862 0 0 |
||||
36 1.05504053595122 0 0 |
||||
37 1.11205216981838 0 0 |
||||
38 1.17221784963607 0 0 |
||||
39 1.22975299376536 0 0 |
||||
40 1.2826684244193 0 0 |
||||
41 1.32878263374036 0 0 |
||||
42 1.35908629098684 0 0 |
||||
43 1.37850707003827 0 0 |
||||
44 1.38104038663283 0 0 |
||||
45 1.36883708486346 0 0 |
||||
46 1.34742818899357 0 0 |
||||
47 1.31902470629713 0 0 |
||||
48 1.28498732451399 0 0 |
||||
49 1.25220172471482 0 0 |
||||
50 1.22068349763187 0 0 |
||||
51 1.1925789464318 0 0 |
||||
52 1.16935370804616 0 0 |
||||
53 1.14646179324841 0 0 |
||||
54 1.12109994325093 0 0 |
||||
55 1.09422415317439 0 0 |
||||
56 1.06828767805555 0 0 |
||||
57 1.04445396328421 0 0 |
||||
58 1.02753751191562 0 0 |
||||
59 1.01678817181089 0 0 |
||||
60 1.01144651696064 0 0 |
||||
61 1.01173798764201 0 0 |
||||
62 1.0164772818471 0 0 |
||||
63 1.02628160092791 0 0 |
||||
64 1.04098599390468 0 0 |
||||
65 1.05940120890642 0 0 |
||||
66 1.08286747681355 0 0 |
||||
67 1.10823034660724 0 0 |
||||
68 1.13310605067389 0 0 |
||||
69 1.1547273364889 0 0 |
||||
70 1.17166412724341 0 0 |
||||
71 1.183983471337 0 0 |
||||
72 1.19136561427902 0 0 |
||||
73 1.19606418873222 0 0 |
||||
74 1.19672161290192 0 0 |
||||
75 1.19671286046196 0 0 |
||||
76 1.19421014531398 0 0 |
||||
77 1.18916801665381 0 0 |
||||
78 1.18305692745573 0 0 |
||||
79 1.17490571141989 0 0 |
||||
80 1.16334076115534 0 0 |
||||
81 1.14948755782896 0 0 |
||||
82 1.13252619591223 0 0 |
||||
83 1.11230773028189 0 0 |
||||
84 1.09067725991727 0 0 |
||||
85 1.06664792919033 0 0 |
||||
86 1.03995448729021 0 0 |
||||
87 1.01197155529512 0 0 |
||||
88 0.982502268789757 0 0 |
||||
89 0.950934147643801 0 0 |
||||
90 0.921876981717461 0 0 |
||||
91 0.899503833526815 0 0 |
||||
92 0.884246887000271 0 0 |
||||
93 0.871798641947689 0 0 |
||||
94 0.860748919530635 0 0 |
||||
95 0.851106201938694 0 0 |
||||
96 0.841814387319495 0 0 |
||||
97 0.830400473286421 0 0 |
||||
98 0.814782119978127 0 0 |
||||
99 0.796371468702983 0 0 |
||||
100 0.774800085650998 0 0 |
||||
101 0.751694156127581 0 0 |
||||
102 0.729723545880894 0 0 |
||||
103 0.70902256138046 0 0 |
||||
104 0.69215621992056 0 0 |
||||
105 0.678393548274155 0 0 |
||||
106 0.667293944696908 0 0 |
||||
107 0.65649797079901 0 0 |
||||
108 0.6446860376968 0 0 |
||||
109 0.629464240966416 0 0 |
||||
110 0.615183928901848 0 0 |
||||
111 0.602591773736883 0 0 |
||||
112 0.590820336228123 0 0 |
||||
113 0.580150915843665 0 0 |
||||
114 0.571621329022329 0 0 |
||||
115 0.563766808252911 0 0 |
||||
116 0.556883367165026 0 0 |
||||
117 0.549917569359012 0 0 |
||||
118 0.542933812612894 0 0 |
||||
119 0.535932724580549 0 0 |
||||
120 0.528043359268253 0 0 |
||||
121 0.520231538772767 0 0 |
||||
122 0.513331529426342 0 0 |
||||
123 0.507286194391832 0 0 |
||||
124 0.502222099629004 0 0 |
||||
125 0.498298138845332 0 0 |
||||
126 0.496514280280116 0 0 |
||||
127 0.495442722847893 0 0 |
||||
128 0.494658216836534 0 0 |
||||
129 0.494062920786886 0 0 |
||||
130 0.492582820232232 0 0 |
||||
131 0.490091285479962 0 0 |
||||
132 0.485745623273317 0 0 |
||||
133 0.480328740541132 0 0 |
||||
134 0.473945880321646 0 0 |
||||
135 0.466683779528739 0 0 |
||||
136 0.458932848241851 0 0 |
||||
137 0.451064706693729 0 0 |
||||
138 0.443865689279125 0 0 |
||||
139 0.437073402888952 0 0 |
||||
140 0.430871678484112 0 0 |
||||
141 0.424656716266769 0 0 |
||||
142 0.418021794802865 0 0 |
||||
143 0.410821018781503 0 0 |
||||
144 0.402243888142941 0 0 |
||||
145 0.392571430814996 0 0 |
||||
146 0.381881477324506 0 0 |
||||
147 0.36994612437875 0 0 |
||||
148 0.35763078427341 0 0 |
||||
149 0.344551257226534 0 0 |
||||
150 0.332004497779552 0 0 |
||||
151 0.319784344441634 0 0 |
||||
152 0.307705241065949 0 0 |
||||
153 0.296024637721301 0 0 |
||||
154 0.285201831804588 0 0 |
||||
155 0.27477331903475 0 0 |
||||
156 0.2649271655017 0 0 |
||||
157 0.255311286750044 0 0 |
||||
158 0.245955888598912 0 0 |
||||
159 0.237139128199368 0 0 |
||||
160 0.228125758026999 0 0 |
||||
161 0.218973368669899 0 0 |
||||
162 0.210024147431339 0 0 |
||||
163 0.201001563461602 0 0 |
||||
164 0.192143502318544 0 0 |
||||
165 0.183367668918973 0 0 |
||||
166 0.17479218252589 0 0 |
||||
167 0.166354193257315 0 0 |
||||
168 0.158270839921817 0 0 |
||||
169 0.15057933833141 0 0 |
||||
170 0.14334907901495 0 0 |
||||
171 0.136492914420144 0 0 |
||||
172 0.130248971747009 0 0 |
||||
173 0.124351585245978 0 0 |
||||
174 0.119145124817533 0 0 |
||||
175 0.114204124468303 0 0 |
||||
176 0.10955932586493 0 0 |
||||
177 0.105201972954921 0 0 |
||||
178 0.100976345428583 0 0 |
||||
179 0.0970301944120184 0 0 |
||||
180 0.0930794320815323 0 0 |
||||
181 0.0893096045786908 0 0 |
||||
182 0.0855242301014967 0 0 |
||||
183 0.0818515687486457 0 0 |
||||
184 0.0783728272346642 0 0 |
||||
185 0.0747373637294556 0 0 |
||||
186 0.0714485344156491 0 0 |
||||
187 0.0680790457826121 0 0 |
||||
188 0.0647379875159452 0 0 |
||||
189 0.0614749247480892 0 0 |
||||
190 0.0581599202112611 0 0 |
||||
191 0.0547153945113677 0 0 |
||||
192 0.0515011739034831 0 0 |
||||
193 0.0485390098580295 0 0 |
||||
194 0.045947792932824 0 0 |
||||
195 0.0435560478479539 0 0 |
||||
196 0.0413612446534424 0 0 |
||||
197 +NAN 0 0 |
||||
198 +NAN 0 0 |
||||
199 +NAN 0 0 |
||||
200 +NAN 0 0 |
||||
201 +NAN 0 0 |
||||
202 +NAN 0 0 |
||||
203 +NAN 0 0 |
||||
204 +NAN 0 0 |
||||
205 +NAN 0 0 |
||||
206 +NAN 0 0 |
||||
207 +NAN 0 0 |
||||
208 +NAN 0 0 |
||||
209 +NAN 0 0 |
||||
210 +NAN 0 0 |
||||
211 +NAN 0 0 |
||||
212 +NAN 0 0 |
||||
213 +NAN 0 0 |
||||
214 +NAN 0 0 |
||||
215 +NAN 0 0 |
||||
216 +NAN 0 0 |
||||
217 +NAN 0 0 |
||||
218 +NAN 0 0 |
||||
219 +NAN 0 0 |
||||
220 +NAN 0 0 |
||||
221 +NAN 0 0 |
||||
222 +NAN 0 0 |
||||
223 +NAN 0 0 |
||||
224 +NAN 0 0 |
||||
225 +NAN 0 0 |
||||
226 +NAN 0 0 |
||||
227 +NAN 0 0 |
||||
228 +NAN 0 0 |
||||
229 +NAN 0 0 |
||||
230 +NAN 0 0 |
||||
231 +NAN 0 0 |
||||
232 +NAN 0 0 |
||||
233 +NAN 0 0 |
||||
234 +NAN 0 0 |
||||
235 +NAN 0 0 |
||||
236 +NAN 0 0 |
||||
237 +NAN 0 0 |
||||
238 +NAN 0 0 |
||||
239 +NAN 0 0 |
||||
240 +NAN 0 0 |
||||
241 +NAN 0 0 |
||||
242 +NAN 0 0 |
||||
243 +NAN 0 0 |
||||
244 +NAN 0 0 |
||||
245 +NAN 0 0 |
||||
246 +NAN 0 0 |
||||
247 +NAN 0 0 |
||||
248 +NAN 0 0 |
||||
249 +NAN 0 0 |
||||
250 +NAN 0 0 |
||||
251 +NAN 0 0 |
||||
252 +NAN 0 0 |
||||
253 +NAN 0 0 |
||||
254 +NAN 0 0 |
||||
255 +NAN 0 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = AirDLAB_2016-12-07_12-00-24_364_510 |
||||
IDDevice = SAM_852F |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = CAL |
||||
IDDataTypeSub2 = Air |
||||
IDDataTypeSub3 = |
||||
DateTime = 2016-12-07 11:59:26 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = |
||||
MethodName = |
||||
Mission = No Mission |
||||
MissionSub = 1 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = DLAB_2016-11-29_14-47-59_729_812 |
||||
IDDataCal = |
||||
IntegrationTime = 128 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $04 $09 1/Intensity (m^2 nm)/mW |
||||
Unit3 = $04 $09 1/Intensity (m^2 nm)/mW |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 6 0 0 |
||||
1 +NAN 0 0 |
||||
2 +NAN 0 0 |
||||
3 +NAN 0 0 |
||||
4 +NAN 0 0 |
||||
5 0.099081925071204 0 0 |
||||
6 0.107353085872454 0 0 |
||||
7 0.113070264290883 0 0 |
||||
8 0.114376499819276 0 0 |
||||
9 0.116544285861757 0 0 |
||||
10 0.1185169696214 0 0 |
||||
11 0.121561138979849 0 0 |
||||
12 0.126964155564462 0 0 |
||||
13 0.134364254054539 0 0 |
||||
14 0.144053858633949 0 0 |
||||
15 0.154882735476408 0 0 |
||||
16 0.16719673162462 0 0 |
||||
17 0.181437615712041 0 0 |
||||
18 0.194237970806716 0 0 |
||||
19 0.20386154720656 0 0 |
||||
20 0.211556336359081 0 0 |
||||
21 0.211417859085921 0 0 |
||||
22 0.208790218500257 0 0 |
||||
23 0.20437467341685 0 0 |
||||
24 0.198246352046376 0 0 |
||||
25 0.192966396099738 0 0 |
||||
26 0.18897229193584 0 0 |
||||
27 0.186243043953596 0 0 |
||||
28 0.18578727224224 0 0 |
||||
29 0.187114583931684 0 0 |
||||
30 0.189090911319999 0 0 |
||||
31 0.193600418301244 0 0 |
||||
32 0.200054490546523 0 0 |
||||
33 0.208072057884887 0 0 |
||||
34 0.218285958582262 0 0 |
||||
35 0.230634876630779 0 0 |
||||
36 0.243459214546046 0 0 |
||||
37 0.257752719558026 0 0 |
||||
38 0.272580246630834 0 0 |
||||
39 0.286712281491418 0 0 |
||||
40 0.300342726342385 0 0 |
||||
41 0.312249154496702 0 0 |
||||
42 0.321331680226083 0 0 |
||||
43 0.327112591435919 0 0 |
||||
44 0.329469692698771 0 0 |
||||
45 0.327542874308678 0 0 |
||||
46 0.322985767437387 0 0 |
||||
47 0.316224456423823 0 0 |
||||
48 0.308782990589082 0 0 |
||||
49 0.301183418606427 0 0 |
||||
50 0.293575702556702 0 0 |
||||
51 0.286696408065096 0 0 |
||||
52 0.280798842600295 0 0 |
||||
53 0.275808444038661 0 0 |
||||
54 0.271299340181449 0 0 |
||||
55 0.266225534078626 0 0 |
||||
56 0.260785177597799 0 0 |
||||
57 0.255342424416527 0 0 |
||||
58 0.250947812402455 0 0 |
||||
59 0.24777514930692 0 0 |
||||
60 0.246247860756574 0 0 |
||||
61 0.246092032695547 0 0 |
||||
62 0.247219177075727 0 0 |
||||
63 0.249675195006791 0 0 |
||||
64 0.253195744885965 0 0 |
||||
65 0.257788026175471 0 0 |
||||
66 0.26369589320837 0 0 |
||||
67 0.270555680751329 0 0 |
||||
68 0.277823002163503 0 0 |
||||
69 0.284937579021833 0 0 |
||||
70 0.291097253127256 0 0 |
||||
71 0.296043211270752 0 0 |
||||
72 0.299540235735164 0 0 |
||||
73 0.301795150475552 0 0 |
||||
74 0.303069111244916 0 0 |
||||
75 0.30355995799167 0 0 |
||||
76 0.303606664702465 0 0 |
||||
77 0.303007474849756 0 0 |
||||
78 0.302001653949665 0 0 |
||||
79 0.300361927400822 0 0 |
||||
80 0.297986890885497 0 0 |
||||
81 0.295325565249305 0 0 |
||||
82 0.291656567474701 0 0 |
||||
83 0.287335862742648 0 0 |
||||
84 0.282306131698578 0 0 |
||||
85 0.276702242286357 0 0 |
||||
86 0.270280607979823 0 0 |
||||
87 0.263050805729498 0 0 |
||||
88 0.255009286552014 0 0 |
||||
89 0.247098798503932 0 0 |
||||
90 0.2398191835424 0 0 |
||||
91 0.23466817932016 0 0 |
||||
92 0.230585310303585 0 0 |
||||
93 0.227279061892254 0 0 |
||||
94 0.224693206022759 0 0 |
||||
95 0.222993136629962 0 0 |
||||
96 0.221791418806722 0 0 |
||||
97 0.220695274517678 0 0 |
||||
98 0.219442816624831 0 0 |
||||
99 0.217000405185694 0 0 |
||||
100 0.213283732282521 0 0 |
||||
101 0.208384750595562 0 0 |
||||
102 0.202985389753009 0 0 |
||||
103 0.197924660371165 0 0 |
||||
104 0.193409646692029 0 0 |
||||
105 0.189628652821804 0 0 |
||||
106 0.186318519164064 0 0 |
||||
107 0.183315563032657 0 0 |
||||
108 0.180098687261504 0 0 |
||||
109 0.176492614557115 0 0 |
||||
110 0.172650422408531 0 0 |
||||
111 0.168979191040057 0 0 |
||||
112 0.166106531649937 0 0 |
||||
113 0.163622827054655 0 0 |
||||
114 0.161570328667133 0 0 |
||||
115 0.159693607722301 0 0 |
||||
116 0.157690305409947 0 0 |
||||
117 0.15544650006387 0 0 |
||||
118 0.153185383511044 0 0 |
||||
119 0.150954772341381 0 0 |
||||
120 0.148960802743881 0 0 |
||||
121 0.147350785081686 0 0 |
||||
122 0.146182367433256 0 0 |
||||
123 0.145312879880878 0 0 |
||||
124 0.144781245193999 0 0 |
||||
125 0.14473607505965 0 0 |
||||
126 0.144976432177203 0 0 |
||||
127 0.145464936657928 0 0 |
||||
128 0.145889790468872 0 0 |
||||
129 0.146174517595681 0 0 |
||||
130 0.14615421098877 0 0 |
||||
131 0.145743119998859 0 0 |
||||
132 0.144922809795091 0 0 |
||||
133 0.143805231938307 0 0 |
||||
134 0.142492952453543 0 0 |
||||
135 0.141053445832183 0 0 |
||||
136 0.139720571628269 0 0 |
||||
137 0.138186469198598 0 0 |
||||
138 0.136919534961634 0 0 |
||||
139 0.135732624874463 0 0 |
||||
140 0.134597268963386 0 0 |
||||
141 0.133432724955799 0 0 |
||||
142 0.13211501546202 0 0 |
||||
143 0.130478475600008 0 0 |
||||
144 0.128290801143951 0 0 |
||||
145 0.125726707508103 0 0 |
||||
146 0.122634784100445 0 0 |
||||
147 0.119472073398083 0 0 |
||||
148 0.116199128230447 0 0 |
||||
149 0.112813911251756 0 0 |
||||
150 0.109547291781198 0 0 |
||||
151 0.106268392530964 0 0 |
||||
152 0.10313443150471 0 0 |
||||
153 0.100113578226984 0 0 |
||||
154 0.097073834113113 0 0 |
||||
155 0.0941199411272616 0 0 |
||||
156 0.0911853891891621 0 0 |
||||
157 0.0882319764053268 0 0 |
||||
158 0.085267274530049 0 0 |
||||
159 0.0822333903307463 0 0 |
||||
160 0.0792187073154596 0 0 |
||||
161 0.0760907077820793 0 0 |
||||
162 0.0728848234132589 0 0 |
||||
163 0.0697048920692252 0 0 |
||||
164 0.0665600438164166 0 0 |
||||
165 0.0635411651500916 0 0 |
||||
166 0.0606319242880778 0 0 |
||||
167 0.0578670530064308 0 0 |
||||
168 0.0553155735461356 0 0 |
||||
169 0.0529193006810867 0 0 |
||||
170 0.050722718025932 0 0 |
||||
171 0.0486788470977319 0 0 |
||||
172 0.0467747209472673 0 0 |
||||
173 0.0450423813898501 0 0 |
||||
174 0.0434307741189043 0 0 |
||||
175 0.041915712424757 0 0 |
||||
176 0.0405250313895705 0 0 |
||||
177 0.0390895391040532 0 0 |
||||
178 0.0377897158697839 0 0 |
||||
179 0.0365016922380464 0 0 |
||||
180 0.0351788001916396 0 0 |
||||
181 0.0338645937424847 0 0 |
||||
182 0.0325302009051183 0 0 |
||||
183 0.0312848146149282 0 0 |
||||
184 0.0300375958148976 0 0 |
||||
185 0.0288302935207691 0 0 |
||||
186 0.027652203865544 0 0 |
||||
187 0.0264621566936286 0 0 |
||||
188 0.0252688692008588 0 0 |
||||
189 0.0241226625595337 0 0 |
||||
190 0.0229255436965288 0 0 |
||||
191 0.0217207281738409 0 0 |
||||
192 0.0205701146867025 0 0 |
||||
193 0.0193892949195812 0 0 |
||||
194 0.0183936626191952 0 0 |
||||
195 0.017494647116465 0 0 |
||||
196 0.0167605279940225 0 0 |
||||
197 +NAN 0 0 |
||||
198 +NAN 0 0 |
||||
199 +NAN 0 0 |
||||
200 +NAN 0 0 |
||||
201 +NAN 0 0 |
||||
202 +NAN 0 0 |
||||
203 +NAN 0 0 |
||||
204 +NAN 0 0 |
||||
205 +NAN 0 0 |
||||
206 +NAN 0 0 |
||||
207 +NAN 0 0 |
||||
208 +NAN 0 0 |
||||
209 +NAN 0 0 |
||||
210 +NAN 0 0 |
||||
211 +NAN 0 0 |
||||
212 +NAN 0 0 |
||||
213 +NAN 0 0 |
||||
214 +NAN 0 0 |
||||
215 +NAN 0 0 |
||||
216 +NAN 0 0 |
||||
217 +NAN 0 0 |
||||
218 +NAN 0 0 |
||||
219 +NAN 0 0 |
||||
220 +NAN 0 0 |
||||
221 +NAN 0 0 |
||||
222 +NAN 0 0 |
||||
223 +NAN 0 0 |
||||
224 +NAN 0 0 |
||||
225 +NAN 0 0 |
||||
226 +NAN 0 0 |
||||
227 +NAN 0 0 |
||||
228 +NAN 0 0 |
||||
229 +NAN 0 0 |
||||
230 +NAN 0 0 |
||||
231 +NAN 0 0 |
||||
232 +NAN 0 0 |
||||
233 +NAN 0 0 |
||||
234 +NAN 0 0 |
||||
235 +NAN 0 0 |
||||
236 +NAN 0 0 |
||||
237 +NAN 0 0 |
||||
238 +NAN 0 0 |
||||
239 +NAN 0 0 |
||||
240 +NAN 0 0 |
||||
241 +NAN 0 0 |
||||
242 +NAN 0 0 |
||||
243 +NAN 0 0 |
||||
244 +NAN 0 0 |
||||
245 +NAN 0 0 |
||||
246 +NAN 0 0 |
||||
247 +NAN 0 0 |
||||
248 +NAN 0 0 |
||||
249 +NAN 0 0 |
||||
250 +NAN 0 0 |
||||
251 +NAN 0 0 |
||||
252 +NAN 0 0 |
||||
253 +NAN 0 0 |
||||
254 +NAN 0 0 |
||||
255 +NAN 0 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = DLAB_2018-05-24_13-29-20_305_176 |
||||
IDDevice = SAM_859F |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = CAL |
||||
IDDataTypeSub2 = Air |
||||
IDDataTypeSub3 = |
||||
DateTime = 2018-05-24 13:28:25 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = |
||||
MethodName = |
||||
Mission = No Mission |
||||
MissionSub = 1 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = DLAB_2018-05-04_11-56-28_529_586 |
||||
IDDataCal = |
||||
IntegrationTime = 64 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit3 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 5 0 0 |
||||
1 +NAN 0 0 |
||||
2 +NAN 0 0 |
||||
3 +NAN 0 0 |
||||
4 +NAN 0 0 |
||||
5 0.549282530081406 0 0 |
||||
6 0.621825635483575 0 0 |
||||
7 0.705214779700439 0 0 |
||||
8 0.782494923890489 0 0 |
||||
9 0.848306874043027 0 0 |
||||
10 0.952625287085828 0 0 |
||||
11 1.06364941208026 0 0 |
||||
12 1.17099618224932 0 0 |
||||
13 1.27964867192574 0 0 |
||||
14 1.37878597375063 0 0 |
||||
15 1.42771820575638 0 0 |
||||
16 1.4380590385421 0 0 |
||||
17 1.41583530083466 0 0 |
||||
18 1.35751030831315 0 0 |
||||
19 1.28801896577964 0 0 |
||||
20 1.23773169248486 0 0 |
||||
21 1.19003370359023 0 0 |
||||
22 1.16911032524399 0 0 |
||||
23 1.16789019991587 0 0 |
||||
24 1.17908641221467 0 0 |
||||
25 1.20561721452238 0 0 |
||||
26 1.24993325867368 0 0 |
||||
27 1.3042108426727 0 0 |
||||
28 1.37841324495146 0 0 |
||||
29 1.46663415660191 0 0 |
||||
30 1.55813913029349 0 0 |
||||
31 1.66686169700722 0 0 |
||||
32 1.78274771118438 0 0 |
||||
33 1.89315285694338 0 0 |
||||
34 2.00609300108623 0 0 |
||||
35 2.10386062632617 0 0 |
||||
36 2.18077321675475 0 0 |
||||
37 2.23620955735442 0 0 |
||||
38 2.266135432154 0 0 |
||||
39 2.26878990322214 0 0 |
||||
40 2.25797663538301 0 0 |
||||
41 2.22685859649013 0 0 |
||||
42 2.17776313289299 0 0 |
||||
43 2.1222752364519 0 0 |
||||
44 2.06098344374156 0 0 |
||||
45 1.99948809108821 0 0 |
||||
46 1.94462577242816 0 0 |
||||
47 1.8989381397134 0 0 |
||||
48 1.8637403074385 0 0 |
||||
49 1.84137175128878 0 0 |
||||
50 1.82996842025894 0 0 |
||||
51 1.82735603324287 0 0 |
||||
52 1.82819560800875 0 0 |
||||
53 1.82831225824908 0 0 |
||||
54 1.82476779554239 0 0 |
||||
55 1.82142520789599 0 0 |
||||
56 1.82469614734563 0 0 |
||||
57 1.83514598035505 0 0 |
||||
58 1.85423698694933 0 0 |
||||
59 1.88102853388183 0 0 |
||||
60 1.91679111910883 0 0 |
||||
61 1.95713305118927 0 0 |
||||
62 2.0033013266641 0 0 |
||||
63 2.05191276620812 0 0 |
||||
64 2.10100127704333 0 0 |
||||
65 2.15116215495783 0 0 |
||||
66 2.19982933350689 0 0 |
||||
67 2.24341508467426 0 0 |
||||
68 2.28026480621138 0 0 |
||||
69 2.30634686430023 0 0 |
||||
70 2.31796219508283 0 0 |
||||
71 2.31589695847203 0 0 |
||||
72 2.29809543158409 0 0 |
||||
73 2.2668387918562 0 0 |
||||
74 2.22596956700897 0 0 |
||||
75 2.17822422289454 0 0 |
||||
76 2.1262484698939 0 0 |
||||
77 2.07154274835781 0 0 |
||||
78 2.01784816285075 0 0 |
||||
79 1.9635850159156 0 0 |
||||
80 1.90957838150673 0 0 |
||||
81 1.85662335754133 0 0 |
||||
82 1.80118393109592 0 0 |
||||
83 1.74752896056537 0 0 |
||||
84 1.69458207285898 0 0 |
||||
85 1.64238998731142 0 0 |
||||
86 1.59255947952261 0 0 |
||||
87 1.55042463825823 0 0 |
||||
88 1.52145095482736 0 0 |
||||
89 1.50182839545807 0 0 |
||||
90 1.48602912306116 0 0 |
||||
91 1.47501182897849 0 0 |
||||
92 1.46801797625318 0 0 |
||||
93 1.46252443118698 0 0 |
||||
94 1.4571840542778 0 0 |
||||
95 1.44881752975571 0 0 |
||||
96 1.433373570625 0 0 |
||||
97 1.4106211402034 0 0 |
||||
98 1.38310053980989 0 0 |
||||
99 1.35343439202405 0 0 |
||||
100 1.32469024445085 0 0 |
||||
101 1.29921323938482 0 0 |
||||
102 1.2757042981125 0 0 |
||||
103 1.25356245928469 0 0 |
||||
104 1.23230080447944 0 0 |
||||
105 1.20776661327865 0 0 |
||||
106 1.18172190161938 0 0 |
||||
107 1.16211138784545 0 0 |
||||
108 1.14836490545677 0 0 |
||||
109 1.13698033747357 0 0 |
||||
110 1.12673020620722 0 0 |
||||
111 1.115430409999 0 0 |
||||
112 1.10428562795353 0 0 |
||||
113 1.0934141739792 0 0 |
||||
114 1.0851095103506 0 0 |
||||
115 1.08102444265095 0 0 |
||||
116 1.08007408967758 0 0 |
||||
117 1.08238869164072 0 0 |
||||
118 1.08781099449618 0 0 |
||||
119 1.09202496629142 0 0 |
||||
120 1.09279743926351 0 0 |
||||
121 1.08928198225434 0 0 |
||||
122 1.08099296127192 0 0 |
||||
123 1.06779395728469 0 0 |
||||
124 1.05125732218958 0 0 |
||||
125 1.03307124483462 0 0 |
||||
126 1.01642561672595 0 0 |
||||
127 1.0017478853335 0 0 |
||||
128 0.98877464388953 0 0 |
||||
129 0.978591382441999 0 0 |
||||
130 0.970432000434175 0 0 |
||||
131 0.962460675619692 0 0 |
||||
132 0.953651636148435 0 0 |
||||
133 0.943103023421902 0 0 |
||||
134 0.930554197290447 0 0 |
||||
135 0.915976069829803 0 0 |
||||
136 0.89827602173614 0 0 |
||||
137 0.878650755188226 0 0 |
||||
138 0.859108524352699 0 0 |
||||
139 0.840122962860222 0 0 |
||||
140 0.820853477964574 0 0 |
||||
141 0.803547895709764 0 0 |
||||
142 0.786651104537257 0 0 |
||||
143 0.769194844035412 0 0 |
||||
144 0.751217544779413 0 0 |
||||
145 0.731862968408631 0 0 |
||||
146 0.710478767970412 0 0 |
||||
147 0.687207420135085 0 0 |
||||
148 0.662469528888512 0 0 |
||||
149 0.636358233772055 0 0 |
||||
150 0.609121332586544 0 0 |
||||
151 0.580838486227566 0 0 |
||||
152 0.552767035926316 0 0 |
||||
153 0.525876935395925 0 0 |
||||
154 0.499896413074609 0 0 |
||||
155 0.475284681533185 0 0 |
||||
156 0.452387885405863 0 0 |
||||
157 0.431848904268036 0 0 |
||||
158 0.413013739466993 0 0 |
||||
159 0.395710805209202 0 0 |
||||
160 0.380181587532903 0 0 |
||||
161 0.365591896979342 0 0 |
||||
162 0.352105459639395 0 0 |
||||
163 0.339276260510366 0 0 |
||||
164 0.32616389487977 0 0 |
||||
165 0.313880254968568 0 0 |
||||
166 0.301213081346406 0 0 |
||||
167 0.28867892621412 0 0 |
||||
168 0.276332017077307 0 0 |
||||
169 0.263867205519659 0 0 |
||||
170 0.251559483539307 0 0 |
||||
171 0.239917175566115 0 0 |
||||
172 0.228872841726392 0 0 |
||||
173 0.218348838385983 0 0 |
||||
174 0.208663588155861 0 0 |
||||
175 0.199488791575245 0 0 |
||||
176 0.191252859631973 0 0 |
||||
177 0.183364916996847 0 0 |
||||
178 0.175877803627425 0 0 |
||||
179 0.169219899131997 0 0 |
||||
180 0.162866423884395 0 0 |
||||
181 0.156727192611269 0 0 |
||||
182 0.151124000714184 0 0 |
||||
183 0.145138407523578 0 0 |
||||
184 0.13971586046093 0 0 |
||||
185 0.134506608902369 0 0 |
||||
186 0.129059486722317 0 0 |
||||
187 0.124203168251957 0 0 |
||||
188 0.119075347065844 0 0 |
||||
189 0.113513221481262 0 0 |
||||
190 0.107843336832916 0 0 |
||||
191 0.101790305051534 0 0 |
||||
192 0.0961960826886135 0 0 |
||||
193 0.0914035900672732 0 0 |
||||
194 0.0868727278958915 0 0 |
||||
195 0.082573024301116 0 0 |
||||
196 +NAN 0 0 |
||||
197 +NAN 0 0 |
||||
198 +NAN 0 0 |
||||
199 +NAN 0 0 |
||||
200 +NAN 0 0 |
||||
201 +NAN 0 0 |
||||
202 +NAN 0 0 |
||||
203 +NAN 0 0 |
||||
204 +NAN 0 0 |
||||
205 +NAN 0 0 |
||||
206 +NAN 0 0 |
||||
207 +NAN 0 0 |
||||
208 +NAN 0 0 |
||||
209 +NAN 0 0 |
||||
210 +NAN 0 0 |
||||
211 +NAN 0 0 |
||||
212 +NAN 0 0 |
||||
213 +NAN 0 0 |
||||
214 +NAN 0 0 |
||||
215 +NAN 0 0 |
||||
216 +NAN 0 0 |
||||
217 +NAN 0 0 |
||||
218 +NAN 0 0 |
||||
219 +NAN 0 0 |
||||
220 +NAN 0 0 |
||||
221 +NAN 0 0 |
||||
222 +NAN 0 0 |
||||
223 +NAN 0 0 |
||||
224 +NAN 0 0 |
||||
225 +NAN 0 0 |
||||
226 +NAN 0 0 |
||||
227 +NAN 0 0 |
||||
228 +NAN 0 0 |
||||
229 +NAN 0 0 |
||||
230 +NAN 0 0 |
||||
231 +NAN 0 0 |
||||
232 +NAN 0 0 |
||||
233 +NAN 0 0 |
||||
234 +NAN 0 0 |
||||
235 +NAN 0 0 |
||||
236 +NAN 0 0 |
||||
237 +NAN 0 0 |
||||
238 +NAN 0 0 |
||||
239 +NAN 0 0 |
||||
240 +NAN 0 0 |
||||
241 +NAN 0 0 |
||||
242 +NAN 0 0 |
||||
243 +NAN 0 0 |
||||
244 +NAN 0 0 |
||||
245 +NAN 0 0 |
||||
246 +NAN 0 0 |
||||
247 +NAN 0 0 |
||||
248 +NAN 0 0 |
||||
249 +NAN 0 0 |
||||
250 +NAN 0 0 |
||||
251 +NAN 0 0 |
||||
252 +NAN 0 0 |
||||
253 +NAN 0 0 |
||||
254 +NAN 0 0 |
||||
255 +NAN 0 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,297 @@ |
||||
[Spectrum] |
||||
Version = 1 |
||||
IDData = DLAB_2018-06-13_11-56-08_604_111 |
||||
IDDevice = SAM_85B5 |
||||
IDDataType = SPECTRUM |
||||
IDDataTypeSub1 = CAL |
||||
IDDataTypeSub2 = Air |
||||
IDDataTypeSub3 = |
||||
DateTime = 2018-06-13 11:54:51 |
||||
PositionLatitude = 0 |
||||
PositionLongitude = 0 |
||||
Comment = |
||||
CommentSub1 = |
||||
CommentSub2 = |
||||
CommentSub3 = |
||||
IDMethodType = |
||||
MethodName = |
||||
Mission = No Mission |
||||
MissionSub = 1 |
||||
RecordType = 0 |
||||
|
||||
[Attributes] |
||||
CalFactor = 1 |
||||
IDBasisSpec = |
||||
IDDataBack = DLAB_2018-06-11_15-23-57_730_586 |
||||
IDDataCal = |
||||
IntegrationTime = 64 |
||||
P31 = -1 |
||||
P31e = 0 |
||||
PathLength = +INF |
||||
RAWDynamic = 65535 |
||||
Temperature = +NAN |
||||
Unit1 = $05 $00 Pixel |
||||
Unit2 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit3 = $04 $04 1/Intensity (m^2 nm Sr)/mW |
||||
Unit4 = $f1 $00 Status |
||||
[END] of [Attributes] |
||||
[DATA] |
||||
0 5 0 0 |
||||
1 +NAN 0 0 |
||||
2 +NAN 0 0 |
||||
3 +NAN 0 0 |
||||
4 0.380824258865919 0 0 |
||||
5 0.480956813156357 0 0 |
||||
6 0.57671205380196 0 0 |
||||
7 0.643896236957154 0 0 |
||||
8 0.711054782209677 0 0 |
||||
9 0.758265752350778 0 0 |
||||
10 0.808854255795615 0 0 |
||||
11 0.869466331079482 0 0 |
||||
12 0.925321324749243 0 0 |
||||
13 1.00927399148091 0 0 |
||||
14 1.08699883630787 0 0 |
||||
15 1.18347377446848 0 0 |
||||
16 1.29079925777138 0 0 |
||||
17 1.39953731633192 0 0 |
||||
18 1.49536024576308 0 0 |
||||
19 1.57053962346542 0 0 |
||||
20 1.61051680455964 0 0 |
||||
21 1.60891142181803 0 0 |
||||
22 1.58014917632373 0 0 |
||||
23 1.54292073894688 0 0 |
||||
24 1.49782795775685 0 0 |
||||
25 1.46270054563491 0 0 |
||||
26 1.43754722159869 0 0 |
||||
27 1.42339247548624 0 0 |
||||
28 1.42249669690879 0 0 |
||||
29 1.43289834559721 0 0 |
||||
30 1.45081833970432 0 0 |
||||
31 1.48383024473758 0 0 |
||||
32 1.53350351710437 0 0 |
||||
33 1.59283171118034 0 0 |
||||
34 1.66682243068085 0 0 |
||||
35 1.75523084376357 0 0 |
||||
36 1.8490542829721 0 0 |
||||
37 1.94827772413977 0 0 |
||||
38 2.05297044933559 0 0 |
||||
39 2.15300125225733 0 0 |
||||
40 2.24489521732098 0 0 |
||||
41 2.32484518002751 0 0 |
||||
42 2.37710624055378 0 0 |
||||
43 2.41032149129472 0 0 |
||||
44 2.41401311078449 0 0 |
||||
45 2.39196623346607 0 0 |
||||
46 2.35386541795861 0 0 |
||||
47 2.30358502851024 0 0 |
||||
48 2.24350994611066 0 0 |
||||
49 2.18566570348128 0 0 |
||||
50 2.13007635400607 0 0 |
||||
51 2.08048312730197 0 0 |
||||
52 2.03943635277338 0 0 |
||||
53 1.9990019487276 0 0 |
||||
54 1.9542919602901 0 0 |
||||
55 1.90697476815729 0 0 |
||||
56 1.86132580586718 0 0 |
||||
57 1.81936966943287 0 0 |
||||
58 1.78948757961567 0 0 |
||||
59 1.77036444175303 0 0 |
||||
60 1.76067051308416 0 0 |
||||
61 1.76079151769139 0 0 |
||||
62 1.76865840458355 0 0 |
||||
63 1.78533977613825 0 0 |
||||
64 1.81054315659671 0 0 |
||||
65 1.84219534093402 0 0 |
||||
66 1.88262260694772 0 0 |
||||
67 1.92633682221336 0 0 |
||||
68 1.96919363361994 0 0 |
||||
69 2.00638558730966 0 0 |
||||
70 2.03543177536163 0 0 |
||||
71 2.05645335730185 0 0 |
||||
72 2.06889953924594 0 0 |
||||
73 2.07668786673546 0 0 |
||||
74 2.07746404954558 0 0 |
||||
75 2.07708946852551 0 0 |
||||
76 2.07239270419962 0 0 |
||||
77 2.06329693588947 0 0 |
||||
78 2.05235510505223 0 0 |
||||
79 2.03788342455449 0 0 |
||||
80 2.01750123705209 0 0 |
||||
81 1.99316265318269 0 0 |
||||
82 1.96344779927853 0 0 |
||||
83 1.92810068074762 0 0 |
||||
84 1.89032139564187 0 0 |
||||
85 1.84840056738145 0 0 |
||||
86 1.80188008685176 0 0 |
||||
87 1.7531429855323 0 0 |
||||
88 1.70184883503381 0 0 |
||||
89 1.64693756964496 0 0 |
||||
90 1.59639297188055 0 0 |
||||
91 1.55743828612696 0 0 |
||||
92 1.53081670223502 0 0 |
||||
93 1.509066853406 0 0 |
||||
94 1.48974595694359 0 0 |
||||
95 1.47286758281018 0 0 |
||||
96 1.45660325947575 0 0 |
||||
97 1.43667408186819 0 0 |
||||
98 1.40947906533906 0 0 |
||||
99 1.37746325817173 0 0 |
||||
100 1.3399910234164 0 0 |
||||
101 1.29987620320872 0 0 |
||||
102 1.26173586555032 0 0 |
||||
103 1.22580130202006 0 0 |
||||
104 1.19650560480134 0 0 |
||||
105 1.17258287879559 0 0 |
||||
106 1.15326969493003 0 0 |
||||
107 1.13448708666807 0 0 |
||||
108 1.11395465030131 0 0 |
||||
109 1.08753684763482 0 0 |
||||
110 1.06275254011917 0 0 |
||||
111 1.0408908566722 0 0 |
||||
112 1.02045255259373 0 0 |
||||
113 1.00192289281247 0 0 |
||||
114 0.987093337695555 0 0 |
||||
115 0.973433543184599 0 0 |
||||
116 0.961454156421677 0 0 |
||||
117 0.949336048850277 0 0 |
||||
118 0.937190359719721 0 0 |
||||
119 0.925018119816345 0 0 |
||||
120 0.911316167695048 0 0 |
||||
121 0.897751565127677 0 0 |
||||
122 0.885763756400802 0 0 |
||||
123 0.875253674622747 0 0 |
||||
124 0.866439225407856 0 0 |
||||
125 0.859594015285511 0 0 |
||||
126 0.856442344648432 0 0 |
||||
127 0.854520610650332 0 0 |
||||
128 0.853095084706978 0 0 |
||||
129 0.851996897997662 0 0 |
||||
130 0.849373999218705 0 0 |
||||
131 0.845008414644852 0 0 |
||||
132 0.837447706997702 0 0 |
||||
133 0.828042280687475 0 0 |
||||
134 0.816973957953628 0 0 |
||||
135 0.804392597259629 0 0 |
||||
136 0.790971383923797 0 0 |
||||
137 0.777350907812577 0 0 |
||||
138 0.764886212005326 0 0 |
||||
139 0.753124860834896 0 0 |
||||
140 0.74238339492221 0 0 |
||||
141 0.731621293455726 0 0 |
||||
142 0.720137856580817 0 0 |
||||
143 0.707681887074656 0 0 |
||||
144 0.692857487682284 0 0 |
||||
145 0.676149155140644 0 0 |
||||
146 0.657691286728854 0 0 |
||||
147 0.637091724889135 0 0 |
||||
148 0.615841105000382 0 0 |
||||
149 0.593277961352052 0 0 |
||||
150 0.571635565839856 0 0 |
||||
151 0.550558744253774 0 0 |
||||
152 0.529727893337181 0 0 |
||||
153 0.50958610090654 0 0 |
||||
154 0.490923786532866 0 0 |
||||
155 0.472942835508178 0 0 |
||||
156 0.455966760194577 0 0 |
||||
157 0.439389399108222 0 0 |
||||
158 0.42326262400571 0 0 |
||||
159 0.408064966451864 0 0 |
||||
160 0.392531100434587 0 0 |
||||
161 0.376760145430696 0 0 |
||||
162 0.361340837642809 0 0 |
||||
163 0.345797349215964 0 0 |
||||
164 0.330538900755072 0 0 |
||||
165 0.315423852713651 0 0 |
||||
166 0.300655326757946 0 0 |
||||
167 0.286125136929255 0 0 |
||||
168 0.27220666979537 0 0 |
||||
169 0.258963801456755 0 0 |
||||
170 0.246515726736969 0 0 |
||||
171 0.23471243489257 0 0 |
||||
172 0.223963260764627 0 0 |
||||
173 0.213811227531161 0 0 |
||||
174 0.204848303945938 0 0 |
||||
175 0.196342813423038 0 0 |
||||
176 0.188347519381911 0 0 |
||||
177 0.180847277367304 0 0 |
||||
178 0.173574321958823 0 0 |
||||
179 0.166782572540461 0 0 |
||||
180 0.159983659268987 0 0 |
||||
181 0.153496471427164 0 0 |
||||
182 0.146983276179518 0 0 |
||||
183 0.140664487031456 0 0 |
||||
184 0.134679615950644 0 0 |
||||
185 0.128426075217298 0 0 |
||||
186 0.122768803469292 0 0 |
||||
187 0.116973531179931 0 0 |
||||
188 0.111227699506044 0 0 |
||||
189 0.10561644888568 0 0 |
||||
190 0.0999165260100575 0 0 |
||||
191 0.09399466356358 0 0 |
||||
192 0.0884689961099718 0 0 |
||||
193 0.0833768260697751 0 0 |
||||
194 0.0789223013382674 0 0 |
||||
195 0.0748108094846383 0 0 |
||||
196 0.0710379549143775 0 0 |
||||
197 +NAN 0 0 |
||||
198 +NAN 0 0 |
||||
199 +NAN 0 0 |
||||
200 +NAN 0 0 |
||||
201 +NAN 0 0 |
||||
202 +NAN 0 0 |
||||
203 +NAN 0 0 |
||||
204 +NAN 0 0 |
||||
205 +NAN 0 0 |
||||
206 +NAN 0 0 |
||||
207 +NAN 0 0 |
||||
208 +NAN 0 0 |
||||
209 +NAN 0 0 |
||||
210 +NAN 0 0 |
||||
211 +NAN 0 0 |
||||
212 +NAN 0 0 |
||||
213 +NAN 0 0 |
||||
214 +NAN 0 0 |
||||
215 +NAN 0 0 |
||||
216 +NAN 0 0 |
||||
217 +NAN 0 0 |
||||
218 +NAN 0 0 |
||||
219 +NAN 0 0 |
||||
220 +NAN 0 0 |
||||
221 +NAN 0 0 |
||||
222 +NAN 0 0 |
||||
223 +NAN 0 0 |
||||
224 +NAN 0 0 |
||||
225 +NAN 0 0 |
||||
226 +NAN 0 0 |
||||
227 +NAN 0 0 |
||||
228 +NAN 0 0 |
||||
229 +NAN 0 0 |
||||
230 +NAN 0 0 |
||||
231 +NAN 0 0 |
||||
232 +NAN 0 0 |
||||
233 +NAN 0 0 |
||||
234 +NAN 0 0 |
||||
235 +NAN 0 0 |
||||
236 +NAN 0 0 |
||||
237 +NAN 0 0 |
||||
238 +NAN 0 0 |
||||
239 +NAN 0 0 |
||||
240 +NAN 0 0 |
||||
241 +NAN 0 0 |
||||
242 +NAN 0 0 |
||||
243 +NAN 0 0 |
||||
244 +NAN 0 0 |
||||
245 +NAN 0 0 |
||||
246 +NAN 0 0 |
||||
247 +NAN 0 0 |
||||
248 +NAN 0 0 |
||||
249 +NAN 0 0 |
||||
250 +NAN 0 0 |
||||
251 +NAN 0 0 |
||||
252 +NAN 0 0 |
||||
253 +NAN 0 0 |
||||
254 +NAN 0 0 |
||||
255 +NAN 0 0 |
||||
[END] of [DATA] |
||||
[END] of [Spectrum] |
||||
|
@ -0,0 +1,81 @@ |
||||
[DEVICE] |
||||
Version = 0 |
||||
IDDevice = SAMIP_50ED |
||||
IDDeviceType = SAMIP |
||||
IDDeviceTypeSub1 = ACC-2 |
||||
IDDeviceTypeSub2 = VIS |
||||
IDDeviceTypeSub3 = |
||||
DateTime = 2018-06-19 12:08:40 |
||||
Comment = |
||||
RecordType = 0 |
||||
IDDeviceMaster = |
||||
|
||||
[ATTRIBUTES] |
||||
IDDeviceSAM = SAM_859F |
||||
IDDeviceIP = IP_C121 |
||||
[END] of [ATTRIBUTES] |
||||
[END] of [DEVICE] |
||||
|
||||
|
||||
[DEVICE] |
||||
Version = 0 |
||||
IDDevice = IP_C121 |
||||
IDDeviceType = IP |
||||
IDDeviceTypeSub1 = |
||||
IDDeviceTypeSub2 = |
||||
IDDeviceTypeSub3 = |
||||
DateTime = 2018-06-19 12:01:08 |
||||
Comment = |
||||
RecordType = 0 |
||||
IDDeviceMaster = SAMIP_50ED |
||||
|
||||
[ATTRIBUTES] |
||||
Incl_Orientation = up |
||||
Incl_Xgain = 1.0 |
||||
Incl_Xoffset = 125 |
||||
Incl_Ygain = 0.9375 |
||||
Incl_Yoffset = 126 |
||||
Incl_KBG = 1.2073 |
||||
Incl_Kref = 0.1275 |
||||
Press_Current_mA = 1.08 |
||||
Press_Surface_bar = 5.57 |
||||
Press_Gain = 2.7 |
||||
WithIncl = 1 |
||||
WithPress = 1 |
||||
Press_Sens_mV_bar_4mA = 71.36 |
||||
Press_Sens_mV_bar_1mA = 17.84 |
||||
Press_Type = PA-10/TAB/10bar |
||||
CalibrationDate = 08.06.2018 |
||||
[END] of [ATTRIBUTES] |
||||
[END] of [DEVICE] |
||||
|
||||
|
||||
[DEVICE] |
||||
Version = 0 |
||||
IDDevice = SAM_859F |
||||
IDDeviceType = SAM |
||||
IDDeviceTypeSub1 = ACC-2 |
||||
IDDeviceTypeSub2 = VIS |
||||
IDDeviceTypeSub3 = |
||||
DateTime = 2018-05-30 12:14:10 |
||||
Comment = |
||||
RecordType = 0 |
||||
IDDeviceMaster = SAMIP_50ED |
||||
|
||||
[ATTRIBUTES] |
||||
c0s = +3.019290000E+02 |
||||
c1s = +3.345130000E+00 |
||||
c2s = +2.651460000E-04 |
||||
c3s = -1.753680000E-06 |
||||
DarkPixelStart = 237 |
||||
DarkPixelStop = 254 |
||||
Reverse = 0 |
||||
c4s = +0.000000000E+00 |
||||
IDDataCal = DLAB_2019-08-28_14-44-55_098_198 |
||||
IDDataBack = DLAB_2019-08-28_12-24-09_763_812 |
||||
IDDataCalAQ = DLAB_2019-08-28_14-47-19_914_233 |
||||
Firmware = 2.06 |
||||
[END] of [ATTRIBUTES] |
||||
[END] of [DEVICE] |
||||
|
||||
|
@ -0,0 +1,32 @@ |
||||
[Device] |
||||
Version = 0 |
||||
IDDevice = SAM_852F |
||||
IDDeviceType = SAM |
||||
IDDeviceTypeSub1 = ACC-2 |
||||
IDDeviceTypeSub2 = VIS |
||||
IDDeviceTypeSub3 = |
||||
RecordType = 0 |
||||
DateTime = 2016-12-07 12:03:12 |
||||
IDDeviceMaster = |
||||
Comment = |
||||
|
||||
[Attributes] |
||||
DarkPixelStart = 237 |
||||
DarkPixelStop = 254 |
||||
Firmware = 2.06 |
||||
IDDataBack = DLAB_2016-11-29_14-47-59_729_812 |
||||
IDDataCal = DLAB_2016-12-07_12-00-24_364_510 |
||||
IDDataCalAQ = DLAB_2016-12-07_12-02-43_591_545 |
||||
IntegrationTime = 0 |
||||
Reverse = 0 |
||||
SerialNo_MMS = 103307 |
||||
WavelengthRange = 310..1100 |
||||
c0s = 299.895 |
||||
c1s = 3.31161 |
||||
c2s = 0.00031652 |
||||
c3s = -1.73194e-06 |
||||
c4s = +0.000000000E+00 |
||||
cs = 102842 |
||||
[END] of [Attributes] |
||||
[END] of [Device] |
||||
|
@ -0,0 +1,30 @@ |
||||
[Device] |
||||
Version = 0 |
||||
IDDevice = SAM_859F |
||||
IDDeviceType = SAM |
||||
IDDeviceTypeSub1 = ARC |
||||
IDDeviceTypeSub2 = VIS |
||||
IDDeviceTypeSub3 = |
||||
RecordType = 0 |
||||
DateTime = 2018-05-24 13:30:20 |
||||
IDDeviceMaster = |
||||
Comment = ARC VIS |
||||
|
||||
[Attributes] |
||||
DarkPixelStart = 237 |
||||
DarkPixelStop = 254 |
||||
Firmware = 2.06 |
||||
IDDataBack = DLAB_2018-05-04_11-56-28_529_586 |
||||
IDDataCal = DLAB_2018-05-24_13-29-20_305_176 |
||||
IDDataCalAQ = DLAB_2018-05-24_13-29-21_895_177 |
||||
IntegrationTime = 0 |
||||
Reverse = 0 |
||||
SerialNo_MMS = |
||||
c0s = 299.971 |
||||
c1s = 3.32431 |
||||
c2s = 0.000391882 |
||||
c3s = -1.91435e-06 |
||||
c4s = +0.000000000E+00 |
||||
[END] of [Attributes] |
||||
[END] of [Device] |
||||
|
@ -0,0 +1,30 @@ |
||||
[Device] |
||||
Version = 0 |
||||
IDDevice = SAM_85B5 |
||||
IDDeviceType = SAM |
||||
IDDeviceTypeSub1 = ARC |
||||
IDDeviceTypeSub2 = VIS |
||||
IDDeviceTypeSub3 = |
||||
RecordType = 0 |
||||
DateTime = 2018-06-13 11:58:48 |
||||
IDDeviceMaster = |
||||
Comment = ARC VIS |
||||
|
||||
[Attributes] |
||||
DarkPixelStart = 237 |
||||
DarkPixelStop = 254 |
||||
Firmware = 2.06 |
||||
IDDataBack = DLAB_2018-06-11_15-23-57_730_586 |
||||
IDDataCal = DLAB_2018-06-13_11-56-08_604_111 |
||||
IDDataCalAQ = DLAB_2018-06-13_11-58-21_312_112 |
||||
IntegrationTime = 0 |
||||
Reverse = 0 |
||||
SerialNo_MMS = |
||||
c0s = 300.14 |
||||
c1s = 3.3268 |
||||
c2s = 0.000314225 |
||||
c3s = -1.90331e-06 |
||||
c4s = +0.000000000E+00 |
||||
[END] of [Attributes] |
||||
[END] of [Device] |
||||
|
@ -0,0 +1,20 @@ |
||||
2: |
||||
1: |
||||
FUNC: Lsky |
||||
SN: '85B5' |
||||
2: |
||||
FUNC: Esky |
||||
SN: '50ED' |
||||
3: |
||||
FUNC: Lwater |
||||
SN: '852F' |
||||
3: |
||||
1: |
||||
FUNC: Lsky |
||||
SN: '85B5' |
||||
2: |
||||
FUNC: Esky |
||||
SN: '50ED' |
||||
3: |
||||
FUNC: Lwater |
||||
SN: '852F' |
@ -0,0 +1,237 @@ |
||||
from pathlib import Path, PurePath |
||||
|
||||
from tools.mylogger import log |
||||
from readcal import ReadCal |
||||
|
||||
from myconfig import CAL_DIR, DATA_DIR, FILE_MARK, DeviceType, RamsesFunc |
||||
|
||||
|
||||
class Configuration: |
||||
def __init__(self, ) -> None: |
||||
log.info(f"ConfigAWRAMS init: ", __name__, "", "") |
||||
self.device_type = None |
||||
self.configuration =None |
||||
self.cal_configuration = {} |
||||
pass |
||||
|
||||
|
||||
|
||||
def setDeviceType(self, device_type:str) -> None: |
||||
self.device_type = device_type.lower() |
||||
pass |
||||
|
||||
def setSystemCfgDict(self, cfg:dict) -> None: |
||||
self.configuration = cfg |
||||
log.info(f"self.configuration : {self.configuration} ", __name__, "", "") |
||||
pass |
||||
|
||||
def getCalConfiguration(self) -> None: |
||||
if self.device_type == None: |
||||
self.cal_configuration = None |
||||
if self.configuration == None: |
||||
self.cal_configuration =None |
||||
|
||||
for k,v in self.configuration.items(): |
||||
|
||||
if v["SN"] == "" or v['FUNC']=="": |
||||
pass |
||||
else: |
||||
self.cal_configuration.update( {v["FUNC"]:{}} ) |
||||
self.cal_configuration[v["FUNC"]].update( {"SN":v['SN']} ) |
||||
self.cal_configuration[v["FUNC"]].update( {"FUNC":v['FUNC']} ) |
||||
|
||||
self.__init_configuration_basic() |
||||
self.__init_configuration_cal() |
||||
self.__init_configuration_IP_SAM() |
||||
pass |
||||
|
||||
def __init_configuration_basic(self ) -> None: |
||||
# self.cfgtool = Config() |
||||
for k in self.cal_configuration.keys(): |
||||
sn = self.cal_configuration[k]["SN"] |
||||
if self.__isSamIniExisted(sn): |
||||
self.cal_configuration[k].update({ "TYPE" : "SAM" }) |
||||
self.cal_configuration[k].update({ "samsn" : sn }) |
||||
self.cal_configuration[k].update({ "inifile" : "SAM_"+sn+".ini" }) |
||||
self.cal_configuration[k].update({ "calfile" : "Cal_SAM_"+sn+".dat" }) |
||||
self.cal_configuration[k].update({ "calaqfile" : "CalAQ_SAM_"+sn+".dat" }) |
||||
self.cal_configuration[k].update({ "backfile" : "Back_SAM_"+sn+".dat" }) |
||||
if self.__isSamIPIniExisted(sn): |
||||
self.cal_configuration[k].update({ "TYPE" : "SAMIP" }) |
||||
samsn = self.__getSAMSN(sn) |
||||
if samsn== None: |
||||
log.warning(f"Cannot get samsn from Sensor: {sn}", __name__, "", "" ) |
||||
raise Exception(f"Cannot get samsn from Sensor: {sn}") |
||||
self.cal_configuration[k].update({ "samsn" : samsn }) |
||||
self.cal_configuration[k].update({ "inifile" : "SAMIP_"+sn+"_ALL.ini" }) |
||||
self.cal_configuration[k].update({ "calfile" : "Cal_SAM_"+samsn+".dat" }) |
||||
self.cal_configuration[k].update({ "calaqfile" : "CalAQ_SAM_"+samsn+".dat" }) |
||||
self.cal_configuration[k].update({ "backfile" : "Back_SAM_"+samsn+".dat" }) |
||||
if not self.__isSamIniExisted(sn) and not self.__isSamIPIniExisted(sn): |
||||
log.warning(f"Cannot find ini file for Sensor: {sn}", __name__, "", "" ) |
||||
raise Exception(f"Cannot find ini file for Sensor: {sn}") |
||||
|
||||
pass |
||||
|
||||
def __init_configuration_cal(self ) -> None: |
||||
# self.cfgtool = Config() |
||||
for k in self.cal_configuration.keys(): |
||||
sn = self.cal_configuration[k]["SN"] |
||||
# Device File |
||||
calpath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[k]["calfile"]) |
||||
if calpath.exists( ): |
||||
res = ReadCal.read_columns_set_by_mark( calpath, FILE_MARK, 1 ) |
||||
self.cal_configuration[k].update({ "cal" : res[1][0] }) |
||||
calaqpath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[k]["calaqfile"]) |
||||
if calaqpath.exists( ): |
||||
res = ReadCal.read_columns_set_by_mark( calaqpath, FILE_MARK, 1 ) |
||||
self.cal_configuration[k].update({ "calaq" : res[1][0] }) |
||||
backpath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[k]["backfile"]) |
||||
if calaqpath.exists( ): |
||||
res = ReadCal.read_columns_set_by_mark( backpath, FILE_MARK, 1,2 ) |
||||
self.cal_configuration[k].update({ "b0" : res[1][0] }) |
||||
self.cal_configuration[k].update({ "b1" : res[1][1] }) |
||||
pass |
||||
|
||||
|
||||
|
||||
def __init_configuration_IP_SAM(self ) -> None: |
||||
# self.cfgtool = Config() |
||||
for j in self.cal_configuration.keys(): |
||||
# log.debug(f"__init_configuration_IP_SAM {j}", __name__, "", "" ) |
||||
inipath = CAL_DIR.joinpath(self.device_type, self.cal_configuration[j]["inifile"]) |
||||
# log.debug(f"__init_configuration_IP_SAM {inipath}", __name__, "", "" ) |
||||
sam = ReadCal.readSAMCalFromIni(inipath) |
||||
# log.debug(f"__init_configuration_IP_SAM {sam}", __name__, "", "" ) |
||||
for k,v in sam.items(): |
||||
self.cal_configuration[j].update({ k : v }) |
||||
if self.cal_configuration[j]["TYPE"] == "SAMIP": |
||||
ip = ReadCal.readIPCalFromIni(inipath) |
||||
for k,v in ip.items(): |
||||
self.cal_configuration[j].update({ k : v }) |
||||
|
||||
def __isSamIniExisted(self,sn) ->bool: |
||||
sn_0 = "SAM_"+str(sn)+".ini" |
||||
path_ = CAL_DIR.joinpath(self.device_type.lower(), sn_0) |
||||
if path_.exists(): |
||||
return True |
||||
return False |
||||
|
||||
|
||||
def __isSamIPIniExisted(self,sn) ->bool: |
||||
sn_0 = "SAMIP_"+str(sn)+"_ALL.ini" |
||||
path_ = CAL_DIR.joinpath(self.device_type.lower(), sn_0) |
||||
if path_.exists(): |
||||
return True |
||||
return False |
||||
|
||||
def __getSAMSN(self,sn) -> None: |
||||
sn_0 = "SAMIP_"+str(sn)+"_ALL.ini" |
||||
path_ = CAL_DIR.joinpath(self.device_type.lower(), sn_0) |
||||
# path_ = DATA_DIR.joinpath(self.device.lower(), CAL_DIR, sn_0) |
||||
samsn = ReadCal.readSamSNFromIni( path_ ) |
||||
if samsn == None: |
||||
return None |
||||
return samsn |
||||
pass |
||||
|
||||
# def __init2__(self, device:str, **kwargs) -> None: |
||||
# """ |
||||
# get cal parameter for every sensor |
||||
# para : {"1":{"SN":"85B5","FUNC","Lsky"},"2":{},"3":{}} |
||||
# """ |
||||
# # log.info(f"ProcessAWRAMS kwargs: {kwargs}", __name__, "", "") |
||||
# # log.info(f"len: { len(kwargs)}", __name__, "", "") |
||||
|
||||
# if len(kwargs) != 3: |
||||
# log.warning(f" pass a wrong para to ProcessAWRAMS {kwargs}", __name__, "", "") |
||||
# self.device = device.lower() # surface profile awrams |
||||
# self.ramses = {} |
||||
|
||||
# # 生成标定文件 { } |
||||
# for k,v in kwargs.items(): |
||||
# self.ramses.update( {v["FUNC"]:{}} ) |
||||
# self.ramses[v["FUNC"]].update( {"SN":v['SN']} ) |
||||
# self.ramses[v["FUNC"]].update( {"FUNC":v['FUNC']} ) |
||||
# pass |
||||
# log.debug(f" ===== {self.ramses}",__name__, "", "" ) |
||||
|
||||
|
||||
# # if kwargs.__contains__("1"): |
||||
# # self.ramses.append( self.cfgtool.getDictByAttr("ramses")) |
||||
# # self.cfgtool.set_attr(self.ramses[1],kwargs['1']"SN",kwargs['1']) |
||||
# # if kwargs.__contains__("2"): |
||||
# # self.ramses.append( self.cfgtool.getDictByAttr("ramses")) |
||||
# # self.cfgtool.set_attr(self.ramses[2],"SN",kwargs['1']) |
||||
# # if kwargs.__contains__("3"): |
||||
# # self.ramses.append( self.cfgtool.getDictByAttr("ramses")) |
||||
# # self.cfgtool.set_attr(self.ramses[3],"SN",kwargs['1']) |
||||
|
||||
# self.__init_configuration_basic() |
||||
# self.__init_configuration_cal() |
||||
# self.__init_configuration_IP_SAM() |
||||
|
||||
# # log.info(f"ProcessAWRAMS after initiate: {kwargs}", __name__, "", "") |
||||
|
||||
# def __init_configuration_basic2(self ) -> None: |
||||
# # self.cfgtool = Config() |
||||
# for k in self.ramses.keys(): |
||||
# sn = self.ramses[k]["SN"] |
||||
# if self.__isSamIniExisted(sn): |
||||
# self.ramses[k].update({ "TYPE" : "SAM" }) |
||||
# self.ramses[k].update({ "samsn" : sn }) |
||||
# self.ramses[k].update({ "inifile" : "SAM_"+sn+".ini" }) |
||||
# self.ramses[k].update({ "calfile" : "Cal_SAM_"+sn+".dat" }) |
||||
# self.ramses[k].update({ "calaqfile" : "CalAQ_SAM_"+sn+".dat" }) |
||||
# self.ramses[k].update({ "backfile" : "Back_SAM_"+sn+".dat" }) |
||||
# if self.__isSamIPIniExisted(sn): |
||||
# self.ramses[k].update({ "TYPE" : "SAMIP" }) |
||||
# samsn = self.__getSAMSN(sn) |
||||
# if samsn== None: |
||||
# log.warning(f"Cannot get samsn from Sensor: {sn}", __name__, "", "" ) |
||||
# raise Exception(f"Cannot get samsn from Sensor: {sn}") |
||||
# self.ramses[k].update({ "samsn" : samsn }) |
||||
# self.ramses[k].update({ "inifile" : "SAMIP_"+sn+"_ALL.ini" }) |
||||
# self.ramses[k].update({ "calfile" : "Cal_SAM_"+samsn+".dat" }) |
||||
# self.ramses[k].update({ "calaqfile" : "CalAQ_SAM_"+samsn+".dat" }) |
||||
# self.ramses[k].update({ "backfile" : "Back_SAM_"+samsn+".dat" }) |
||||
# if not self.__isSamIniExisted(sn) and not self.__isSamIPIniExisted(sn): |
||||
# log.warning(f"Cannot find ini file for Sensor: {sn}", __name__, "", "" ) |
||||
# raise Exception(f"Cannot find ini file for Sensor: {sn}") |
||||
|
||||
# pass |
||||
|
||||
# def __init_configuration_cal2(self ) -> None: |
||||
# # self.cfgtool = Config() |
||||
# for k in self.ramses.keys(): |
||||
# sn = self.ramses[k]["SN"] |
||||
# # Device File |
||||
# calpath = CAL_DIR.joinpath(self.device, self.ramses[k]["calfile"]) |
||||
# if calpath.exists( ): |
||||
# res = Readfile.read_columns_set_by_mark( calpath, FILE_MARK, 1 ) |
||||
# self.ramses[k].update({ "cal" : res[1][0] }) |
||||
# calaqpath = CAL_DIR.joinpath(self.device, self.ramses[k]["calaqfile"]) |
||||
# if calaqpath.exists( ): |
||||
# res = Readfile.read_columns_set_by_mark( calaqpath, FILE_MARK, 1 ) |
||||
# self.ramses[k].update({ "calaq" : res[1][0] }) |
||||
# backpath = CAL_DIR.joinpath(self.device, self.ramses[k]["backfile"]) |
||||
# if calaqpath.exists( ): |
||||
# res = Readfile.read_columns_set_by_mark( backpath, FILE_MARK, 1,2 ) |
||||
# self.ramses[k].update({ "b0" : res[1][0] }) |
||||
# self.ramses[k].update({ "b1" : res[1][1] }) |
||||
# pass |
||||
|
||||
# def __init_configuration_IP_SAM2(self ) -> None: |
||||
# # self.cfgtool = Config() |
||||
# for j in self.ramses.keys(): |
||||
# # log.debug(f"__init_configuration_IP_SAM {j}", __name__, "", "" ) |
||||
# inipath = CAL_DIR.joinpath(self.device, self.ramses[j]["inifile"]) |
||||
# # log.debug(f"__init_configuration_IP_SAM {inipath}", __name__, "", "" ) |
||||
# sam = Readfile.readSAMCalFromIni(inipath) |
||||
# # log.debug(f"__init_configuration_IP_SAM {sam}", __name__, "", "" ) |
||||
# for k,v in sam.items(): |
||||
# self.ramses[j].update({ k : v }) |
||||
# if self.ramses[j]["TYPE"] == "SAMIP": |
||||
# ip = Readfile.readIPCalFromIni(inipath) |
||||
# for k,v in ip.items(): |
||||
# self.ramses[j].update({ k : v }) |
@ -0,0 +1,322 @@ |
||||
#! python3 |
||||
# -*- encoding: utf-8 -*- |
||||
''' |
||||
@File : myconfig.py |
||||
@Time : 2023/03/01 15:28:20 |
||||
@Author : Jim @ Yiwin |
||||
@Version : 1.0 |
||||
@Contact : jim@yi-win.com |
||||
@Descrip : SysConfig |
||||
''' |
||||
|
||||
import yaml |
||||
from enum import Enum |
||||
from pathlib import Path |
||||
|
||||
DEVICE_ID = [2] |
||||
CURRENT_DIR = Path() |
||||
DATA_DIR = Path("data") |
||||
CAL_DIR = Path("calfile") |
||||
OUTPUT_DIR = Path("data", "output") |
||||
YAML_FILE_NAME = "config.yml" |
||||
RETRIEVE_CFG_FILE = "retrieve.yml" |
||||
FILE_MARK = ['Spectrum', 'DATA'] |
||||
BEGIN_WAVELENGTH = 350 |
||||
END_WAVELENGTH = 950 |
||||
SAVE_EXT_NAME = ".csv" |
||||
INTERVAL = 1.0 |
||||
SEPARATOR = ";" |
||||
TOKEN = ";" |
||||
NEWLINE = "\n" |
||||
ROWFACTOR = 0.026 |
||||
|
||||
class DeviceType(Enum) : |
||||
AWRAMS = 1 |
||||
SURFACE = 2 |
||||
PROFILE = 3 |
||||
|
||||
class RamsesFunc(Enum): |
||||
Lsky = 1 |
||||
Esky = 2 |
||||
Lwater = 3 |
||||
Lw = 4 |
||||
Rs = 5 |
||||
|
||||
class RamsesAWRAMS(Enum): |
||||
Lsky = 1 |
||||
Esky = 2 |
||||
Lwater = 3 |
||||
Lw = 4 |
||||
Rs = 5 |
||||
|
||||
class RamsesSURFACE(Enum): |
||||
Lsky = 1 |
||||
Esky = 2 |
||||
Lwater = 3 |
||||
Lw = 4 |
||||
Rs = 5 |
||||
|
||||
class RamsesPROFILE(Enum): |
||||
Ed = 1 |
||||
Esky = 2 |
||||
Lu = 3 #upwelling |
||||
Lw = 4 |
||||
Rs = 5 |
||||
|
||||
IP_CAL = { |
||||
"Incl_Orientation": "up", |
||||
"Incl_Xgain": 1.0, |
||||
"Incl_Xoffset": 125, |
||||
"Incl_Ygain": 0.9375, |
||||
"Incl_Yoffset": 126, |
||||
"Incl_KBG": 1.2073, |
||||
"Incl_Kref": 0.1275, |
||||
"Press_Current_mA": 1.08, |
||||
"Press_Surface_bar": 5.57, |
||||
"Press_Gain": 2.7, |
||||
"WithIncl": 1, |
||||
"WithPress": 1, |
||||
"Press_Sens_mV_bar_4mA": 71.36, |
||||
"Press_Sens_mV_bar_1mA": 17.84, |
||||
"Press_Type": "PA-10/TAB/10bar", |
||||
"CalibrationDate": "08.06.2018", |
||||
} |
||||
|
||||
RAMSES_CAL = { |
||||
"SN": "", |
||||
"TYPE": "SAM", # SAMIP or SAM |
||||
"FUNC": "Lsky", |
||||
"inifile": "", |
||||
"calfile": "", |
||||
"calaqfile": "", |
||||
"backfile": "", |
||||
"samsn": "", |
||||
"b0": [], |
||||
"b1": [], |
||||
"cal": [], |
||||
"calaq": [], |
||||
"DarkPixelStart": 237, |
||||
"DarkPixelStop": 254, |
||||
"Firmware": 2.06, |
||||
"IDDataBack": "DLAB_2016-11-29_14-47-59_729_812", |
||||
"IDDataCal": "DLAB_2016-12-07_12-00-24_364_510", |
||||
"IDDataCalAQ": "DLAB_2016-12-07_12-02-43_591_545", |
||||
"IntegrationTime": 0, |
||||
"Reverse": 0, |
||||
"SerialNo_MMS": 103307, |
||||
"WavelengthRange": "310..1100", |
||||
"c0s": 299.895, |
||||
"c1s": 3.31161, |
||||
"c2s": 0.00031652, |
||||
"c3s": -1.73194e-06, |
||||
"c4s": +0.000000000E+00, |
||||
"cs": 102842, |
||||
"savefile": "" |
||||
} |
||||
|
||||
class MyConfig(object): |
||||
""" |
||||
设置 ID对应的传感器 |
||||
""" |
||||
|
||||
def __init__(self) -> None: |
||||
self.device_id = [] |
||||
self.device_type = None |
||||
self.current_device_id = None |
||||
self.system_cfg = {} |
||||
self.cfg_path = Path() |
||||
self.yml_cfg_file = YAML_FILE_NAME |
||||
self.retrieve_cfg_file = Path(RETRIEVE_CFG_FILE) |
||||
self.system_cal_cfg = {} |
||||
self.validate = { } |
||||
|
||||
def addDeviceID(self, id:int) -> None: # |
||||
self.device_id.append(id) |
||||
pass |
||||
|
||||
def setDeviceID(self, id:int) -> bool: # |
||||
if id in self.device_id: |
||||
self.current_device_id = id |
||||
return True |
||||
else: |
||||
self.current_device_id = None |
||||
return False |
||||
pass |
||||
|
||||
def setDeviceType(self, device_type:DeviceType) -> None: |
||||
self.device_type = device_type |
||||
pass |
||||
|
||||
def setRetrieveCfg(self, rtv_yml:str="") -> None: |
||||
if rtv_yml =="": |
||||
return None |
||||
self.retrieve_cfg_file = Path(rtv_yml) |
||||
pass |
||||
|
||||
def getSystemCfg(self,)->None: |
||||
''' |
||||
不同系统,修改此函数,或添加函数 getSystemCfg***()供调用 |
||||
''' |
||||
if self.current_device_id == None: |
||||
self.system_cfg = None |
||||
if self.device_type == None: |
||||
self.system_cfg = None |
||||
temp_cfg = {} |
||||
if self.device_type == DeviceType.AWRAMS: |
||||
temp_cfg = { |
||||
1: {"SN": "85B5", "FUNC": RamsesAWRAMS(1).name}, |
||||
2: {"SN": "50ED", "FUNC": RamsesAWRAMS(2).name}, |
||||
3: {"SN": "852F", "FUNC": RamsesAWRAMS(3).name} |
||||
} |
||||
if self.device_type == DeviceType.SURFACE: |
||||
temp_cfg = { |
||||
1: {"SN": "85B5", "FUNC": RamsesSURFACE(1).name}, |
||||
2: {"SN": "50ED", "FUNC": RamsesSURFACE(2).name}, |
||||
3: {"SN": "852F", "FUNC": RamsesSURFACE(3).name} |
||||
} |
||||
if self.device_type == DeviceType.PROFILE: |
||||
temp_cfg = { |
||||
1: {"SN": "85B5", "FUNC": RamsesPROFILE(1).name}, |
||||
2: {"SN": "50ED", "FUNC": RamsesPROFILE(2).name}, |
||||
3: {"SN": "852F", "FUNC": RamsesPROFILE(3).name} |
||||
} |
||||
self.system_cfg.update( { self.current_device_id : temp_cfg } ) |
||||
pass |
||||
|
||||
def setCfgRamsesSN(self, sn_cfg: dict)->None: |
||||
if len(sn_cfg) == 0: |
||||
return None |
||||
|
||||
for k in self.system_cfg[self.current_device_id].keys(): |
||||
if str(k) in sn_cfg.keys() : |
||||
self.system_cfg[self.current_device_id][k]["SN"] = sn_cfg[str(k)] |
||||
else: |
||||
self.system_cfg[self.current_device_id][k]["SN"] = None |
||||
# if k in sn_cfg.keys() : |
||||
# self.system_cfg[self.current_device_id][k]["SN"] = sn_cfg[k] |
||||
pass |
||||
|
||||
def setSystemCalCfg(self, sn_cfg: dict)->None: |
||||
if len(sn_cfg) == 0: |
||||
pass |
||||
|
||||
def getDictByAttr(self, *args) -> dict: |
||||
ret = {} |
||||
if len(args) == 0: |
||||
return ret |
||||
if len(args) == 1: |
||||
if not hasattr(self, args[0]): |
||||
return ret |
||||
tmp = getattr(self, args[0]) |
||||
if isinstance(tmp, dict): |
||||
ret.update(tmp) |
||||
return ret |
||||
if len(args) == 2: |
||||
if not hasattr(self, args[0]): |
||||
return ret |
||||
if not isinstance(getattr(self, args[0]), dict): |
||||
return ret |
||||
tmp: dict = getattr(self, args[0]) |
||||
if not tmp.__contains__(args[1]): |
||||
# print(f"------------{args[1]}") |
||||
return ret |
||||
tmp2 = tmp[args[1]] |
||||
if isinstance(tmp2, dict): |
||||
ret.update(tmp2) |
||||
return ret |
||||
if len(args) > 2: |
||||
return ret |
||||
pass |
||||
|
||||
# 设置字典对应的键值 |
||||
def set_attr(self, d: dict, k, v) -> bool: |
||||
if d.__contains__(k): |
||||
d.update({k: v}) |
||||
return True |
||||
return False |
||||
|
||||
def write_yaml(self, d: dict): |
||||
with open(self.yml_cfg_file, "w", encoding="utf-8") as f: |
||||
yaml.dump(d, f) |
||||
|
||||
def read_yaml(self ) -> dict: |
||||
with open(self.yml_cfg_file, "r", encoding="utf-8") as f: |
||||
content = f.read() # conent 读出来是字符串 |
||||
d = yaml.load(content, Loader=yaml.FullLoader) # 用load方法转字典 |
||||
return d |
||||
|
||||
def write_rtv_yaml(self, d: dict): |
||||
with open(self.retrieve_cfg_file, "w", encoding="utf-8") as f: |
||||
yaml.dump(d, f) |
||||
|
||||
def read_rtv_yaml(self ) -> dict: |
||||
with open(self.retrieve_cfg_file, "r", encoding="utf-8") as f: |
||||
content = f.read() # conent 读出来是字符串 |
||||
d = yaml.load(content, Loader=yaml.FullLoader) # 用load方法转字典 |
||||
return d |
||||
|
||||
def get_retrieve(self) -> dict: |
||||
retrieve = {} |
||||
retrieve.update({"beginWL": BEGIN_WAVELENGTH}) |
||||
retrieve.update({"endWL": END_WAVELENGTH}) |
||||
retrieve.update({"interval": INTERVAL}) |
||||
retrieve.update({"rowFactor": ROWFACTOR}) |
||||
return retrieve |
||||
pass |
||||
|
||||
ramses_buf_str= "\ |
||||
23a0000007fefe0a0781067d067d068e0693069c069c06b006b506cb06e40619076607e1076c081509cd09bb0a7d0bee0b1d0c6d0cca0ca40ddc0f30135b18b4224d320e43f852c8\ |
||||
23a0000006fefe17639c71c97c9484bb89358be98e5d98b1a37eadccb66abd26be31b97db124aa18a3f29c0499349735968e93a48eea8a028bc28cec8d048f1c92c096de9ab99d43\ |
||||
23a0000005fefee0a157a9ecb1b1b97dc034c507c741c7d2c65ec550c20dbde9b535ae56a60a9e2296cd8ee887278129798170c669b16503632e61605f3a5def5a8e5862561154be\ |
||||
23a0000004fefe3c51f54dda4a0c48634595426a3f5a3cc539903767362b36cc351f356634b633fc32c4310630fb2ec32fe63199349037e03ac03dc03eae3c303a9639d13a413da7\ |
||||
23a0000003fefe97412746bc49404caa4dc54d374ca646d63bde326b332739e43c503d2b3c363aca37ef342d32c22f782d1d2bd328ec250222101e691b2b1a7119d3184018fa174d\ |
||||
23a0000002fefed3177a17e3160616f81423149313f11233126711d8103b10a40f160f8a0efb0d580d660c6f0bd80aa10a580a000ab4099b0994097109e2082c087a0736072c077d\ |
||||
23a0000001fefe2a071e071607140718071e073c074d076a076e076b076007670763076c0760075c073d07350724071207fb06ef06d706cc06b706a506960684067b0672066306a2\ |
||||
23a0000000fefe58065406500642064e064306470642063f064806410644064306430641064206460640063c063e063e063d064406430644063c063c063c063c06400640064906ed\ |
||||
23a0000007fefe0a071b071c07260737073e0749075907650774078b07c0072c08e3082b0ada0be80d9c107b147318931ae51add1a271a77192f1bfb1d99207c265c30c738f03d53\ |
||||
23a0000006fefe07438f489d4d8452d957945cff639171a5832a97deab7fbe09c86cc5acb9d5ab299e90915287de7f8b7ae275ed6f056aff664f662665bc63936335655767926879\ |
||||
23a0000005fefec269206d3e724377fe7b7a8050831f85b68637881689e4884787008580823d7f887bee773d7496702a6cde654c5f895a1f570d5416514d4e9d4bde4897468c44c3\ |
||||
23a0000004fefe71421640db3dc83bbb39533777346c31b92e912c152b5b2aff292129e727cb26d925fd249223b4214020da1fe91ff41f28209420dc201520071e671c221c8d1cfe\ |
||||
23a0000003fefecd1dd31fe72164235924cb24b924f72331211e1ca018ef19221d121f621fe91e081ed51c761b311a2f193c18651788166015a013de11d1106e1041101810e80f2e\ |
||||
23a0000002fefee50fd90fbc0f6d0ff70e610ee00d930d460de40c900c450c010cbd0b7c0b480bfc0aab0a2c0a9e094d092b09fb08d008a208990881087d083908e6078d07660747\ |
||||
23a0000001fefe5b075a07500751074d074e0751075d076807730788077e077c077c07810777077a076c0765075c075607480740073607270723070d070d070b07ff06fd06f0062f\ |
||||
23a0000000fefef606f106ed06f506ef06eb06f106ec06f006e906e806ed06e606ef06e506ea06ec06ee06eb06e906ee06f006ef06ea06e906e606e606e606ec06ea06ea06f506f2\ |
||||
23a0000007fefe0605830479047d047e04810482048204850487048b048c04850487048c049304950498049c04a804a904b604b804c604d004e104f104190546059805ff059a06bb\ |
||||
23a0000006fefe90073209ea0b7610c117cc22b2324a487b645e8798acf2c927d28dc1f2a1ac809664804e543d7a308327a321d81dab1b0f1bca1bb41dba2098243329382e773335\ |
||||
23a0000005fefeca38213e544329486f4c1c500653335592564f577d573b57a556b4557e540a534451424f004d714a9b47994458410e3e9c3af8368c33b630982eca2c052b3429ae\ |
||||
23a0000004fefe632763255a234821321f0e1d061b291983171e16d814a91379124b1138104b0f610e990dd80c240c880bfc0a7b0af8097709020990082508de07c507ba07a50762\ |
||||
23a0000003fefe950781076407460727070007d306ab066e06270605060d0614061306fe05e805d105b405a00586057105630549053d0528051105fd04f304ee04e404dc04dd04c3\ |
||||
23a0000002fefed804d904d004c604bf04b904b904b104a804a604a6049d04980496048f04970491048c04880486047e0484047a047d047b047c0478047a04760476047004700430\ |
||||
23a0000001fefe6f0474046c046d0472046d047304750470046e04760472046f047604700473046f04730470047504700470046d046b047004710470046e046d046a046b046904e4\ |
||||
23a0000000fefe690470046e046b046c04680468046e0466046a046a0469046b046d04640466046c046c046b046a04660466046b046c046a046a0468046f046804740471048d0417\ |
||||
" |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
cfg = MyConfig() |
||||
cfg.addDeviceID(2) |
||||
cfg.addDeviceID(3) |
||||
cfg.setDeviceType(DeviceType.AWRAMS) |
||||
cfg.setDeviceID(2) |
||||
cfg.getSystemCfg() |
||||
print(cfg.system_cfg) |
||||
|
||||
d = {"1":"8888","2":["7777"],"3":["9999"]} |
||||
cfg.setCfgRamsesSN(d) |
||||
print("修改后。。。。。\n") |
||||
print(cfg.system_cfg) |
||||
|
||||
# cfg.write_yaml( cfg.system_cfg) |
||||
|
||||
dd = cfg.read_yaml() |
||||
# dd 作为cfg.system_cfg 使用 |
||||
for k,v in dd.items(): |
||||
print(k) |
||||
print(type(k)) |
||||
|
||||
retrieve = { |
||||
"beginWL": 350, |
||||
"endWL": 950, |
||||
"interval": 1, |
||||
"rowFactor": 0.026 |
||||
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,526 @@ |
||||
#!/usr/bin/env python |
||||
# coding:utf-8 |
||||
|
||||
''' |
||||
# 因为图片帧不是必须,必须按帧处理数据。 可能摄像头坏掉,没有传感器数据?? |
||||
# 按帧处理数据,必须在每帧接收完毕判断,数据是否完整, 完整则进一步处理 !!!!!!!!!!!! |
||||
# 时间作为目录 |
||||
''' |
||||
import socket |
||||
import socketserver |
||||
from socketserver import TCPServer,ThreadingMixIn |
||||
import threading |
||||
# import datetime |
||||
import time |
||||
# import os |
||||
import struct |
||||
from tools.mypath import MyDir |
||||
from tools.mylogger import log |
||||
from pathlib import Path,PurePath |
||||
from myconfig import DATA_DIR,DeviceType |
||||
from awrams import AWRAMS |
||||
|
||||
|
||||
IP = "" |
||||
PORT = 7887 |
||||
ADDRESS = (IP, PORT) # 绑定地址 |
||||
|
||||
# LOGGING_LEVEL = logging.DEBUG |
||||
# LOGGING_LEVEL = logging.INFO |
||||
# LOGGING_LEVEL = logging.WARNING |
||||
|
||||
DATA_FRAME_HEAD = b'\x11\x13\x55\xaa' |
||||
DATA_FRAME_TAIL = b'\xff\xd9' |
||||
PIC_BEGIN_BYTES = b'\xff\xd8' |
||||
|
||||
# 连接超时 |
||||
TIMEOUT_SECOND = 8 * 3600 |
||||
|
||||
# 连接线程池 |
||||
conn_pool = [] |
||||
|
||||
# save_path = Path |
||||
|
||||
class MyTCPServer(TCPServer): |
||||
def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True, cfg=None, retrieve=None): |
||||
self.cfg = cfg |
||||
self.retrieve = retrieve |
||||
TCPServer.__init__(self, server_address, RequestHandlerClass, bind_and_activate=True ) |
||||
|
||||
class MyThreadingTCPServer(ThreadingMixIn, MyTCPServer): pass |
||||
|
||||
class MyException(Exception): |
||||
def __init__(self, message="自定义异常"): |
||||
self.message = message |
||||
|
||||
|
||||
class illumination_sensor: |
||||
def __init__(self, socket: socket.socket) -> None: |
||||
self.__buf = b'' |
||||
self.__head = { |
||||
# "id" : -1, # 设备id |
||||
# 'type' : -1, # 类型 信息 传感器 图片 |
||||
# 'num' : -1, # 光学传感器的第几次测量 |
||||
# 'con' : -1, # 总的测量序号 |
||||
# 'size' : -1, # 字节大小 |
||||
# 'packet_con' : -1, # 第几帧 |
||||
# 'packet_all' : -1, # 总帧数 |
||||
# 'head' : b'', # 帧头 |
||||
# 'payload' : b'' # 具体内容 |
||||
} |
||||
self.state = 0 |
||||
self.socket = socket |
||||
self.id = 0 |
||||
# self.is_data_complete = { |
||||
# "info_frame": False, |
||||
# 'sensor_frame': False, |
||||
# 'pic_frame': False |
||||
# } |
||||
# self.data = { |
||||
# "info_frame": {}, |
||||
# 'sensor_frame': {}, |
||||
# 'pic_frame': {} |
||||
# } |
||||
self.timeout_base = int(time.time()) |
||||
|
||||
def set_id(self, id) -> None: # 对应设备ID |
||||
self.id = id |
||||
|
||||
# def set_socket(self,socket:socket.socket) -> socket.socket: |
||||
# tmp = self.socket |
||||
# self.socket=socket |
||||
# return tmp |
||||
|
||||
def read_buf(self, size: int) -> bytes: |
||||
if size > self.__buf.__len__(): |
||||
return b'' |
||||
ret = self.__buf[0:size] |
||||
self.__buf = self.__buf[size:] |
||||
return ret |
||||
|
||||
def write_buf(self, buf: bytes) -> None: |
||||
id = self.id |
||||
len = buf.__len__() |
||||
# logging.info(f'Received ID:{id} Size:{len}') |
||||
self.__buf = self.__buf+buf |
||||
|
||||
def get_buf_size(self) -> int: |
||||
return self.__buf.__len__() |
||||
|
||||
def back_bytes(self, buf: bytes) -> None: |
||||
self.__buf = buf+self.__buf |
||||
|
||||
def reset_head(self) -> None: |
||||
self.__head = {} |
||||
# self.__head['id'] = -1 |
||||
# self.__head['type'] = -1 |
||||
# self.__head['num'] = -1 |
||||
# self.__head['con'] = -1 |
||||
# self.__head['size'] = -1 |
||||
# self.__head['packet_con'] = -1 |
||||
# self.__head['packet_all'] = -1 |
||||
# self.__head['head'] = b'' |
||||
# self.__head['payload'] = b'' |
||||
|
||||
def reset_data(self) -> None: |
||||
self.data['info_frame']: dict = {} |
||||
self.data['sensor_frame']: dict = {} |
||||
self.data['pic_frame']: dict = {} |
||||
|
||||
def decode(self) -> dict: |
||||
if self.__head == {}: |
||||
while self.get_buf_size() >= 15: |
||||
if self.read_buf(1) != b'\x11': |
||||
continue |
||||
c = self.read_buf(1) |
||||
if c != b'\x13': |
||||
self.back_bytes(c) |
||||
continue |
||||
c = self.read_buf(1) |
||||
if c != b'\x55': |
||||
self.back_bytes(c) |
||||
continue |
||||
c = self.read_buf(1) |
||||
if c != b'\xaa': |
||||
self.back_bytes(c) |
||||
continue |
||||
head = self.read_buf(11) |
||||
head_list = struct.unpack('<HBIHBB', head) |
||||
self.__head['id'] = head_list[0] |
||||
self.__head['type'] = head_list[1] >> 4 |
||||
self.__head['num'] = head_list[1] & 0x0f |
||||
self.__head['con'] = head_list[2] |
||||
self.__head['size'] = head_list[3] |
||||
self.__head['packet_con'] = head_list[4] |
||||
self.__head['packet_all'] = head_list[5] |
||||
self.__head['head'] = b'\x11\x13\x55\xaa'+head |
||||
break |
||||
|
||||
if self.__head != {}: |
||||
payload = self.read_buf(self.__head['size']) |
||||
if payload != b'': |
||||
self.__head['payload'] = payload |
||||
data = self.__head.copy() |
||||
self.__head = {} |
||||
self.id = data['id'] |
||||
return data |
||||
|
||||
return {} |
||||
|
||||
class DealData: |
||||
""" |
||||
@description : 调用AWRAMS类处理数据 |
||||
@param : |
||||
@Returns : |
||||
""" |
||||
|
||||
def __init__(self) -> None: |
||||
self.device_id = None |
||||
self.devie_type = DeviceType.AWRAMS.name |
||||
self.measure_id = None |
||||
self.cfg = {} |
||||
self.awrams = None |
||||
pass |
||||
|
||||
def deal(self, id: int, con: int, cfg:dict , retrieve) -> None: # 取字典中的 payload |
||||
log.info(f" 接收到数据开始处理数据 device_id {id} ") |
||||
self.device_id = id |
||||
self.measure_id = con |
||||
if self.device_id is None: |
||||
self.device_id = id |
||||
if self.cfg == {}: |
||||
self.cfg = cfg |
||||
# self.cfg = cfg.get(self.device_id) |
||||
if self.awrams is None: |
||||
self.awrams = AWRAMS() ##处理数据 |
||||
self.awrams.setSyscfg(self.cfg) |
||||
self.awrams.setRetrieve(retrieve) |
||||
self.awrams.setDeviceID(self.device_id) |
||||
self.awrams.setMeasureID(self.measure_id) |
||||
path_tuple = ( "data", str(id), str(con) ) |
||||
self.awrams.setOldFolder( path_tuple ) |
||||
self.awrams.getInfoDict( ) |
||||
self.awrams.transferFromOldFolder() |
||||
self.awrams.deleteOldFolder() |
||||
self.awrams.dealOneMeasurement_Online() |
||||
log.info(f" Complete Dealing one group.") |
||||
# self.awrams.readOneFolder( ) |
||||
|
||||
|
||||
@staticmethod |
||||
def deal2(id: int, con: int) -> None: # 取字典中的 payload |
||||
log.info(f" 修改目录为时间格式,并处理 device_id: {id}, measure_con: {con} ") |
||||
src_dir = DATA_DIR.joinpath( str(id), str(con) ) |
||||
bin_file_list = src_dir.glob( '*.bin' ) |
||||
info_frame= DealData.read_bin( src_dir.joinpath('info.bin') ) |
||||
if info_frame == None: |
||||
raise MyException("处理数据时,信息帧读取数据为空") |
||||
|
||||
info_dict:dict= DealData.decode_info(info_frame) |
||||
if info_dict =={}: |
||||
raise MyException("从文件读取信息帧后,解析信息帧遇到异常") |
||||
|
||||
# id/year/month/day/con |
||||
dst_dir = DATA_DIR.joinpath("20"+str(info_dict["year"]), str(info_dict["month"]),str(info_dict["day"]), str(con)) |
||||
log.info( f"dst_dir: {dst_dir}") |
||||
if dst_dir.exists() == False: |
||||
dst_dir.mkdir(parents=True) |
||||
|
||||
# 保存info_dict到新的目录 |
||||
DealData.save_dict_to_file(info_dict, dst_dir.joinpath( |
||||
"info_20"+str(info_dict["year"]) |
||||
+str(info_dict["month"])+"_" |
||||
+str(info_dict["day"])+"_" |
||||
+str(info_dict["hour"])+"_" |
||||
+str(info_dict["minute"])+"_" |
||||
+str(info_dict["second"])+"_" |
||||
+".txt")) |
||||
|
||||
log.info(f" Src File path: {bin_file_list}" ) |
||||
# 将bin文件存到新的目录 |
||||
for bfl in bin_file_list: |
||||
fname_without_path= bfl.name |
||||
new_path = None |
||||
if fname_without_path == "pic.bin": |
||||
new_path = dst_dir.joinpath("pic.jpg" ) |
||||
else: |
||||
new_path= dst_dir.joinpath( fname_without_path ) |
||||
bfl.replace(new_path ) |
||||
# shutil.move( bfl, new_path ) |
||||
pass |
||||
|
||||
# 判断目录是否为空,删除旧的目录 |
||||
flist = src_dir.glob('*.*') |
||||
try: |
||||
next(flist) |
||||
log.warning(" 旧的文件夹还存在文件,不能删除,请仔细检测! ") |
||||
raise MyException("旧的文件夹还存在文件,不能删除,请仔细检测!") |
||||
except StopIteration: |
||||
src_dir.rmdir() |
||||
|
||||
if DealData.check_spectrum_data(dst_dir): |
||||
log.warning(" 目录光谱数据有异常 ") |
||||
raise MyException(f"{dst_dir} 目录光谱数据有异常") |
||||
pass |
||||
|
||||
DealData.calibrate_spectrum_data(dst_dir) |
||||
|
||||
DealData.retrieve_data(dst_dir) |
||||
|
||||
@staticmethod |
||||
def read_bin(fpath:Path): |
||||
ret = None |
||||
if fpath.exists() == False: |
||||
log.warning(f"not find file: {fpath} ") |
||||
return ret |
||||
ret = fpath.read_bytes() |
||||
# with open( fpath, 'rb') as file: |
||||
# ret = file.read() |
||||
# return ret |
||||
return ret |
||||
pass |
||||
|
||||
@staticmethod |
||||
def decode_info(info: bytes) -> dict: |
||||
ret = {} |
||||
try: |
||||
temp = struct.unpack( "<BBBBBBHHHHHHIIHHHHHBBBHHIfffIIIII", info ) |
||||
except Exception as e: |
||||
log.info( "decode info 有误, 收到info frame 字节有误" ) |
||||
return ret |
||||
time_ = "20"+str(temp[0]) + "-" + str(temp[1]) + "-" + str(temp[2]) + " " \ |
||||
+ str(temp[3]) + ":" + str(temp[4]) + ":" + str(temp[5]) |
||||
ret.update({"time": time_}) |
||||
ret.update({"year": temp[0]}) |
||||
ret.update({"month": temp[1]}) |
||||
ret.update({"day": temp[2]}) |
||||
ret.update({"hour": temp[3]}) |
||||
ret.update({"minute": temp[4]}) |
||||
ret.update({"second": temp[5]}) |
||||
ret.update({"Roll": temp[6]}) |
||||
ret.update({"Pitch": temp[7]}) |
||||
ret.update({"Yaw": temp[8]}) |
||||
ret.update({"Hx": temp[9]}) |
||||
ret.update({"Hy": temp[10]}) |
||||
ret.update({"Hz": temp[11]}) |
||||
ret.update({"lon": temp[12]}) |
||||
ret.update({"lat": temp[13]}) |
||||
ret.update({"satelite_num": temp[14]}) |
||||
ret.update({"PDOP": temp[15]}) |
||||
ret.update({"HDOP": temp[16]}) |
||||
ret.update({"VDOP": temp[17]}) |
||||
ret.update({"Temperature": temp[18]}) |
||||
ret.update({"Humidity": temp[19]}) |
||||
ret.update({"Battery": temp[20]}) |
||||
ret.update({"ErrorCode": temp[21]}) |
||||
ret.update({"Azimuth": temp[22]}) |
||||
ret.update({"RunAngle": temp[23]}) |
||||
ret.update({"MeasuyeGroupNum": temp[24]}) |
||||
ret.update({"Tiltx": temp[25]}) |
||||
ret.update({"Tilty": temp[26]}) |
||||
ret.update({"Depth": temp[27]}) |
||||
|
||||
ret.update({"Sensor1": hex(temp[28])[2:].upper()}) # 28 27 转16进制 |
||||
ret.update({"Sensor2": hex(temp[29])[2:].upper()}) # 30 29 |
||||
ret.update({"Sensor3": hex(temp[30])[2:].upper()}) # 32 31 |
||||
ret.update({"Measure_Num": temp[31]}) # 33 |
||||
ret.update({"Measure_Interval": temp[32]}) # 34 |
||||
ret.update({"Measure_Repeat": temp[33]}) # 35 |
||||
return ret |
||||
pass |
||||
|
||||
@staticmethod |
||||
def save_dict_to_file(info_dict:dict, fpath:Path) ->None: |
||||
temp_str = "" |
||||
for key, value in info_dict.items(): |
||||
temp_str = temp_str + key + " : " + str(value) + "\n" |
||||
with open(fpath, "w+") as f: |
||||
f.write(temp_str) |
||||
|
||||
ret = None |
||||
if fpath.exists() == False: |
||||
log.info(f"not find file: {fpath} ") |
||||
return ret |
||||
with open(fpath, 'rb') as file: |
||||
ret = file.read() |
||||
return ret |
||||
return ret |
||||
pass |
||||
|
||||
@staticmethod |
||||
def check_spectrum_data(dst_dir:Path): |
||||
# 判断目录下是否有 0.bin ...15.bin 文件 |
||||
sensor_file_list = dst_dir.glob( '*[0-9].bin' ) |
||||
fname_without_ext = [] |
||||
for fl in sensor_file_list: |
||||
temp = fl.stem |
||||
if not temp.isdigit: |
||||
log.warning( f" {dst_dir} 目录光谱文件的文件名 {temp} 不为数字,type:{type(temp)},请检查异常" ) |
||||
return False |
||||
fname_without_ext.append( int(temp) ) |
||||
|
||||
if len(fname_without_ext) ==0: |
||||
log.warning( f" {dst_dir} 目录没有发现光谱文件,请检查异常" ) |
||||
return False |
||||
|
||||
# 排序,然后检查是否有遗漏项 |
||||
fname_without_ext.sort() |
||||
for i in fname_without_ext: |
||||
if fname_without_ext[i] !=i: |
||||
log.warning( f" {dst_dir} 目录,序号{i}光谱文件的文件名没有发现,请检查异常" ) |
||||
return False |
||||
|
||||
return False |
||||
pass |
||||
|
||||
@staticmethod |
||||
def calibrate_spectrum_data(dst_dir): |
||||
''' |
||||
用ini back 等文件获得标定后数据 |
||||
''' |
||||
log.info("calibrate_spectrum_data.... ") |
||||
pass |
||||
|
||||
@staticmethod |
||||
def retrieve_data(dst_dir): |
||||
''' |
||||
反演遥感反射率等参数 |
||||
''' |
||||
log.info(" retrieve_data.... ") |
||||
pass |
||||
|
||||
def save(self,data: dict) -> None: |
||||
log.info(f"save .....to first dir {str(data['con'])} - type:{data['type']} - num {data['num']}") |
||||
# 路径 传感器id/测量序号(唯一) -- 处理数据时候改时间 |
||||
saveDir = DATA_DIR.joinpath(str(data['id']), str(data['con']) ) |
||||
if saveDir.exists() == False: |
||||
saveDir.mkdir(parents=True) |
||||
|
||||
if data['type'] == 0: |
||||
log.debug( f" {data['type']} - {data['num']}") |
||||
fpath = saveDir.joinpath("info.bin") |
||||
fpath.write_bytes( data['payload'] ) |
||||
elif data['type'] == 1: |
||||
log.debug( f" {data['type']} - {data['num']}") |
||||
fpath = saveDir.joinpath( str(data['num'])+".bin") |
||||
fpath.write_bytes( data['payload'] ) |
||||
elif data['type'] == 2: |
||||
log.debug( f" {data['type']} - {data['num']}") |
||||
fpath = saveDir.joinpath( "pic.bin" ) |
||||
fpath.write_bytes( data['payload'] ) |
||||
else: |
||||
pass |
||||
|
||||
|
||||
# class MyServer(socketserver.BaseRequestHandler): |
||||
class MyServer(socketserver.BaseRequestHandler): |
||||
|
||||
def setup(self) -> None: |
||||
log.debug(f"retrieve {self.server.retrieve}",__name__, "", "" ) |
||||
self.cfg =self.server.cfg |
||||
self.retrieve =self.server.retrieve |
||||
self.sk: socket.socket = self.request |
||||
self.sensor = illumination_sensor(self.request) |
||||
self.dealData = DealData() |
||||
self.begin_time = time.time() |
||||
conn_pool.append(self.client_address) |
||||
pass |
||||
|
||||
def handle(self) -> None: |
||||
|
||||
log.info('... connected from {}'.format(self.client_address),'__name__') |
||||
while True: |
||||
# self.request.recv 方法接收客户端发来的消息 |
||||
try: |
||||
data_byte = self.sk.recv(1000) |
||||
except ConnectionResetError as e: |
||||
log.warning( |
||||
f"recv ConnectionResetError, client {self.client_address} had close .....") |
||||
break |
||||
except: |
||||
log.warning(" sk.recv(1000) exception .....") |
||||
pass |
||||
|
||||
log.debug(len(data_byte)) |
||||
|
||||
# 客户端主动关闭连接后,会不断接收b'', 所以跳出循环,运行到程序结尾,自动关闭线程 |
||||
if data_byte == b'': |
||||
log.info( |
||||
" b'' is received , maybe client {self.client_address} had close. ") |
||||
self.sk.close() |
||||
if hasattr(self, "sensor"): |
||||
del self.sensor # 销毁对象 |
||||
break |
||||
else: |
||||
break |
||||
continue |
||||
else: |
||||
self.sensor.write_buf(data_byte) |
||||
|
||||
data_byte = b'' # 客户端掉线后以前数据不长居内存 |
||||
|
||||
try: |
||||
data_ = self.sensor.decode() |
||||
except MyException as e: |
||||
log.warning(e) |
||||
break |
||||
except Exception as e: |
||||
log.warning("decode data 出现异常 ") |
||||
log.warning(e) |
||||
break |
||||
|
||||
if data_ != {}: |
||||
id = data_['id'] |
||||
data_code = data_['type'] |
||||
log.info(f'Received From ID:{id} DATA CODE:{data_code}') |
||||
|
||||
# 保存当前数据 |
||||
self.dealData.save(data_) |
||||
head = data_['head'] |
||||
log.info(f'Head :{head}') |
||||
|
||||
# 返回head给服务器 |
||||
self.sk.send(data_['head']) |
||||
|
||||
# 判断是否是最后一帧, 修改目录为时间格式并 |
||||
if data_["packet_con"] == data_["packet_all"]: |
||||
log.info(f'最后一帧数据已经收到并保存') |
||||
# id 为传感器测量id ,con 测量序号 |
||||
self.dealData.deal(data_['id'], data_["con"], self.cfg, self.retrieve) |
||||
pass |
||||
|
||||
if time.time() - self.begin_time > TIMEOUT_SECOND: |
||||
log.info(f'Received data timeout') |
||||
break |
||||
|
||||
def finish(self) -> None: |
||||
# 什么时候执行 finish |
||||
# 执行handle 出现意外错误时执行 finish,或handle break时执行 finish |
||||
# 关闭连接 |
||||
if self.sk: |
||||
self.sk.close() |
||||
|
||||
# conn_pool 连接池销毁 |
||||
if self.client_address in conn_pool: |
||||
conn_pool.remove(self.client_address) |
||||
|
||||
log.info( |
||||
f"finish(): stop one socket from client {self.client_address} ") |
||||
|
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
server_ = socketserver.ThreadingTCPServer(ADDRESS, MyServer) |
||||
log.info('listening...........') |
||||
|
||||
try: |
||||
server_.serve_forever() |
||||
except KeyboardInterrupt: |
||||
log.info(" Ctrl+C 退出主程序 ") |
||||
server_.server_close() |
||||
except Exception as e: |
||||
log.info(" 系统异常, 如下: \n ") |
||||
log.info(e) |
||||
|
||||
# 有闪退,可以用线程将server_.serve_forever 包起来 |
||||
# threading.Thread(target=server_.serve_forever).start() |
@ -0,0 +1,4 @@ |
||||
beginWL: 350 |
||||
endWL: 950 |
||||
interval: 1 |
||||
rowFactor: 0.026 |
@ -0,0 +1,11 @@ |
||||
class TCPIPException(Exception): |
||||
def __init__(self, message="TCPIP 自定义异常"): |
||||
self.message = "TCPIP exception : " + message |
||||
|
||||
class SerialException(Exception): |
||||
def __init__(self, message="Serial 自定义异常"): |
||||
self.message = "serial exception : " + message |
||||
|
||||
class MyException(Exception): |
||||
def __init__(self, message=" 自定义异常"): |
||||
self.message = "自定义异常: " + message |
@ -0,0 +1,285 @@ |
||||
# coding=utf-8 |
||||
''' |
||||
单例模式日志 -- 使用一次关闭 handler |
||||
这种方法优缺点: |
||||
缺点: 输出的format 需要自己定义 ,并过滤 |
||||
过滤要看是否以什么开头,或包含什么 |
||||
优点: 不占用文件资源,占用系统资源小 |
||||
调用 log.info( ) log.error() |
||||
''' |
||||
|
||||
import logging |
||||
import logging.handlers |
||||
import os |
||||
import time |
||||
import threading |
||||
# from config import LOG_PATH,LOG_LEVEL,LOG_ENABLED,LOG_FORMAT, \ |
||||
# LOG_TO_CONSOLE,LOG_TO_FILE |
||||
|
||||
MY_LOGGER_NAME = "DefaultLogger" |
||||
LOG_ENABLED = True # 是否启用日志 |
||||
LOG_TO_CONSOLE = True # 是否启用控制台输出日志 |
||||
LOG_TO_FILE = False # 是否启用文件输出 |
||||
LOG_COLOR_ENABLE = True # 是否启用颜色日志 |
||||
|
||||
LOGGER_DIR = "logs" |
||||
LOGGER_PATH = os.path.join( os.path.dirname(__file__), LOGGER_DIR ) |
||||
LOGGER_FILENAME = os.path.join( LOGGER_PATH, 'logs.log' ) |
||||
|
||||
""" |
||||
logging.INFO , logging.DEBUG , logging.WARNING , logging.ERROR , |
||||
""" |
||||
LOG_LEVEL = logging.INFO # 日志等级DEBUG INFO WARNIG ERROR |
||||
# LOG_LEVEL = logging.DEBUG |
||||
# LOG_LEVEL = logging.WARNING |
||||
|
||||
""" |
||||
# LOG_FORMAT = " %(name)s - %(module)s - %(filename)s - %(lineno)d | %(levelname)s : %(message)s" |
||||
# LOG_FORMAT = "%(levelname)s - %(asctime)s - process: %(process)d - threadname: %(thread)s " \ |
||||
# "- %(filename)s - %(funcName)s - %(lineno)d - %(module)s " \ |
||||
# "- %(message)s " |
||||
# LOG_FORMAT = "%(asctime)s - %(thread)s " \ |
||||
# "- %(levelname)s ::: %(message)s " |
||||
# '[%(asctime)s] |%(thread)s| %(levelname)-6s: %(message)s' |
||||
# fm = '%(levelname):%(levelno)s:%(name)s:%(funcName)s:%(asctime):%(pathname):%(filename):%(module):%(thread):%(threadName)' |
||||
# 此处日志颜色,修改日志颜色是通过 Filter实现的 |
||||
""" |
||||
LOG_FORMAT = '%(levelname)s\t[%(asctime)s] %(package)s:%(classname)s:%(funcname)s \t>> %(message)s' |
||||
|
||||
""" |
||||
# 此处日志颜色,修改日志颜色是通过 Filter实现的 |
||||
""" |
||||
LOG_FORMAT_COLOR_DICT = { |
||||
'ERROR' : "\033[31mERROR\033[0m", |
||||
'INFO' : "\033[36mINFO\033[0m", |
||||
'DEBUG' : "\033[1mDEBUG\033[0m", |
||||
'WARN' : "\033[33mWARN\033[0m", |
||||
'WARNING' : "\033[33mWARNING\033[0m", |
||||
'CRITICAL': "\033[35mCRITICAL\033[0m", |
||||
} |
||||
|
||||
""" |
||||
# Filter 用法, 以package class function 过滤 __package__ __class__ |
||||
# log.error( f"{__package__}::{__class__.__name__}::{sys._getframe().f_code.co_name} >> ") |
||||
# log.error( f"PacakgeName::ClassName::FunctionName:: ") |
||||
# LOGGER_FILTER_PACKAGE=[] 为空, 则Filter不起作用 |
||||
# 不为空,则只显示定义的报名 |
||||
# LOGGER_FILTER_CLASS=[] 为空, 则Filter不起作用 |
||||
# 不为空,则只显示定义的类或 |
||||
# LOGGER_FILTER_FUNCNAME=[] 为空, 则Filter不起作用 |
||||
# 不为空,则只显示定义的函数 |
||||
""" |
||||
# LOGGER_FILTER_PACKAGE = [ "test_logger" ] # 包名,文件名去 .py?? |
||||
LOGGER_FILTER_PACKAGE = [ ] |
||||
LOGGER_FILTER_CLASS = [ ] # 类名,文件名去 .py?? |
||||
# LOGGER_FILTER_CLASS = [ "LogTest" ] |
||||
# LOGGER_FILTER_FUNCNAME = [ "test1","test" ] # 函数名 |
||||
LOGGER_FILTER_FUNCNAME = [ ] |
||||
LOGGER_FILTER_LEVELNAME = [ ] # INFO DEBUG WARNING |
||||
|
||||
class PackageFilter(logging.Filter): |
||||
def __init__(self, filter_word:list = []): |
||||
self.filter_word = filter_word |
||||
pass |
||||
def filter(self, record: logging.LogRecord) -> bool: |
||||
if self.filter_word is not None: |
||||
return record.package in self.filter_word |
||||
|
||||
class ClassFilter(logging.Filter): |
||||
def __init__(self, filter_word:list = []): |
||||
self.filter_word = filter_word |
||||
pass |
||||
def filter(self, record: logging.LogRecord) -> bool: |
||||
if self.filter_word is not None: |
||||
return record.classname in self.filter_word |
||||
|
||||
pass |
||||
|
||||
class FunctionFilter(logging.Filter): |
||||
def __init__(self, filter_word:list = []): |
||||
self.filter_word = filter_word |
||||
pass |
||||
def filter(self, record:logging.LogRecord) -> bool: |
||||
if self.filter_word is not None: |
||||
return record.funcname in self.filter_word |
||||
|
||||
class LevelNameFilter(logging.Filter): |
||||
def __init__(self, filter_word:list = []): |
||||
self.filter_word = filter_word |
||||
pass |
||||
def filter(self, record:logging.LogRecord) -> bool: |
||||
if self.filter_word is not None: |
||||
return record.levelname in self.filter_word |
||||
|
||||
class ColorFilter(logging.Filter): |
||||
def __init__(self,): |
||||
pass |
||||
def filter(self, record: logging.LogRecord) -> bool: |
||||
record.levelname = LOG_FORMAT_COLOR_DICT.get(record.levelname) |
||||
return True |
||||
|
||||
class Log(object): |
||||
_instance_lock = threading.Lock() |
||||
|
||||
def __new__(cls, *args, **kwargs): |
||||
if not hasattr(Log, "_instance"): |
||||
with Log._instance_lock: |
||||
if not hasattr(Log, "_instance"): |
||||
Log._instance = object.__new__(cls) |
||||
return Log._instance |
||||
|
||||
def __init__(self, loggername = "DefaultLog" ): |
||||
# 文件命名 os.path.join(): 将多个路径组合后返回 |
||||
self.logger_filepath = LOGGER_FILENAME |
||||
self.loggername = loggername |
||||
self.level = LOG_LEVEL |
||||
|
||||
# 日志输出格式 |
||||
fm = LOG_FORMAT |
||||
self.formatter = logging.Formatter( fm ) |
||||
|
||||
# 生成记录器对象 |
||||
self.logger = logging.getLogger( self.loggername ) |
||||
self.logger.setLevel(LOG_LEVEL) |
||||
|
||||
# 日志过滤 |
||||
self.__add_filter() |
||||
|
||||
def __console(self, level, message, extra={} ): |
||||
# 添加 handler |
||||
self.__add_handler() |
||||
|
||||
# 判断日志级别 |
||||
if level == logging.INFO: |
||||
self.logger.info( message, extra=extra) |
||||
elif level == logging.DEBUG: |
||||
self.logger.debug(message,extra=extra) |
||||
elif level == logging.WARNING: |
||||
self.logger.warning(message,extra=extra) |
||||
elif level == logging.ERROR: |
||||
self.logger.error(message,extra=extra) |
||||
|
||||
# removeHandler在记录日志之后移除句柄,避免日志输出重复问题 |
||||
self.__remove_handler() |
||||
# if LOG_TO_FILE and self.file_handler: |
||||
# self.logger.removeHandler(self.file_handler) |
||||
# # 关闭打开的文件 |
||||
# self.file_handler.close() |
||||
# if LOG_TO_CONSOLE and self.stream_handler: |
||||
# self.logger.removeHandler(self.stream_handler) |
||||
# # 关闭打开的文件 |
||||
# self.stream_handler.close() |
||||
pass |
||||
|
||||
# debug < info< warning< error< critical |
||||
# debug模式 |
||||
def debug(self, message, package="Unknown", classname="Unknown", funcname="Unknown" ): |
||||
self.__console(logging.DEBUG, message, extra={"package":package, "classname":classname, "funcname":funcname} ) |
||||
# self.__remove_handler() |
||||
# info模式 |
||||
def info(self, message, package="Unknown", classname="Unknown", funcname="Unknown" ): |
||||
self.__console(logging.INFO, message, extra={"package":package, "classname":classname, "funcname":funcname} ) |
||||
# self.__remove_handler() |
||||
# warning模式 |
||||
def warning(self, message, package="Unknown", classname="Unknown", funcname="Unknown"): |
||||
self.__console(logging.WARNING, message, extra={"package":package, "classname":classname, "funcname":funcname} ) |
||||
# self.__remove_handler() |
||||
|
||||
# error模式 |
||||
def error(self, message, package="Unknown", classname="Unknown", funcname="Unknown"): |
||||
self.__console(logging.ERROR, message, extra={"package":package, "classname":classname, "funcname":funcname} ) |
||||
# self.__remove_handler() |
||||
|
||||
def __add_filter(self ): |
||||
if len( LOGGER_FILTER_PACKAGE ) > 0 : |
||||
self.logger.addFilter( PackageFilter( filter_word=LOGGER_FILTER_PACKAGE ) ) |
||||
if len( LOGGER_FILTER_CLASS ) > 0 : |
||||
self.logger.addFilter( ClassFilter( filter_word=LOGGER_FILTER_CLASS ) ) |
||||
if len( LOGGER_FILTER_FUNCNAME ) > 0 : |
||||
self.logger.addFilter( FunctionFilter( filter_word=LOGGER_FILTER_FUNCNAME ) ) |
||||
if len(LOGGER_FILTER_LEVELNAME) > 0 : |
||||
self.logger.addFilter( LevelNameFilter( filter_word=LOGGER_FILTER_LEVELNAME ) ) |
||||
|
||||
def __add_handler(self ): |
||||
if LOG_ENABLED and LOG_TO_FILE: |
||||
# 考虑使用 RotatingFileHandler TimedRotatingFileHandler防止日志过大 |
||||
# RotatingFileHandler("test", "a", 4096, 2, "utf-8") |
||||
# TimedRotatingFileHandler(filename=LOG_PATH+"thread_", when="D", interval=1, backupCount=7) |
||||
self.file_handler = logging.handlers.TimedRotatingFileHandler(filename=self.logger_filepath, when='D', interval=1, backupCount=30, encoding='utf-8') |
||||
# self.file_handler = logging.FileHandler( self.logger_filepath, encoding='utf-8' ) |
||||
self.file_handler.setFormatter( self.formatter ) |
||||
# self.file_handler.setLevel( LOG_LEVEL ) |
||||
# if LOG_COLOR_ENABLE: # 文件日志无需加彩色 |
||||
# self.file_handler.addFilter( ColorFilter( ) ) |
||||
self.logger.addHandler(self.file_handler) |
||||
|
||||
if LOG_ENABLED and LOG_TO_CONSOLE: |
||||
# 创建一个StreamHandler,用于输出到控制台 |
||||
|
||||
self.stream_handler = logging.StreamHandler() |
||||
self.stream_handler.setFormatter(self.formatter) |
||||
# self.stream_handler.setLevel( LOG_LEVEL ) |
||||
if LOG_COLOR_ENABLE: |
||||
self.stream_handler.addFilter( ColorFilter( ) ) |
||||
self.logger.addHandler(self.stream_handler) |
||||
|
||||
def __remove_handler(self ): |
||||
if LOG_TO_FILE and self.file_handler: |
||||
self.logger.removeHandler(self.file_handler) |
||||
if len(self.logger.handlers)>0: |
||||
self.logger.handlers.pop() |
||||
# 关闭打开的文件 |
||||
self.file_handler.close() |
||||
if LOG_TO_CONSOLE and self.stream_handler: |
||||
self.logger.removeHandler(self.stream_handler) |
||||
if len(self.logger.handlers)>0: |
||||
self.logger.handlers.pop() |
||||
# 关闭控制台 |
||||
self.stream_handler.close() |
||||
|
||||
def __remove_handler2(self ): |
||||
if LOG_ENABLED and LOG_TO_CONSOLE: |
||||
self.logger.removeHandler(self.stream_handler) |
||||
self.logger.handlers.pop() |
||||
# 关闭控制台 |
||||
self.stream_handler.close() |
||||
if LOG_ENABLED and LOG_TO_FILE: |
||||
self.logger.removeHandler(self.file_handler) |
||||
self.logger.handlers.pop() |
||||
# 关闭打开的文件 |
||||
self.file_handler.close() |
||||
|
||||
|
||||
log = Log( loggername = "DefaultLog") |
||||
|
||||
""" |
||||
filename: 指定日志文件名 |
||||
filemode: 和file函数意义相同,指定日志文件的打开模式,’w’或’a’ |
||||
format: 指定输出的格式和内容,format可以输出很多有用信息。显示的条目可以是以下内容: |
||||
%(levelname): 日志级别的名字格式 |
||||
%(levelno)s: 日志级别的数字表示 |
||||
%(name)s: 日志名字 loggername |
||||
%(funcName)s: 函数名字 |
||||
%(asctime): 日志时间,可以使用datefmt去定义时间格式,如上图。 |
||||
%(pathname): 脚本的绝对路径 |
||||
%(filename): 脚本的名字 |
||||
%(module): 模块的名字 |
||||
%(thread): thread id |
||||
%(threadName): 线程的名字 |
||||
""" |
||||
|
||||
""" |
||||
文件名行号 函数名, 要在调用的时候想办法了 |
||||
# 绝对路径 |
||||
print( __file__ ) |
||||
print( sys.argv[0] ) |
||||
|
||||
# 文件名 |
||||
print( os.path.basename(__file__) ) |
||||
print( os.path.basename(sys.argv[0]) ) |
||||
|
||||
self.__class__.__name__ |
||||
self.__class__.__name__, get_current_function_name() |
||||
|
||||
logger名 __name__ |
||||
""" |
@ -0,0 +1,265 @@ |
||||
from pathlib import PurePath, Path |
||||
|
||||
# from myconfig import NEWLINE,TOKEN,SEPARATOR |
||||
""" |
||||
""" |
||||
class MyDir(object): |
||||
""" |
||||
操作方法:设置base tuple_dir header |
||||
设置的是路径, 文件名要 ifNotNewFile 传入 |
||||
""" |
||||
|
||||
def __init__(self) -> None: |
||||
self.base_dir = Path() |
||||
self.dir_tuple = () |
||||
self.header = [] |
||||
self.header_str = "" |
||||
self.content = [] |
||||
self.content_str = "" |
||||
self.current_dir = None |
||||
self.current_filepath = None |
||||
pass |
||||
|
||||
def getDir(self,): |
||||
return self.current_dir |
||||
pass |
||||
|
||||
def setBaseDir(self, dir: Path): |
||||
self.base_dir = dir |
||||
self.current_dir = self.base_dir |
||||
pass |
||||
|
||||
def setDir(self, t:tuple=()): |
||||
self.dir_tuple = t |
||||
if len(self.dir_tuple) == 0 : |
||||
self.current_dir = self.base_dir |
||||
else: |
||||
self.current_dir = self.base_dir.joinpath( *t ) |
||||
pass |
||||
|
||||
def getDirFromBaseAndTuple(self, base_dir:Path, dir_tuple: tuple): |
||||
'''外部调用返回路径''' |
||||
ret_path = base_dir |
||||
t = dir_tuple |
||||
if len(t) == 0 : |
||||
ret_path = ret_path |
||||
else: |
||||
ret_path = ret_path.joinpath( *t ) |
||||
return ret_path |
||||
pass |
||||
|
||||
def setHeader(self, headerlist:list, headerSeperator: str = ";", headerinfo: str = None): |
||||
header_str = "" |
||||
if len(headerlist) == 0: |
||||
return |
||||
if headerinfo != None: |
||||
header_str = headerinfo + headerSeperator |
||||
for hl in headerlist: |
||||
header_str = header_str + str(hl) + headerSeperator |
||||
self.header_str = header_str[:-1] |
||||
pass |
||||
|
||||
def setContent(self, contentlist: list, contentSeperator: str = ";", contentinfo: str = None): |
||||
content_str = "" |
||||
if len(contentlist) == 0: |
||||
return |
||||
if contentinfo != None: |
||||
content_str = contentinfo + contentSeperator |
||||
tmp_str = "" |
||||
for cl in contentlist: |
||||
tmp_str = tmp_str + str(cl) + contentSeperator |
||||
self.content_str = content_str + tmp_str[:-1] |
||||
pass |
||||
|
||||
def newDirIfNot(self,) -> None: |
||||
# self.current_path = self.base_path.joinpath(self.path_tuple) |
||||
self.current_dir.mkdir(parents=True, exist_ok=True) |
||||
pass |
||||
|
||||
def newFileIfNot(self, fname: str) -> None: |
||||
self.newDirIfNot() |
||||
self.current_filepath = self.current_dir.joinpath(fname) |
||||
if not self.current_filepath.exists(): |
||||
with open(self.current_filepath, 'a') as f: |
||||
pass |
||||
return |
||||
pass |
||||
|
||||
def getCurrentFileSize(self,): |
||||
return self.current_filepath.stat().st_size |
||||
|
||||
def getFirstline(self,): |
||||
first_line = "" |
||||
with open(self.current_filepath, 'r') as f: # 打开文件 |
||||
first_line = f.readline() # 取第一行 |
||||
return first_line.strip('\n').strip('\r') |
||||
|
||||
def checkHeader(self,) -> int: |
||||
''' |
||||
返回: |
||||
0 : 文件为空,可以直接写header |
||||
1 : header对应上 无需处理 |
||||
-1: 需要提醒用户保存数据后,删除文件后再处理 |
||||
''' |
||||
if self.getCurrentFileSize() == 0: |
||||
return 0 |
||||
first_line = self.getFirstline() |
||||
# print(f"firstline: {first_line}" ) |
||||
# print(f"header_str: {self.header_str}" ) |
||||
if first_line == self.header_str: |
||||
return 1 |
||||
return -1 |
||||
pass |
||||
|
||||
def writeHeader(self,) -> None: |
||||
with open(self.current_filepath, "a") as f: |
||||
f.write(self.header_str) |
||||
return None |
||||
pass |
||||
|
||||
def writeContent(self,new_line="\n") -> None: |
||||
with open(self.current_filepath, "a") as f: |
||||
f.write(new_line+self.content_str) |
||||
return None |
||||
pass |
||||
|
||||
def is_dir_empty(self, ): |
||||
'''文件夹是否为空''' |
||||
has_next = next(self.current_dir.iterdir(), None) |
||||
if has_next is None: |
||||
return True |
||||
return False |
||||
|
||||
def is_file_empty(self,): |
||||
'''文件是否为空''' |
||||
if self.current_dir.stat().st_size ==0: |
||||
return True |
||||
return False |
||||
|
||||
def deleteDir(self,): |
||||
'''文件夹是否为空''' |
||||
try: |
||||
if self.current_dir.exists(): |
||||
self.current_dir.rmdir() |
||||
except OSError as e: |
||||
raise Exception(e) |
||||
return True |
||||
|
||||
## 其他需求 |
||||
def get_child_dir(self,) -> list: |
||||
ret = [] |
||||
tmp_dir = self.current_dir.glob("**/") |
||||
for td in tmp_dir: |
||||
if td.is_dir(): |
||||
ret.append(td.relative_to(self.current_dir)) |
||||
return ret |
||||
pass |
||||
|
||||
def get_child_dir_only(self,) -> list: |
||||
ret = [] |
||||
for d in self.current_dir.iterdir(): |
||||
if d.is_dir(): |
||||
ret.append(d.relative_to(self.current_dir)) |
||||
return ret |
||||
pass |
||||
|
||||
def get_files_from_currentdir(self, fmt:str="*/*" ) -> list: |
||||
'''fmt: * */* */*/*''' |
||||
ret = [] |
||||
tmp_dir = self.current_dir.glob(fmt) |
||||
print(tmp_dir) |
||||
for td in tmp_dir: |
||||
if td.is_file(): |
||||
ret.append(td) |
||||
return ret |
||||
pass |
||||
|
||||
def sort_dir_and_check( self, dirs:list ): |
||||
'''相对目录排序,目录最后一级''' |
||||
ret = [] |
||||
if len(dirs) == 0: |
||||
return ret |
||||
tmp = {} |
||||
tmp_lst = [] |
||||
for d in dirs: |
||||
last:str = d.parts[-1] |
||||
if last.isdigit() : |
||||
tmp.update( {last:d} ) |
||||
tmp_lst.append(int(last)) |
||||
pass |
||||
|
||||
tmp_lst.sort() |
||||
for t in tmp: |
||||
ret.append(tmp.get(str(t))) |
||||
pass |
||||
return ret |
||||
|
||||
|
||||
def sort_filepath_and_check(self, path_files:list): |
||||
'''相对目录排序,目录最后一级''' |
||||
ret = [] |
||||
if len(path_files) == 0: |
||||
return ret |
||||
tmp = {} |
||||
tmp_lst = [] |
||||
for d in path_files: |
||||
last:str = d.stem |
||||
if last.isdigit() : |
||||
tmp.update( {last:d} ) |
||||
tmp_lst.append(int(last)) |
||||
pass |
||||
|
||||
tmp_lst.sort() |
||||
for t in tmp: |
||||
ret.append(tmp.get(str(t))) |
||||
pass |
||||
return ret |
||||
|
||||
def group_and_sort_filepath(self,path_files:list): |
||||
ret = {} |
||||
# dirs_lst = [] |
||||
# len_files = len(path_files) |
||||
# if len_files == 0: |
||||
# return False |
||||
# for pf in path_files: |
||||
# pf_dir:str = pf.parts[-2] |
||||
# if pf_dir.isdigit() and int(pf_dir) not in dirs_lst: |
||||
# dirs_lst.append( int(pf_dir) ) |
||||
# dirs_lst.sort() |
||||
|
||||
|
||||
|
||||
|
||||
def check_dirs(self, dirs:list, begin:int =0, step:int=1): |
||||
'''检查目录是否从begin开始递增''' |
||||
len_dirs = len(dirs) |
||||
if len_dirs == 0: |
||||
return False |
||||
for i in range(begin,len_dirs,step) : |
||||
if dirs[i].parts[-1] != str(i) : |
||||
return False |
||||
return True |
||||
|
||||
def check_path_files(self,path_files:list,begin:int =0, step:int=1): |
||||
'''检查文件名从begin开始递增''' |
||||
len_files = len(path_files) |
||||
if len_files == 0: |
||||
return False |
||||
for i in range(begin,len_files,step) : |
||||
if path_files[i].stem != str(i) : |
||||
return False |
||||
return True |
||||
|
||||
if __name__ == "__main__": |
||||
mp = MyDir() |
||||
mp.setBaseDir(Path()) |
||||
print(mp.current_dir) |
||||
# t = ("test_dir","1","11") |
||||
t = ("test_dir", ) |
||||
mp.setDir( t ) |
||||
print(mp.current_dir) |
||||
|
||||
cd = mp.get_child_dir_only() |
||||
c = mp.sort_dir_and_check(cd) |
||||
print(cd ) |
||||
print(c ) |
@ -0,0 +1,66 @@ |
||||
from datetime import datetime, timedelta |
||||
# import locale |
||||
# locale.setlocale(locale.LC_ALL, '') |
||||
|
||||
TIME_STR = "2022-06-10 16:16:16" |
||||
STD_TIME_STR_FMT = "%Y-%m-%d %H:%M:%S" # 小写y是两位年份 |
||||
CUR_TIME_STR_FMT = "%Y-%m-%d %H:%M:%S" |
||||
|
||||
|
||||
class MyTime(object): |
||||
""" |
||||
操作方法:设置base tuple_path header |
||||
""" |
||||
|
||||
def __init__(self) -> None: |
||||
self.cur_time_str_fmt = "%Y-%m-%d %H:%M:%S" |
||||
self.std_time_str_fmt = "%Y-%m-%d %H:%M:%S" |
||||
self.cur_time_str = "" |
||||
self.std_time_str = "" |
||||
self.cur_datetime = "" |
||||
pass |
||||
|
||||
def setCurrentTimeStrFmt(self, s): |
||||
self.cur_time_str_fmt = s |
||||
pass |
||||
|
||||
def setStdTimeStrFmt(self, s): |
||||
self.std_time_str_fmt = s |
||||
pass |
||||
|
||||
def setCurrentTimeStr(self, s): |
||||
self.cur_time_str = s |
||||
self.cur_datetime = datetime.strptime(self.cur_time_str, self.cur_time_str_fmt) |
||||
pass |
||||
|
||||
def setStdTimeStr(self, s): |
||||
self.std_time_str = s |
||||
self.cur_datetime = datetime.strptime( |
||||
self.std_time_str, STD_TIME_STR_FMT) |
||||
pass |
||||
|
||||
def Current2STD(self): |
||||
# self.cur_datetime = datetime.strptime(self.cur_time_str , CUR_TIME_STR_FMT) |
||||
self.std_time_str = datetime.strftime( |
||||
self.cur_datetime, STD_TIME_STR_FMT) |
||||
pass |
||||
|
||||
def STD2Current(self, format: str): |
||||
# self.cur_datetime = datetime.strptime(self.std_time_str , STD_TIME_STR_FMT) |
||||
self.cur_time_str = datetime.strftime( |
||||
self.cur_datetime, CUR_TIME_STR_FMT) |
||||
pass |
||||
|
||||
def timeDelta(self, days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0): |
||||
self.cur_datetime = self.cur_datetime + \ |
||||
timedelta(days=0, seconds=0, microseconds=0, |
||||
milliseconds=0, minutes=0, hours=0, weeks=0) |
||||
pass |
||||
|
||||
|
||||
if __name__ == "__main__": |
||||
s = "2023-02-07 14:02:46" |
||||
mt = MyTime() |
||||
mt.setCurrentTimeStr(s) |
||||
print(mt.cur_datetime) |
||||
pass |
Loading…
Reference in new issue