From 038ab27778c4c5873623d9823418777127b688e0 Mon Sep 17 00:00:00 2001 From: esea_info Date: Tue, 13 Jun 2023 12:31:58 +0800 Subject: [PATCH] desktop--dataclass --- RamsesData.py | 150 ++ awrams.py | 1557 ++++++-------------- awrams.py.bk | 1126 ++++++++++++++ data/2/2022/8/17/51/0.bin | Bin 0 -> 1754 bytes data/2/2022/8/17/51/1.bin | Bin 0 -> 1754 bytes data/2/2022/8/17/51/2.bin | Bin 0 -> 1754 bytes data/2/2022/8/17/51/2022_8_17_12_20_13.csv | 6 + data/2/2022/8/17/51/3.bin | Bin 0 -> 1754 bytes data/2/2022/8/17/51/4.bin | Bin 0 -> 1754 bytes data/2/2022/8/17/51/info.bin | Bin 0 -> 79 bytes data/2/2022/8/17/51/pic.jpg | Bin 0 -> 47452 bytes myRamses.py | 786 ++++++++++ yiwinframe.py | 181 ++- 13 files changed, 2677 insertions(+), 1129 deletions(-) create mode 100644 RamsesData.py create mode 100644 awrams.py.bk create mode 100644 data/2/2022/8/17/51/0.bin create mode 100644 data/2/2022/8/17/51/1.bin create mode 100644 data/2/2022/8/17/51/2.bin create mode 100644 data/2/2022/8/17/51/2022_8_17_12_20_13.csv create mode 100644 data/2/2022/8/17/51/3.bin create mode 100644 data/2/2022/8/17/51/4.bin create mode 100644 data/2/2022/8/17/51/info.bin create mode 100644 data/2/2022/8/17/51/pic.jpg create mode 100644 myRamses.py diff --git a/RamsesData.py b/RamsesData.py new file mode 100644 index 0000000..3b44342 --- /dev/null +++ b/RamsesData.py @@ -0,0 +1,150 @@ + +from readcal import ReadCal +from pathlib import Path +# from Ramses import Ramses + + +class ReadData(object): + '''usage + rd = ReadData() + fpath = Path() + rawpath = fpath.joinpath("data", "Trace.log") + print(rawpath) + res = rd.read_by_column_with_beginline_endline(rawpath, 3, 140,394, " ") + print(res) + ''' + + def __init__(self,): + pass + + def read_by_column_with_beginline_endline(self, fpath: Path, colmon: int, beingline: int, endline: int, sep: str = " "): + res = [] + with fpath.open('r') as f_handle: + rflag = 0 + i = 0 + for line in f_handle: + # print(line) + i += 1 + if i > endline: + break + + if i < beingline: + continue + else: + temp = line.split( ) + print(f" {line} -- {temp}") + # print(temp[2]) + res.append( temp[colmon] ) + return res + pass + + def convert_str_2_byte(self,): + tmpstr ="" + for d in self.rawdata: + tmpstr = tmpstr + d + return bytes.fromhex(tmpstr ) + +class Ramses85C2(object): + def __init__(self,): + self.info_query = "23 00 00 80 b0 00 00 01" + self.it_query = "23 00 00 00 78 05 00 01" + self.cmd = "23 00 00 00 a8 00 81 01" + self.data_85C2 = "\ + 23 a0 00 00 07 fe fe 0b 09 5b 09 4e 09 55 09 54 09 4a 09 4d 09 49 09 4e 09 3b 09 3f 09 46 09 41 09 3a 09 41 09 4b 09 46 09 4c 09 51 09 4c 09 51 09 43 09 4d 09 4a 09 57 09 4f 09 53 09 4a 09 52 09 56 09 76 09 78 09 c1 \ + 23 a0 00 00 06 fe fe 86 09 8c 09 91 09 9e 09 ad 09 bf 09 e6 09 2f 0a 77 0a 62 0a 20 0a 04 0a 00 0a 04 0a 07 0a f4 09 f1 09 e2 09 ee 09 de 09 e7 09 ed 09 0b 0a 26 0a 31 0a 2d 0a 2c 0a 1f 0a 12 0a 23 0a 32 0a 44 0a 97 \ + 23 a0 00 00 05 fe fe 57 0a 6d 0a 76 0a 86 0a b6 0a 08 0b 16 0c 0f 0e 27 10 7d 10 05 0f 0f 0d c9 0b 0e 0b bf 0a 90 0a 89 0a b1 0a 14 0b 8f 0b 18 0c 65 0c 84 0c 7e 0c 8d 0c a3 0c 2f 0d 55 0f 44 12 4e 13 0c 12 47 10 36 \ + 23 a0 00 00 04 fe fe 31 0f a2 0e 18 0e 64 0d a2 0c 18 0c d8 0b bf 0b c4 0b b3 0b b1 0b a8 0b a1 0b a7 0b 93 0b 7b 0b 78 0b 6a 0b 5b 0b 46 0b 23 0b f9 0a ea 0a ec 0a 33 0b 98 0b c0 0b 61 0b e6 0a 80 0a 4c 0a 4a 0a e9 \ + 23 a0 00 00 03 fe fe 53 0a 7c 0a 93 0a c6 0a d1 0a ec 0a e0 0a e0 0a a0 0a 53 0a 35 0a 4c 0a 68 0a 8f 0a 86 0a 7b 0a 6b 0a 53 0a 34 0a 26 0a 14 0a 02 0a 03 0a f8 09 dd 09 c5 09 aa 09 98 09 90 09 8d 09 95 09 90 09 c1 \ + 23 a0 00 00 02 fe fe 9a 09 8e 09 93 09 8a 09 87 09 85 09 7b 09 7f 09 7b 09 70 09 6b 09 64 09 6e 09 76 09 6c 09 64 09 5f 09 58 09 54 09 3e 09 49 09 45 09 43 09 3f 09 35 09 40 09 36 09 36 09 41 09 34 09 3a 09 37 09 8a \ + 23 a0 00 00 01 fe fe 2e 09 35 09 34 09 33 09 39 09 2e 09 36 09 3f 09 42 09 38 09 35 09 43 09 3a 09 3e 09 43 09 40 09 3c 09 45 09 42 09 46 09 43 09 43 09 3f 09 47 09 46 09 35 09 44 09 44 09 3d 09 3c 09 47 09 3c 09 83 \ + 23 a0 00 00 00 fe fe 4d 09 37 09 43 09 43 09 44 09 45 09 55 09 49 09 41 09 4e 09 52 09 43 09 51 09 46 09 4b 09 58 09 54 09 4a 09 55 09 56 09 55 09 56 09 57 09 5d 09 74 09 66 09 72 09 71 09 69 09 73 09 5c 09 57 09 8a \ + " + self.data_after_remove_maske = None + self.data_Int_from_Hex = ['2395', '2382', '2389', '2388', '2378', '2381', '2377', '2382', '2363', '2367', '2374', '2369', '2362', '2369', '2379', '2374', '2380', '2385', '2380', '2385', '2371', '2381', '2378', '2391', '2383', '2387', '2378', '2386', '2390', '2422', '2424', '2438', '2444', '2449', '2462', '2477', '2495', '2534', '2607', '2679', '2658', '2592', '2564', '2560', '2564', '2567', '2548', '2545', '2530', '2542', '2526', '2535', '2541', '2571', '2598', '2609', '2605', '2604', '2591', '2578', '2595', '2610', '2628', '2647', '2669', '2678', '2694', '2742', '2824', '3094', '3599', '4135', '4221', '3845', '3343', '3017', '2830', '2751', '2704', '2697', '2737', '2836', '2959', '3096', '3173', '3204', '3198', '3213', '3235', '3375', '3925', '4676', '4942', '4620', '4167', '3889', '3746', '3608', '3428', '3234', '3096', '3032', '3007', '3012', '2995', '2993', '2984', '2977', '2983', '2963', '2939', '2936', '2922', '2907', '2886', '2851', '2809', '2794', '2796', '2867', '2968', '3008', '2913', '2790', '2688', '2636', + '2634', '2643', '2684', '2707', '2758', '2769', '2796', '2784', '2784', '2720', '2643', '2613', '2636', '2664', '2703', '2694', '2683', '2667', '2643', '2612', '2598', '2580', '2562', '2563', '2552', '2525', '2501', '2474', '2456', '2448', '2445', '2453', '2448', '2458', '2446', '2451', '2442', '2439', '2437', '2427', '2431', '2427', '2416', '2411', '2404', '2414', '2422', '2412', '2404', '2399', '2392', '2388', '2366', '2377', '2373', '2371', '2367', '2357', '2368', '2358', '2358', '2369', '2356', '2362', '2359', '2350', '2357', '2356', '2355', '2361', '2350', '2358', '2367', '2370', '2360', '2357', '2371', '2362', '2366', '2371', '2368', '2364', '2373', '2370', '2374', '2371', '2371', '2367', '2375', '2374', '2357', '2372', '2372', '2365', '2364', '2375', '2364', '2381', '2359', '2371', '2371', '2372', '2373', '2389', '2377', '2369', '2382', '2386', '2371', '2385', '2374', '2379', '2392', '2388', '2378', '2389', '2390', '2389', '2390', '2391', '2397', '2420', '2406', '2418', '2417', '2409', '2419', '2396', '2391'] + self.data_after_cal = ['-NAN', '-NAN', '-NAN', '-NAN', '-0.000374079098737787', '-0.000350299564017366', '-0.000308288008900915', '-0.000406703215465772', '-0.000782517236811813', '-0.000573793416652615', '-0.00047858675513217', '-0.000458967816052652', '-0.000504287959184394', '-0.000447624498184785', '-0.000329929609474648', '-0.000311089539389908', '-0.000241426218650632', '-0.000155549081409335', '-0.000206674384776802', '-0.000184117260326514', '-0.000400515105322605', '-0.000261175276588761', '-0.000236936402106257', '-0.000119852454613561', '-0.000208571462271621', '-0.000206679452776187', '-0.000226110950449552', '-0.000173668389025741', '-3.47786870511508e-05', '0.000431565020333614', '0.00060663534388101', '0.000686332535266336', '0.000633997985788337', '0.000683426784665538', '0.000810376424462623', '0.000977487972122931', '0.0011488859191218', '0.0014900751089907', '0.00236075482596874', '0.00317145485715499', '0.00306344143526345', '0.00239474261673403', '0.00205440437580532', '0.00204355781858809', '0.00204429770678325', '0.00209619386228008', '0.00207745353977213', '0.00199742689110857', '0.00192757766039574', '0.0020065090567182', '0.00182051371982471', '0.00186917458547627', '0.00194444798970978', '0.00234835283496405', '0.00266579974374106', '0.0027830862127088', '0.00271431366916961', '0.00260138246593869', '0.00239968576472302', '0.00226612671845309', '0.00233318764447794', '0.002477902713819', '0.00267311416614577', '0.00282127726501227', '0.00294799569217471', '0.00306502167633045', '0.00322048967901495', '0.00358661823161985', '0.00444376849744876', '0.00709769628665171', '0.0122939906493291', '0.0178687992140181', '0.0190586666416918', '0.0153888081761835', '0.0103872547168006', '0.00698417532956371', '0.00509764884563052', '0.00422591904697052', '0.00386707466583264', '0.00384686852617558', '0.00447141724614518', '0.00590161416357564', '0.007873557921568', '0.00996619981983026', '0.0113439756242113', '0.012084175791068', '0.0123503468366184', '0.0128315769774279', '0.0134171101680466', '0.0158548765344763', '0.0251673080552834', '0.0379065605827745', '0.042387765328768', '0.0369642797766271', '0.0295323766185935', '0.0249389916459621', '0.0225330956746252', '0.0203635029149668', '0.017488211846103', '0.0144173463999943', '0.0123843317165635', '0.0114019411929529', '0.0111789416833658', '0.0111983305027625', '0.0111816710067684', '0.0109885513820978', '0.0109633402330548', '0.0110017793246396', '0.0109832096077767', + '0.0106716412939721', '0.0104078212338621', '0.0103919268874104', '0.0102905529527295', '0.0100064099889762', '0.00964945409395506', '0.00899980577717771', '0.00831372402870705', '0.00800337054781435', '0.00810514020113715', '0.00971396906367039', '0.0117824377898393', '0.0126979589566504', '0.0109268574102577', '0.0081569795955378', '0.00608231125321172', '0.00536903424151555', '0.00515095650570321', '0.00546548370495543', '0.0064179576919473', '0.00721254810630632', '0.00825843331877762', '0.00887563044281818', '0.00948465628057633', '0.00943521661796268', '0.00941805233807299', '0.00817507910055595', '0.0063828758650207', '0.00570037632756356', '0.00633569879150338', '0.00732621550364458', '0.00831023416555818', '0.00836735731185972', '0.00820248787987211', '0.00795009752959998', '0.00744731623661109', '0.00671449314373285', '0.00645207600119107', '0.00616258170999556', '0.00590238723485042', '0.00588270560496661', '0.00585040636258424', '0.00518275446860646', '0.00440486341620425', '0.00315120935801831', '0.00253079254867871', '0.00251838946943526', '0.00243187254323672', '0.00259689067651864', '0.00289685708625053', '0.00315532785371054', '0.00296567127201329', '0.00334361133423194', '0.00319068613593708', '0.00309682930380023', '0.00286002840321542', '0.00253771928508401', '0.00264889595570155', '0.00240781581677323', '0.0020407357823836', '0.00180265159879711', '0.00157073370925985', '0.00157924570585415', '0.00202043219973252', '0.00159325094929071', '0.00085772022208578', '0.000251532984769505', '0.000311108954835756', '-0.000875645379648505', '-0.00268532065037732', '-0.00208008227276827', '-0.00274502459967993', '-0.00305638482684573', '-0.00361809694485078', '-0.00429916070213808', '-0.00391814239802678', '-0.00452869412271439', '-0.00479470431408746', '-0.00469215687138475', '-0.00632120636391946', '-0.00651219754894255', '-0.00647707031799787', '-0.00911082930810711', '-0.00782001901579526', '-0.00839643026395382', '-0.00830231747176574', '-0.00852361857772266', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN', '-NAN'] + self.wavelength = ['304.48099608248', '307.81937464637', '311.15832552384', '314.49783768875', '317.83790011496', '321.17850177633', '324.51963164672', '327.86127869999', '331.20343191', '334.54608025061', '337.88921269568', '341.23281821907', '344.57688579464', '347.92140439625', '351.26636299776', '354.61175057303', '357.95755609592', '361.30376854029', '364.65037688', '367.99737008891', '371.34473714088', '374.69246700977', '378.04054866944', '381.38897109375', '384.73772325656', '388.08679413173', '391.43617269312', '394.78584791459', '398.13580877', '401.48604423321', '404.83654327808', '408.18729487847', '411.53828800824', '414.88951164125', '418.24095475136', '421.59260631243', '424.94445529832', '428.29649068289', '431.64870144', '435.00107654351', '438.35360496728', '441.70627568517', '445.05907767104', '448.41199989875', '451.76503134216', '455.11816097513', '458.47137777152', '461.82467070519', '465.17802875', '468.53144087981', '471.88489606848', '475.23838328987', '478.59189151784', '481.94540972625', '485.29892688896', '488.65243197983', '492.00591397272', '495.35936184149', '498.71276456', '502.06611110211', '505.41939044168', '508.77259155257', '512.12570340864', '515.47871498375', '518.83161525176', '522.18439318653', '525.53703776192', '528.88953795179', '532.24188273', '535.59406107041', '538.94606194688', '542.29787433327', '545.64948720344', '549.00088953125', '552.35207029056', '555.70301845523', '559.05372299912', '562.40417289609', '565.75435712', '569.10426464471', '572.45388444408', '575.80320549197', '579.15221676224', '582.50090722875', '585.84926586536', '589.19728164593', '592.54494354432', '595.89224053439', '599.23916159', '602.58569568501', '605.93183179328', '609.27755888867', '612.62286594504', '615.96774193625', '619.31217583616', '622.65615661863', '625.99967325752', '629.34271472669', '632.68527', '636.02732805131', '639.36887785448', '642.70990838337', '646.05040861184', '649.39036751375', '652.72977406296', '656.06861723333', '659.40688599872', '662.74456933299', '666.08165621', '669.41813560361', '672.75399648768', '676.08922783607', '679.42381862264', '682.75775782125', '686.09103440576', '689.42363735003', '692.75555562792', '696.08677821329', '699.41729408', '702.74709220191', '706.07616155288', '709.40449110677', '712.73206983744', '716.05888671875', '719.38493072456', '722.71019082873', '726.03465600512', '729.35831522759', + '732.68115747', '736.00317170621', '739.32434691008', '742.64467205547', '745.96413611624', '749.28272806625', '752.60043687936', '755.91725152943', '759.23316099032', '762.54815423589', '765.86222024', '769.17534797651', '772.48752641928', '775.79874454217', '779.10899131904', '782.41825572375', '785.72652673016', '789.03379331213', '792.34004444352', '795.64526909819', '798.94945625', '802.25259487281', '805.55467394048', '808.85568242687', '812.15560930584', '815.45444355125', '818.75217413696', '822.04879003683', '825.34428022472', '828.63863367449', '831.93183936', '835.22388625511', '838.51476333368', '841.80445956957', '845.09296393664', '848.38026540875', '851.66635295976', '854.95121556353', '858.23484219392', '861.51722182479', '864.79834343', '868.07819598341', '871.35676845888', '874.63404983027', '877.91002907144', '881.18469515625', '884.45803705856', '887.73004375223', '891.00070421112', '894.27000740909', '897.53794232', '900.80449791771', '904.06966317608', '907.33342706897', '910.59577857024', '913.85670665375', '917.11620029336', '920.37424846293', '923.63084013632', '926.88596428739', '930.13960989', '933.39176591801', '936.64242134528', '939.89156514567', '943.13918629304', '946.38527376125', '949.62981652416', '952.87280355563', '956.11422382952', '959.35406631969', '962.59232', '965.82897384431', '969.06401682648', '972.29743792037', '975.52922609984', '978.75937033875', '981.98785961096', '985.21468289033', '988.43982915072', '991.66328736599', '994.88504651', '998.10509555661', '1001.32342347968', '1004.54001925307', '1007.75487185064', '1010.96797024625', '1014.17930341376', '1017.38886032703', '1020.59662995992', '1023.80260128629', '1027.00676328', '1030.20910491491', '1033.40961516488', '1036.60828300377', '1039.80509740544', '1043.00004734375', '1046.19312179256', '1049.38430972573', '1052.57360011712', '1055.76098194059', '1058.94644417', '1062.12997577921', '1065.31156574208', '1068.49120303247', '1071.66887662424', '1074.84457549125', '1078.01828860736', '1081.19000494643', '1084.35971348232', '1087.52740318889', '1090.69306304', '1093.85668200951', '1097.01824907128', '1100.17775319917', '1103.33518336704', '1106.49052854875', '1109.64377771816', '1112.79491984913', '1115.94394391552', '1119.09083889119', '1122.23559375', '1125.37819746581', '1128.51863901248', '1131.65690736387', '1134.79299149384', '1137.92688037625', '1141.05856298496'] + + self.calcfg = { + 'SN': '85C2', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85C2', + 'inifile': 'SAM_85C2.ini', 'calfile': 'Cal_SAM_85C2.dat', 'calaqfile': 'CalAQ_SAM_85C2.dat', 'backfile': 'Back_SAM_85C2.dat', + + "b0": ['0.0167342121256965', '0.0166272578208838', '0.0166286620082263', '0.0167322590351011', '0.0166920032801035', '0.0166775698812814', '0.0166447407209946', '0.0166906961017275', '0.0166809423386799', '0.0166877673382172', '0.0166557529834584', '0.0166967839378053', '0.0166669086656532', '0.0166892149702227', '0.0166767580418549', '0.0166905701296523', '0.0166797450805357', '0.0166853286793596', '0.0166606032573071', '0.0166908025324281', '0.0166781405941041', '0.0166909536291278', '0.016658955500689', '0.0166904685842953', '0.0166691280074769', '0.0167018280551104', '0.0166777291783793', '0.0166913413160407', '0.0166761335902522', '0.016706050038872', '0.0166582396233696', '0.0166925097855527', '0.0166940355830564', '0.0167090314943029', '0.0166814589637695', '0.0167022263850933', '0.0166789583657336', '0.0167125271321517', '0.0167029600590216', '0.0167033172125368', '0.0166891849602547', '0.016717239220566', '0.0166950287036272', '0.0167214463738202', '0.0167003460512228', '0.0167208076151397', '0.0167006723223871', '0.0167002158917102', '0.016694364122416', '0.0167280688060731', '0.0166797285052627', '0.0167266316426611', '0.0167086472969212', '0.0167237098582131', '0.0167077462999733', '0.0167322560689996', '0.0167032709762488', '0.0167360191794125', '0.0167094863546909', '0.0167321362036039', '0.0167044837628067', '0.0167368275293078', '0.0167091722968856', '0.0167287705507912', '0.0167181887219972', '0.0167349817417959', '0.0167306388457792', '0.0167342461486254', '0.0167197319671568', '0.0167519464465281', '0.0166999253882404', '0.0167488868255989', '0.016719535855505', '0.0167381012081846', '0.016714746997405', '0.0167499849810578', '0.0167221554465538', '0.0167373439799208', '0.0167244929090075', '0.0167622135196106', '0.0167296907401605', '0.0167466896422982', '0.0167188426601383', '0.0167413380972971', '0.0167347596331369', '0.0167533143427464', '0.0167352247876418', '0.0167353516320998', '0.0167414953006763', '0.016749848191436', '0.0167323993142541', '0.0167619493621011', '0.0167279053215378', '0.0167620692274968', '0.0167349965723033', '0.0167560658380733', '0.0167266768320897', '0.0167505611026539', '0.0167372640696571', '0.0167451675088022', '0.0167349737158742', '0.0167567040733241', '0.0167333020559676', '0.0167609921837014', '0.0167265123006951', '0.0167540701751976', '0.0167341789751504', '0.0167567098310506', '0.0167278048230401', '0.0167495269800919', '0.0167406579876722', '0.0167589262067727', '0.0167242688811064', '0.0167535141184058', '0.016737757663841', '0.0167484752353975', '0.0167302035267659', '0.0167375224694401', '0.0167320194787863', '0.016746486202631', '0.016722477006851', '0.0167550999358457', '0.0167311361039708', '0.0167435888449013', '0.016719886378911', '0.0167514476180474', '0.016733504972205', '0.0167560567652923', '0.0167352814925233', '0.016753138644852', '0.0167400480176239', '0.0167452113024184', '0.0167247150176664', '0.0167355227936036', '0.0167245276298426', '0.0167448593832', '0.0167307758098776', '0.0167412056695892', '0.0167255880983649', '0.0167422534013228', '0.0167193516082593', '0.0167385023297925', '0.016705906968094', '0.0167404309936697', '0.0167155682585657', '0.0167350478684115', '0.0167151202027635', '0.0167373663129203', '0.016693902980872', '0.0167265196287105', '0.0167148515088635', '0.0167491921595762', '0.0167138374511057', '0.01672268288919', '0.016713883163964', '0.0167278643195466', '0.016726385107284', '0.0167313726941841', '0.0167074498643005', '0.0167181608057478', '0.0167095725461107', '0.0167157395945461', '0.0167250866527359', '0.0167240209499168', '0.016707788697777', '0.016726686602777', '0.0167067578902697', '0.0167323436562319', '0.0166997167142764', '0.016728047519933', '0.0167000236185428', '0.0167135718977838', '0.0167101554722925', '0.0167162518577217', '0.016698760233783', '0.0167259262339352', '0.0167001843114531', '0.0167124269826071', '0.0166979893963477', '0.0167173175605408', '0.0167030137978017', '0.0167130235179605', '0.0166889363311589', '0.0167049515344599', '0.0166891643720208', '0.0167144257860609', '0.0166950775570635', '0.0167066258115149', '0.0166899927867203', '0.0167204148684066', '0.0166873287041492', '0.0167186125255577', '0.0166735365066795', '0.0167133203025865', '0.0166931954784274', '0.0167035377509067', '0.0166783023338738', '0.0167123730693506', '0.016688532417926', '0.0167097555720206', '0.0166789950058109', '0.0166970927613137', '0.0166853232705863', '0.0166682147971699', '0.0166882733202367', '0.0166994431350328', '0.016669055250752', '0.0167072431095787', '0.0166842073185183', '0.0167115228450812', '0.0166787196818017', '0.0166820776576458', '0.0166828917652676', '0.0166828919397441', '0.0166886184348693', '0.0167101844354013', '0.0166679419158325', '0.0167196613041506', '0.0166913228215255', '0.0166967333396033', '0.0166900756630856', '0.0166983214252384', '0.0166703969754865', '0.0167076025312892', '0.0166881337389899', '0.0167046749891148', '0.0166851051748882', '0.0166903757627661', '0.0166863544270468', '0.0167023502634498', '0.0166933265103228', '0.0166808331163543', '0.0166929039280982', '0.0166964178859856', '0.0166797501403559', '0.0166952298750991', '0.0166972180354827', '0.0166983521331127', '0.0166914643220144', '0.0167088154923236', '0.0166859086394399', '0.0167097267833884', '0.0166896925125632', '0.0167073085382882', '0.0167009005377256', '0.0167047615294878', '0.0166963988680408', '0.0167178228446541', '0.0167224817177181', '0.0167383386707806', '0.0167398232918166', '0.0167536060675521', '0.0167773394158932', '0.016865794494642', '0.0172802874625528'], + "b1": ['0.0168913253365429', '0.0166791480947141', '0.0169747489414428', '0.0167706507685505', '0.0167499611810745', '0.0168839981052519', '0.0168264213414614', '0.0170086107873105', '0.0168850491418118', '0.0168500119713871', '0.0170821184095186', '0.0168872250545704', '0.0168648846362113', '0.016992469931055', '0.0171467378688764', '0.0169317564663933', '0.0170060449035047', '0.0169903947404513', '0.0169514527972631', '0.016996943775266', '0.0168920295188188', '0.0169695187209796', '0.0169094752244822', '0.0170826763090113', '0.0170169785814538', '0.0170845636711249', '0.0169070530050327', '0.0170568509390025', '0.0169742290964211', '0.0169703541737244', '0.016693127352278', '0.0167815989351284', '0.016990941642551', '0.0169070091900225', '0.016947108477903', '0.0168397329001644', '0.0169154708984108', '0.0170660484253514', '0.0169203949374878', '0.0169889800916751', '0.0168200981896078', '0.0166983649043365', '0.0169160836103067', '0.0169049146230597', '0.0172020140827875', '0.0172544859614827', '0.0168596984053201', '0.0170316986792703', '0.0167926783721753', '0.0169303102219324', '0.0169470697251848', '0.0169785680043656', '0.0169713491759485', '0.0168609210361233', '0.016910657531511', '0.0168641905785195', '0.0169026608557411', '0.017002157237797', '0.017056576353301', '0.0168407017181195', '0.0171230816037162', '0.0170056650570416', '0.0169474424146144', '0.0169244955685839', '0.0171115600016459', '0.0168694972570483', '0.0167703526170068', '0.0170216701042216', '0.016901836749513', '0.0170673187115242', '0.0170244000761134', '0.0168948935541682', '0.0167532385787514', '0.0169219944472036', '0.0167925835851213', '0.0168808996334135', '0.0168016955361912', '0.0170095228726826', '0.0168141370789144', '0.016859864413586', '0.0169525347312605', '0.0169839569014993', '0.0168162084291586', '0.0169273999277077', '0.0169807152889901', '0.0170102816927999', '0.0169689170064767', '0.0170848820718366', '0.0171890165607514', '0.0172478463290971', '0.0171135568140042', '0.016861817410934', '0.0170351581448981', '0.0171095326409737', '0.0169284916371655', '0.0167662697912137', '0.0169589875825269', '0.0169346709501011', '0.0170533392793984', '0.0170522329067499', '0.016856227418614', '0.0169100022265374', '0.0168937077559035', '0.0171910392082551', '0.0169340819786091', '0.0172338230819611', '0.0170901543616921', '0.0167868528959956', '0.0171335879543943', '0.0171073040105534', '0.0169701885145821', '0.0170029078535099', '0.0169215596137755', '0.0169346131701474', '0.0169591706978485', '0.0169375894487302', '0.0168295302870074', '0.016924547064313', '0.0169383559495664', '0.0167915482591228', '0.0170090248478852', '0.0169868139543769', '0.0168841494503271', '0.0172432628600796', '0.0172512663437595', '0.0166901924448404', '0.0170508184325355', '0.0169314384148052', '0.0170312671625162', '0.0167689058488605', '0.0171305203799934', '0.0168542409054016', '0.0171618674886609', '0.0170515112682947', '0.0172975114287112', '0.0169936038844669', '0.0169549054549809', '0.0169298114988878', '0.0170253563256194', '0.0168266819622194', '0.0170997161585044', '0.0168946802396562', '0.016992920125921', '0.016921162311133', '0.0169877344187152', '0.0169613225210795', '0.0170480064166006', '0.0169424862561673', '0.0169208393718146', '0.0171000242600703', '0.0170023016004004', '0.0168152008584853', '0.0168970548037361', '0.0170935871193654', '0.0170835660504739', '0.0168896237081778', '0.0169240319324598', '0.0171229468420115', '0.0169091491430516', '0.0171242712423403', '0.0169583039985427', '0.016980123873633', '0.0168419522788097', '0.0168699013676008', '0.0170141937971587', '0.0168653728855483', '0.0170303089928306', '0.0169958541605496', '0.0169007481821674', '0.0168055502097199', '0.016751384907064', '0.0170459629962434', '0.0171742067381729', '0.017009789952227', '0.017035314726827', '0.0170120934696568', '0.0168354903503301', '0.0170146720964735', '0.0168405631160553', '0.0169598953038541', '0.0170114023795155', '0.0169785282042766', '0.0170050780057293', '0.0167849335890737', '0.0170350095928116', '0.0167703564573663', '0.0168229929478329', '0.0170766078428147', '0.0169629183649976', '0.0170641607141142', '0.0169760169583123', '0.0169847640752334', '0.017033343924176', '0.0169504539546795', '0.0168980927481615', '0.0170428481155964', '0.0169532237266603', '0.0169255748841544', '0.0170238355432726', '0.017064109218385', '0.0168959845653789', '0.016870468169745', '0.0172003683141964', '0.0169669170520062', '0.0170209620815863', '0.0171222604650386', '0.0171542234277143', '0.0169524532109029', '0.017089563819144', '0.0169282528366317', '0.017089845561879', '0.0170309442231979', '0.0171422081648913', '0.0169198881846007', '0.0169923559422037', '0.0170145441426787', '0.0167905391173934', '0.0169942132796888', '0.0170522837042319', '0.016866790501875', '0.0168580034103032', '0.0170697227765472', '0.0168474858876703', '0.0171097497958451', '0.0168593377606543', '0.0169034298004424', '0.0170586911694318', '0.016946299558551', '0.016882736372607', '0.0172839598475418', '0.0170588570031359', '0.0169339589125446', '0.0171035821785497', '0.01705823067542', '0.0169105737418501', '0.0171094713697842', '0.0168824476474002', '0.0169520237888903', '0.0171060674148068', '0.0170696843729526', '0.0168485220864778', '0.0170749217504493', '0.0168917989226893', '0.0169097503338691', '0.0168361954054149', '0.016864311200719', '0.0169334457008711', '0.0173226382024216', '0.017014697931619', '0.0171750945594558', '0.0171205895595492', '0.0170395124142804', '0.017286882535654', '0.017103441481744', '0.0182295080172893'], + "cal": ['+NAN', '+NAN', '+NAN', '+NAN', '0.63607834406219', '0.718127096538326', '0.812216798598817', '0.914442457893824', '1.03343454996493', '1.15933885373154', '1.29479643420084', '1.43677001665361', '1.56848190839848', '1.67447970580786', '1.73889146263122', '1.73244260903254', '1.69192414835577', '1.61622082709111', '1.5270353751059', '1.46047364317447', '1.41296265347303', '1.39311700938614', '1.39852760194912', '1.42554260762195', '1.4700968507055', '1.53635620441153', '1.62082921439482', '1.7237742274692', '1.84755749123585', '1.98432162640748', '2.12689147788928', '2.27366206436985', '2.41515311346652', '2.54267625633242', '2.65248757975216', '2.73468816910085', '2.77942967914337', '2.79565522877852', '2.77806955157777', '2.73891358506136', '2.69063680629234', '2.6282750012231', '2.56338981635672', '2.49687123158122', '2.4309933291301', '2.36993023507549', '2.32161558853422', '2.28314087424895', '2.25846162084215', '2.24994522727437', '2.25549954861938', '2.27668712518828', '2.30493256690767', '2.33255656715114', '2.35720768052834', '2.37757260164886', '2.40002374613635', '2.42905705371268', '2.4673307146952', '2.51294806887351', '2.56575613007937', '2.62193109349514', '2.67842958533042', '2.73753357518048', '2.7913329207665', '2.8423865946084', '2.89027340109411', '2.93157202353872', '2.96274906831744', '2.98346548286676', '2.98798866816702', '2.97297872291037', '2.93559195933884', '2.87662286787444', '2.80380712732453', '2.72275302648293', '2.6373282860483', '2.55448424591999', '2.47778601018081', '2.40377038673745', '2.33484934711808', '2.2698793292122', '2.20651375086021', '2.14704740380438', '2.08988763493926', '2.0346458333411', '1.98224825426305', '1.93452491480363', '1.89146397238956', '1.8653548650058', '1.84879059497611', '1.8371693859594', '1.83197484046632', '1.83105981302589', '1.83169544364263', '1.83369029033973', '1.82985806236537', '1.81684973319988', '1.7961872241934', '1.76710061502081', '1.73459539138238', '1.70421983997876', '1.67561137148482', '1.65483955955664', '1.64005456402998', '1.63103006074007', '1.62646109446179', '1.62483351776729', '1.61794627041935', '1.60638099649103', '1.59160518167625', '1.57856502215575', '1.56723770329055', '1.55884357172436', '1.55081356970191', '1.5440909800073', '1.53473504989623', '1.52335047710565', '1.51140772671503', '1.49628095199023', '1.48082183121466', '1.4668009209167', '1.45300293604089', '1.43913779397284', '1.42471804569399', '1.41116472805909', '1.39601546893463', '1.3795217760198', '1.36066889187826', '1.3395095955925', '1.31771535033317', '1.29387042583309', '1.26955248066416', '1.24679628762607', '1.22528340309588', '1.20486570624273', '1.18549206002717', '1.16756178865017', '1.15111957559202', '1.13469169498467', '1.11621030173639', '1.09569135455521', '1.07275908862679', '1.04573742076401', '1.01572627731635', '0.98381634710957', '0.950352559222019', '0.915760692099546', '0.881456713194727', '0.848044938315892', '0.816038892625263', '0.785024915273114', '0.754850603543375', '0.725690734641156', '0.697449171016547', '0.669846688269734', '0.643097402076866', '0.615807664216611', '0.589686777991522', '0.563134754809732', '0.537416951715189', '0.512092492411016', '0.487999533569422', '0.464888888064952', '0.442938789447448', '0.422687485052752', '0.403811887358409', '0.386602162003576', '0.370223420179536', '0.355850417036878', '0.342554004485098', '0.330263308885894', '0.318892349787717', '0.308390808825048', '0.29923285616278', '0.290049870831026', '0.280987628676386', '0.272166680353347', '0.263184326446838', '0.254328565772045', '0.245533707259442', '0.236284846332185', '0.227364007848682', '0.218575558150069', '0.209919539318749', '0.201723665364338', '0.193439417628863', '0.185095630044576', '0.176908759167827', '0.168492281717065', '0.15971620196905', '0.151519711134016', '0.143896290701505', '0.137256829327417', '0.131333761731513', '0.125851036682123', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], + "calaq": ['+NAN', '+NAN', '+NAN', '+NAN', '0.356482954042082', '0.402818840212745', '0.455981796582809', '0.513790947820199', '0.581106393394544', '0.652400597895999', '0.729165245163259', '0.809695951374305', '0.88453433247143', '0.944944312747719', '0.981931183530144', '0.97890644433893', '0.956596648488616', '0.914337507780978', '0.864381326448261', '0.827167246646249', '0.800694416668645', '0.78986648983256', '0.793342729280327', '0.809072983311401', '0.834767169405595', '0.872805947088459', '0.921221494674019', '0.980173791184887', '1.05102154902541', '1.12930675423331', '1.21095167248078', '1.29504423201304', '1.3761833690735', '1.44941098633961', '1.51258129060157', '1.56003462286042', '1.58613256964525', '1.59595706282003', '1.58646705138274', '1.56463589386165', '1.53756622064089', '1.50241608927798', '1.4657899060372', '1.42819643066784', '1.39093699353292', '1.35640193401339', '1.3291366616142', '1.3074826757329', '1.29371125003749', '1.28918595210661', '1.29271559006051', '1.30520259911165', '1.32173660739306', '1.33791597187085', '1.35239128956384', '1.36440760724462', '1.37762092569269', '1.39461338947335', '1.4169141265919', '1.44343724653861', '1.47409755299312', '1.50670023106802', '1.53949706626466', '1.57379985877493', '1.60506087092559', '1.63474977349559', '1.66262314886676', '1.6867112751644', '1.70497845407306', '1.71722612221823', '1.72015067971529', '1.71182391495322', '1.69060216043102', '1.65693636912006', '1.615276853664', '1.56885138733016', '1.51988696317221', '1.47238950135993', '1.42841545003656', '1.38597016134539', '1.34644570226061', '1.30918427370975', '1.272833651334', '1.23871854263795', '1.20592126590957', '1.17421842576069', '1.14414540628486', '1.11675959841052', '1.09205554594672', '1.07713100431408', '1.06771250877206', '1.06114445201819', '1.05828511190168', '1.05789551638809', '1.05839987869692', '1.05968794981088', '1.05760658826783', '1.05021868492741', '1.03840218029399', '1.02171038385539', '1.00303608270452', '0.985587384786529', '0.969155119807841', '0.957250725878805', '0.948805673627153', '0.943690255948233', '0.94115052725798', '0.940311121408207', '0.936426058319819', '0.929831072715321', '0.92137487467603', '0.913920568414937', '0.907455306712896', '0.902686110798026', '0.898125710110949', '0.894320543495939', '0.888988205031672', '0.882478589132188', '0.875643320641074', '0.866960905236801', '0.85808331524723', '0.850036611133456', '0.842116721554211', '0.834155584125161', '0.825870667226897', '0.818085734330888', '0.80937333573889', '0.799879100950076', '0.789014440994224', '0.776809660553211', '0.764233867550572', '0.750465870807386', '0.736420569195548', '0.723278335744868', '0.710854686038585', '0.699063893618938', '0.687876475273581', '0.67752433279025', '0.668033624297236', '0.658549260619002', '0.647871055584177', '0.636008041103345', '0.622741859229467', '0.607099198838907', '0.589718195082128', '0.571231808679594', '0.551840143680759', '0.531790313016104', '0.511904550502093', '0.492533916324242', '0.473976829140493', '0.455993213863435', '0.438494694002521', '0.421582939065556', '0.405202246583534', '0.389190520866554', '0.373672278430399', '0.357837814065771', '0.342680416381626', '0.327270394695731', '0.312343150425572', '0.297642550528398', '0.283655852976372', '0.270238359496543', '0.257493807901754', '0.245735256551437', '0.234775054990433', '0.224782070488707', '0.21527102824311', '0.206925139776841', '0.19920428909151', '0.192067375381572', '0.18546450086342', '0.17936649692309', '0.1740492565549', '0.168716810424925', '0.163453964529452', '0.158330867670766', '0.153113270397234', '0.147968724530474', '0.142859028020375', '0.137484591721589', '0.132300435162079', '0.12719275157505', '0.122161584010771', '0.117397671330868', '0.112581820604776', '0.107730813198643', '0.102970640334024', '0.0980763328283588', '0.0929722067690889', '0.0882049761452578', '0.0837708982222196', '0.0799092380316381', '0.0764642971780796', '0.0732754076052096', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], + 'SAMSN': '85C2', 'DarkPixelStart': '237', 'DarkPixelStop': '254', + 'Firmware': '2.06', 'IDDataBack': 'DLAB_2018-07-02_16-15-52_275_586', + 'IDDataCal': 'DLAB_2018-07-03_17-15-16_983_888', 'IDDataCalAQ': 'DLAB_2018-07-03_17-15-53_767_889', + 'IntegrationTime': '0', 'Reverse': '0', 'SerialNo_MMS': '', + 'c0s': '297.806', 'c1s': '3.3369', 'c2s': '0.000302696', 'c3s': '-1.83769e-06', 'c4s': '+0.000000000E+00' + + } + self.samcal = None + self.ipcal = None + self.ramsescal = None + +class Ramses84E3(object): + def __init__(self,): + self.info_query = "23 00 00 80 b0 00 00 01" + self.it_query = "23 00 00 00 78 05 00 01" + self.cmd = "23 00 00 00 a8 00 81 01" + self.data_84E3 = "\ + 23 a0 00 00 07 fe fe 0b 09 5b 09 4e 09 55 09 54 09 4a 09 4d 09 49 09 4e 09 3b 09 3f 09 46 09 41 09 3a 09 41 09 4b 09 46 09 4c 09 51 09 4c 09 51 09 43 09 4d 09 4a 09 57 09 4f 09 53 09 4a 09 52 09 56 09 76 09 78 09 c1 \ + 23 a0 00 00 06 fe fe 86 09 8c 09 91 09 9e 09 ad 09 bf 09 e6 09 2f 0a 77 0a 62 0a 20 0a 04 0a 00 0a 04 0a 07 0a f4 09 f1 09 e2 09 ee 09 de 09 e7 09 ed 09 0b 0a 26 0a 31 0a 2d 0a 2c 0a 1f 0a 12 0a 23 0a 32 0a 44 0a 97 \ + 23 a0 00 00 05 fe fe 57 0a 6d 0a 76 0a 86 0a b6 0a 08 0b 16 0c 0f 0e 27 10 7d 10 05 0f 0f 0d c9 0b 0e 0b bf 0a 90 0a 89 0a b1 0a 14 0b 8f 0b 18 0c 65 0c 84 0c 7e 0c 8d 0c a3 0c 2f 0d 55 0f 44 12 4e 13 0c 12 47 10 36 \ + 23 a0 00 00 04 fe fe 31 0f a2 0e 18 0e 64 0d a2 0c 18 0c d8 0b bf 0b c4 0b b3 0b b1 0b a8 0b a1 0b a7 0b 93 0b 7b 0b 78 0b 6a 0b 5b 0b 46 0b 23 0b f9 0a ea 0a ec 0a 33 0b 98 0b c0 0b 61 0b e6 0a 80 0a 4c 0a 4a 0a e9 \ + 23 a0 00 00 03 fe fe 53 0a 7c 0a 93 0a c6 0a d1 0a ec 0a e0 0a e0 0a a0 0a 53 0a 35 0a 4c 0a 68 0a 8f 0a 86 0a 7b 0a 6b 0a 53 0a 34 0a 26 0a 14 0a 02 0a 03 0a f8 09 dd 09 c5 09 aa 09 98 09 90 09 8d 09 95 09 90 09 c1 \ + 23 a0 00 00 02 fe fe 9a 09 8e 09 93 09 8a 09 87 09 85 09 7b 09 7f 09 7b 09 70 09 6b 09 64 09 6e 09 76 09 6c 09 64 09 5f 09 58 09 54 09 3e 09 49 09 45 09 43 09 3f 09 35 09 40 09 36 09 36 09 41 09 34 09 3a 09 37 09 8a \ + 23 a0 00 00 01 fe fe 2e 09 35 09 34 09 33 09 39 09 2e 09 36 09 3f 09 42 09 38 09 35 09 43 09 3a 09 3e 09 43 09 40 09 3c 09 45 09 42 09 46 09 43 09 43 09 3f 09 47 09 46 09 35 09 44 09 44 09 3d 09 3c 09 47 09 3c 09 83 \ + 23 a0 00 00 00 fe fe 4d 09 37 09 43 09 43 09 44 09 45 09 55 09 49 09 41 09 4e 09 52 09 43 09 51 09 46 09 4b 09 58 09 54 09 4a 09 55 09 56 09 55 09 56 09 57 09 5d 09 74 09 66 09 72 09 71 09 69 09 73 09 5c 09 57 09 8a \ + " + self.data_after_remove_maske = None + self.data_Int_from_Hex = ['1071', '1063', '1071', '1077', '1088', '1074', '1095', '1087', '1084', '1092', '1104', '1105', '1120', '1125', '1147', '1151', '1177', '1226', '1265', '1315', '1372', '1437', '1482', '1535', '1622', '1692', '1788', '2013', '2288', '2491', '2655', '2856', '3104', '3370', '3638', '3930', '4189', '4654', '5403', '6289', '7340', '8569', '9914', '11161', '12215', '13173', '13979', '14561', '15060', '15681', '16374', '16988', '17143', '16821', '16655', '16967', '17311', '17555', '17890', '18555', '19417', '20047', '20491', '21322', '22746', '24295', '25720', '27012', '27888', '28435', '28942', '29580', '30304', '30959', '31469', '31888', '32335', '32802', '33147', '33387', '33547', '33568', '33407', '32702', '31863', '31286', '30747', '29968', '29142', '28396', '27669', '26835', '26082', '25484', '24838', '24022', '23125', '22238', '21414', '20520', '19452', '18259', '16946', '15584', '14363', '13408', '12685', '11894', '11122', '10486', '10010', '9701', '9450', '9178', '9124', '9413', '9648', '9523', '9192', '8731', '8208', '7594', '6898', '6240', '5666', '5174', '4696', '4250', '3862', '3557', '3342', '3179', '3009', '2821', '2550', '2194', '1903', '1858', '1913', '1919', '1877', '1803', '1736', '1669', '1631', '1587', '1551', '1521', '1508', '1492', '1475', '1461', '1448', '1413', '1390', '1369', '1337', '1310', '1278', '1250', '1223', '1201', '1174', '1161', '1139', '1128', '1115', '1102', '1099', '1083', '1081', '1088', '1086', '1070', '1069', '1070', '1080', '1065', '1062', '1062', '1074', '1065', '1072', '1069', '1068', '1062', '1061', '1060', '1073', '1062', '1059', '1062', '1066', '1068', '1067', '1065', '1057', '1074', '1071', '1063', '1066', '1070', '1076', '1061', '1060', '1078', '1072', '1070', '1064', '1067', '1063', '1060', '1060', '1070', '1072', '1068', '1063', '1060', '1056', '1064', '1073', '1066', '1063', '1065', '1074', '1067', '1064', '1056', '1066', '1074', '1059', '1051', '1068', '1075', '1064', '1055', '1063', '1063', '1066', '1054', '1065', '1066', '1063', '1067', '1054', '1066', '1068', '1054', '1065', '1062', '1065', '1063', '1060', '1062', '1075'] + self.data_after_cal = ['0', '0', '0', '0.124526478', '0.157412431', '0.092895622', '0.167744487', '0.128093362', '0.113968791', '0.154444207', '0.199581385', '0.205832307', '0.25704387', '0.270830884', '0.338217342', '0.336153666', '0.397413212', '0.511748615', '0.578090528', '0.659821364', '0.750696308', '0.866502795', '0.951346189', '1.073382306', '1.285688726', '1.476540058', '1.743509541', '2.330391195', '3.046845947', '3.591693153', '3.994331108', '4.46749356', '5.014547056', '5.521300187', '5.95831414', '6.397712895', '6.665276371', '7.289101663', '8.355524154', '9.518417328', '10.85890802', '12.41173719', '14.08630698', '15.58997594', '16.87781356', '18.10433245', '19.22166567', '20.15471924', '21.09180847', '22.33531006', '23.8187468', '25.31077164', '26.22626878', '26.54265211', '27.18468775', '28.72124715', '30.31750233', '31.61313571', '32.9308159', '34.83542197', '36.95958937', '38.45546729', '39.36023059', '40.77611233', '43.13421783', '45.46632848', '47.42624024', '49.22424277', '50.45773633', '51.30331943', '52.19141902', '53.3363541', '54.56144854', '55.56301145', '56.09389652', '56.45507036', '56.82904626', '57.26058922', '57.48554173', '57.62559378', '57.78838419', '58.01368688', '58.29402673', '57.7892823', '56.85210568', '56.27511292', '55.75922293', '54.8295175', '53.84579782', '52.92556236', '52.05050607', '50.89985192', '49.84442947', '49.03208487', '48.14573791', '46.99344791', '45.84810366', '44.97065059', '44.41988361', '43.85803743', '42.85835026', '41.54330784', '39.99519331', '38.16884672', '36.27342661', '34.72131104', '33.5118753', '31.94820595', '30.32230688', '29.03069977', '28.12727947', '27.70856185', '27.43275317', '27.03220618', '27.33518103', '28.80779039', '30.13651645', '30.24030794', '29.54266093', '28.31191749', '26.77861584', '24.78883775', '22.3960752', '20.03505913', '17.88848349', '15.99281596', '14.1219393', '12.36030317', '10.83796167', '9.665067907', '8.841065457', '8.260275977', '7.660422496', '6.985974785', '5.983420516', '4.612555146', '3.468914824', '3.332243212', '3.603450434', '3.675679219', '3.529698642', '3.250432296', '3.003522065', '2.758414688', '2.6423368', '2.499438861', '2.387826686', '2.313519168', '2.319797971', '2.30774497', '2.279745038', '2.281881571', '2.265949663', '2.131256066', '2.048737483', '1.979152204', '1.824286632', '1.695587713', '1.524274134', '1.379639674', '1.22298101', '1.107242507', '0.921760421', '0.861168168', '0.708423326', '0.626651836', '0.52567069', '0.434994003', '0.405518501', '0.244042907', '0.227148995', '0.324919136', '0.30566744', '0.12492708', '0.106633346', '0.15529585', '0.283139418', '0.073036783', '0.018901459', '0.007085761', '0.232240832', '0.090940598', '0.197714383', '0.16193436', '0.149341831', '0.040626369', '0.004003346', '0.015759598', '0.288237531', '0.048091915', '-0.042272107', '0.07263876', '0.178096153', '0.26788475', '0.257275187', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'] + self.wavelength = ['308.197687', '311.5070013', '314.817279', '318.1285072', '321.4406729', '324.7537633', '328.0677654', '331.3826663', '334.6984531', '338.0151129', '341.3326328', '344.6509999', '347.9702012', '351.2902239', '354.6110551', '357.9326818', '361.2550911', '364.5782701', '367.902206', '371.2268858', '374.5522965', '377.8784253', '381.2052594', '384.5327856', '387.8609913', '391.1898633', '394.5193889', '397.8495552', '401.1803491', '404.5117579', '407.8437685', '411.1763681', '414.5095438', '417.8432827', '421.1775719', '424.5123983', '427.8477493', '431.1836117', '434.5199728', '437.8568196', '441.1941392', '444.5319186', '447.8701451', '451.2088056', '454.5478873', '457.8873773', '461.2272625', '464.5675303', '467.9081675', '471.2491614', '474.5904989', '477.9321673', '481.2741535', '484.6164447', '487.959028', '491.3018904', '494.6450191', '497.9884012', '501.3320236', '504.6758736', '508.0199381', '511.3642044', '514.7086595', '518.0532904', '521.3980843', '524.7430283', '528.0881094', '531.4333148', '534.7786315', '538.1240466', '541.4695473', '544.8151205', '548.1607534', '551.5064331', '554.8521467', '558.1978813', '561.5436239', '564.8893616', '568.2350816', '571.5807709', '574.9264166', '578.2720059', '581.6175257', '584.9629632', '588.3083055', '591.6535397', '594.9986528', '598.343632', '601.6884643', '605.0331368', '608.3776367', '611.721951', '615.0660668', '618.4099711', '621.7536512', '625.097094', '628.4402867', '631.7832163', '635.12587', '638.4682348', '641.8102979', '645.1520462', '648.493467', '651.8345472', '655.1752741', '658.5156346', '661.8556159', '665.195205', '668.5343891', '671.8731552', '675.2114905', '678.549382', '681.8868167', '685.2237819', '688.5602646', '691.8962519', '695.2317308', '698.5666885', '701.901112', '705.2349885', '708.568305', '711.9010486', '715.2332065', '718.5647656', '721.8957132', '725.2260362', '728.5557218', '731.8847571', '735.2131291', '738.540825', '741.8678318', '745.1941366', '748.5197266', '751.8445887', '755.1687102', '758.492078', '761.8146794', '765.1365012', '768.4575308', '771.7777551', '775.0971612', '778.4157363', '781.7334674', '785.0503416', '788.366346', '791.6814677', '794.9956938', '798.3090114', '801.6214075', '804.9328693', '808.2433838', '811.5529381', '814.8615194', '818.1691147', '821.4757111', '824.7812957', '828.0858556', '831.3893779', '834.6918496', '837.9932579', '841.2935898', '844.5928325', '847.890973', '851.1879984', '854.4838959', '857.7786524', '861.0722551', '864.3646911', '867.6559475', '870.9460113', '874.2348697', '877.5225098', '880.8089185', '884.0940831', '887.3779906', '890.6606281', '893.9419827', '897.2220415', '900.5007916', '903.77822', '907.0543139', '910.3290604', '913.6024464', '916.8744592', '920.1450858', '923.4143134', '926.6821289', '929.9485195', '933.2134723', '936.4769744', '939.7390128', '942.9995747', '946.2586471', '949.5162171', '952.7722719', '956.0267985', '959.279784', '962.5312154', '965.78108', '969.0293647', '972.2760567', '975.5211431', '978.7646109', '982.0064472', '985.2466392', '988.4851739', '991.7220383', '994.9572197', '998.1907051', '1001.422482', '1004.652536', '1007.880856', '1011.107428', '1014.33224', '1017.555278', '1020.77653', '1023.995982', '1027.213623', '1030.429438', '1033.643415', '1036.855541', '1040.065804', '1043.27419', '1046.480686', '1049.685279', '1052.887957', '1056.088707', '1059.287515', '1062.484369', '1065.679256', '1068.872163', '1072.063077', '1075.251985', '1078.438875', '1081.623733', '1084.806546', '1087.987301', '1091.165987', '1094.342589', '1097.517095', '1100.689491', '1103.859766', '1107.027906', '1110.193898', '1113.357729', '1116.519386', '1119.678857', '1122.836128', '1125.991188', '1129.144021', '1132.294617', '1135.442961', '1138.589041', '1141.732845', '1144.874358'] + + self.calcfg = { + 'SN': '84E3', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '84E3', + 'inifile': 'SAM_84E3.ini', 'calfile': 'Cal_SAM_84E3.dat', 'calaqfile': 'CalAQ_SAM_84E3.dat', 'backfile': 'Back_SAM_84E3.dat', + + "b0": ['0.0171524736127934', '0.0169729054794042', '0.017003727635839', '0.0170695726463301', '0.0170653447303655', '0.0170193989458433', '0.0170320854853621', '0.0170469364065886', '0.0170659149197585', '0.0170399118058684', '0.0170563323182148', '0.0170509619297453', '0.0170678475965966', '0.0170598881504762', '0.0170613214754039', '0.0170513642726892', '0.0170667717741371', '0.0170595112811099', '0.0170513346116742', '0.0170491232957723', '0.0170667096604823', '0.0170706432344928', '0.017058320653075', '0.0170696532545001', '0.0170811974959906', '0.0170621523327753', '0.0170640600594655', '0.017070867611347', '0.0170754767585918', '0.017069294879649', '0.0170729426610567', '0.017074107466561', '0.0170877044247618', '0.0170758640965516', '0.0170604832900171', '0.0170806759855574', '0.017089665890232', '0.0170798903176146', '0.0170841693552109', '0.017092654848155', '0.0170946728440302', '0.0170757669131085', '0.0170889911893805', '0.0170832369524824', '0.0170840817679785', '0.0170759771573615', '0.0170830678846973', '0.0170777049987199', '0.0171084168859697', '0.0170882529790616', '0.0171123239395433', '0.0170939866277257', '0.0170998516572384', '0.0170905033777126', '0.0171027270309218', '0.0170969108548455', '0.0171141360530795', '0.0170972355557208', '0.0171029876989001', '0.0171053047475965', '0.0171094628729377', '0.0170810994401647', '0.0171084200265478', '0.0171150454249022', '0.0171210906886997', '0.0171272882705328', '0.0171141688546725', '0.0171121874988746', '0.0171186884954429', '0.0171187928324248', '0.0171298365006691', '0.0171111783264605', '0.0171263905886395', '0.0171206745621078', '0.0171334207726096', '0.0171212307933762', '0.0171378889427952', '0.0171146069653108', '0.0171255129715505', '0.0171276640930397', '0.0171273163612587', '0.0171315687039415', '0.0171297501347727', '0.0171235591830488', '0.0171302657130029', '0.0171311665354743', '0.0171360356527912', '0.0171409462955291', '0.0171414943263992', '0.0171301652145052', '0.0171244076625526', '0.0171338147406786', '0.0171362905630431', '0.0171358083098355', '0.017137519924874', '0.0171271326374427', '0.0171315273529971', '0.0171337154635168', '0.0171407193015265', '0.0171400468688702', '0.0171482919331168', '0.0171431989623753', '0.0171458339073612', '0.017132015014978', '0.0171527691760834', '0.0171277710471701', '0.0171547269775459', '0.017158141483795', '0.0171534255568964', '0.0171328275523108', '0.0171536197493059', '0.0171184007835979', '0.0171458239621974', '0.0171383052438637', '0.0171520901133179', '0.0171439675316154', '0.0171437932295335', '0.0171447476163082', '0.017140740064237', '0.0171355132699752', '0.0171520452728424', '0.0171420261309494', '0.0171438279503686', '0.0171496511055072', '0.0171565882934716', '0.0171346735142993', '0.0171619197736684', '0.0171491540217921', '0.0171630308403927', '0.0171445757568982', '0.0171637889410392', '0.0171468333090881', '0.0171443527758564', '0.0171494316139967', '0.0171595434029422', '0.0171527368979201', '0.017162185501467', '0.0171493333836942', '0.0171526311651257', '0.0171409471679119', '0.0171570553672186', '0.0171547421570065', '0.0171493576359359', '0.0171382602289116', '0.0171565108258796', '0.017153291733376', '0.0171655926797006', '0.017149073064669', '0.0171466214945461', '0.0171432602036474', '0.0171616906859472', '0.0171373684792213', '0.0171627010796972', '0.017146152501557', '0.0171589027250196', '0.0171497714943325', '0.0171619550179333', '0.0171553168827901', '0.0171558486873403', '0.0171456477408733', '0.0171572424060892', '0.0171408923822725', '0.0171569543452912', '0.0171343913857043', '0.0171329142671603', '0.0171495472919549', '0.0171548888917922', '0.0171298598805279', '0.0171540397143822', '0.0171536071869937', '0.0171651762041556', '0.0171529839567269', '0.0171594987369433', '0.0171419080103193', '0.0171587812893349', '0.0171317138684381', '0.0171504835331676', '0.0171427348547298', '0.0171550940762249', '0.0171617489611177', '0.0171508762799007', '0.0171397814900248', '0.0171580889663509', '0.0171526578600391', '0.0171468507567439', '0.0171390406625576', '0.0171508518531825', '0.0171300591327577', '0.0171611231137025', '0.0171411160612204', '0.0171424082346124', '0.0171263422586328', '0.0171442316891249', '0.0171476978404352', '0.0171397846306028', '0.0171527892408877', '0.0171411041968145', '0.0171414402386661', '0.0171516849787492', '0.0171325307676848', '0.0171625281734278', '0.0171411547950164', '0.0171581632933648', '0.017150874186182', '0.0171479984635455', '0.0171479886928582', '0.0171601519771781', '0.017155871718246', '0.0171668705460148', '0.0171424003831673', '0.0171666391900982', '0.017141074361323', '0.0171521012798177', '0.0171395471680068', '0.0171663314134491', '0.0171485358513455', '0.0171583056662365', '0.0171477318633641', '0.0171473680797397', '0.0171473804675754', '0.0171429231149364', '0.0171509984134916', '0.0171517971671763', '0.017154382386343', '0.0171593021018619', '0.0171429700491306', '0.0171757461685436', '0.0171449920579666', '0.0171568372715205', '0.0171494488871759', '0.0171710209943874', '0.0171556122716036', '0.0171638484375457', '0.0171605419322863', '0.0171574313642021', '0.0171396987881361', '0.0171671029487906', '0.017155503049278', '0.0171715726892653', '0.0171487262052708', '0.017168583033436', '0.0171504359010672', '0.0171735758546329', '0.0171630805662119', '0.0171668599029447', '0.0171625787716298', '0.0171805065869647', '0.0171624315134144', '0.0171885227379666', '0.0171774856998315', '0.0171981526226576', '0.0172034085545047', '0.0172264216636125', '0.017299763757344', '0.0177729417412163'], + "b1": ['0.0218650527298769','0.0217163644852297', '0.0219620520054736', '0.0216829933325641', '0.0216913569372244', '0.0217075260724905', '0.0217224790357398', '0.0217613199076495', '0.0217013024208593', '0.0216067686560369', '0.0216197481982083', '0.0217408713900106', '0.0217678148283081', '0.0218372825669243', '0.022044780505311', '0.0217536182413109', '0.0215783280012347', '0.0217841808692774', '0.0215688386475668', '0.0216952695652687', '0.0218576247764309', '0.0217160563836638', '0.0217562555208903', '0.0218147337217835', '0.0219386277329374', '0.0219201838829375', '0.0219335382092799', '0.0218548019376648', '0.0217973974663647', '0.0218100903780708', '0.0220056214072514', '0.02213115472821', '0.0217639678354983', '0.0218055386792998', '0.0217429505955354', '0.0218890261738162', '0.0219160373420896', '0.0218222945167545', '0.0221520932408038', '0.0218650138025968', '0.0220240944090709', '0.0219955308627659', '0.0218681217007721', '0.021856071001905', '0.0219355098847399', '0.0218310107362381', '0.0219390348110403', '0.0219808805896669', '0.0219529850913465', '0.0220642144698049', '0.0217668632919705', '0.0219677181067357', '0.0221350308728393', '0.0219640697652472', '0.0219430883104521', '0.0219794270136107', '0.0218614188770172', '0.0219844409520115', '0.0218820161213043', '0.0218965906345848', '0.0221246713286298', '0.0219883687669317', '0.0218918846231882', '0.0214716573040191', '0.0217801097391245', '0.0219723872855939', '0.0221368086101465', '0.0222731127429007', '0.0218847874643413', '0.0218034901966506', '0.021941480596332', '0.0221153336691606', '0.0219345588720878', '0.0219173168800375', '0.021803756403386', '0.0220705391927146', '0.0219978919855877', '0.0217999411808226', '0.0217696070542441', '0.0219119560873527', '0.0217096855764405', '0.0219157379686134', '0.0217372878109475', '0.0219723986321105', '0.0218403873229873', '0.0216949834584888', '0.0218789815390825', '0.0217715054137507', '0.0219028724152933', '0.0217384446319544', '0.0219659232623728', '0.0219759392689724', '0.0218332391920966', '0.0220265150574643', '0.0218969961416316', '0.0219702834668561', '0.0219963420514213', '0.0218377252556332', '0.0220526167587925', '0.0219703265836192', '0.0220217556301587', '0.0218802956402655', '0.0219762913601102', '0.0218717058035206', '0.0218322211477157', '0.0216083119568551', '0.0216713682153502', '0.0217206183815806', '0.0217448484313567', '0.0220497778603414', '0.0217961439381241', '0.0218889079954818', '0.0219515927864799', '0.0219522817818796', '0.02206869163069', '0.0217439805101183', '0.021909059234386', '0.0216562005410946', '0.0219312106023226', '0.0218952262596052', '0.021768626366087', '0.021958085612397', '0.0219678347140139', '0.0218550868225121', '0.0218665227147417', '0.0217747030366879', '0.0217601400444858', '0.0218786863550893', '0.0219578263881333', '0.0218737308948894', '0.0221231393743282', '0.0220320834041218', '0.0218571017892969', '0.0219195224683011', '0.0218292298568187', '0.0217142611901772', '0.0219404133255252', '0.021699239624143', '0.0219778173793109', '0.0216798969554673', '0.0218041331077368', '0.0216521180644251', '0.0217123308858624', '0.0220615508313946', '0.0216336073572582', '0.0217396421258592', '0.0218637957104004', '0.0218080157111525', '0.0217433972991656', '0.0218452720856607', '0.0218265896096888', '0.0218061098454888', '0.0220167965041612', '0.0219422521594602', '0.0217799856256892', '0.0218613951366133', '0.0217778811087042', '0.0220837500292626', '0.0220798056309719', '0.0219525780132436', '0.0217753583416615', '0.0217005371419557', '0.0218252821418539', '0.0219342893486783', '0.0217444481611637', '0.0218190172936394', '0.0218279759794544', '0.0217818794465892', '0.0218001094583918', '0.0218907435127427', '0.0217128519528166', '0.0219701181568374', '0.0220606268758205', '0.0219794228241276', '0.0217803679160174', '0.0215983151520529', '0.021849742264074', '0.0218195666396042', '0.0217131275858889', '0.0218717476983511', '0.0217251964391825', '0.0217871869979269', '0.0219606892015502', '0.0217733344722252', '0.0219498340764082', '0.021889801402742', '0.0218552303123065', '0.0217968613870962', '0.0219024892521561', '0.0218679150196083', '0.0219567428830797', '0.0220476810240753', '0.0218956464298427', '0.0216180072934396', '0.0217222699107109', '0.0221192009111384', '0.0217917132106761', '0.0217851524802212', '0.0219958637521065', '0.0219061042523421', '0.0219900747593417', '0.021894205073112', '0.021767131942571', '0.0219074630413443', '0.0218370168838743', '0.0220060098072424', '0.0217051712338933', '0.02185150917855', '0.0219527810286097', '0.0218480556480232', '0.0217587713054613', '0.0219027235140833', '0.0217622850598069', '0.0218928145138633', '0.0218022330026123', '0.0218540024446496', '0.0216586997422952', '0.021700644322897', '0.021891662231463', '0.0218295058390145', '0.0218499360276651', '0.0220816603500301', '0.0219536004216693', '0.0216713439512608', '0.021893905525074', '0.0220383421426736', '0.0218455599380585', '0.0218548370245853', '0.0219515648565929', '0.0219374613110318', '0.0218326797215478', '0.0220623702244543', '0.021868679425703', '0.0216464928106227', '0.0216387429652291', '0.0216106243769364', '0.0216601603008231', '0.0218908702446049', '0.0216682184223444', '0.0215713860278224', '0.0216009344517675', '0.0216937850917749', '0.0218236456250378', '0.0217702648030828', '0.0216418437063708', '0.0218416239187339', '0.0218666396711435', '0.0216781757761813', '0.0217497942906579', '0.0216966506981805', '0.0216371347274237', '0.0219046580078812', '0.021547387272423', '0.0217898003625406', '0.0234579390475124'], + "cal": ['+NAN', '+NAN', '+NAN', '0.0856984615434185', '0.102722719497288', '0.116129124423835', '0.122931179530873', '0.126475310394687', '0.124494492036215', '0.123160525582801', '0.121967578354153', '0.120882267927115', '0.123086078167351', '0.126518805192916', '0.132323749716293', '0.140760429795789', '0.150208622043398', '0.163454316630823', '0.178463009212756', '0.1932743440142', '0.205987263676649', '0.215104139315375', '0.219389592681559', '0.218164237821863', '0.214796501065329', '0.21060690930009', '0.205201545125586', '0.200608681087391', '0.197478316542278', '0.195170832286292', '0.19546722785733', '0.196697328993289', '0.199374284727889', '0.204660824136072', '0.211705855481629', '0.21932807459082', '0.229450371018024', '0.241018855906113', '0.25397239158187', '0.268396698398822', '0.282503502801444', '0.295560553875446', '0.307026707475355', '0.316483147141842', '0.322821107559973', '0.326809005794211', '0.328269399869299', '0.327178878835099', '0.324149521414206', '0.319702789097048', '0.313978402520469', '0.307330309149164', '0.29947443505298', '0.289998834356583', '0.280154480370137', '0.270475995880695', '0.261761208188211', '0.254815161374031', '0.249583896529849', '0.24525681421245', '0.242539716623981', '0.241131750550181', '0.241077260327955', '0.242662483396638', '0.245504715798072', '0.249539007561731', '0.253903518897602', '0.257443988436811', '0.259631278252238', '0.260559718293713', '0.260859920977723', '0.261108976709407', '0.261719881447421', '0.262761947485516', '0.264709334453111', '0.266642024921852', '0.268719957796186', '0.2706935594135', '0.272559206753269', '0.273926752363069', '0.274510726882438', '0.27361548863403', '0.270955127537445', '0.267364194505017', '0.264564133830711', '0.262272278550497', '0.259972680945282', '0.257442500950317', '0.254652606066068', '0.252207737317713', '0.249626914074076', '0.247263261344856', '0.245123589531297', '0.243225859423995', '0.241153458897532', '0.238593405107967', '0.234996962617532', '0.229953124670146', '0.223736577185262', '0.216651883736929', '0.209530202840276', '0.202147957765555', '0.193938091501462', '0.185808313583987', '0.179063973127102', '0.173667751834249', '0.169373202787616', '0.16556857004577', '0.162018892461483', '0.158542136666029', '0.155356369872988', '0.152296069722626', '0.14932531019408', '0.146633601920912', '0.1440233609775', '0.141579921906003', '0.139139938858686', '0.136651362657312', '0.134402549853242', '0.132301569181149', '0.130325395329265', '0.128697263602329', '0.127269587118836', '0.126227313287007', '0.125693189488144', '0.125619878444632', '0.125673694202955', '0.125989585903982', '0.126157510565818', '0.126128122432138', '0.125911359052987', '0.125205640595771', '0.124207042788258', '0.123025809845466', '0.121484973532127', '0.119976382902789', '0.118416618404532', '0.116875206352005', '0.115425032853017', '0.114136707898209', '0.112865754769564', '0.111515866879238', '0.10982823398611', '0.107729298116846', '0.105380597977288', '0.102808398077772', '0.100035370952558', '0.0971692294787904', '0.0942315637988505', '0.0913407939430463', '0.0885709820904402', '0.0858423189221838', '0.083193782109924', '0.0807162121969417', '0.0783655971035001', '0.076046330827928', '0.0737689263015087', '0.0715376867191755', '0.0693183125783651', '0.0670042235321775', '0.0646486576140405', '0.0622444954175436', '0.0597739142794252', '0.0573203755684898', '0.0548503119037425', '0.0524681120633213', '0.050129475053349', '0.0479336895901596', '0.0458524499090549', '0.0438636158517219', '0.0419799785957937', '0.0402765338845226', '0.0386402211789019', '0.0371620433604702', '0.0357614856325005', '0.0344495090859111', '0.0331310153399323', '0.0319633360960362', '0.0307159945304004', '0.0294958696392003', '0.028259208698245', '0.027065871655394', '0.0258962749345283', '0.0248023337181348', '0.023686525089067', '0.0225866237851268', '0.021466248158336', '0.0203929110926785', '0.0193224731252769', '0.0181545308634649', '0.0170788119519516', '0.0160531626406233', '0.0151536650692306', '0.0143423958939967', '0.013614917852694', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], + "calaq":['+NAN', '+NAN', '+NAN', '0.0639626594292163', '0.0761186332523634', '0.0859736567414456', '0.0917555320832833', '0.0926726479707457', '0.0919971601762811', '0.0907092566760718', '0.0909084022288411', '0.0898026601348198', '0.0911768027519654', '0.0940106349121975', '0.0982721535936733', '0.103951200480323', '0.11151945259402', '0.121469998877133', '0.132101341085677', '0.142968043628643', '0.152370818054494', '0.158748610291206', '0.161534596722603', '0.161163469375412', '0.158496266611239', '0.155092847146785', '0.15122706187325', '0.147915995552921', '0.145551771193796', '0.143967870357453', '0.143884608228214', '0.144961496938848', '0.147160549493366', '0.150831154670171', '0.155787436929653', '0.161803470421699', '0.16921906563584', '0.177722815687568', '0.187290525779601', '0.197630537835732', '0.208195356498117', '0.217765093829476', '0.22641181899464', '0.233297159230364', '0.238160562788499', '0.241193334367343', '0.24239085609259', '0.241483418897362', '0.239361401296195', '0.236035158619177', '0.231818228524626', '0.226960297981895', '0.221224584525203', '0.214185815425282', '0.206940097796839', '0.199958594161336', '0.193640331500501', '0.188508002461916', '0.184464975267021', '0.181314871711972', '0.179425928011873', '0.178354338441761', '0.178313589116474', '0.179431062753507', '0.181447532870041', '0.184472812579435', '0.187668653439444', '0.190320070625297', '0.191923599851912', '0.192636781189683', '0.19286161734119', '0.193017909034216', '0.193535325691956', '0.194368731698507', '0.195599269410719', '0.197092878496086', '0.198621455336892', '0.200084372673682', '0.201442176494965', '0.202492947542439', '0.202903156210483', '0.20227159261013', '0.200395088767544', '0.197836792355401', '0.195643353092176', '0.193860224574108', '0.192192959958473', '0.190286934394321', '0.188203576809068', '0.186368020802222', '0.184515839969636', '0.182770714611897', '0.181226279357459', '0.179832200640671', '0.178341694831955', '0.176571658272696', '0.173967156509072', '0.17031174671914', '0.16573146255487', '0.160558822626473', '0.155290540982903', '0.149804710585539', '0.143730921767791', '0.137794226338604', '0.132904925117463', '0.128943411985897', '0.125738277187983', '0.123029913160705', '0.120328673883332', '0.117841592088007', '0.115465653020091', '0.113187624764016', '0.111051196976259', '0.109023041888432', '0.107152096488286', '0.105346079037686', '0.103538283756282', '0.101666744267368', '0.100002165308749', '0.0984652184553234', '0.0970289969422529', '0.095787446122295', '0.0947205629825277', '0.0939204500646334', '0.0934914454992708', '0.0933836592197018', '0.093413066210716', '0.0936053077959552', '0.0936990031274746', '0.0936271792806188', '0.0934129052757143', '0.0929409477679593', '0.0922111660520162', '0.0913099236972746', '0.0902562321785754', '0.0891609901779313', '0.0879809421895976', '0.0868434378002528', '0.085843900608993', '0.0848938622647938', '0.0840107444403116', '0.0829989653167666', '0.08179197294942', '0.0802686318513122', '0.0785217346863345', '0.0766524528592095', '0.0746485233657852', '0.0725288919633818', '0.0703895753920542', '0.0682541847501918', '0.0661742059790556', '0.06416451958121', '0.0622158236436603', '0.0603646575802928', '0.0586162635082399', '0.0568772077032173', '0.0551663034753856', '0.0534554859127405', '0.0517611897201407', '0.0500733260316374', '0.0483112998923427', '0.0464860898348103', '0.0446837583165121', '0.0428172433669461', '0.041002185896394', '0.0392242305636443', '0.0374905785321226', '0.0358608074623243', '0.0342787865125786', '0.0327957267188647', '0.0313851860170829', '0.0301076734774782', '0.0289069023260921', '0.0277803714895504', '0.0267563709571282', '0.0257218081322439', '0.0247729674715589', '0.0238824039045579', '0.0229468672188216', '0.0220317863192088', '0.0211148554665291', '0.0202240820399308', '0.019342652885569', '0.0184757486263308', '0.0176124887617254', '0.0167802193161593', '0.0159442023951008', '0.0150938946442385', '0.0142266616656384', '0.0133400780609536', '0.0124677696276766', '0.0116857667245466', '0.0109434531330157', '0.0102683291202449', '0.00966202164948752', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], + 'SAMSN': '84E3', 'DarkPixelStart': '237', 'DarkPixelStop': '254', + 'Firmware': '2.06', 'IDDataBack': 'DLAB_2018-07-02_16-15-52_275_586', + 'IDDataCal': 'DLAB_2018-07-03_17-15-16_983_888', 'IDDataCalAQ': 'DLAB_2018-07-03_17-15-53_767_889', + 'IntegrationTime': '0', 'Reverse': '0', 'SerialNo_MMS': '', + 'c0s': '301.582', 'c1s': '3.30685', 'c2s': '0.000501047', 'c3s': '-2.1516e-06', 'c4s': '+0.000000000E+00' + + } + self.samcal = None + self.ipcal = None + self.ramsescal = None + pass +if __name__ == '__main__': + rd = ReadData() + + # ramses = Ramses() + # print(rd.convert_str_2_byte()) + # ramses.setBuf(rd.convert_str_2_byte()) + # ramses.setCalCfg( rd.calcfg) + # ramses.getRealWavelength(ramses.cal_cfg) + # ramses.getSpectrum() + # print(ramses.spectrum) + + + fpath = Path() + rawpath = fpath.joinpath("84E3", "CalAQ_SAM_84E3.dat") + print(rawpath) + res = rd.read_by_column_with_beginline_endline(rawpath, 1, 40, 294, " ") + print(res) + + # dpath = fpath.joinpath("data", "CALIBRATE.dat") + # res = rd.read_by_column_with_beginline_endline(dpath, 1, 42,296, " ") + # print(res) + # pass + diff --git a/awrams.py b/awrams.py index 6e311f0..8df90d8 100644 --- a/awrams.py +++ b/awrams.py @@ -1,1126 +1,549 @@ -#! python3 -# -*- encoding: utf-8 -*- -''' -@File : handheld.py -@Time : 2023/02/24 17:20:59 -@Author : Jim @ Yiwin -@Version : 1.0 -@Contact : jim@yi-win.com -''' - -CUR_TIME_STR_FMT = "%Y-%m-%d %H:%M:%S" - -import time -import locale -import struct +from dataclasses import dataclass,field +from pathlib import Path +from typing import Any,List +from enum import Enum import numpy as np -from pubsub import pub -from pathlib import PurePath,Path -from myconfig import CURRENT_DIR,DATA_DIR,OUTPUT_DIR,SERVER_DIR,NEWLINE,ROWFACTOR,SAVE_EXT_NAME,TOKEN -from myconfig import DeviceType,RamsesSURFACE,RamsesAWRAMS,RamsesPROFILE +import struct +import time +from myRamses import RamsesFactoryHandle from tools.mylogger import log -from tools.myexception import MyException -from tools.mytime import MyTime from tools.mypath import MyDir -from Ramses import Ramses - -class HandHeldBuf: - def __init__(self,) -> None: - self.__buf = b'' - self.__head = {} - self.__begin_sign = b'\x23' - self.__end_sign = b'\x0D' - self.data_ip = b'' - self.measure_group = { - "Lsky": b'', - "Esky": b'', - "Lwater": b'', - } - self.one_group_data= b'' - self.state = 0 - - def readFile2Buf(self, fpath) -> None: - with open(fpath,"rb") as f: - self.__buf = f.read() - pass - pass - - 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 = {} - - def reset_buf(self) -> None: - self.__buf = b'' - - def getResult(self) -> str: - return self.res - - def resetMeasureGroup(self) -> None: - self.measure_group['Lsky'] = b'' - self.measure_group['Esky'] = b'' - self.measure_group['Lwater'] = b'' - - def getMeasureGroup(self) -> dict: - return self.measure_group - - def decode_handheld(self) -> bool: - '''以26个字节开始,一般26个00 ,然后23... 07.... ''' - if self.get_buf_size() < 1754: - self.__buf = b'' - return False - - self.data_ip = self.read_buf(26) - Lsky = self.read_buf(576) - Esky = self.read_buf(576) - Lwater = self.read_buf(576) - - self.measure_group['Lsky'] = self.deal_576_to_512(Lsky) - self.measure_group['Esky'] = self.deal_576_to_512(Esky) - self.measure_group['Lwater'] = self.deal_576_to_512(Lwater) - - if self.measure_group['Lsky'] == b'' \ - or self.measure_group['Esky'] == b'' \ - or self.measure_group['Lwater'] == b'' : - return False - - return True - - def decode_one_group_handheld(self) -> bool: - '''以26个字节开始,一般26个00 ,然后23... 07.... ''' - if self.get_buf_size() < 1754: - self.__buf = b'' - return False - - self.data_ip = self.read_buf(26) - self.one_group_data = self.read_buf(1728) - - return True - - def deal_576_to_512(self,data:bytes) -> bytes: - ''' 576字节校验,拆分成字典 23... 07.... ,然后254*2''' - ret = {} - index = 72 - for i in range(8): - temp = data[i*index : i*index+index] - # print( temp.hex()) - if temp[0] != 35 and temp[0]<8 and temp>0 : - return b'' - pass - ret.update( { temp[4]: temp} ) - if len(ret) != 8: - return b'' - ret_byte = ret[7][7:71]+ ret[6][7:71]+ ret[5][7:71]+ ret[4][7:71] \ - + ret[3][7:71]+ ret[2][7:71]+ ret[1][7:71]+ ret[0][7:71] - return ret_byte - - - def decode(self) -> str: - ret = '' - temp_buf = b'' - token = ";" - if TOKEN: - token = TOKEN - - if self.state == 0: - while self.get_buf_size() >= 1: - if self.read_buf(1) != self.__end_sign: - continue - self.state = 1 - break +from myconfig import TOKEN,NEWLINE,DATA_DIR,SAVE_EXT_NAME +from pubsub import pub - if self.state == 1: - while self.get_buf_size() >= 1: - buf = self.read_buf(1) - if buf != self.__end_sign: - temp_buf += buf - if buf == self.__end_sign: - ret = temp_buf[0:20].decode( - 'utf-8').strip(" ") + token + temp_buf[-9:-1].decode('utf-8').strip(" ") - log.info(f"decode : {ret}") - temp_buf = b'' - self.back_bytes(temp_buf) # 写回临时buf到 - self.res = ret +@dataclass +class InfoFrame(object): + infoBytes:bytes = None + time_str:str= None + time_stamp:int= None + year:str= None + month:str= None + day:str= None + hour:str= None + minute:str= None + second:str= None + Roll: int= None + Pitch:int= None + Yaw:int= None + Hx:int= None + Hy:int= None + lon:int= None + lat:int= None + satelite_num:int= None + PDOP:int= None + HDOP:int= None + VDOP:int= None + Temperature:int= None + Humidity:int = None + Battery:int= None + ErrorCode:int= None + Azimuth:int= None + RunAngle:int= None + MeasureGroupNum:int= None + Tiltx:int= None + Tilty:int= None + Depth:int= None + SN1:str= None + SN2:str= None + SN3:str= None + MeasureInterval :int= None + MeasureRepeat: int= None + + def output_info_frame(self, ): + ret = "" + ret = ret + "time : " + self.time_stamp + ret = ret + NEWLINE + "time_stamp : " + self.time_stamp + ret = ret + NEWLINE + "year : " + self.year + ret = ret + NEWLINE + "month : " + self.month + ret = ret + NEWLINE + "day : " + self.day + ret = ret + NEWLINE + "hour : " + self.hour + ret = ret + NEWLINE + "minute : " + self.minute + ret = ret + NEWLINE + "second : " + self.second + + ret = ret + NEWLINE + "Roll : " + self.Roll + ret = ret + NEWLINE + "Pitch : " + self.Pitch + ret = ret + NEWLINE + "Yaw : " + self.Yaw + ret = ret + NEWLINE + "Hx : " + self.Hx + ret = ret + NEWLINE + "Hy : " + self.Hy + ret = ret + NEWLINE + "Hz : " + self.Hz + ret = ret + NEWLINE + "lon : " + self.lon + ret = ret + NEWLINE + "lat : " + self.lat + ret = ret + NEWLINE + "PDOP : " + self.PDOP + ret = ret + NEWLINE + "HDOP : " + self.HDOP + ret = ret + NEWLINE + "VDOP : " + self.VDOP + ret = ret + NEWLINE + "Temperature : " + self.Temperature + ret = ret + NEWLINE + "Humidity : " + self.Humidity + ret = ret + NEWLINE + "Battery : " + self.Battery + ret = ret + NEWLINE + "ErrorCode : " + self.ErrorCode + ret = ret + NEWLINE + "Azimuth : " + self.Azimuth + ret = ret + NEWLINE + "RunAngle : " + self.RunAngle + ret = ret + NEWLINE + "MeasureGroupNum : " + self.MeasureGroupNum + ret = ret + NEWLINE + "Tiltx : " + self.Tiltx + ret = ret + NEWLINE + "Tilty : " + self.Tilty + ret = ret + NEWLINE + "Depth : " + self.Depth + + ret = ret + NEWLINE + "SN1 : " + self.SN1 + ret = ret + NEWLINE + "SN2 : " + self.SN2 + ret = ret + NEWLINE + "SN3 : " + self.SN3 + ret = ret + NEWLINE + "MeasureInterval : " + self.MeasureInterval + ret = ret + NEWLINE + "MeasureRepeat : " + self.MeasureRepeat return ret pass + def get_year(self, ): + return self.year + + def set_info_frame(self, info:bytes): + try: + temp = struct.unpack(" Path: - # 服务器上转移后的模式 - if self.mode == 1: - sensor_path = self.base_path.joinpath( - info_path.parent, - "sensor.bin" - ) - elif self.mode == 0: - sensor_path = self.base_path.joinpath( - "data", - info_path.parts[1][:4] + "_" + info_path.parts[1][-2:], - info_path.parts[2], - "sensor", - info_path.name - ) - else: - sensor_path = None - return sensor_path pass - def getOutputPathFromSensorPath(self,sensor_path:Path ) -> Path: - if self.mode == 1: - output_path = self.output_path.joinpath( - self.info_dict['year'] + "_" + self.info_dict['month'] - + "_" + self.info_dict['day'] + "_" + self.info_dict['hour'] - + "_" + self.info_dict['minute'] + "_" + self.info_dict['second'] - ) - elif self.mode == 0: - output_path = self.output_path.joinpath( - sensor_path.parts[1][:4] + "_" + sensor_path.parts[1][-2:] - + "_" +sensor_path.parts[2] + "_" +sensor_path.name - ) - else: - output_path = None - return output_path + +@dataclass +class DataFrame(object): + ''' AWRAMS 数据无需 remove_mask + 多组 : 每组类似 15 + 26 + 576*3 + 数据接收方式: AWRAMS格式, 从文件读取 + ''' + deviceID:int = None + measureId: int = None + dataBytes:List[bytes] = None + groupNUm: int = 1 + data_group:List[bytes] = None # 多组 每组三个传感器 [ Group1, group2, group3 group4 group5 ] + data_group_senor_bytes:List[List[bytes]] = None# [ [IP_byte, Sennsor1_byte,sensor2_byte,sensor3_byte], ] 先分测量组再传感器 + data_sensor_group_bytes:List[List[bytes]] = None# [ [sensor1_grp1,sensor1_grp2,sensor1_grp3,sensor1_grp4,sensor1_grp5], ] 先传感器,再测量组 + data_ip: List[List[bytes]] =None # IP数据 + wavelength: List = None + spectrum: List = None + + def set_data_bytes_list(self, data_frame:List[bytes]): + self.dataBytes = [] + self.dataBytes = data_frame pass - - def getCurrentMeasureTimeFromPath(self,fpath:Path ) -> str: - ret = '' - if self.mode == 1: # 读信息txt获得时间 - txt_path = fpath.parent.glob("*.txt") - txt_stem = txt_path[0].stem - ret = fpath.parts[1][:4]+"-"+fpath.parts[1][-2:]+"-"+fpath.parts[2]+" " \ - + txt_stem[-9:-7] + ":" + txt_stem[-6:-4] + ":" + txt_stem[-3:-1] - pass - elif self.mode == 0: - ret = fpath.parts[1][:4]+"-"+fpath.parts[1][-2:]+"-"+fpath.parts[2]+" " \ - + fpath.name[0:2] + ":" + fpath.name[3:5] + ":" + fpath.name[6:8] - else: - pass - return ret + + def set_data_bytes(self, byt:bytes): + ''' 不含 15个 AA...头 , 26(*) +576(*) ''' + self.dataBytes = [] + # 判断是否包含IP部分数据 + self.dataBytes = [byt] pass - - def getDataFileList(self, ): - ''' - 获得成对的info sensor 文件 - [目录名,文件名,年月日,时间, measure_id] - ''' - # ret = [] - fs = None - self.filelist = [] - if self.mode == 1: - fs = self.server_path.glob( "*/*/*/*/info.bin" ) - else: - fs = self.data_path.glob( "*/*/info/*" ) - - for f in fs: - error_file = {} - if f.stat().st_size==0: - error_file.update( {"path": f } ) - error_file.update( {"error":"info file size is zero"} ) - self.error_result.append( error_file ) - continue - - # self.info_path_fname = f - sensor_path = self.getSensorPathFromInfoPath( f ) - # sensor_path = Path(sensor_purepath) - # sensor 文件不存在 - if not sensor_path.exists(): - error_file.update( {"path":f} ) - error_file.update( {"error":"cannot find the sensor file "} ) - self.error_result.append(error_file) - continue + + def set_data_group(self,groups:list): + self.data_group = groups + self.groupNum = len(self.data_group) + pass + + def split_by_sensor(self,): + ''' 兼容需求,需将 26个Ip信息帧传出去 ''' + self.groupNum = len(self.dataBytes) + self.data_sensor_group_bytes =[] - # sensor文件大小为0 - if sensor_path.stat().st_size==0: - error_file.update( {"path":sensor_path} ) - error_file.update( {"error":"sensor file size of the sensor is zero' "} ) - self.error_result.append(error_file) - continue - self.setFilelist(f,sensor_path ) - pass - - def getDataFileList_SERVER(self, ): - ''' - 获得成对的info sensor 文件 - [目录名,文件名,年月日,时间] - ''' - log.info(f" === ", self.server_path, "getDataFileList_SERVER") - self.filelist = [] - fs = self.server_path.glob( "*/*/*/*/*/info.bin" ) - for f in fs: - # print(f) - error_file = {} - if f.stat().st_size==0: - error_file.update( {"path": f } ) - error_file.update( {"error":"info file size is zero"} ) - self.error_result.append( error_file ) - continue - - ## 获得全部bin文件 (info.bin (num).bin),不含 pic.bin - current_path = f.parent - bin_files = current_path.glob('*.bin') - res_files = [] - - # 检查(num).bin 是否有遗漏 - for bl in bin_files: - if bl.stem.isdigit(): - res_files.append(bl) + self.data_ip = [] + for i in range(3): + sensor = [] # 每组开始,赋予空值 + for j in range(self.groupNum): + if i == 0: + self.data_ip.append( self.dataBytes[j][:26] ) + buf = self.dataBytes[j][26:] + sensor.append ( buf[i*576 : 576+i*576] ) pass - - if res_files != []: - res_files.append(f) - self.filelist.append(res_files) - + self.data_sensor_group_bytes.append(sensor) pass - def setFilelist(self, info_path:Path, sensor_path:Path): - temp = {} - temp.update( {"info_path" : info_path } ) - temp.update( {"name" : info_path.name} ) - temp.update( {"parent" : info_path.parent} ) - if self.mode==1: # 服务器转移后目录 - temp.update( {"year" : info_path.parts[-5] } ) - temp.update( {"month" :info_path.parts[-4] } ) - temp.update( {"day" :info_path.parts[-3] } ) + def split_by_measure(self,): + for i in range(self.groupNUm): + buf = self.data_group[i][41:] + measureGroup = [ ] + measureGroup.append( buf[0:576] ) + measureGroup.append( buf[576:576+576] ) + measureGroup.append( buf[576+576:576+576+576] ) + self.data_group_senor_bytes.append(measureGroup) + pass - temp.update( {"year" : info_path.parts[1][:4] } ) - temp.update( {"month" :info_path.parts[1][-2:] } ) - temp.update( {"day" :info_path.parts[2] } ) - temp.update( { "sensor_path" :sensor_path } ) - self.filelist.append(temp) - def getFilelist(self, ): - return self.filelist +@dataclass +class AWRAMSData(object): + deviceid:int =None + configSensor:List[str] = None # 序列号 Lsky Esky Lwater + configFunc:List[str] = None + currentPath:Path =None + info_frame:InfoFrame = None + data_frame:DataFrame = None # 数据只到分组成byte结束 + ramsesFactoryHandle:List[RamsesFactoryHandle] = None # 多个工厂,每个工厂有自己的 标定文件及参数,工厂标记序列哈,只处理相同序列号的产品数据 + data_after_avg:List[int] =None + wavelength:List[int] =None + spectrum:List[int] =None + pass - def printTest(self,d,sleep_time:int=5): - log.info( f"***** : I am testing from HandheldPath ********", __name__ ) - print(d) - log.info( f"***** : Ending testing from HandheldPath ********", __name__ ) - time.sleep(sleep_time) + def __post_init__(self): + assert self.deviceid != None , ">>>> AWRAMSData deviceid is empty" pass -class AWRAMS(object): - def __init__(self, ): + def build_datafactory_by_configSensor(self,calcfg:dict): """ - @description : 手持数据初始化 - 处理入口 : dealAllMeasurements() - 每个文件调用 :dealOneMeasurement() - 读取buf :decode_sensor_buf() 数值截取 转光强 - dealOneGroup(),平均 插值 追加保存 + @description : 调用工厂得到整数值 + @param : 576字节数据, 数据id(第几个传感器,还是序列号?) + @Returns : List[int] """ - self.device_type = DeviceType.AWRAMS.name - self.device_enum = None - self.device_id = {} - self.syscfg = {} - self.retrieve ={} - self.error_result=[] - self.mode = 0 # 0:默认SD数据, 1:服务器数据 - self.base_path = CURRENT_DIR - self.current_path = CURRENT_DIR - self.data_path = DATA_DIR - self.output_path = OUTPUT_DIR - self.info_path_fname:Path = self.base_path - self.sensor_path_fname:Path = self.base_path - self.filelist = [] # 包含了全部路径信息 - self.intensity_before_avg = None - self.intensity_after_avg = {} # 最终结果{lsky: esky: lwater: } - self.intensity_after_interpo = {} # 最终结果{lsky: esky: lwater: } - - self.one_group_result = {} # 手持式 多次间隔 - self.wavelength = np.array([]) - self.real_wavelength = {} # 最终结果{lsky: esky: lwater: } - self.current_filepath = '' # 不含后缀 - self.current_measure_time = None # 当前测量时间 - self.current_group_num = 0 - self.measurement_interval = 0 - self.measurement_repeat = 1 - # self.sl2f = SaveList2File() - self.mydir = MyDir() - self.my_time = MyTime() - self.hhb = HandHeldBuf() - self.hhp = HandHeldPath() - self.ramses = Ramses() - self.info_dict = {} - self.res = {} # 最终结果{lsky: esky: lwater: Lw: Rs:} - self.msg ={} - - # 方法 - self.setDeviceEnum() - self.setMode() - self.set_hhp_path() - pass - - def setMode(self,mode=0 ): - self.hhp.setMode (mode) # 0 :读SD卡 1:读服务器数据 - - def set_hhp_path(self, ): - self.hhp.setBasePath (self.base_path) - self.hhp.setDataPath (self.data_path) - self.hhp.setOutputPath (self.output_path) - - def setDeviceEnum(self, ): - if self.device_type == DeviceType.SURFACE.name: - self.device_enum = RamsesSURFACE - if self.device_type == DeviceType.AWRAMS.name: - self.device_enum = RamsesAWRAMS - if self.device_type == DeviceType.PROFILE.name: - self.device_enum = RamsesPROFILE - - def __set_msg(self, flag, d): - self.msg = {} - self.msg.update( {"flag":flag} ) - self.msg.update( {"data":d} ) - pass - - def getDataFileList(self, ): - self.hhp.setMode() - self.hhp.filelist = [] - self.hhp.getDataFileList() - self.filelist = self.hhp.getFilelist() - # self.printTest(self.filelist) - pass - - def getDataFiles_server(self, ): - ''' - 服务器数据二次处理 server/id/year/month/day/measure_id/*.bin - 判断是否存在上面样式文件夹,文件夹下是否 *.bin文件 - "server/*/*/*/*/*/info.bin" - ''' - log.info(f" 服务器数据下载,二次处理", __name__, "getDataFiles_server", ) - self.hhp.setMode( 1 ) - self.hhp.setServerPath( SERVER_DIR ) - self.hhp.filelist = [] - self.hhp.getDataFileList_SERVER( ) - self.filelist = self.hhp.getFilelist() - pass - - def dealAllMeasurements(self, ): - log.info(f" 所有测量文件", __name__, "dealAllMeasurements", ) - if len(self.filelist)<1: - pass - # 前面已经考虑各种文件错误 - for df in self.filelist: - # 处理信息帧 - self.info_dict = {} - self.info_path_fname:Path = df["info_path"] - self.sensor_path_fname:Path = df["sensor_path"] - hex_info = self.read_bin( self.info_path_fname ) - try: - self.info_dict = self.decode_info( hex_info ) - except: - log.error( f"处理信息文件" - + "/" +self.info_path_fname.stem - + "出现错误", __name__, "dealAllMeasurements" ) - raise MyException( "处理文件"+ self.info_path_fname + "出现错误") - pass - - try: # awrams每次只有一组数据 - self.dealOneMeasurement( self.sensor_path_fname ) - # self.measurement_interval = int(self.info_dict['Measure_Interval']) - # self.measurement_repeat = int(self.info_dict['Measure_Repeat']) - # self.dealOneHandheldMeasurement(self.sensor_path_fname ) - except Exception as e: - log.error( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误",__name__,"dealAllMeasurements") - raise MyException( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误" ) - pass - self.__set_msg('notice', '处理文件完成') - pub.sendMessage('update' , msg=self.msg) - log.info(f"Finished !! ", __name__, "dealAllMeasurements") - # return True,self.error_result - pass - - def dealAllMeasurements_Server(self, ): - log.info(f" 所有服务器文件", __name__, "dealAllMeasurements_Server", ) - if len(self.filelist)<1: - pass - # 前面已经考虑各种文件错误 - for df in self.filelist: - # 处理信息帧 - self.info_dict = {} - self.info_path_fname:Path = df[-1] - # self.sensor_path_fname:Path = df["sensor_path"] - hex_info = self.read_bin( self.info_path_fname ) - try: - self.info_dict = self.decode_info( hex_info ) - except: - log.error( f"处理信息文件" - + "/" +self.info_path_fname.stem - + "出现错误", __name__, "dealAllMeasurements_Server" ) - raise MyException( "处理文件"+ self.info_path_fname + "出现错误") - pass - - # 0.bin 1.bin ... 多个文件 - for i in range(len(df)-1): - fpath:Path = df[i] - stem = fpath.stem - if stem.isdigit( ) : - tmp_buf = fpath.read_bytes() - self.hhb.write_buf( tmp_buf ) - pass - pass - - # 将buf 处理成光强值 self.intensity_before_avg - self.decode_sensor_buf() - # 获得真实波长 self.real_wavelength - self.getRealWavelenthDict() - # 多组数据平均 self.intensity_after_avg - self.getAvg( self.intensity_before_avg ) - # 波长插值 self.res esky lsky lw - self.__do_sensor_dict_interpo() - # 获得输出文件名 self.ymdhms - self.get_ymdhms() - # get Lw Rs - self.getLwRs() - # 设置保存路径 self.output_path - self.get_output_path(1) - # 保存 data info - self.saveOnefileForLskyEskyLwaterLwRS() - # 通知ui - self.__set_msg("data", {"tm":self.ymdhms, "res":self.res} ) - pub.sendMessage("update" , msg=self.msg) + assert self.configSensor != None, ">>>> AWRAMSData configSensor is None" + self.ramsesFactoryHandle = [None,None,None] + for i in range(0, len( self.configSensor)): + cfg = calcfg[self.configFunc[i]] + tmp_ramses_factory_handle = RamsesFactoryHandle( sn= self.configSensor[i], cfg=cfg ) + self.ramsesFactoryHandle[i] = tmp_ramses_factory_handle + + def set_data_frame( self, data_frame:List[bytes], func ): + """ + @description : data_frame + """ + log.info(f" 处理 data_frame:List[bytes] ",__name__,"set_data_frame") + self.data_frame = DataFrame() + self.data_frame.set_data_bytes_list(data_frame ) + + # 对数据进行分组 split_by_sensor(self,) + self.data_frame.split_by_sensor() + self.spectrum =[] + self.wavelength =[] - self.__set_msg( 'notice', '处理文件完成' ) - pub.sendMessage( 'update' , msg=self.msg ) - log.info(f"Finished !! ", __name__, "dealAllMeasurements") - # return True,self.error_result - pass - - def dealOneMeasurement(self, fpath:Path): - '''handheld一次测量包含多组数据''' - # 调用handheldbuf 处理,将一组数据提交出来 - log.info(f"dealOneMeasurement: 一组测量数据", __name__, "dealOneMeasurement") - if len(self.filelist)<1: - pass + # 分组后的数据 传给RamsesFactory 的 deal_raw_data_list, 返回平均值 + for i in range( len(self.data_frame.data_sensor_group_bytes) ): + log.info( f" {i} ......... {len(self.data_frame.data_sensor_group_bytes[i])} ",__name__, "set_data_frame ") + # log.info( f" {i} ......... ",__name__, "set_data_frame ") + log.info( f" ") + self.ramsesFactoryHandle[i].deal_raw_data_list( self.data_frame.data_sensor_group_bytes[i] ) + self.ramsesFactoryHandle[i].rf.get_wavelenth() + self.spectrum.append (self.ramsesFactoryHandle[i].rf.data_after_cal) + self.wavelength.append (self.ramsesFactoryHandle[i].rf.Wavelength) - # 当前文件名 - self.output_path = OUTPUT_DIR - self.current_filepath = fpath - self.current_measure_time = self.hhp.getCurrentMeasureTimeFromPath(fpath) - self.get_ymdhms() - # self.ymdhms = "20"+ str(self.info_dict['year']) + '_' \ - # + str(self.info_dict['month']) + '_' \ - # + str(self.info_dict['day']) + '_' \ - # + str(self.info_dict['hour']) + '_' \ - # + str(self.info_dict['minute']) + '_' \ - # + str(self.info_dict['second']) - # self.output_path = self.output_path.joinpath( self.ymdhms ) - log.debug(f"current_measure_time: {self.current_measure_time}", __name__, "dealOneMeasurement") - # 读取buf - self.hhb.readFile2Buf(fpath) - # 将buf 处理成光强值 self.intensity_before_avg - self.decode_sensor_buf() - # 获得真实波长 self.real_wavelength - self.getRealWavelenthDict() - # 多组数据平均 self.intensity_after_avg - self.getAvg( self.intensity_before_avg ) - # 波长插值 self.res esky lsky lw - self.__do_sensor_dict_interpo() - # 获得输出文件名 self.ymdhms - self.get_ymdhms() - # get Lw Rs - self.getLwRs() - # 设置保存路径 self.output_path SD卡 - self.get_output_path(0) - # 保存 data info - self.saveOnefileForLskyEskyLwaterLwRS() - # 通知ui - self.__set_msg("data", {"tm":self.ymdhms, "res":self.res} ) - pub.sendMessage("update" , msg=self.msg) - - def get_ymdhms(self, ): - self.ymdhms = "20"+ f"{self.info_dict['year']:02d}" + '_' \ - + f"{self.info_dict['month']:02d}" + '_' \ - + f"{self.info_dict['day']:02d}" + '_' \ - + f"{self.info_dict['hour']:02d}" + '_' \ - + f"{self.info_dict['minute']:02d}" + '_' \ - + f"{self.info_dict['second']:02d}" + + # 补充IP解析数据 - def get_output_path(self, mode=0): - self.mydir.setBaseDir(DATA_DIR) - # if mode == 0: - # self.mydir.setBaseDir(DATA_DIR) - # else: - # self.mydir.setBaseDir(SERVER_DIR) - # dir_tuple = ( "output", "20"+str(self.info_dict['year']),str(self.info_dict['month']),str(self.info_dict['day'])) - self.output_path = self.mydir.current_dir.joinpath("output") - + # 回调函数 + func( self.wavelength, self.spectrum ) - def decode_sensor_buf(self,) : - # 处理Buf,对多组数据取平均 - self.intensity_before_avg = [] - # res_before_avg = [] - self.clearRes() # 清空数据 - while True: - ## 以下代码已经处理了 ip的数据帧 - if not self.hhb.decode_one_group_handheld() : - break # 清空数据 - - res = {} - ## 上方代码已经处理了 ip的数据帧 - buf = self.hhb.one_group_data - # buf = self.hhb.one_group_data[26:] - for i in range( 1, 4, 1 ): - site = ( i - 1 ) * 576 - temp_buf = buf[7+site:71+site] + buf[79+site:143+site] + \ - buf[151+site:215+site] + buf[223+site:287+site] + \ - buf[295+site:359+site] + buf[367+site:431+site] + \ - buf[439+site:503+site] + buf[511+site:575+site] - - # Ramses类 标定处理,设置buf 标定文件 - self.ramses.setBuf(temp_buf) - func = self.getFuncBySeq(i) - cfg = self.getCfgByFunc( func) - self.ramses.setCalCfg(cfg) - self.ramses.resetItSpectrum() - self.ramses.ConvertAndCalibrate() - res.update( { func : self.ramses.spectrum } ) - self.intensity_before_avg.append( res ) - pass - - def getAvg( self, d:list) : - log.info(f"getAvg: 平均多组数据", __name__, "getAvg") - data = d - ret = {} - len_result = len(data) - if len_result == 0: - self.intensity_after_avg ={} - return None - if len_result == 1: - self.intensity_after_avg = data[0] - return None - ret = data[0] - - res_dict = self.getRetDict() - - for k in res_dict.keys(): - for i in range(1,len_result,1): - data[0][k] = data[0][k] + data[i][k] - ret = data[0][k]/len_result - self.intensity_after_avg.update( { k : ret } ) - log.debug(f"getAvg: {self.intensity_after_avg}", __name__, "getAvg") + def set_info_frame(self, info_frame:bytes): + self.info_frame = InfoFrame() + self.info_frame.set_info_frame(info_frame) #已经解析 pass +class mycfg(object): + sensor_cfg = { 2: {1: {'FUNC': 'Lsky', 'SN': '85B5'}, 2: {'FUNC': 'Esky', 'SN': '50ED'}, 3: {'FUNC': 'Lwater', 'SN': '852F'}} } - def saveOnefileForLskyEskyLwaterLwRS(self, ) -> bool: - log.info(f" ", __name__, "saveOnefileForLskyEskyLwaterLwRS") - year = "20"+ f"{self.info_dict['year']:02d}" - month = f"{self.info_dict['month']:02d}" - day = f"{self.info_dict['day']:02d}" - save_path = self.output_path.joinpath(year,month,day) - self.mydir.setBaseDir(save_path) #基路径 - self.mydir.newDirIfNot() - self.mydir.newFileIfNot(self.ymdhms + SAVE_EXT_NAME) - - self.mydir.setHeader( self.wavelength.tolist(), TOKEN, "device_id_"+str(self.device_id) ) - header = self.mydir.header_str + cal_cfg={2: + {'Lsky': {'SN': '85B5', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85B5', 'inifile': 'SAM_85B5.ini', 'calfile': 'Cal_SAM_85B5.dat', 'calaqfile': 'CalAQ_SAM_85B5.dat', 'backfile': 'Back_SAM_85B5.dat', 'cal': ['+NAN', '+NAN', '+NAN', '0.380824258865919', '0.480956813156357', '0.57671205380196', '0.643896236957154', '0.711054782209677', '0.758265752350778', '0.808854255795615', '0.869466331079482', '0.925321324749243', '1.00927399148091', '1.08699883630787', '1.18347377446848', '1.29079925777138', '1.39953731633192', '1.49536024576308', '1.57053962346542', '1.61051680455964', '1.60891142181803', '1.58014917632373', '1.54292073894688', '1.49782795775685', '1.46270054563491', '1.43754722159869', '1.42339247548624', '1.42249669690879', '1.43289834559721', '1.45081833970432', '1.48383024473758', '1.53350351710437', '1.59283171118034', '1.66682243068085', '1.75523084376357', '1.8490542829721', '1.94827772413977', '2.05297044933559', '2.15300125225733', '2.24489521732098', '2.32484518002751', '2.37710624055378', '2.41032149129472', '2.41401311078449', '2.39196623346607', '2.35386541795861', '2.30358502851024', '2.24350994611066', '2.18566570348128', '2.13007635400607', '2.08048312730197', '2.03943635277338', '1.9990019487276', '1.9542919602901', '1.90697476815729', '1.86132580586718', '1.81936966943287', '1.78948757961567', '1.77036444175303', '1.76067051308416', '1.76079151769139', '1.76865840458355', '1.78533977613825', '1.81054315659671', '1.84219534093402', '1.88262260694772', '1.92633682221336', '1.96919363361994', '2.00638558730966', '2.03543177536163', '2.05645335730185', '2.06889953924594', '2.07668786673546', '2.07746404954558', '2.07708946852551', '2.07239270419962', '2.06329693588947', '2.05235510505223', '2.03788342455449', '2.01750123705209', '1.99316265318269', '1.96344779927853', '1.92810068074762', '1.89032139564187', '1.84840056738145', '1.80188008685176', '1.7531429855323', '1.70184883503381', '1.64693756964496', '1.59639297188055', '1.55743828612696', '1.53081670223502', '1.509066853406', '1.48974595694359', '1.47286758281018', '1.45660325947575', '1.43667408186819', '1.40947906533906', '1.37746325817173', '1.3399910234164', '1.29987620320872', '1.26173586555032', '1.22580130202006', '1.19650560480134', '1.17258287879559', '1.15326969493003', '1.13448708666807', '1.11395465030131', '1.08753684763482', '1.06275254011917', '1.0408908566722', '1.02045255259373', '1.00192289281247', '0.987093337695555', '0.973433543184599', '0.961454156421677', '0.949336048850277', '0.937190359719721', '0.925018119816345', '0.911316167695048', '0.897751565127677', '0.885763756400802', '0.875253674622747', '0.866439225407856', '0.859594015285511', '0.856442344648432', '0.854520610650332', '0.853095084706978', '0.851996897997662', '0.849373999218705', '0.845008414644852', '0.837447706997702', '0.828042280687475', '0.816973957953628', '0.804392597259629', '0.790971383923797', '0.777350907812577', '0.764886212005326', '0.753124860834896', '0.74238339492221', '0.731621293455726', '0.720137856580817', '0.707681887074656', '0.692857487682284', '0.676149155140644', '0.657691286728854', '0.637091724889135', '0.615841105000382', '0.593277961352052', '0.571635565839856', '0.550558744253774', '0.529727893337181', '0.50958610090654', '0.490923786532866', '0.472942835508178', '0.455966760194577', '0.439389399108222', '0.42326262400571', '0.408064966451864', '0.392531100434587', '0.376760145430696', '0.361340837642809', '0.345797349215964', '0.330538900755072', '0.315423852713651', '0.300655326757946', '0.286125136929255', '0.27220666979537', '0.258963801456755', '0.246515726736969', '0.23471243489257', '0.223963260764627', '0.213811227531161', '0.204848303945938', '0.196342813423038', '0.188347519381911', '0.180847277367304', '0.173574321958823', '0.166782572540461', '0.159983659268987', '0.153496471427164', '0.146983276179518', '0.140664487031456', '0.134679615950644', '0.128426075217298', '0.122768803469292', '0.116973531179931', '0.111227699506044', '0.10561644888568', '0.0999165260100575', '0.09399466356358', '0.0884689961099718', '0.0833768260697751', '0.0789223013382674', '0.0748108094846383', '0.0710379549143775', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '0.213368170535889', '0.269708461889978', '0.323681305990691', '0.361686162925288', '0.399727885563257', '0.426595980991839', '0.455395402116462', '0.489873358069589', '0.521706723967902', '0.569424753191682', '0.613678281579101', '0.668568867138568', '0.729648774358889', '0.791588424733509', '0.846278067578305', '0.889326585618736', '0.912464300651466', '0.912041091772509', '0.896201537846271', '0.875528861051999', '0.850358796139941', '0.830813460904554', '0.816907084374381', '0.809230927534884', '0.809079793968319', '0.815347896421343', '0.825892411944005', '0.84503183706585', '0.873670658313288', '0.907826486501149', '0.950360287322641', '1.00114116281862', '1.05504053595122', '1.11205216981838', '1.17221784963607', '1.22975299376536', '1.2826684244193', '1.32878263374036', '1.35908629098684', '1.37850707003827', '1.38104038663283', '1.36883708486346', '1.34742818899357', '1.31902470629713', '1.28498732451399', '1.25220172471482', '1.22068349763187', '1.1925789464318', '1.16935370804616', '1.14646179324841', '1.12109994325093', '1.09422415317439', '1.06828767805555', '1.04445396328421', '1.02753751191562', '1.01678817181089', '1.01144651696064', '1.01173798764201', '1.0164772818471', '1.02628160092791', '1.04098599390468', '1.05940120890642', '1.08286747681355', '1.10823034660724', '1.13310605067389', '1.1547273364889', '1.17166412724341', '1.183983471337', '1.19136561427902', '1.19606418873222', '1.19672161290192', '1.19671286046196', '1.19421014531398', '1.18916801665381', '1.18305692745573', '1.17490571141989', '1.16334076115534', '1.14948755782896', '1.13252619591223', '1.11230773028189', '1.09067725991727', '1.06664792919033', '1.03995448729021', '1.01197155529512', '0.982502268789757', '0.950934147643801', '0.921876981717461', '0.899503833526815', '0.884246887000271', '0.871798641947689', '0.860748919530635', '0.851106201938694', '0.841814387319495', '0.830400473286421', '0.814782119978127', '0.796371468702983', '0.774800085650998', '0.751694156127581', '0.729723545880894', '0.70902256138046', '0.69215621992056', '0.678393548274155', '0.667293944696908', '0.65649797079901', '0.6446860376968', '0.629464240966416', '0.615183928901848', '0.602591773736883', '0.590820336228123', '0.580150915843665', '0.571621329022329', '0.563766808252911', '0.556883367165026', '0.549917569359012', '0.542933812612894', '0.535932724580549', '0.528043359268253', '0.520231538772767', '0.513331529426342', '0.507286194391832', '0.502222099629004', '0.498298138845332', '0.496514280280116', '0.495442722847893', '0.494658216836534', '0.494062920786886', '0.492582820232232', '0.490091285479962', '0.485745623273317', '0.480328740541132', '0.473945880321646', '0.466683779528739', '0.458932848241851', '0.451064706693729', '0.443865689279125', '0.437073402888952', '0.430871678484112', '0.424656716266769', '0.418021794802865', '0.410821018781503', '0.402243888142941', '0.392571430814996', '0.381881477324506', '0.36994612437875', '0.35763078427341', '0.344551257226534', '0.332004497779552', '0.319784344441634', '0.307705241065949', '0.296024637721301', '0.285201831804588', '0.27477331903475', '0.2649271655017', '0.255311286750044', '0.245955888598912', '0.237139128199368', '0.228125758026999', '0.218973368669899', '0.210024147431339', '0.201001563461602', '0.192143502318544', '0.183367668918973', '0.17479218252589', '0.166354193257315', '0.158270839921817', '0.15057933833141', '0.14334907901495', '0.136492914420144', '0.130248971747009', '0.124351585245978', '0.119145124817533', '0.114204124468303', '0.10955932586493', '0.105201972954921', '0.100976345428583', '0.0970301944120184', '0.0930794320815323', '0.0893096045786908', '0.0855242301014967', '0.0818515687486457', '0.0783728272346642', '0.0747373637294556', '0.0714485344156491', '0.0680790457826121', '0.0647379875159452', '0.0614749247480892', '0.0581599202112611', '0.0547153945113677', '0.0515011739034831', '0.0485390098580295', '0.045947792932824', '0.0435560478479539', '0.0413612446534424', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0164817607719245', '0.0163219290778752', '0.0163731972698131', '0.0164399246082603', '0.0164430241843214', '0.0163983356778795', '0.0163990512062458', '0.0163901000353671', '0.0164207307910173', '0.0164008709967505', '0.0164082743860791', '0.0163908071888585', '0.0164252516531235', '0.0163975419840151', '0.0164170151382283', '0.0163836419600322', '0.0164195574361616', '0.0163940245365965', '0.0164118187028877', '0.016392199511795', '0.0164065571877907', '0.0163945228416475', '0.0164219489863484', '0.0163932453242865', '0.0164305632429927', '0.0163847816409121', '0.0164318688510797', '0.0164176912348923', '0.0164202520273408', '0.0164088639423701', '0.0164306347783817', '0.0164189001829659', '0.0164341838060573', '0.0164138319878957', '0.0164304957205646', '0.016429661373662', '0.0164248637917341', '0.0164295341802509', '0.0164375396881828', '0.0164033339078497', '0.0164426914575244', '0.0164161851532397', '0.0164508810382254', '0.0164265781983975', '0.0164319475400075', '0.016422878946405', '0.0164658096015204', '0.016435585550728', '0.016451332060129', '0.0164379950720003', '0.0164365183024095', '0.0164243435026367', '0.0164365261538547', '0.0164254425304785', '0.0164527732365019', '0.0164500622197366', '0.0164541095524632', '0.0164375095037381', '0.0164747180256422', '0.0164484643634142', '0.0164537975883766', '0.0164461544682567', '0.0164698387886849', '0.0164431478882013', '0.0164654240083262', '0.0164472887403633', '0.0164750846008916', '0.016451503570586', '0.0164619681511328', '0.0164507452954629', '0.0164756266995587', '0.0164519861727467', '0.0164677262265151', '0.0164529956941139', '0.0164743584294553', '0.0164623034950781', '0.0164737165301967', '0.0164694078315855', '0.0164841373171273', '0.0164653304888909', '0.0164847460658397', '0.0164548329322745', '0.0164595881163988', '0.016470273409792', '0.0164793578807614', '0.0164794932745707', '0.0164779744561293', '0.0164553809631447', '0.0164876681992408', '0.0164698851994495', '0.0164899871671793', '0.0164501525985938', '0.0164753983097437', '0.0164809215396783', '0.0164902986078362', '0.0164763052388946', '0.0164924607213486', '0.0164652690731423', '0.0164867010756773', '0.0164660367699995', '0.0164911903575265', '0.0164677717648968', '0.0165022066329511', '0.0164662370690886', '0.016489524978776', '0.0164685029961533', '0.0164921269476923', '0.0164558499561338', '0.0164738716398572', '0.0164762743565437', '0.0164791764251406', '0.0164705429760749', '0.0164789927013245', '0.016473611669785', '0.0164614993326202', '0.0164598238342293', '0.0164727508024456', '0.0164582863467961', '0.0164685862214717', '0.0164525792185689', '0.0164773030703324', '0.0164670838038268', '0.0164831073820027', '0.0164667688736388', '0.0164761180255473', '0.0164464892887724', '0.0164720077067831', '0.0164452072350208', '0.0164870899839261', '0.016459772189168', '0.0164701266750064', '0.0164611727125027', '0.0164680781457335', '0.0164568425532749', '0.0164788192716254', '0.0164516724638946', '0.016478949431138', '0.0164561298165336', '0.0164755542917869', '0.0164556124935377', '0.0164507196474088', '0.0164471687004911', '0.0164601098013086', '0.0164608579567913', '0.0164729301643477', '0.0164409632672129', '0.0164714560119053', '0.016453806137728', '0.016458409701723', '0.016446300156183', '0.0164759950195736', '0.0164447300416335', '0.0164623949207948', '0.0164359400870948', '0.0164562215912033', '0.0164493753055259', '0.0164598233107996', '0.0164437951962332', '0.0164648208428636', '0.0164373709693507', '0.0164554146371204', '0.0164451486108972', '0.0164645650602289', '0.0164504392635794', '0.0164504671798287', '0.0164356687760464', '0.0164534369453303', '0.0164388145883954', '0.0164527186253391', '0.0164332435518838', '0.0164442846029797', '0.0164340580084587', '0.0164485673045837', '0.0164290273258486', '0.016450102349345', '0.0164311430285965', '0.0164412099770665', '0.0164335047432918', '0.0164442961184326', '0.0164228450979527', '0.016437492579512', '0.0164196870722445', '0.016438840061973', '0.0164283787964808', '0.0164416083070495', '0.016412027202375', '0.016431280341648', '0.0164384511537241', '0.0164345854510949', '0.0164129589071972', '0.0164313105260926', '0.0164068407121982', '0.0164422922551586', '0.0164141230147952', '0.0164350718917399', '0.0163981727167739', '0.0164302013786105', '0.0164117635682952', '0.0164348827591505', '0.0164084963202615', '0.0164184283983518', '0.0164093013551022', '0.0164248964188505', '0.0163861197016389', '0.0164414938504271', '0.0163912936295035', '0.0164153211453222', '0.0164085420331198', '0.0164144138672182', '0.0163877472189763', '0.016438808830669', '0.0163928122734684', '0.016421485227656', '0.0164041312657219', '0.0164178255818423', '0.0163971898903201', '0.0164201696744052', '0.0163995320636409', '0.0164209146893099', '0.0164032430055628', '0.0164164507065617', '0.0163974777766416', '0.0164176661102679', '0.0163930417101427', '0.0164141233637484', '0.01640118889304', '0.0164288055661428', '0.0164032700494293', '0.0164078024269885', '0.0163929630212149', '0.0164272534226787', '0.0163858681064416', '0.0164185958958479', '0.0164030676566215', '0.0164018004333774', '0.0163995488133905', '0.0164085041717066', '0.0163987202242144', '0.0164206611748704', '0.0164022528510935', '0.0164241117977671', '0.016396216660077', '0.0164233505565425', '0.0164139434784166', '0.0164194745597963', '0.0163983088084895', '0.016435900480916', '0.0164233186273323', '0.0164390513530853', '0.0164271529241811', '0.0164633723384753', '0.016452145295368', '0.0165066871909724', '0.0165379624630295', '0.0170330815720343'], 'b1': ['0.0184759992200316', '0.018442149942613', '0.0187318928446685', '0.0186864332877884', '0.0188479230215774', '0.0188454845678811', '0.0188404723750983', '0.0187262068433619', '0.0187526368954241', '0.018602897614217', '0.0187456469175185', '0.0186707166166917', '0.0185607140585195', '0.0187588039890341', '0.0188965777575295', '0.0187075898280626', '0.0187674584136427', '0.0186381709667486', '0.0186427120172502', '0.0187927918685168', '0.0186624507666358', '0.0187624519813991', '0.0187392302005435', '0.0185522851677484', '0.0186472895511667', '0.018535703368402', '0.0186348291557698', '0.0186553691437886', '0.0187121064399131', '0.0186093935822463', '0.0187113848014579', '0.0186487433017847', '0.0187725126758178', '0.0187999361590481', '0.0187205484228188', '0.0188728539369552', '0.0187682175828836', '0.0187626176405413', '0.0188624825225437', '0.0187837980957813', '0.0188658971257905', '0.0186604942780519', '0.0189255700275998', '0.0186329430155887', '0.0188553270600577', '0.0187585744402754', '0.0188853157288465', '0.0188095644639038', '0.0189702224107457', '0.0190654765920908', '0.0188298321355244', '0.0189752702141345', '0.0190654219542494', '0.0188267308706973', '0.0190373731906741', '0.0189250398834323', '0.0189864086530676', '0.0190345625712336', '0.0188082665969675', '0.0190122781872102', '0.0188972889222771', '0.0185940174812091', '0.0187732280300485', '0.0188341576022108', '0.0188008229329601', '0.0188143481552986', '0.0188958311567378', '0.0186248391588775', '0.0188025980518404', '0.0189280180821948', '0.0188994067059584', '0.0187979548826894', '0.0188527726973303', '0.0189566842708345', '0.0188313071826812', '0.0188952770976046', '0.0189118414407716', '0.0185289364804688', '0.0186616668096203', '0.0188390641851084', '0.0188772853626504', '0.0188133788136582', '0.019095000402823', '0.0189106139222383', '0.0190673035558238', '0.0189999768176074', '0.0188888352437313', '0.0191460724704944', '0.0188107766209993', '0.0192259407753418', '0.0189064331672789', '0.0190127816234232', '0.0187168141969277', '0.0190825361670666', '0.0190127334443682', '0.0191085322585096', '0.0188582193744177', '0.0188903102908881', '0.0189330562846849', '0.0190078099289766', '0.0189027331554994', '0.0189810824236179', '0.0189551510946003', '0.0189044651576166', '0.0187674423539577', '0.0189472727717265', '0.0189907035714401', '0.019064578646224', '0.0188920054604669', '0.0190449437611056', '0.018889919447032', '0.0187988736014097', '0.0192020416947266', '0.0188233049209339', '0.0187371501222097', '0.0189721827396891', '0.0188261000043749', '0.0186942695412699', '0.0189034198815958', '0.0187198665844525', '0.0186137942850658', '0.0189533499660128', '0.0187808211189513', '0.0188594921044556', '0.0188539249797306', '0.0188040633235368', '0.0187732121449252', '0.018962250173627', '0.0190127418233343', '0.0191750319229475', '0.0189599365316131', '0.0190203120446422', '0.0190216017071741', '0.0186128352425711', '0.019228758377254', '0.0189206767113985', '0.0188962342199195', '0.0191006190232771', '0.0190500058785614', '0.0187485043195198', '0.0190170367417068', '0.0188547895842948', '0.0188974739577785', '0.0189445812034293', '0.0189157249169963', '0.0191215468876016', '0.0187773754437052', '0.0190317306552542', '0.0190325910703354', '0.0190408668704134', '0.0189401984804746', '0.0190495591749313', '0.0187950388279255', '0.0189297027780659', '0.0189593482583683', '0.0190509148218212', '0.0188672314761416', '0.0189148159737365', '0.0191385526975449', '0.0190494453606418', '0.0190579196374793', '0.019121285044911', '0.019044043895059', '0.0186976181601587', '0.0189873739797868', '0.0191378319318987', '0.0190663267080262', '0.0190936695437077', '0.0191095358142617', '0.0189574708462769', '0.0187806189763942', '0.0189485074472935', '0.0187745148995917', '0.018830215822347', '0.0188787988134019', '0.0189920377472294', '0.0188564391932454', '0.0190900863137682', '0.0189570108759505', '0.0190537807773504', '0.0188639551258354', '0.0189272838752905', '0.0189407244351591', '0.0191445909645512', '0.0190009035661702', '0.0190382999392369', '0.0191088417565699', '0.0189974830278224', '0.0189503359820826', '0.0189001894410414', '0.0186533777428459', '0.0188463448084005', '0.0188216286040289', '0.0190486301570651', '0.0189039538661228', '0.018976088908947', '0.0186541344682217', '0.0187053388537327', '0.0188468777455567', '0.0189798348304782', '0.0190289182901957', '0.0189938748355464', '0.0188985777120001', '0.0189140892729893', '0.0189945299659582', '0.0190288961208479', '0.0188169428418004', '0.0190174979339657', '0.0187582286333621', '0.0188360660863014', '0.0188666440757058', '0.018693495185153', '0.0187786836097873', '0.0186433495169208', '0.0188323175463432', '0.018976409578962', '0.0187435457172076', '0.018987845122068', '0.0186761889543627', '0.0190061624147675', '0.0187835201934057', '0.0188749633416704', '0.0189686084124011', '0.0188226435062976', '0.0187423426373254', '0.018996327428748', '0.0186609085131884', '0.0187348848338127', '0.0187956862776184', '0.0190963977699816', '0.0185138758125928', '0.0187250730645117', '0.0188906307863414', '0.0188630606712045', '0.0188464739841278', '0.0189781192371696', '0.0187965507076208', '0.0186990834318551', '0.0186847039040981', '0.0187928330651002', '0.0187593187717638', '0.0188783466983562', '0.0187352552539389', '0.0188740873905896', '0.0187454707846687', '0.0189869951806945', '0.0189396802065091', '0.0187842685398153', '0.0186674191444085', '0.0189300391586424', '0.0190247289817084', '0.01897844723878', '0.0188266460336656', '0.019144633383067', '0.0204797029287844'], 'SAMSN': '85B5', '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'}, + 'Esky': {'SN': '50ED', 'FUNC': 'Esky', 'TYPE': 'SAMIP', 'samsn': '859F', 'inifile': 'SAMIP_50ED_ALL.ini', 'calfile': 'Cal_SAM_859F.dat', 'calaqfile': 'CalAQ_SAM_859F.dat', 'backfile': 'Back_SAM_859F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.549282530081406', '0.621825635483575', '0.705214779700439', '0.782494923890489', '0.848306874043027', '0.952625287085828', '1.06364941208026', '1.17099618224932', '1.27964867192574', '1.37878597375063', '1.42771820575638', '1.4380590385421', '1.41583530083466', '1.35751030831315', '1.28801896577964', '1.23773169248486', '1.19003370359023', '1.16911032524399', '1.16789019991587', '1.17908641221467', '1.20561721452238', '1.24993325867368', '1.3042108426727', '1.37841324495146', '1.46663415660191', '1.55813913029349', '1.66686169700722', '1.78274771118438', '1.89315285694338', '2.00609300108623', '2.10386062632617', '2.18077321675475', '2.23620955735442', '2.266135432154', '2.26878990322214', '2.25797663538301', '2.22685859649013', '2.17776313289299', '2.1222752364519', '2.06098344374156', '1.99948809108821', '1.94462577242816', '1.8989381397134', '1.8637403074385', '1.84137175128878', '1.82996842025894', '1.82735603324287', '1.82819560800875', '1.82831225824908', '1.82476779554239', '1.82142520789599', '1.82469614734563', '1.83514598035505', '1.85423698694933', '1.88102853388183', '1.91679111910883', '1.95713305118927', '2.0033013266641', '2.05191276620812', '2.10100127704333', '2.15116215495783', '2.19982933350689', '2.24341508467426', '2.28026480621138', '2.30634686430023', '2.31796219508283', '2.31589695847203', '2.29809543158409', '2.2668387918562', '2.22596956700897', '2.17822422289454', '2.1262484698939', '2.07154274835781', '2.01784816285075', '1.9635850159156', '1.90957838150673', '1.85662335754133', '1.80118393109592', '1.74752896056537', '1.69458207285898', '1.64238998731142', '1.59255947952261', '1.55042463825823', '1.52145095482736', '1.50182839545807', '1.48602912306116', '1.47501182897849', '1.46801797625318', '1.46252443118698', '1.4571840542778', '1.44881752975571', '1.433373570625', '1.4106211402034', '1.38310053980989', '1.35343439202405', '1.32469024445085', '1.29921323938482', '1.2757042981125', '1.25356245928469', '1.23230080447944', '1.20776661327865', '1.18172190161938', '1.16211138784545', '1.14836490545677', '1.13698033747357', '1.12673020620722', '1.115430409999', '1.10428562795353', '1.0934141739792', '1.0851095103506', '1.08102444265095', '1.08007408967758', '1.08238869164072', '1.08781099449618', '1.09202496629142', '1.09279743926351', '1.08928198225434', '1.08099296127192', '1.06779395728469', '1.05125732218958', '1.03307124483462', '1.01642561672595', '1.0017478853335', '0.98877464388953', '0.978591382441999', '0.970432000434175', '0.962460675619692', '0.953651636148435', '0.943103023421902', '0.930554197290447', '0.915976069829803', '0.89827602173614', '0.878650755188226', '0.859108524352699', '0.840122962860222', '0.820853477964574', '0.803547895709764', '0.786651104537257', '0.769194844035412', '0.751217544779413', '0.731862968408631', '0.710478767970412', '0.687207420135085', '0.662469528888512', '0.636358233772055', '0.609121332586544', '0.580838486227566', '0.552767035926316', '0.525876935395925', '0.499896413074609', '0.475284681533185', '0.452387885405863', '0.431848904268036', '0.413013739466993', '0.395710805209202', '0.380181587532903', '0.365591896979342', '0.352105459639395', '0.339276260510366', '0.32616389487977', '0.313880254968568', '0.301213081346406', '0.28867892621412', '0.276332017077307', '0.263867205519659', '0.251559483539307', '0.239917175566115', '0.228872841726392', '0.218348838385983', '0.208663588155861', '0.199488791575245', '0.191252859631973', '0.183364916996847', '0.175877803627425', '0.169219899131997', '0.162866423884395', '0.156727192611269', '0.151124000714184', '0.145138407523578', '0.13971586046093', '0.134506608902369', '0.129059486722317', '0.124203168251957', '0.119075347065844', '0.113513221481262', '0.107843336832916', '0.101790305051534', '0.0961960826886135', '0.0914035900672732', '0.0868727278958915', '0.082573024301116', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '+NAN', '0.308009257704273', '0.348985396550329', '0.39611199753429', '0.43986968240828', '0.477232425339663', '0.536318311921194', '0.599255756896796', '0.660195405447511', '0.721940911560072', '0.778381764258939', '0.806518994572799', '0.812862184246214', '0.800779958731845', '0.768238986615194', '0.729324871828135', '0.701235591002145', '0.674572715683613', '0.663056816542841', '0.662699926877705', '0.669382520005193', '0.684772623825422', '0.710275115045633', '0.74145572495904', '0.783988164111933', '0.834525694448954', '0.886966821712609', '0.949247521262016', '1.01565043430167', '1.07897249264832', '1.14377888540009', '1.19997013476615', '1.24429313837597', '1.2763795229717', '1.29391228294411', '1.29587029284695', '1.29012478792631', '1.27276079346714', '1.2450982196578', '1.21375364521069', '1.17906121512383', '1.14422362714978', '1.11315509839511', '1.08731507394343', '1.06746197368796', '1.05494171300318', '1.04869254224893', '1.04747349722362', '1.04822757370139', '1.04856210675178', '1.04679141002185', '1.04513065036628', '1.04725995618916', '1.0535067386541', '1.06471361999517', '1.08034380002613', '1.10113009018595', '1.12455239246124', '1.15132895471663', '1.1795169782144', '1.20798673857183', '1.23708055274173', '1.26532262623006', '1.29064822236823', '1.31210337451311', '1.32736540301797', '1.33430139824988', '1.33335932325033', '1.32335113190924', '1.30558590461423', '1.28227321775146', '1.25498704776805', '1.22525023251367', '1.19392661641762', '1.16317225749886', '1.13207700011805', '1.10111674556499', '1.07075040366943', '1.03893893539784', '1.0081446443131', '0.97774721715577', '0.947774052897518', '0.919152947182789', '0.894963764571428', '0.87836395884067', '0.867156996532193', '0.858153034494107', '0.851906778357719', '0.847981268808314', '0.844919850173329', '0.841944554421527', '0.83721825473176', '0.828398944802337', '0.815351600734525', '0.799543228463232', '0.782489183888857', '0.765962841341892', '0.751320667184625', '0.737812095757199', '0.725090001717255', '0.712873061263532', '0.698758948036327', '0.683766639638848', '0.672493396285743', '0.664610527729123', '0.658092136872804', '0.652228157780532', '0.645754399378545', '0.639368207275896', '0.633138158063289', '0.628392493836991', '0.626088937445665', '0.625599854321674', '0.627001238574581', '0.630202545823175', '0.632703647598273', '0.633210363154327', '0.63123164301687', '0.626485370072314', '0.618891745640103', '0.609361448964366', '0.598872648152344', '0.58927447780469', '0.580815044730471', '0.573341941514821', '0.567484926926375', '0.562800136636572', '0.558223116403165', '0.553158922485434', '0.547084299354418', '0.539847820827437', '0.531432360197925', '0.521203701656628', '0.509855867118928', '0.498554054755033', '0.487573187562371', '0.476425489189536', '0.466415695619565', '0.456641365086098', '0.446540473657011', '0.436135290849149', '0.424928637592468', '0.412541586513936', '0.399056656796071', '0.384717912438278', '0.369579305401316', '0.353784632326527', '0.337380068381195', '0.321095903578543', '0.305495669126019', '0.290421643260465', '0.276140762920409', '0.262854333224098', '0.250936131068681', '0.240006392992584', '0.229965608856624', '0.220954309792884', '0.212487857424938', '0.204661532835082', '0.197216204057537', '0.189605277840326', '0.182475141050851', '0.175121099828465', '0.167843462384963', '0.160673785509465', '0.153434661065448', '0.146286002352245', '0.139523451810534', '0.133107862589632', '0.126994143420237', '0.121367561058691', '0.116037239577153', '0.111252442566666', '0.106669531239736', '0.102319284531729', '0.098450973344807', '0.0947593486764351', '0.0911919684356708', '0.0879361030612687', '0.0844573547823388', '0.0813058869947144', '0.0782782092672921', '0.0751117681314502', '0.0722888539254525', '0.0693076153913147', '0.0660732713239472', '0.0627758734115707', '0.0592551057473219', '0.0560010918166818', '0.0532135140872552', '0.0505779890461858', '0.0480767985810033', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0165892037855774', '0.0165122714877024', '0.0164973019224162', '0.0166164505683762', '0.0165490556826164', '0.0165598147795938', '0.0164974439463348', '0.0165638938670541', '0.0165295399561229', '0.0165679375357729', '0.0165135498774463', '0.0165496044113927', '0.0165162233817516', '0.0165748471564411', '0.0165168071803162', '0.016561615028724', '0.0165228899565738', '0.0165630265440819', '0.0165138880130166', '0.016557182975186', '0.0165155392591658', '0.0165657065040199', '0.016518681058554', '0.0165595148543898', '0.0165168741793146', '0.0165713147040385', '0.0165192898072665', '0.0165624174464164', '0.0165336104942318', '0.0165711529642688', '0.0165277786152653', '0.0165778362888406', '0.0165368341231259', '0.0165763434674064', '0.0165347332508855', '0.0165844704110229', '0.0165276158286362', '0.016561547855249', '0.0165227810832013', '0.0165862270410135', '0.0165383602695828', '0.0165776928691096', '0.0165375732058275', '0.0165658438170714', '0.0165459794864142', '0.0165800024153139', '0.0165525603932462', '0.0165907623846741', '0.0165508449397234', '0.0165903560287695', '0.0165476473078365', '0.0165857165226035', '0.0165481178711146', '0.0165957271151451', '0.0165507685189908', '0.0165883062781607', '0.0165548565047555', '0.0166030835702795', '0.0165500053585241', '0.0165961038100348', '0.0165517131350783', '0.0166133108627067', '0.0165473248751564', '0.0165983146025071', '0.0165525591719102', '0.0166064242729443', '0.0165435383848847', '0.0165950365369267', '0.0165586482293239', '0.0166092385798323', '0.0165697841956677', '0.0165967129077004', '0.0165732545344154', '0.0166026855892496', '0.0165687354170748', '0.0166129015407006', '0.0165534954131229', '0.0166168593669527', '0.0165646865140591', '0.0166018156491291', '0.0165586096700045', '0.0166129247460829', '0.0165712166482126', '0.0166143243970348', '0.0165701301826831', '0.0166189659969196', '0.0165676643054824', '0.0166299271377517', '0.0165751742999882', '0.0166072596667062', '0.0165629157514673', '0.0166089130065742', '0.0165693558557167', '0.0166203017894511', '0.0165698981288603', '0.0166107804291794', '0.0165637935430329', '0.0166245248200721', '0.0165754381085446', '0.0166166770389491', '0.01656780789969', '0.0166270111110302', '0.0165662229546329', '0.0166136421936913', '0.0165698424708382', '0.0166173691874565', '0.0165821997730911', '0.0166164975025705', '0.0165739878593907', '0.016623824645643', '0.0165631308810639', '0.0166247172677161', '0.0165669479047333', '0.0166042075482691', '0.0165806895040011', '0.0166075213815439', '0.0165708319274012', '0.0166233251192561', '0.0165772010196913', '0.016621139974838', '0.0165690780890356', '0.0166295818486425', '0.0165801878838955', '0.0166132293821539', '0.0165742146789166', '0.0166257485986531', '0.0165839324997932', '0.0166274820232614', '0.0165711257459257', '0.0166118375826471', '0.0165702390560556', '0.0166138555785223', '0.0165495885340259', '0.0166076853895089', '0.0165715106412136', '0.0165914878582042', '0.0165708420470416', '0.0166090042578143', '0.0165677817282062', '0.0166140523880802', '0.0165772907006423', '0.0166172060518744', '0.0165733789362016', '0.0166208616847272', '0.0165699940909675', '0.0166094990733341', '0.0165568282643426', '0.0166152531357555', '0.0165675189665092', '0.0166057366608274', '0.0165695308557048', '0.0165973481768498', '0.0165636400036615', '0.0166118299056785', '0.0165665354421491', '0.0165949780872796', '0.0165594520428288', '0.0166050473039449', '0.0165700478297475', '0.0166062033856213', '0.0165620390067611', '0.0165990297819202', '0.016574294763657', '0.0165960321001693', '0.016567221483977', '0.0166072507684017', '0.0165554031398131', '0.0166002793830319', '0.0165516576515327', '0.0166026362123836', '0.0165560230550254', '0.0166113124082061', '0.0165672890064051', '0.016604050693843', '0.0165640243755198', '0.0166057021144688', '0.0165508046356384', '0.0165935180674385', '0.0165675029146658', '0.0165893028882626', '0.0165492090475113', '0.0165956159735774', '0.0165528561310127', '0.0166073952349921', '0.0165463099450159', '0.0166001891786512', '0.0165482056328235', '0.0165952621351168', '0.0165536456374398', '0.0165997360630289', '0.0165524916494821', '0.0165986206343906', '0.0165521507222869', '0.016599824522644', '0.0165434263709342', '0.0166010940140834', '0.0165431388335659', '0.0165863373101985', '0.0165434326520903', '0.0166064767903884', '0.016561522556148', '0.0165987263671851', '0.0165499257972134', '0.0165839637310972', '0.0165457994266058', '0.0165795458101604', '0.0165524665248577', '0.016595737060309', '0.0165466772181714', '0.0165879578484734', '0.0165430683450362', '0.0165948067512992', '0.0165396531408809', '0.0165652856665609', '0.0165523227561735', '0.0165783818770389', '0.0165503544861175', '0.016572293692008', '0.0165450638334354', '0.0165749698134617', '0.01655305398743', '0.0165967214570518', '0.0165454616399886', '0.0165946692637712', '0.0165392806334286', '0.0165890797327443', '0.0165355112418597', '0.0165804930433963', '0.0165460245013662', '0.0165847202614547', '0.0165448417247764', '0.0165611542361331', '0.0165515342966058', '0.0165765880835414', '0.0165339756736686', '0.0165878632821788', '0.0165440089481629', '0.0165963711081224', '0.0165516928957975', '0.0165934388550809', '0.0165544309564294', '0.0165877533619469', '0.0165399865655842', '0.0165907330726123', '0.016550628937744', '0.0166034288593887', '0.0165659505967252', '0.0166105647761531', '0.0165655829746165', '0.0166172674676229', '0.0165796119367761', '0.0166424952076873', '0.0166246136286404', '0.0167334388455894', '0.0171297295465388'], 'b1': ['0.018605511502516', '0.0184837131056956', '0.0183851120510798', '0.0184840774161591', '0.0185292503425739', '0.0186302980552904', '0.0183759157866635', '0.0186312056020559', '0.0185970883722841', '0.018610557385725', '0.018696732782741', '0.0185527901750176', '0.0184841121539561', '0.0185602766066645', '0.0183555554227304', '0.0185179326286786', '0.0185996666499772', '0.0186817794703681', '0.0184706934143117', '0.0185104139030999', '0.0185717901788923', '0.0185864488309574', '0.0184904599190226', '0.0185467707606851', '0.0185513739551852', '0.0186439978394227', '0.0185915799003217', '0.0186942077463949', '0.0186620183770728', '0.0186390987626822', '0.0185678106936811', '0.0186122998615499', '0.0184338018739524', '0.0186563994074951', '0.0186582494133848', '0.0184381484626158', '0.0187957369005385', '0.0184585601477162', '0.018382363401076', '0.0185619393077496', '0.0188072553604966', '0.018482204891798', '0.0185649745882186', '0.0189122127337069', '0.0186279875553889', '0.0184615582465232', '0.0185698745377681', '0.0185120261558266', '0.0184379972921025', '0.0185804266236362', '0.0185466583428899', '0.0185885491584593', '0.0184078979511364', '0.0184049089295427', '0.0184970417714545', '0.0184417327399261', '0.0183843069720872', '0.0185357707492544', '0.018271672720313', '0.018684147226538', '0.0187957920620654', '0.0182829548236024', '0.0184118543941909', '0.0184413151881155', '0.0184057733595452', '0.0182871827102461', '0.0183972310036081', '0.0185852110132782', '0.0183187237570663', '0.0184794824260633', '0.0185034061198914', '0.0181402547467266', '0.0184165518520597', '0.0183788985240326', '0.0181609569026518', '0.0186252303518572', '0.0183105499010758', '0.0181418076484435', '0.0183057028437498', '0.018502016957137', '0.0184040678908206', '0.0184980723842845', '0.0184303921584359', '0.0185389638335849', '0.0182085812003356', '0.0184602108040376', '0.0184275042081207', '0.0185323186152219', '0.0182322636497648', '0.0183371464850892', '0.0182259586523378', '0.018483065481441', '0.0182905728748417', '0.0184016187888549', '0.0183132295991711', '0.0181924879994499', '0.0184099916452902', '0.0187024550929006', '0.0183715293979111', '0.0183022039271567', '0.0184077949596782', '0.0183611756142407', '0.018411879705651', '0.0183403743072167', '0.0184016243748323', '0.0184520221102946', '0.0183486391099018', '0.01861046347148', '0.0185649627180167', '0.0184582639163523', '0.0186787228933602', '0.0185190477294169', '0.0186510274428554', '0.0186025957968757', '0.0183767100428249', '0.0183237705130843', '0.0183277608211268', '0.0185572685578353', '0.0184446809140601', '0.0186042166031303', '0.0186733833972142', '0.0186773335560441', '0.0184308924525366', '0.0186073100126766', '0.0183468275076066', '0.0185506345114271', '0.0186062746866781', '0.0184876664066378', '0.0182968567502917', '0.0184814123812545', '0.0186338901878814', '0.0185727479994544', '0.0184737700659259', '0.0185519168423637', '0.0184109360245942', '0.0186137698464147', '0.0184927182249478', '0.0183322589294271', '0.0184634239629744', '0.0185381407747276', '0.0183129747389523', '0.018566407740545', '0.0184619363473684', '0.0185385801467623', '0.0184219012982279', '0.0184126872285087', '0.0186440826764544', '0.0184714934310123', '0.0186275679088368', '0.0184197444127049', '0.0184460824707018', '0.018243945325', '0.018415498022511', '0.0184500097619367', '0.0185133976878398', '0.0184093356420695', '0.0185570035730324', '0.0186677780434563', '0.0187476308123041', '0.0184833070749635', '0.0183987680202018', '0.0183971864903508', '0.0184699862644854', '0.0186248246702486', '0.0185793174579989', '0.0187341727962561', '0.0185118727160099', '0.0185141533658448', '0.0185683596905223', '0.0185158860662092', '0.0183562021741761', '0.018351702145696', '0.0183285858001638', '0.0184325741808572', '0.0182299784613234', '0.0183180300484981', '0.0186951084852505', '0.0184788363728647', '0.0183958849576168', '0.0184240855899527', '0.0185323332784126', '0.0186074587393249', '0.0186410439047495', '0.0184129410413568', '0.0183934452819879', '0.0185733495393955', '0.0185109349700541', '0.0185722325184776', '0.0184577447695778', '0.0184457087339014', '0.0183168259212451', '0.0184703884548581', '0.0184217183574681', '0.0185029386434078', '0.0186379566048659', '0.018342027581965', '0.0184254820843023', '0.0186074793376165', '0.0184241568111645', '0.0182465302360413', '0.0184340305499022', '0.0186743681002925', '0.0184118549178763', '0.0184971573313619', '0.0183981095731159', '0.018496162154576', '0.0184611797965545', '0.0186299800037023', '0.018466689839573', '0.0186946017323634', '0.0185245357776493', '0.018476103782546', '0.0182796915654308', '0.0185767679830018', '0.0183549425362727', '0.0183019200896801', '0.0185407187032971', '0.0184576592342989', '0.0184396004676159', '0.0183728665412509', '0.018711382183031', '0.0185027394684012', '0.0184419015411806', '0.0184852501222893', '0.0186597281263393', '0.0187948452388963', '0.0182642088071376', '0.0186078693086637', '0.0186437127800135', '0.0185804302894338', '0.0185832597615481', '0.0185230038233477', '0.0187595940557125', '0.0185726041605364', '0.018819251596084', '0.0186927800054842', '0.0187059691963698', '0.0186125063681518', '0.0187091867193515', '0.0187669087185543', '0.0187420275532877', '0.0185165169325316', '0.0184496782690904', '0.0184827699483242', '0.0184833114390083', '0.0188096297500146', '0.0186457825592016', '0.0186986550572133', '0.018635516056428', '0.0185666859920442', '0.0185794000257273', '0.0185533461543306', '0.0186423201260233', '0.0186220849228963', '0.0196555486961812'], 'SAMSN': '859F', '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', 'IPSN': 'C121', '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'}, + 'Lwater': {'SN': '852F', 'FUNC': 'Lwater', 'TYPE': 'SAM', 'samsn': '852F', 'inifile': 'SAM_852F.ini', 'calfile': 'Cal_SAM_852F.dat', 'calaqfile': 'CalAQ_SAM_852F.dat', 'backfile': 'Back_SAM_852F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.099081925071204', '0.107353085872454', '0.113070264290883', '0.114376499819276', '0.116544285861757', '0.1185169696214', '0.121561138979849', '0.126964155564462', '0.134364254054539', '0.144053858633949', '0.154882735476408', '0.16719673162462', '0.181437615712041', '0.194237970806716', '0.20386154720656', '0.211556336359081', '0.211417859085921', '0.208790218500257', '0.20437467341685', '0.198246352046376', '0.192966396099738', '0.18897229193584', '0.186243043953596', '0.18578727224224', '0.187114583931684', '0.189090911319999', '0.193600418301244', '0.200054490546523', '0.208072057884887', '0.218285958582262', '0.230634876630779', '0.243459214546046', '0.257752719558026', '0.272580246630834', '0.286712281491418', '0.300342726342385', '0.312249154496702', '0.321331680226083', '0.327112591435919', '0.329469692698771', '0.327542874308678', '0.322985767437387', '0.316224456423823', '0.308782990589082', '0.301183418606427', '0.293575702556702', '0.286696408065096', '0.280798842600295', '0.275808444038661', '0.271299340181449', '0.266225534078626', '0.260785177597799', '0.255342424416527', '0.250947812402455', '0.24777514930692', '0.246247860756574', '0.246092032695547', '0.247219177075727', '0.249675195006791', '0.253195744885965', '0.257788026175471', '0.26369589320837', '0.270555680751329', '0.277823002163503', '0.284937579021833', '0.291097253127256', '0.296043211270752', '0.299540235735164', '0.301795150475552', '0.303069111244916', '0.30355995799167', '0.303606664702465', '0.303007474849756', '0.302001653949665', '0.300361927400822', '0.297986890885497', '0.295325565249305', '0.291656567474701', '0.287335862742648', '0.282306131698578', '0.276702242286357', '0.270280607979823', '0.263050805729498', '0.255009286552014', '0.247098798503932', '0.2398191835424', '0.23466817932016', '0.230585310303585', '0.227279061892254', '0.224693206022759', '0.222993136629962', '0.221791418806722', '0.220695274517678', '0.219442816624831', '0.217000405185694', '0.213283732282521', '0.208384750595562', '0.202985389753009', '0.197924660371165', '0.193409646692029', '0.189628652821804', '0.186318519164064', '0.183315563032657', '0.180098687261504', '0.176492614557115', '0.172650422408531', '0.168979191040057', '0.166106531649937', '0.163622827054655', '0.161570328667133', '0.159693607722301', '0.157690305409947', '0.15544650006387', '0.153185383511044', '0.150954772341381', '0.148960802743881', '0.147350785081686', '0.146182367433256', '0.145312879880878', '0.144781245193999', '0.14473607505965', '0.144976432177203', '0.145464936657928', '0.145889790468872', '0.146174517595681', '0.14615421098877', '0.145743119998859', '0.144922809795091', '0.143805231938307', '0.142492952453543', '0.141053445832183', '0.139720571628269', '0.138186469198598', '0.136919534961634', '0.135732624874463', '0.134597268963386', '0.133432724955799', '0.13211501546202', '0.130478475600008', '0.128290801143951', '0.125726707508103', '0.122634784100445', '0.119472073398083', '0.116199128230447', '0.112813911251756', '0.109547291781198', '0.106268392530964', '0.10313443150471', '0.100113578226984', '0.097073834113113', '0.0941199411272616', '0.0911853891891621', '0.0882319764053268', '0.085267274530049', '0.0822333903307463', '0.0792187073154596', '0.0760907077820793', '0.0728848234132589', '0.0697048920692252', '0.0665600438164166', '0.0635411651500916', '0.0606319242880778', '0.0578670530064308', '0.0553155735461356', '0.0529193006810867', '0.050722718025932', '0.0486788470977319', '0.0467747209472673', '0.0450423813898501', '0.0434307741189043', '0.041915712424757', '0.0405250313895705', '0.0390895391040532', '0.0377897158697839', '0.0365016922380464', '0.0351788001916396', '0.0338645937424847', '0.0325302009051183', '0.0312848146149282', '0.0300375958148976', '0.0288302935207691', '0.027652203865544', '0.0264621566936286', '0.0252688692008588', '0.0241226625595337', '0.0229255436965288', '0.0217207281738409', '0.0205701146867025', '0.0193892949195812', '0.0183936626191952', '0.017494647116465', '0.0167605279940225', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '+NAN', '0.0757791569140749', '0.0831133762408903', '0.0873256015093429', '0.088798490578607', '0.0893180250587088', '0.0912184306930603', '0.0934315009445713', '0.0978927038642625', '0.10316713605413', '0.111042352696646', '0.119482024262908', '0.129446496806651', '0.140324929207819', '0.149929004563169', '0.157951375798488', '0.163167079267684', '0.163684554455683', '0.161710955408623', '0.158158176144384', '0.153120816765498', '0.149159625705894', '0.146361065436421', '0.144318454214309', '0.144129633718655', '0.144738939517372', '0.146583353055999', '0.149927549178646', '0.154781330782628', '0.161281049713208', '0.169324782015295', '0.178566729488516', '0.188750791302883', '0.199826540979236', '0.211193704798505', '0.222305048038871', '0.232787040612667', '0.242185638548782', '0.249199329450493', '0.253905646769863', '0.255480704613068', '0.254086308176615', '0.250712203525897', '0.245637528877396', '0.239859851966525', '0.233843628655063', '0.228059104546805', '0.222661940533832', '0.218199567518201', '0.214240155949967', '0.21061280671042', '0.206823867975479', '0.202504211638902', '0.198378089686984', '0.195008429198418', '0.192596053511712', '0.1913409806608', '0.191204589224151', '0.191982450755957', '0.193875999271111', '0.196568015329539', '0.200197325412529', '0.204781342874412', '0.210052890237844', '0.215505542064364', '0.22102191587617', '0.225647984382987', '0.229501509141454', '0.232213608637945', '0.233859853462842', '0.234864695710533', '0.235347731196379', '0.235169523165461', '0.2348286160222', '0.23395735104209', '0.232593294508701', '0.230910869907075', '0.228844605598996', '0.226021135136259', '0.222713212172475', '0.218813740820075', '0.214437631947854', '0.20945948892298', '0.203847193841702', '0.197707092492944', '0.191556734852924', '0.18600061167507', '0.181873354953207', '0.178782316057322', '0.176167924779435', '0.174141863608666', '0.172744990342331', '0.171801376758966', '0.170954015345458', '0.169960140045412', '0.168049955384139', '0.165224777136175', '0.161531979240228', '0.157405412608478', '0.153570487964493', '0.150141271545146', '0.14725256652001', '0.144660342475923', '0.142269456600007', '0.139762314536934', '0.136963054606891', '0.133984343960448', '0.131197679174342', '0.129003116254732', '0.127069994503092', '0.125436648144931', '0.12397269238396', '0.122419985358787', '0.120693422850158', '0.118931546980571', '0.117166660339047', '0.115631793601506', '0.114393230429202', '0.113425752529033', '0.112707849783804', '0.112359222280159', '0.11219082672674', '0.112343608199868', '0.112664705152637', '0.112877954686814', '0.112998494144185', '0.112887922565457', '0.11253063359053', '0.111841159102354', '0.110997003525569', '0.109948198155768', '0.108874849717231', '0.107795318097265', '0.106637360724801', '0.105678694194695', '0.104756017092462', '0.103825430274706', '0.102939456306441', '0.102001186921616', '0.100737446991222', '0.0991453606719906', '0.0971498679860747', '0.0948117209915638', '0.0924075366042346', '0.0899484551808979', '0.0873520434504222', '0.0848497958878303', '0.0823900490277647', '0.0799786063537234', '0.0776610830064481', '0.0752837851752474', '0.0729604964467151', '0.0707262742573907', '0.0684046065784823', '0.0660274200992436', '0.0636252573638505', '0.0612270512870042', '0.0587905905539405', '0.0563195707029216', '0.0538582650571118', '0.0514203967394221', '0.0490721477077881', '0.0468328465329872', '0.044723244642693', '0.0427398639178554', '0.0408841538190041', '0.0391762093418711', '0.0375882143782858', '0.0361234008364646', '0.0347811387811729', '0.0335210387242261', '0.0323747022105674', '0.0312594345687719', '0.030174948252246', '0.0291339080526091', '0.0281312995576928', '0.027138393963344', '0.0260756668210364', '0.0250906058668046', '0.0240551778532538', '0.0230712653382013', '0.0221310389230639', '0.0211757703478467', '0.0202209094313405', '0.0192572613107586', '0.0182920464007378', '0.0172950661682144', '0.0163207919630062', '0.0153269728531649', '0.0143853788804443', '0.0135213976548868', '0.0127456574145877', '0.0120278700767597', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0181271394490075', '0.0179948670252732', '0.0180195207374602', '0.0181005261905924', '0.018089553708784', '0.0180460947386496', '0.0180426749981038', '0.0180534564280807', '0.0180790359128869', '0.0180635226786445', '0.0180649523395645', '0.0180630058790784', '0.0180600544336154', '0.0180597668962471', '0.0180588020408788', '0.0180498552319141', '0.0180704773142647', '0.0180562171706652', '0.0180717635554537', '0.0180430410499234', '0.0180523488508876', '0.0180618142041841', '0.0180579205853055', '0.0180626933915622', '0.0180613022899616', '0.0180574472304024', '0.0180710633810246', '0.0180638238251844', '0.0180615148024098', '0.0180669541091198', '0.0180750465063777', '0.0180621163975833', '0.0180742925931686', '0.0180599654505706', '0.0180625609638543', '0.018079003460247', '0.0180789446616468', '0.0180641596925595', '0.0180789860125912', '0.0180726758933779', '0.0180883707577176', '0.0180761767655234', '0.0180788425928601', '0.0180748167207502', '0.018087924097728', '0.0180769134055532', '0.0180908061015206', '0.0180821035597377', '0.0180826006434528', '0.0180812086694694', '0.0180992416941691', '0.0180889166948691', '0.0180883470289057', '0.0180961206574913', '0.0180961166445305', '0.0180882432153534', '0.0180960383045557', '0.0180981065496797', '0.0180892262162838', '0.018090062656905', '0.0181151497688632', '0.0180994168686337', '0.0180945880554018', '0.0181024354875717', '0.0180812022138367', '0.018095840622615', '0.0181047246200187', '0.0180913783846324', '0.0181042299789754', '0.018097802960468', '0.0180910716548426', '0.0181013286082848', '0.0180952437383085', '0.0181025522123893', '0.0180982995207534', '0.0180837411967154', '0.0181112380044225', '0.0181073538072781', '0.018103745283096', '0.0180962696604722', '0.0181080471771214', '0.0180900361364681', '0.0181011494208593', '0.0181086649986149', '0.0181182547536976', '0.0181057997445719', '0.0181089392757648', '0.0181055429150778', '0.0181146218027973', '0.0181128730242519', '0.0181162224507446', '0.018127437978399', '0.0181252793544177', '0.0181109518628667', '0.0181264111838525', '0.018109165222908', '0.0181143328696165', '0.0181233651720949', '0.0181237422159377', '0.0181142894249535', '0.0181268594141312', '0.0181223244194237', '0.0181331201564784', '0.0181055589669212', '0.0181385395728607', '0.0181050559510032', '0.0181237826944993', '0.0181113664191696', '0.0181140599882791', '0.0181137768128247', '0.0181257021111189', '0.0181361358093148', '0.0181222916178307', '0.0181118017381829', '0.0181256476744327', '0.0181248496186543', '0.0181254770363585', '0.0181331583668447', '0.0181230066227672', '0.0181144363342157', '0.0181321676889458', '0.0181179351126425', '0.0181364284065034', '0.0181453949313192', '0.0181325621804444', '0.0181156688366246', '0.0181297948077507', '0.0181383919656923', '0.0181374979478067', '0.0181199012889798', '0.0181422937849691', '0.0181196791803209', '0.0181355928382649', '0.0181084210803862', '0.018133168137532', '0.0181404589894803', '0.0181418954549861', '0.0181177946590129', '0.0181147076452641', '0.0181089181641013', '0.0181443674388664', '0.0181377502409103', '0.0181289850620429', '0.0181158340659255', '0.0181305586661236', '0.0181270701818138', '0.0181084884283378', '0.0181265399475526', '0.0181359089897888', '0.0181099418180697', '0.0181312042293899', '0.0181193782082575', '0.0181291396482737', '0.0181114958807759', '0.018131541667054', '0.0181167600130213', '0.018133784563213', '0.01811013496362', '0.018139256671516', '0.0181215378790981', '0.0181241962039428', '0.0181255386265836', '0.0181152391008612', '0.0181239868320727', '0.018128921378099', '0.0181191986718789', '0.0181302022105147', '0.0181156925654366', '0.018128299020215', '0.0181149622065629', '0.0181265924649967', '0.0181200464534764', '0.018134817115486', '0.0181138528846042', '0.0181302275096157', '0.0181219730236349', '0.0181227435121171', '0.0181128882037125', '0.0181298839652721', '0.0181217728990224', '0.0181271213034454', '0.0181002302783493', '0.0181198512142075', '0.0181077788321745', '0.0181113704321304', '0.0181110165936699', '0.0181200574454996', '0.0181026958065969', '0.0181267051768535', '0.018099050467861', '0.0181217983725999', '0.0181250125797599', '0.018113538826799', '0.0181123129544992', '0.0181229691103072', '0.0181081715789076', '0.0181231769118883', '0.0181145502674084', '0.0181123405217955', '0.0181137211548025', '0.0181167594895916', '0.0181050918931742', '0.0181182652222911', '0.0181006336681525', '0.0181259247432075', '0.018101253059935', '0.018119688602055', '0.018109630726366', '0.0181146952574284', '0.0181041917686091', '0.0181114787820732', '0.0181135109105496', '0.0181156468525783', '0.0180992396004504', '0.0181260718269463', '0.0181003136781442', '0.0181070481243477', '0.0181074850136501', '0.0181076732738566', '0.0181037805273608', '0.0181054610855719', '0.0180953817492662', '0.0181251186615074', '0.0181015350140535', '0.0181170220768121', '0.0180958751689736', '0.0181153706561862', '0.0181087792807607', '0.0181190203568361', '0.0181090340165361', '0.0181264401469612', '0.0181213607853913', '0.0181053968781984', '0.0181112694102031', '0.0181143349633352', '0.0181028416689998', '0.0181058145750794', '0.018112246653407', '0.018102646778684', '0.0181018787328736', '0.0181089858610059', '0.0181129695097887', '0.0181304682872664', '0.0181118867082669', '0.0181302966023328', '0.0181224601621861', '0.0181439211278299', '0.0181333813478864', '0.0181515932110585', '0.0181361972250634', '0.0181645852590311', '0.018168622995547', '0.0182029242145575', '0.01826668143855', '0.0187321041138753'], 'b1': ['0.0246216519286131', '0.024510637261161', '0.0246496004937187', '0.0246158903420498', '0.0244170047588795', '0.0245126709060577', '0.0246256846551714', '0.0247016785610073', '0.0245795106168697', '0.024601391414026', '0.0247430929974417', '0.0246690990460763', '0.0246595979967682', '0.024549218035998', '0.0245417076893854', '0.0249321420235364', '0.0245095865737246', '0.0245109975567032', '0.0246271043662396', '0.0249088567021879', '0.0244657876231882', '0.0248177038501861', '0.0247746806522609', '0.0246467759093347', '0.0244827044066167', '0.0246539416709665', '0.024721638131062', '0.0244816703025508', '0.0248143197952532', '0.0247325126325631', '0.0245241834309148', '0.0244880571694591', '0.0247891481591618', '0.0245174540737672', '0.0248839095525633', '0.0244844522938572', '0.024819053561975', '0.0246153722426461', '0.0244569738236619', '0.024594164032081', '0.024739169721128', '0.0246157473759408', '0.0245033974853286', '0.0247480762129667', '0.0246028704761041', '0.0245055458173238', '0.02469614722145', '0.0244073975760008', '0.0245040215437411', '0.0244248794159556', '0.0244697287048048', '0.0246472875499521', '0.0246650067939463', '0.0244401485106133', '0.0243791267698239', '0.0246499286698909', '0.0243780806209942', '0.0247780093711051', '0.0247202135322636', '0.0245516643449751', '0.0244492274695042', '0.0246700816544131', '0.0246774251199509', '0.0245070955769284', '0.0246320020464858', '0.0244041100537399', '0.0245954472358265', '0.0243854736620815', '0.0245493665880845', '0.0247136054955626', '0.0246331129577409', '0.0247415952572516', '0.0248944354541623', '0.0247328998106215', '0.0246575704615342', '0.0247710366748172', '0.0247250916615888', '0.0247268100478861', '0.0248027810861271', '0.0248363912138882', '0.0249100102065207', '0.0245452771289432', '0.0246815472221476', '0.0246684887780455', '0.0248864084046402', '0.024731509076811', '0.0246692868745663', '0.0245807166643024', '0.0247555966841634', '0.024710914276389', '0.0247437058838994', '0.0247758020372237', '0.0244627418690115', '0.0246814871728906', '0.0246144002825787', '0.0247326369205602', '0.0247778595970861', '0.0250858798171903', '0.02491093660596', '0.0248098248290651', '0.0248231980080813', '0.0247223508668658', '0.0247285340201608', '0.0245271073409594', '0.0246145044959695', '0.0247301532553592', '0.0247854968501228', '0.0249164176717207', '0.0248323871154641', '0.0245063201734407', '0.0249895534773082', '0.0247316035147414', '0.0250480786353239', '0.0245604978699841', '0.0248995078707639', '0.0247918838915929', '0.0246323141629729', '0.0246174315481265', '0.0245240120112333', '0.0247643169185683', '0.0246655463644507', '0.024543567994421', '0.0246558676112366', '0.0245943996905025', '0.0250753080058395', '0.0250045579362867', '0.0246554029277417', '0.0250264155167244', '0.0246469593737799', '0.024665052703698', '0.0248279473108028', '0.0246961217354281', '0.0245553355540586', '0.0245557204628138', '0.0247270518159704', '0.0247966155635732', '0.0247140158903397', '0.0247626610253931', '0.0248185803249523', '0.024609407466155', '0.0247364268316634', '0.0246575409605911', '0.0248112543155938', '0.0245781406559126', '0.0247824863574285', '0.0246500847281345', '0.0247009649523946', '0.0248219430833464', '0.024708337569752', '0.0246372621170157', '0.0247286281089676', '0.0245687148427376', '0.0244441117615777', '0.0246077550642157', '0.0247010606122576', '0.0247215691791535', '0.0245714196777312', '0.024795434478477', '0.0244320022353862', '0.0247462735133231', '0.0246903013215404', '0.0245514873393163', '0.0245751469211505', '0.0246573018109337', '0.0244665511564739', '0.0246441606245413', '0.0244944379267046', '0.0247590790173862', '0.0244953459971555', '0.0247222716158114', '0.0246553421802375', '0.0246119307568831', '0.0246354342804737', '0.0243070187840778', '0.0247393772751007', '0.0245134415963769', '0.0247120136665658', '0.0245733489346753', '0.0244120664057354', '0.0245414062211677', '0.0248899691161084', '0.0246153303478156', '0.0247247613906751', '0.0246353044064992', '0.0248533992931349', '0.0244737232023303', '0.0247406206787574', '0.0245452593236402', '0.0245186117675831', '0.024411721471631', '0.0246871115538839', '0.0245525059073826', '0.0247245782753535', '0.0246827284818056', '0.0247343388980489', '0.0248475752134495', '0.024459163701364', '0.0247058137553385', '0.0246986457244034', '0.024567998615698', '0.0243962081650239', '0.02490341386546', '0.024537072550077', '0.0244906673919604', '0.0245997164936153', '0.0246575069210413', '0.0242198948182748', '0.024409780344485', '0.0242338197871209', '0.0244076180475463', '0.0245564188845504', '0.0246008453847352', '0.0245239058776628', '0.0246243248187984', '0.0246248141155061', '0.0243052663582307', '0.0245985008452839', '0.0243217586073769', '0.0246622282938758', '0.0246268287331674', '0.0244327690853459', '0.0245608707339754', '0.0244063069139137', '0.0246343666605434', '0.0244305303303416', '0.0247014261446536', '0.0246118652962104', '0.0246281107149804', '0.0246470772029907', '0.0247607972291217', '0.0247295342592388', '0.0246461279359564', '0.0245565616760977', '0.0244480411475541', '0.0245717391258137', '0.0246028116487796', '0.0248620650642601', '0.0244563693161703', '0.0245400739655581', '0.024658254394642', '0.0247536939606119', '0.024581995678565', '0.024518225986019', '0.0249431329577538', '0.024793957860264', '0.0246779200026361', '0.0246277942344484', '0.0245882612250266', '0.0245443142460891', '0.0244427728726199', '0.0245225095578749', '0.0246755827947801', '0.0244593372157869', '0.0246154502717679', '0.0255941653568822'], 'SAMSN': '852F', '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'}}, 3: {'Lsky': {'SN': '85B5', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85B5', 'inifile': 'SAM_85B5.ini', 'calfile': 'Cal_SAM_85B5.dat', 'calaqfile': 'CalAQ_SAM_85B5.dat', 'backfile': 'Back_SAM_85B5.dat', 'cal': ['+NAN', '+NAN', '+NAN', '0.380824258865919', '0.480956813156357', '0.57671205380196', '0.643896236957154', '0.711054782209677', '0.758265752350778', '0.808854255795615', '0.869466331079482', '0.925321324749243', '1.00927399148091', '1.08699883630787', '1.18347377446848', '1.29079925777138', '1.39953731633192', '1.49536024576308', '1.57053962346542', '1.61051680455964', '1.60891142181803', '1.58014917632373', '1.54292073894688', '1.49782795775685', '1.46270054563491', '1.43754722159869', '1.42339247548624', '1.42249669690879', '1.43289834559721', '1.45081833970432', '1.48383024473758', '1.53350351710437', '1.59283171118034', '1.66682243068085', '1.75523084376357', '1.8490542829721', '1.94827772413977', '2.05297044933559', '2.15300125225733', '2.24489521732098', '2.32484518002751', '2.37710624055378', '2.41032149129472', '2.41401311078449', '2.39196623346607', '2.35386541795861', '2.30358502851024', '2.24350994611066', '2.18566570348128', '2.13007635400607', '2.08048312730197', '2.03943635277338', '1.9990019487276', '1.9542919602901', '1.90697476815729', '1.86132580586718', '1.81936966943287', '1.78948757961567', '1.77036444175303', '1.76067051308416', '1.76079151769139', '1.76865840458355', '1.78533977613825', '1.81054315659671', '1.84219534093402', '1.88262260694772', '1.92633682221336', '1.96919363361994', '2.00638558730966', '2.03543177536163', '2.05645335730185', '2.06889953924594', '2.07668786673546', '2.07746404954558', '2.07708946852551', '2.07239270419962', '2.06329693588947', '2.05235510505223', '2.03788342455449', '2.01750123705209', '1.99316265318269', '1.96344779927853', '1.92810068074762', '1.89032139564187', '1.84840056738145', '1.80188008685176', '1.7531429855323', '1.70184883503381', '1.64693756964496', '1.59639297188055', '1.55743828612696', '1.53081670223502', '1.509066853406', '1.48974595694359', '1.47286758281018', '1.45660325947575', '1.43667408186819', '1.40947906533906', '1.37746325817173', '1.3399910234164', '1.29987620320872', '1.26173586555032', '1.22580130202006', '1.19650560480134', '1.17258287879559', '1.15326969493003', '1.13448708666807', '1.11395465030131', '1.08753684763482', '1.06275254011917', '1.0408908566722', '1.02045255259373', '1.00192289281247', '0.987093337695555', '0.973433543184599', '0.961454156421677', '0.949336048850277', '0.937190359719721', '0.925018119816345', '0.911316167695048', '0.897751565127677', '0.885763756400802', '0.875253674622747', '0.866439225407856', '0.859594015285511', '0.856442344648432', '0.854520610650332', '0.853095084706978', '0.851996897997662', '0.849373999218705', '0.845008414644852', '0.837447706997702', '0.828042280687475', '0.816973957953628', '0.804392597259629', '0.790971383923797', '0.777350907812577', '0.764886212005326', '0.753124860834896', '0.74238339492221', '0.731621293455726', '0.720137856580817', '0.707681887074656', '0.692857487682284', '0.676149155140644', '0.657691286728854', '0.637091724889135', '0.615841105000382', '0.593277961352052', '0.571635565839856', '0.550558744253774', '0.529727893337181', '0.50958610090654', '0.490923786532866', '0.472942835508178', '0.455966760194577', '0.439389399108222', '0.42326262400571', '0.408064966451864', '0.392531100434587', '0.376760145430696', '0.361340837642809', '0.345797349215964', '0.330538900755072', '0.315423852713651', '0.300655326757946', '0.286125136929255', '0.27220666979537', '0.258963801456755', '0.246515726736969', '0.23471243489257', '0.223963260764627', '0.213811227531161', '0.204848303945938', '0.196342813423038', '0.188347519381911', '0.180847277367304', '0.173574321958823', '0.166782572540461', '0.159983659268987', '0.153496471427164', '0.146983276179518', '0.140664487031456', '0.134679615950644', '0.128426075217298', '0.122768803469292', '0.116973531179931', '0.111227699506044', '0.10561644888568', '0.0999165260100575', '0.09399466356358', '0.0884689961099718', '0.0833768260697751', '0.0789223013382674', '0.0748108094846383', '0.0710379549143775', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '0.213368170535889', '0.269708461889978', '0.323681305990691', '0.361686162925288', '0.399727885563257', '0.426595980991839', '0.455395402116462', '0.489873358069589', '0.521706723967902', '0.569424753191682', '0.613678281579101', '0.668568867138568', '0.729648774358889', '0.791588424733509', '0.846278067578305', '0.889326585618736', '0.912464300651466', '0.912041091772509', '0.896201537846271', '0.875528861051999', '0.850358796139941', '0.830813460904554', '0.816907084374381', '0.809230927534884', '0.809079793968319', '0.815347896421343', '0.825892411944005', '0.84503183706585', '0.873670658313288', '0.907826486501149', '0.950360287322641', '1.00114116281862', '1.05504053595122', '1.11205216981838', '1.17221784963607', '1.22975299376536', '1.2826684244193', '1.32878263374036', '1.35908629098684', '1.37850707003827', '1.38104038663283', '1.36883708486346', '1.34742818899357', '1.31902470629713', '1.28498732451399', '1.25220172471482', '1.22068349763187', '1.1925789464318', '1.16935370804616', '1.14646179324841', '1.12109994325093', '1.09422415317439', '1.06828767805555', '1.04445396328421', '1.02753751191562', '1.01678817181089', '1.01144651696064', '1.01173798764201', '1.0164772818471', '1.02628160092791', '1.04098599390468', '1.05940120890642', '1.08286747681355', '1.10823034660724', '1.13310605067389', '1.1547273364889', '1.17166412724341', '1.183983471337', '1.19136561427902', '1.19606418873222', '1.19672161290192', '1.19671286046196', '1.19421014531398', '1.18916801665381', '1.18305692745573', '1.17490571141989', '1.16334076115534', '1.14948755782896', '1.13252619591223', '1.11230773028189', '1.09067725991727', '1.06664792919033', '1.03995448729021', '1.01197155529512', '0.982502268789757', '0.950934147643801', '0.921876981717461', '0.899503833526815', '0.884246887000271', '0.871798641947689', '0.860748919530635', '0.851106201938694', '0.841814387319495', '0.830400473286421', '0.814782119978127', '0.796371468702983', '0.774800085650998', '0.751694156127581', '0.729723545880894', '0.70902256138046', '0.69215621992056', '0.678393548274155', '0.667293944696908', '0.65649797079901', '0.6446860376968', '0.629464240966416', '0.615183928901848', '0.602591773736883', '0.590820336228123', '0.580150915843665', '0.571621329022329', '0.563766808252911', '0.556883367165026', '0.549917569359012', '0.542933812612894', '0.535932724580549', '0.528043359268253', '0.520231538772767', '0.513331529426342', '0.507286194391832', '0.502222099629004', '0.498298138845332', '0.496514280280116', '0.495442722847893', '0.494658216836534', '0.494062920786886', '0.492582820232232', '0.490091285479962', '0.485745623273317', '0.480328740541132', '0.473945880321646', '0.466683779528739', '0.458932848241851', '0.451064706693729', '0.443865689279125', '0.437073402888952', '0.430871678484112', '0.424656716266769', '0.418021794802865', '0.410821018781503', '0.402243888142941', '0.392571430814996', '0.381881477324506', '0.36994612437875', '0.35763078427341', '0.344551257226534', '0.332004497779552', '0.319784344441634', '0.307705241065949', '0.296024637721301', '0.285201831804588', '0.27477331903475', '0.2649271655017', '0.255311286750044', '0.245955888598912', '0.237139128199368', '0.228125758026999', '0.218973368669899', '0.210024147431339', '0.201001563461602', '0.192143502318544', '0.183367668918973', '0.17479218252589', '0.166354193257315', '0.158270839921817', '0.15057933833141', '0.14334907901495', '0.136492914420144', '0.130248971747009', '0.124351585245978', '0.119145124817533', '0.114204124468303', '0.10955932586493', '0.105201972954921', '0.100976345428583', '0.0970301944120184', '0.0930794320815323', '0.0893096045786908', '0.0855242301014967', '0.0818515687486457', '0.0783728272346642', '0.0747373637294556', '0.0714485344156491', '0.0680790457826121', '0.0647379875159452', '0.0614749247480892', '0.0581599202112611', '0.0547153945113677', '0.0515011739034831', '0.0485390098580295', '0.045947792932824', '0.0435560478479539', '0.0413612446534424', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0164817607719245', '0.0163219290778752', '0.0163731972698131', '0.0164399246082603', '0.0164430241843214', '0.0163983356778795', '0.0163990512062458', '0.0163901000353671', '0.0164207307910173', '0.0164008709967505', '0.0164082743860791', '0.0163908071888585', '0.0164252516531235', '0.0163975419840151', '0.0164170151382283', '0.0163836419600322', '0.0164195574361616', '0.0163940245365965', '0.0164118187028877', '0.016392199511795', '0.0164065571877907', '0.0163945228416475', '0.0164219489863484', '0.0163932453242865', '0.0164305632429927', '0.0163847816409121', '0.0164318688510797', '0.0164176912348923', '0.0164202520273408', '0.0164088639423701', '0.0164306347783817', '0.0164189001829659', '0.0164341838060573', '0.0164138319878957', '0.0164304957205646', '0.016429661373662', '0.0164248637917341', '0.0164295341802509', '0.0164375396881828', '0.0164033339078497', '0.0164426914575244', '0.0164161851532397', '0.0164508810382254', '0.0164265781983975', '0.0164319475400075', '0.016422878946405', '0.0164658096015204', '0.016435585550728', '0.016451332060129', '0.0164379950720003', '0.0164365183024095', '0.0164243435026367', '0.0164365261538547', '0.0164254425304785', '0.0164527732365019', '0.0164500622197366', '0.0164541095524632', '0.0164375095037381', '0.0164747180256422', '0.0164484643634142', '0.0164537975883766', '0.0164461544682567', '0.0164698387886849', '0.0164431478882013', '0.0164654240083262', '0.0164472887403633', '0.0164750846008916', '0.016451503570586', '0.0164619681511328', '0.0164507452954629', '0.0164756266995587', '0.0164519861727467', '0.0164677262265151', '0.0164529956941139', '0.0164743584294553', '0.0164623034950781', '0.0164737165301967', '0.0164694078315855', '0.0164841373171273', '0.0164653304888909', '0.0164847460658397', '0.0164548329322745', '0.0164595881163988', '0.016470273409792', '0.0164793578807614', '0.0164794932745707', '0.0164779744561293', '0.0164553809631447', '0.0164876681992408', '0.0164698851994495', '0.0164899871671793', '0.0164501525985938', '0.0164753983097437', '0.0164809215396783', '0.0164902986078362', '0.0164763052388946', '0.0164924607213486', '0.0164652690731423', '0.0164867010756773', '0.0164660367699995', '0.0164911903575265', '0.0164677717648968', '0.0165022066329511', '0.0164662370690886', '0.016489524978776', '0.0164685029961533', '0.0164921269476923', '0.0164558499561338', '0.0164738716398572', '0.0164762743565437', '0.0164791764251406', '0.0164705429760749', '0.0164789927013245', '0.016473611669785', '0.0164614993326202', '0.0164598238342293', '0.0164727508024456', '0.0164582863467961', '0.0164685862214717', '0.0164525792185689', '0.0164773030703324', '0.0164670838038268', '0.0164831073820027', '0.0164667688736388', '0.0164761180255473', '0.0164464892887724', '0.0164720077067831', '0.0164452072350208', '0.0164870899839261', '0.016459772189168', '0.0164701266750064', '0.0164611727125027', '0.0164680781457335', '0.0164568425532749', '0.0164788192716254', '0.0164516724638946', '0.016478949431138', '0.0164561298165336', '0.0164755542917869', '0.0164556124935377', '0.0164507196474088', '0.0164471687004911', '0.0164601098013086', '0.0164608579567913', '0.0164729301643477', '0.0164409632672129', '0.0164714560119053', '0.016453806137728', '0.016458409701723', '0.016446300156183', '0.0164759950195736', '0.0164447300416335', '0.0164623949207948', '0.0164359400870948', '0.0164562215912033', '0.0164493753055259', '0.0164598233107996', '0.0164437951962332', '0.0164648208428636', '0.0164373709693507', '0.0164554146371204', '0.0164451486108972', '0.0164645650602289', '0.0164504392635794', '0.0164504671798287', '0.0164356687760464', '0.0164534369453303', '0.0164388145883954', '0.0164527186253391', '0.0164332435518838', '0.0164442846029797', '0.0164340580084587', '0.0164485673045837', '0.0164290273258486', '0.016450102349345', '0.0164311430285965', '0.0164412099770665', '0.0164335047432918', '0.0164442961184326', '0.0164228450979527', '0.016437492579512', '0.0164196870722445', '0.016438840061973', '0.0164283787964808', '0.0164416083070495', '0.016412027202375', '0.016431280341648', '0.0164384511537241', '0.0164345854510949', '0.0164129589071972', '0.0164313105260926', '0.0164068407121982', '0.0164422922551586', '0.0164141230147952', '0.0164350718917399', '0.0163981727167739', '0.0164302013786105', '0.0164117635682952', '0.0164348827591505', '0.0164084963202615', '0.0164184283983518', '0.0164093013551022', '0.0164248964188505', '0.0163861197016389', '0.0164414938504271', '0.0163912936295035', '0.0164153211453222', '0.0164085420331198', '0.0164144138672182', '0.0163877472189763', '0.016438808830669', '0.0163928122734684', '0.016421485227656', '0.0164041312657219', '0.0164178255818423', '0.0163971898903201', '0.0164201696744052', '0.0163995320636409', '0.0164209146893099', '0.0164032430055628', '0.0164164507065617', '0.0163974777766416', '0.0164176661102679', '0.0163930417101427', '0.0164141233637484', '0.01640118889304', '0.0164288055661428', '0.0164032700494293', '0.0164078024269885', '0.0163929630212149', '0.0164272534226787', '0.0163858681064416', '0.0164185958958479', '0.0164030676566215', '0.0164018004333774', '0.0163995488133905', '0.0164085041717066', '0.0163987202242144', '0.0164206611748704', '0.0164022528510935', '0.0164241117977671', '0.016396216660077', '0.0164233505565425', '0.0164139434784166', '0.0164194745597963', '0.0163983088084895', '0.016435900480916', '0.0164233186273323', '0.0164390513530853', '0.0164271529241811', '0.0164633723384753', '0.016452145295368', '0.0165066871909724', '0.0165379624630295', '0.0170330815720343'], 'b1': ['0.0184759992200316', '0.018442149942613', '0.0187318928446685', '0.0186864332877884', '0.0188479230215774', '0.0188454845678811', '0.0188404723750983', '0.0187262068433619', '0.0187526368954241', '0.018602897614217', '0.0187456469175185', '0.0186707166166917', '0.0185607140585195', '0.0187588039890341', '0.0188965777575295', '0.0187075898280626', '0.0187674584136427', '0.0186381709667486', '0.0186427120172502', '0.0187927918685168', '0.0186624507666358', '0.0187624519813991', '0.0187392302005435', '0.0185522851677484', '0.0186472895511667', '0.018535703368402', '0.0186348291557698', '0.0186553691437886', '0.0187121064399131', '0.0186093935822463', '0.0187113848014579', '0.0186487433017847', '0.0187725126758178', '0.0187999361590481', '0.0187205484228188', '0.0188728539369552', '0.0187682175828836', '0.0187626176405413', '0.0188624825225437', '0.0187837980957813', '0.0188658971257905', '0.0186604942780519', '0.0189255700275998', '0.0186329430155887', '0.0188553270600577', '0.0187585744402754', '0.0188853157288465', '0.0188095644639038', '0.0189702224107457', '0.0190654765920908', '0.0188298321355244', '0.0189752702141345', '0.0190654219542494', '0.0188267308706973', '0.0190373731906741', '0.0189250398834323', '0.0189864086530676', '0.0190345625712336', '0.0188082665969675', '0.0190122781872102', '0.0188972889222771', '0.0185940174812091', '0.0187732280300485', '0.0188341576022108', '0.0188008229329601', '0.0188143481552986', '0.0188958311567378', '0.0186248391588775', '0.0188025980518404', '0.0189280180821948', '0.0188994067059584', '0.0187979548826894', '0.0188527726973303', '0.0189566842708345', '0.0188313071826812', '0.0188952770976046', '0.0189118414407716', '0.0185289364804688', '0.0186616668096203', '0.0188390641851084', '0.0188772853626504', '0.0188133788136582', '0.019095000402823', '0.0189106139222383', '0.0190673035558238', '0.0189999768176074', '0.0188888352437313', '0.0191460724704944', '0.0188107766209993', '0.0192259407753418', '0.0189064331672789', '0.0190127816234232', '0.0187168141969277', '0.0190825361670666', '0.0190127334443682', '0.0191085322585096', '0.0188582193744177', '0.0188903102908881', '0.0189330562846849', '0.0190078099289766', '0.0189027331554994', '0.0189810824236179', '0.0189551510946003', '0.0189044651576166', '0.0187674423539577', '0.0189472727717265', '0.0189907035714401', '0.019064578646224', '0.0188920054604669', '0.0190449437611056', '0.018889919447032', '0.0187988736014097', '0.0192020416947266', '0.0188233049209339', '0.0187371501222097', '0.0189721827396891', '0.0188261000043749', '0.0186942695412699', '0.0189034198815958', '0.0187198665844525', '0.0186137942850658', '0.0189533499660128', '0.0187808211189513', '0.0188594921044556', '0.0188539249797306', '0.0188040633235368', '0.0187732121449252', '0.018962250173627', '0.0190127418233343', '0.0191750319229475', '0.0189599365316131', '0.0190203120446422', '0.0190216017071741', '0.0186128352425711', '0.019228758377254', '0.0189206767113985', '0.0188962342199195', '0.0191006190232771', '0.0190500058785614', '0.0187485043195198', '0.0190170367417068', '0.0188547895842948', '0.0188974739577785', '0.0189445812034293', '0.0189157249169963', '0.0191215468876016', '0.0187773754437052', '0.0190317306552542', '0.0190325910703354', '0.0190408668704134', '0.0189401984804746', '0.0190495591749313', '0.0187950388279255', '0.0189297027780659', '0.0189593482583683', '0.0190509148218212', '0.0188672314761416', '0.0189148159737365', '0.0191385526975449', '0.0190494453606418', '0.0190579196374793', '0.019121285044911', '0.019044043895059', '0.0186976181601587', '0.0189873739797868', '0.0191378319318987', '0.0190663267080262', '0.0190936695437077', '0.0191095358142617', '0.0189574708462769', '0.0187806189763942', '0.0189485074472935', '0.0187745148995917', '0.018830215822347', '0.0188787988134019', '0.0189920377472294', '0.0188564391932454', '0.0190900863137682', '0.0189570108759505', '0.0190537807773504', '0.0188639551258354', '0.0189272838752905', '0.0189407244351591', '0.0191445909645512', '0.0190009035661702', '0.0190382999392369', '0.0191088417565699', '0.0189974830278224', '0.0189503359820826', '0.0189001894410414', '0.0186533777428459', '0.0188463448084005', '0.0188216286040289', '0.0190486301570651', '0.0189039538661228', '0.018976088908947', '0.0186541344682217', '0.0187053388537327', '0.0188468777455567', '0.0189798348304782', '0.0190289182901957', '0.0189938748355464', '0.0188985777120001', '0.0189140892729893', '0.0189945299659582', '0.0190288961208479', '0.0188169428418004', '0.0190174979339657', '0.0187582286333621', '0.0188360660863014', '0.0188666440757058', '0.018693495185153', '0.0187786836097873', '0.0186433495169208', '0.0188323175463432', '0.018976409578962', '0.0187435457172076', '0.018987845122068', '0.0186761889543627', '0.0190061624147675', '0.0187835201934057', '0.0188749633416704', '0.0189686084124011', '0.0188226435062976', '0.0187423426373254', '0.018996327428748', '0.0186609085131884', '0.0187348848338127', '0.0187956862776184', '0.0190963977699816', '0.0185138758125928', '0.0187250730645117', '0.0188906307863414', '0.0188630606712045', '0.0188464739841278', '0.0189781192371696', '0.0187965507076208', '0.0186990834318551', '0.0186847039040981', '0.0187928330651002', '0.0187593187717638', '0.0188783466983562', '0.0187352552539389', '0.0188740873905896', '0.0187454707846687', '0.0189869951806945', '0.0189396802065091', '0.0187842685398153', '0.0186674191444085', '0.0189300391586424', '0.0190247289817084', '0.01897844723878', '0.0188266460336656', '0.019144633383067', '0.0204797029287844'], 'SAMSN': '85B5', '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'}, 'Esky': {'SN': '50ED', 'FUNC': 'Esky', 'TYPE': 'SAMIP', 'samsn': '859F', 'inifile': 'SAMIP_50ED_ALL.ini', 'calfile': 'Cal_SAM_859F.dat', 'calaqfile': 'CalAQ_SAM_859F.dat', 'backfile': 'Back_SAM_859F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.549282530081406', '0.621825635483575', '0.705214779700439', '0.782494923890489', '0.848306874043027', '0.952625287085828', '1.06364941208026', '1.17099618224932', '1.27964867192574', '1.37878597375063', '1.42771820575638', '1.4380590385421', '1.41583530083466', '1.35751030831315', '1.28801896577964', '1.23773169248486', '1.19003370359023', '1.16911032524399', '1.16789019991587', '1.17908641221467', '1.20561721452238', '1.24993325867368', '1.3042108426727', '1.37841324495146', '1.46663415660191', '1.55813913029349', '1.66686169700722', '1.78274771118438', '1.89315285694338', '2.00609300108623', '2.10386062632617', '2.18077321675475', '2.23620955735442', '2.266135432154', '2.26878990322214', '2.25797663538301', '2.22685859649013', '2.17776313289299', '2.1222752364519', '2.06098344374156', '1.99948809108821', '1.94462577242816', '1.8989381397134', '1.8637403074385', '1.84137175128878', '1.82996842025894', '1.82735603324287', '1.82819560800875', '1.82831225824908', '1.82476779554239', '1.82142520789599', '1.82469614734563', '1.83514598035505', '1.85423698694933', '1.88102853388183', '1.91679111910883', '1.95713305118927', '2.0033013266641', '2.05191276620812', '2.10100127704333', '2.15116215495783', '2.19982933350689', '2.24341508467426', '2.28026480621138', '2.30634686430023', '2.31796219508283', '2.31589695847203', '2.29809543158409', '2.2668387918562', '2.22596956700897', '2.17822422289454', '2.1262484698939', '2.07154274835781', '2.01784816285075', '1.9635850159156', '1.90957838150673', '1.85662335754133', '1.80118393109592', '1.74752896056537', '1.69458207285898', '1.64238998731142', '1.59255947952261', '1.55042463825823', '1.52145095482736', '1.50182839545807', '1.48602912306116', '1.47501182897849', '1.46801797625318', '1.46252443118698', '1.4571840542778', '1.44881752975571', '1.433373570625', '1.4106211402034', '1.38310053980989', '1.35343439202405', '1.32469024445085', '1.29921323938482', '1.2757042981125', '1.25356245928469', '1.23230080447944', '1.20776661327865', '1.18172190161938', '1.16211138784545', '1.14836490545677', '1.13698033747357', '1.12673020620722', '1.115430409999', '1.10428562795353', '1.0934141739792', '1.0851095103506', '1.08102444265095', '1.08007408967758', '1.08238869164072', '1.08781099449618', '1.09202496629142', '1.09279743926351', '1.08928198225434', '1.08099296127192', '1.06779395728469', '1.05125732218958', '1.03307124483462', '1.01642561672595', '1.0017478853335', '0.98877464388953', '0.978591382441999', '0.970432000434175', '0.962460675619692', '0.953651636148435', '0.943103023421902', '0.930554197290447', '0.915976069829803', '0.89827602173614', '0.878650755188226', '0.859108524352699', '0.840122962860222', '0.820853477964574', '0.803547895709764', '0.786651104537257', '0.769194844035412', '0.751217544779413', '0.731862968408631', '0.710478767970412', '0.687207420135085', '0.662469528888512', '0.636358233772055', '0.609121332586544', '0.580838486227566', '0.552767035926316', '0.525876935395925', '0.499896413074609', '0.475284681533185', '0.452387885405863', '0.431848904268036', '0.413013739466993', '0.395710805209202', '0.380181587532903', '0.365591896979342', '0.352105459639395', '0.339276260510366', '0.32616389487977', '0.313880254968568', '0.301213081346406', '0.28867892621412', '0.276332017077307', '0.263867205519659', '0.251559483539307', '0.239917175566115', '0.228872841726392', '0.218348838385983', '0.208663588155861', '0.199488791575245', '0.191252859631973', '0.183364916996847', '0.175877803627425', '0.169219899131997', '0.162866423884395', '0.156727192611269', '0.151124000714184', '0.145138407523578', '0.13971586046093', '0.134506608902369', '0.129059486722317', '0.124203168251957', '0.119075347065844', '0.113513221481262', '0.107843336832916', '0.101790305051534', '0.0961960826886135', '0.0914035900672732', '0.0868727278958915', '0.082573024301116', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '+NAN', '0.308009257704273', '0.348985396550329', '0.39611199753429', '0.43986968240828', '0.477232425339663', '0.536318311921194', '0.599255756896796', '0.660195405447511', '0.721940911560072', '0.778381764258939', '0.806518994572799', '0.812862184246214', '0.800779958731845', '0.768238986615194', '0.729324871828135', '0.701235591002145', '0.674572715683613', '0.663056816542841', '0.662699926877705', '0.669382520005193', '0.684772623825422', '0.710275115045633', '0.74145572495904', '0.783988164111933', '0.834525694448954', '0.886966821712609', '0.949247521262016', '1.01565043430167', '1.07897249264832', '1.14377888540009', '1.19997013476615', '1.24429313837597', '1.2763795229717', '1.29391228294411', '1.29587029284695', '1.29012478792631', '1.27276079346714', '1.2450982196578', '1.21375364521069', '1.17906121512383', '1.14422362714978', '1.11315509839511', '1.08731507394343', '1.06746197368796', '1.05494171300318', '1.04869254224893', '1.04747349722362', '1.04822757370139', '1.04856210675178', '1.04679141002185', '1.04513065036628', '1.04725995618916', '1.0535067386541', '1.06471361999517', '1.08034380002613', '1.10113009018595', '1.12455239246124', '1.15132895471663', '1.1795169782144', '1.20798673857183', '1.23708055274173', '1.26532262623006', '1.29064822236823', '1.31210337451311', '1.32736540301797', '1.33430139824988', '1.33335932325033', '1.32335113190924', '1.30558590461423', '1.28227321775146', '1.25498704776805', '1.22525023251367', '1.19392661641762', '1.16317225749886', '1.13207700011805', '1.10111674556499', '1.07075040366943', '1.03893893539784', '1.0081446443131', '0.97774721715577', '0.947774052897518', '0.919152947182789', '0.894963764571428', '0.87836395884067', '0.867156996532193', '0.858153034494107', '0.851906778357719', '0.847981268808314', '0.844919850173329', '0.841944554421527', '0.83721825473176', '0.828398944802337', '0.815351600734525', '0.799543228463232', '0.782489183888857', '0.765962841341892', '0.751320667184625', '0.737812095757199', '0.725090001717255', '0.712873061263532', '0.698758948036327', '0.683766639638848', '0.672493396285743', '0.664610527729123', '0.658092136872804', '0.652228157780532', '0.645754399378545', '0.639368207275896', '0.633138158063289', '0.628392493836991', '0.626088937445665', '0.625599854321674', '0.627001238574581', '0.630202545823175', '0.632703647598273', '0.633210363154327', '0.63123164301687', '0.626485370072314', '0.618891745640103', '0.609361448964366', '0.598872648152344', '0.58927447780469', '0.580815044730471', '0.573341941514821', '0.567484926926375', '0.562800136636572', '0.558223116403165', '0.553158922485434', '0.547084299354418', '0.539847820827437', '0.531432360197925', '0.521203701656628', '0.509855867118928', '0.498554054755033', '0.487573187562371', '0.476425489189536', '0.466415695619565', '0.456641365086098', '0.446540473657011', '0.436135290849149', '0.424928637592468', '0.412541586513936', '0.399056656796071', '0.384717912438278', '0.369579305401316', '0.353784632326527', '0.337380068381195', '0.321095903578543', '0.305495669126019', '0.290421643260465', '0.276140762920409', '0.262854333224098', '0.250936131068681', '0.240006392992584', '0.229965608856624', '0.220954309792884', '0.212487857424938', '0.204661532835082', '0.197216204057537', '0.189605277840326', '0.182475141050851', '0.175121099828465', '0.167843462384963', '0.160673785509465', '0.153434661065448', '0.146286002352245', '0.139523451810534', '0.133107862589632', '0.126994143420237', '0.121367561058691', '0.116037239577153', '0.111252442566666', '0.106669531239736', '0.102319284531729', '0.098450973344807', '0.0947593486764351', '0.0911919684356708', '0.0879361030612687', '0.0844573547823388', '0.0813058869947144', '0.0782782092672921', '0.0751117681314502', '0.0722888539254525', '0.0693076153913147', '0.0660732713239472', '0.0627758734115707', '0.0592551057473219', '0.0560010918166818', '0.0532135140872552', '0.0505779890461858', '0.0480767985810033', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0165892037855774', '0.0165122714877024', '0.0164973019224162', '0.0166164505683762', '0.0165490556826164', '0.0165598147795938', '0.0164974439463348', '0.0165638938670541', '0.0165295399561229', '0.0165679375357729', '0.0165135498774463', '0.0165496044113927', '0.0165162233817516', '0.0165748471564411', '0.0165168071803162', '0.016561615028724', '0.0165228899565738', '0.0165630265440819', '0.0165138880130166', '0.016557182975186', '0.0165155392591658', '0.0165657065040199', '0.016518681058554', '0.0165595148543898', '0.0165168741793146', '0.0165713147040385', '0.0165192898072665', '0.0165624174464164', '0.0165336104942318', '0.0165711529642688', '0.0165277786152653', '0.0165778362888406', '0.0165368341231259', '0.0165763434674064', '0.0165347332508855', '0.0165844704110229', '0.0165276158286362', '0.016561547855249', '0.0165227810832013', '0.0165862270410135', '0.0165383602695828', '0.0165776928691096', '0.0165375732058275', '0.0165658438170714', '0.0165459794864142', '0.0165800024153139', '0.0165525603932462', '0.0165907623846741', '0.0165508449397234', '0.0165903560287695', '0.0165476473078365', '0.0165857165226035', '0.0165481178711146', '0.0165957271151451', '0.0165507685189908', '0.0165883062781607', '0.0165548565047555', '0.0166030835702795', '0.0165500053585241', '0.0165961038100348', '0.0165517131350783', '0.0166133108627067', '0.0165473248751564', '0.0165983146025071', '0.0165525591719102', '0.0166064242729443', '0.0165435383848847', '0.0165950365369267', '0.0165586482293239', '0.0166092385798323', '0.0165697841956677', '0.0165967129077004', '0.0165732545344154', '0.0166026855892496', '0.0165687354170748', '0.0166129015407006', '0.0165534954131229', '0.0166168593669527', '0.0165646865140591', '0.0166018156491291', '0.0165586096700045', '0.0166129247460829', '0.0165712166482126', '0.0166143243970348', '0.0165701301826831', '0.0166189659969196', '0.0165676643054824', '0.0166299271377517', '0.0165751742999882', '0.0166072596667062', '0.0165629157514673', '0.0166089130065742', '0.0165693558557167', '0.0166203017894511', '0.0165698981288603', '0.0166107804291794', '0.0165637935430329', '0.0166245248200721', '0.0165754381085446', '0.0166166770389491', '0.01656780789969', '0.0166270111110302', '0.0165662229546329', '0.0166136421936913', '0.0165698424708382', '0.0166173691874565', '0.0165821997730911', '0.0166164975025705', '0.0165739878593907', '0.016623824645643', '0.0165631308810639', '0.0166247172677161', '0.0165669479047333', '0.0166042075482691', '0.0165806895040011', '0.0166075213815439', '0.0165708319274012', '0.0166233251192561', '0.0165772010196913', '0.016621139974838', '0.0165690780890356', '0.0166295818486425', '0.0165801878838955', '0.0166132293821539', '0.0165742146789166', '0.0166257485986531', '0.0165839324997932', '0.0166274820232614', '0.0165711257459257', '0.0166118375826471', '0.0165702390560556', '0.0166138555785223', '0.0165495885340259', '0.0166076853895089', '0.0165715106412136', '0.0165914878582042', '0.0165708420470416', '0.0166090042578143', '0.0165677817282062', '0.0166140523880802', '0.0165772907006423', '0.0166172060518744', '0.0165733789362016', '0.0166208616847272', '0.0165699940909675', '0.0166094990733341', '0.0165568282643426', '0.0166152531357555', '0.0165675189665092', '0.0166057366608274', '0.0165695308557048', '0.0165973481768498', '0.0165636400036615', '0.0166118299056785', '0.0165665354421491', '0.0165949780872796', '0.0165594520428288', '0.0166050473039449', '0.0165700478297475', '0.0166062033856213', '0.0165620390067611', '0.0165990297819202', '0.016574294763657', '0.0165960321001693', '0.016567221483977', '0.0166072507684017', '0.0165554031398131', '0.0166002793830319', '0.0165516576515327', '0.0166026362123836', '0.0165560230550254', '0.0166113124082061', '0.0165672890064051', '0.016604050693843', '0.0165640243755198', '0.0166057021144688', '0.0165508046356384', '0.0165935180674385', '0.0165675029146658', '0.0165893028882626', '0.0165492090475113', '0.0165956159735774', '0.0165528561310127', '0.0166073952349921', '0.0165463099450159', '0.0166001891786512', '0.0165482056328235', '0.0165952621351168', '0.0165536456374398', '0.0165997360630289', '0.0165524916494821', '0.0165986206343906', '0.0165521507222869', '0.016599824522644', '0.0165434263709342', '0.0166010940140834', '0.0165431388335659', '0.0165863373101985', '0.0165434326520903', '0.0166064767903884', '0.016561522556148', '0.0165987263671851', '0.0165499257972134', '0.0165839637310972', '0.0165457994266058', '0.0165795458101604', '0.0165524665248577', '0.016595737060309', '0.0165466772181714', '0.0165879578484734', '0.0165430683450362', '0.0165948067512992', '0.0165396531408809', '0.0165652856665609', '0.0165523227561735', '0.0165783818770389', '0.0165503544861175', '0.016572293692008', '0.0165450638334354', '0.0165749698134617', '0.01655305398743', '0.0165967214570518', '0.0165454616399886', '0.0165946692637712', '0.0165392806334286', '0.0165890797327443', '0.0165355112418597', '0.0165804930433963', '0.0165460245013662', '0.0165847202614547', '0.0165448417247764', '0.0165611542361331', '0.0165515342966058', '0.0165765880835414', '0.0165339756736686', '0.0165878632821788', '0.0165440089481629', '0.0165963711081224', '0.0165516928957975', '0.0165934388550809', '0.0165544309564294', '0.0165877533619469', '0.0165399865655842', '0.0165907330726123', '0.016550628937744', '0.0166034288593887', '0.0165659505967252', '0.0166105647761531', '0.0165655829746165', '0.0166172674676229', '0.0165796119367761', '0.0166424952076873', '0.0166246136286404', '0.0167334388455894', '0.0171297295465388'], 'b1': ['0.018605511502516', '0.0184837131056956', '0.0183851120510798', '0.0184840774161591', '0.0185292503425739', '0.0186302980552904', '0.0183759157866635', '0.0186312056020559', '0.0185970883722841', '0.018610557385725', '0.018696732782741', '0.0185527901750176', '0.0184841121539561', '0.0185602766066645', '0.0183555554227304', '0.0185179326286786', '0.0185996666499772', '0.0186817794703681', '0.0184706934143117', '0.0185104139030999', '0.0185717901788923', '0.0185864488309574', '0.0184904599190226', '0.0185467707606851', '0.0185513739551852', '0.0186439978394227', '0.0185915799003217', '0.0186942077463949', '0.0186620183770728', '0.0186390987626822', '0.0185678106936811', '0.0186122998615499', '0.0184338018739524', '0.0186563994074951', '0.0186582494133848', '0.0184381484626158', '0.0187957369005385', '0.0184585601477162', '0.018382363401076', '0.0185619393077496', '0.0188072553604966', '0.018482204891798', '0.0185649745882186', '0.0189122127337069', '0.0186279875553889', '0.0184615582465232', '0.0185698745377681', '0.0185120261558266', '0.0184379972921025', '0.0185804266236362', '0.0185466583428899', '0.0185885491584593', '0.0184078979511364', '0.0184049089295427', '0.0184970417714545', '0.0184417327399261', '0.0183843069720872', '0.0185357707492544', '0.018271672720313', '0.018684147226538', '0.0187957920620654', '0.0182829548236024', '0.0184118543941909', '0.0184413151881155', '0.0184057733595452', '0.0182871827102461', '0.0183972310036081', '0.0185852110132782', '0.0183187237570663', '0.0184794824260633', '0.0185034061198914', '0.0181402547467266', '0.0184165518520597', '0.0183788985240326', '0.0181609569026518', '0.0186252303518572', '0.0183105499010758', '0.0181418076484435', '0.0183057028437498', '0.018502016957137', '0.0184040678908206', '0.0184980723842845', '0.0184303921584359', '0.0185389638335849', '0.0182085812003356', '0.0184602108040376', '0.0184275042081207', '0.0185323186152219', '0.0182322636497648', '0.0183371464850892', '0.0182259586523378', '0.018483065481441', '0.0182905728748417', '0.0184016187888549', '0.0183132295991711', '0.0181924879994499', '0.0184099916452902', '0.0187024550929006', '0.0183715293979111', '0.0183022039271567', '0.0184077949596782', '0.0183611756142407', '0.018411879705651', '0.0183403743072167', '0.0184016243748323', '0.0184520221102946', '0.0183486391099018', '0.01861046347148', '0.0185649627180167', '0.0184582639163523', '0.0186787228933602', '0.0185190477294169', '0.0186510274428554', '0.0186025957968757', '0.0183767100428249', '0.0183237705130843', '0.0183277608211268', '0.0185572685578353', '0.0184446809140601', '0.0186042166031303', '0.0186733833972142', '0.0186773335560441', '0.0184308924525366', '0.0186073100126766', '0.0183468275076066', '0.0185506345114271', '0.0186062746866781', '0.0184876664066378', '0.0182968567502917', '0.0184814123812545', '0.0186338901878814', '0.0185727479994544', '0.0184737700659259', '0.0185519168423637', '0.0184109360245942', '0.0186137698464147', '0.0184927182249478', '0.0183322589294271', '0.0184634239629744', '0.0185381407747276', '0.0183129747389523', '0.018566407740545', '0.0184619363473684', '0.0185385801467623', '0.0184219012982279', '0.0184126872285087', '0.0186440826764544', '0.0184714934310123', '0.0186275679088368', '0.0184197444127049', '0.0184460824707018', '0.018243945325', '0.018415498022511', '0.0184500097619367', '0.0185133976878398', '0.0184093356420695', '0.0185570035730324', '0.0186677780434563', '0.0187476308123041', '0.0184833070749635', '0.0183987680202018', '0.0183971864903508', '0.0184699862644854', '0.0186248246702486', '0.0185793174579989', '0.0187341727962561', '0.0185118727160099', '0.0185141533658448', '0.0185683596905223', '0.0185158860662092', '0.0183562021741761', '0.018351702145696', '0.0183285858001638', '0.0184325741808572', '0.0182299784613234', '0.0183180300484981', '0.0186951084852505', '0.0184788363728647', '0.0183958849576168', '0.0184240855899527', '0.0185323332784126', '0.0186074587393249', '0.0186410439047495', '0.0184129410413568', '0.0183934452819879', '0.0185733495393955', '0.0185109349700541', '0.0185722325184776', '0.0184577447695778', '0.0184457087339014', '0.0183168259212451', '0.0184703884548581', '0.0184217183574681', '0.0185029386434078', '0.0186379566048659', '0.018342027581965', '0.0184254820843023', '0.0186074793376165', '0.0184241568111645', '0.0182465302360413', '0.0184340305499022', '0.0186743681002925', '0.0184118549178763', '0.0184971573313619', '0.0183981095731159', '0.018496162154576', '0.0184611797965545', '0.0186299800037023', '0.018466689839573', '0.0186946017323634', '0.0185245357776493', '0.018476103782546', '0.0182796915654308', '0.0185767679830018', '0.0183549425362727', '0.0183019200896801', '0.0185407187032971', '0.0184576592342989', '0.0184396004676159', '0.0183728665412509', '0.018711382183031', '0.0185027394684012', '0.0184419015411806', '0.0184852501222893', '0.0186597281263393', '0.0187948452388963', '0.0182642088071376', '0.0186078693086637', '0.0186437127800135', '0.0185804302894338', '0.0185832597615481', '0.0185230038233477', '0.0187595940557125', '0.0185726041605364', '0.018819251596084', '0.0186927800054842', '0.0187059691963698', '0.0186125063681518', '0.0187091867193515', '0.0187669087185543', '0.0187420275532877', '0.0185165169325316', '0.0184496782690904', '0.0184827699483242', '0.0184833114390083', '0.0188096297500146', '0.0186457825592016', '0.0186986550572133', '0.018635516056428', '0.0185666859920442', '0.0185794000257273', '0.0185533461543306', '0.0186423201260233', '0.0186220849228963', '0.0196555486961812'], 'SAMSN': '859F', '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', 'IPSN': 'C121', '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'}, 'Lwater': {'SN': '852F', 'FUNC': 'Lwater', 'TYPE': 'SAM', 'samsn': '852F', 'inifile': 'SAM_852F.ini', 'calfile': 'Cal_SAM_852F.dat', 'calaqfile': 'CalAQ_SAM_852F.dat', 'backfile': 'Back_SAM_852F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.099081925071204', '0.107353085872454', '0.113070264290883', '0.114376499819276', '0.116544285861757', '0.1185169696214', '0.121561138979849', '0.126964155564462', '0.134364254054539', '0.144053858633949', '0.154882735476408', '0.16719673162462', '0.181437615712041', '0.194237970806716', '0.20386154720656', '0.211556336359081', '0.211417859085921', '0.208790218500257', '0.20437467341685', '0.198246352046376', '0.192966396099738', '0.18897229193584', '0.186243043953596', '0.18578727224224', '0.187114583931684', '0.189090911319999', '0.193600418301244', '0.200054490546523', '0.208072057884887', '0.218285958582262', '0.230634876630779', '0.243459214546046', '0.257752719558026', '0.272580246630834', '0.286712281491418', '0.300342726342385', '0.312249154496702', '0.321331680226083', '0.327112591435919', '0.329469692698771', '0.327542874308678', '0.322985767437387', '0.316224456423823', '0.308782990589082', '0.301183418606427', '0.293575702556702', '0.286696408065096', '0.280798842600295', '0.275808444038661', '0.271299340181449', '0.266225534078626', '0.260785177597799', '0.255342424416527', '0.250947812402455', '0.24777514930692', '0.246247860756574', '0.246092032695547', '0.247219177075727', '0.249675195006791', '0.253195744885965', '0.257788026175471', '0.26369589320837', '0.270555680751329', '0.277823002163503', '0.284937579021833', '0.291097253127256', '0.296043211270752', '0.299540235735164', '0.301795150475552', '0.303069111244916', '0.30355995799167', '0.303606664702465', '0.303007474849756', '0.302001653949665', '0.300361927400822', '0.297986890885497', '0.295325565249305', '0.291656567474701', '0.287335862742648', '0.282306131698578', '0.276702242286357', '0.270280607979823', '0.263050805729498', '0.255009286552014', '0.247098798503932', '0.2398191835424', '0.23466817932016', '0.230585310303585', '0.227279061892254', '0.224693206022759', '0.222993136629962', '0.221791418806722', '0.220695274517678', '0.219442816624831', '0.217000405185694', '0.213283732282521', '0.208384750595562', '0.202985389753009', '0.197924660371165', '0.193409646692029', '0.189628652821804', '0.186318519164064', '0.183315563032657', '0.180098687261504', '0.176492614557115', '0.172650422408531', '0.168979191040057', '0.166106531649937', '0.163622827054655', '0.161570328667133', '0.159693607722301', '0.157690305409947', '0.15544650006387', '0.153185383511044', '0.150954772341381', '0.148960802743881', '0.147350785081686', '0.146182367433256', '0.145312879880878', '0.144781245193999', '0.14473607505965', '0.144976432177203', '0.145464936657928', '0.145889790468872', '0.146174517595681', '0.14615421098877', '0.145743119998859', '0.144922809795091', '0.143805231938307', '0.142492952453543', '0.141053445832183', '0.139720571628269', '0.138186469198598', '0.136919534961634', '0.135732624874463', '0.134597268963386', '0.133432724955799', '0.13211501546202', '0.130478475600008', '0.128290801143951', '0.125726707508103', '0.122634784100445', '0.119472073398083', '0.116199128230447', '0.112813911251756', '0.109547291781198', '0.106268392530964', '0.10313443150471', '0.100113578226984', '0.097073834113113', '0.0941199411272616', '0.0911853891891621', '0.0882319764053268', '0.085267274530049', '0.0822333903307463', '0.0792187073154596', '0.0760907077820793', '0.0728848234132589', '0.0697048920692252', '0.0665600438164166', '0.0635411651500916', '0.0606319242880778', '0.0578670530064308', '0.0553155735461356', '0.0529193006810867', '0.050722718025932', '0.0486788470977319', '0.0467747209472673', '0.0450423813898501', '0.0434307741189043', '0.041915712424757', '0.0405250313895705', '0.0390895391040532', '0.0377897158697839', '0.0365016922380464', '0.0351788001916396', '0.0338645937424847', '0.0325302009051183', '0.0312848146149282', '0.0300375958148976', '0.0288302935207691', '0.027652203865544', '0.0264621566936286', '0.0252688692008588', '0.0241226625595337', '0.0229255436965288', '0.0217207281738409', '0.0205701146867025', '0.0193892949195812', '0.0183936626191952', '0.017494647116465', '0.0167605279940225', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '+NAN', '0.0757791569140749', '0.0831133762408903', '0.0873256015093429', '0.088798490578607', '0.0893180250587088', '0.0912184306930603', '0.0934315009445713', '0.0978927038642625', '0.10316713605413', '0.111042352696646', '0.119482024262908', '0.129446496806651', '0.140324929207819', '0.149929004563169', '0.157951375798488', '0.163167079267684', '0.163684554455683', '0.161710955408623', '0.158158176144384', '0.153120816765498', '0.149159625705894', '0.146361065436421', '0.144318454214309', '0.144129633718655', '0.144738939517372', '0.146583353055999', '0.149927549178646', '0.154781330782628', '0.161281049713208', '0.169324782015295', '0.178566729488516', '0.188750791302883', '0.199826540979236', '0.211193704798505', '0.222305048038871', '0.232787040612667', '0.242185638548782', '0.249199329450493', '0.253905646769863', '0.255480704613068', '0.254086308176615', '0.250712203525897', '0.245637528877396', '0.239859851966525', '0.233843628655063', '0.228059104546805', '0.222661940533832', '0.218199567518201', '0.214240155949967', '0.21061280671042', '0.206823867975479', '0.202504211638902', '0.198378089686984', '0.195008429198418', '0.192596053511712', '0.1913409806608', '0.191204589224151', '0.191982450755957', '0.193875999271111', '0.196568015329539', '0.200197325412529', '0.204781342874412', '0.210052890237844', '0.215505542064364', '0.22102191587617', '0.225647984382987', '0.229501509141454', '0.232213608637945', '0.233859853462842', '0.234864695710533', '0.235347731196379', '0.235169523165461', '0.2348286160222', '0.23395735104209', '0.232593294508701', '0.230910869907075', '0.228844605598996', '0.226021135136259', '0.222713212172475', '0.218813740820075', '0.214437631947854', '0.20945948892298', '0.203847193841702', '0.197707092492944', '0.191556734852924', '0.18600061167507', '0.181873354953207', '0.178782316057322', '0.176167924779435', '0.174141863608666', '0.172744990342331', '0.171801376758966', '0.170954015345458', '0.169960140045412', '0.168049955384139', '0.165224777136175', '0.161531979240228', '0.157405412608478', '0.153570487964493', '0.150141271545146', '0.14725256652001', '0.144660342475923', '0.142269456600007', '0.139762314536934', '0.136963054606891', '0.133984343960448', '0.131197679174342', '0.129003116254732', '0.127069994503092', '0.125436648144931', '0.12397269238396', '0.122419985358787', '0.120693422850158', '0.118931546980571', '0.117166660339047', '0.115631793601506', '0.114393230429202', '0.113425752529033', '0.112707849783804', '0.112359222280159', '0.11219082672674', '0.112343608199868', '0.112664705152637', '0.112877954686814', '0.112998494144185', '0.112887922565457', '0.11253063359053', '0.111841159102354', '0.110997003525569', '0.109948198155768', '0.108874849717231', '0.107795318097265', '0.106637360724801', '0.105678694194695', '0.104756017092462', '0.103825430274706', '0.102939456306441', '0.102001186921616', '0.100737446991222', '0.0991453606719906', '0.0971498679860747', '0.0948117209915638', '0.0924075366042346', '0.0899484551808979', '0.0873520434504222', '0.0848497958878303', '0.0823900490277647', '0.0799786063537234', '0.0776610830064481', '0.0752837851752474', '0.0729604964467151', '0.0707262742573907', '0.0684046065784823', '0.0660274200992436', '0.0636252573638505', '0.0612270512870042', '0.0587905905539405', '0.0563195707029216', '0.0538582650571118', '0.0514203967394221', '0.0490721477077881', '0.0468328465329872', '0.044723244642693', '0.0427398639178554', '0.0408841538190041', '0.0391762093418711', '0.0375882143782858', '0.0361234008364646', '0.0347811387811729', '0.0335210387242261', '0.0323747022105674', '0.0312594345687719', '0.030174948252246', '0.0291339080526091', '0.0281312995576928', '0.027138393963344', '0.0260756668210364', '0.0250906058668046', '0.0240551778532538', '0.0230712653382013', '0.0221310389230639', '0.0211757703478467', '0.0202209094313405', '0.0192572613107586', '0.0182920464007378', '0.0172950661682144', '0.0163207919630062', '0.0153269728531649', '0.0143853788804443', '0.0135213976548868', '0.0127456574145877', '0.0120278700767597', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0181271394490075', '0.0179948670252732', '0.0180195207374602', '0.0181005261905924', '0.018089553708784', '0.0180460947386496', '0.0180426749981038', '0.0180534564280807', '0.0180790359128869', '0.0180635226786445', '0.0180649523395645', '0.0180630058790784', '0.0180600544336154', '0.0180597668962471', '0.0180588020408788', '0.0180498552319141', '0.0180704773142647', '0.0180562171706652', '0.0180717635554537', '0.0180430410499234', '0.0180523488508876', '0.0180618142041841', '0.0180579205853055', '0.0180626933915622', '0.0180613022899616', '0.0180574472304024', '0.0180710633810246', '0.0180638238251844', '0.0180615148024098', '0.0180669541091198', '0.0180750465063777', '0.0180621163975833', '0.0180742925931686', '0.0180599654505706', '0.0180625609638543', '0.018079003460247', '0.0180789446616468', '0.0180641596925595', '0.0180789860125912', '0.0180726758933779', '0.0180883707577176', '0.0180761767655234', '0.0180788425928601', '0.0180748167207502', '0.018087924097728', '0.0180769134055532', '0.0180908061015206', '0.0180821035597377', '0.0180826006434528', '0.0180812086694694', '0.0180992416941691', '0.0180889166948691', '0.0180883470289057', '0.0180961206574913', '0.0180961166445305', '0.0180882432153534', '0.0180960383045557', '0.0180981065496797', '0.0180892262162838', '0.018090062656905', '0.0181151497688632', '0.0180994168686337', '0.0180945880554018', '0.0181024354875717', '0.0180812022138367', '0.018095840622615', '0.0181047246200187', '0.0180913783846324', '0.0181042299789754', '0.018097802960468', '0.0180910716548426', '0.0181013286082848', '0.0180952437383085', '0.0181025522123893', '0.0180982995207534', '0.0180837411967154', '0.0181112380044225', '0.0181073538072781', '0.018103745283096', '0.0180962696604722', '0.0181080471771214', '0.0180900361364681', '0.0181011494208593', '0.0181086649986149', '0.0181182547536976', '0.0181057997445719', '0.0181089392757648', '0.0181055429150778', '0.0181146218027973', '0.0181128730242519', '0.0181162224507446', '0.018127437978399', '0.0181252793544177', '0.0181109518628667', '0.0181264111838525', '0.018109165222908', '0.0181143328696165', '0.0181233651720949', '0.0181237422159377', '0.0181142894249535', '0.0181268594141312', '0.0181223244194237', '0.0181331201564784', '0.0181055589669212', '0.0181385395728607', '0.0181050559510032', '0.0181237826944993', '0.0181113664191696', '0.0181140599882791', '0.0181137768128247', '0.0181257021111189', '0.0181361358093148', '0.0181222916178307', '0.0181118017381829', '0.0181256476744327', '0.0181248496186543', '0.0181254770363585', '0.0181331583668447', '0.0181230066227672', '0.0181144363342157', '0.0181321676889458', '0.0181179351126425', '0.0181364284065034', '0.0181453949313192', '0.0181325621804444', '0.0181156688366246', '0.0181297948077507', '0.0181383919656923', '0.0181374979478067', '0.0181199012889798', '0.0181422937849691', '0.0181196791803209', '0.0181355928382649', '0.0181084210803862', '0.018133168137532', '0.0181404589894803', '0.0181418954549861', '0.0181177946590129', '0.0181147076452641', '0.0181089181641013', '0.0181443674388664', '0.0181377502409103', '0.0181289850620429', '0.0181158340659255', '0.0181305586661236', '0.0181270701818138', '0.0181084884283378', '0.0181265399475526', '0.0181359089897888', '0.0181099418180697', '0.0181312042293899', '0.0181193782082575', '0.0181291396482737', '0.0181114958807759', '0.018131541667054', '0.0181167600130213', '0.018133784563213', '0.01811013496362', '0.018139256671516', '0.0181215378790981', '0.0181241962039428', '0.0181255386265836', '0.0181152391008612', '0.0181239868320727', '0.018128921378099', '0.0181191986718789', '0.0181302022105147', '0.0181156925654366', '0.018128299020215', '0.0181149622065629', '0.0181265924649967', '0.0181200464534764', '0.018134817115486', '0.0181138528846042', '0.0181302275096157', '0.0181219730236349', '0.0181227435121171', '0.0181128882037125', '0.0181298839652721', '0.0181217728990224', '0.0181271213034454', '0.0181002302783493', '0.0181198512142075', '0.0181077788321745', '0.0181113704321304', '0.0181110165936699', '0.0181200574454996', '0.0181026958065969', '0.0181267051768535', '0.018099050467861', '0.0181217983725999', '0.0181250125797599', '0.018113538826799', '0.0181123129544992', '0.0181229691103072', '0.0181081715789076', '0.0181231769118883', '0.0181145502674084', '0.0181123405217955', '0.0181137211548025', '0.0181167594895916', '0.0181050918931742', '0.0181182652222911', '0.0181006336681525', '0.0181259247432075', '0.018101253059935', '0.018119688602055', '0.018109630726366', '0.0181146952574284', '0.0181041917686091', '0.0181114787820732', '0.0181135109105496', '0.0181156468525783', '0.0180992396004504', '0.0181260718269463', '0.0181003136781442', '0.0181070481243477', '0.0181074850136501', '0.0181076732738566', '0.0181037805273608', '0.0181054610855719', '0.0180953817492662', '0.0181251186615074', '0.0181015350140535', '0.0181170220768121', '0.0180958751689736', '0.0181153706561862', '0.0181087792807607', '0.0181190203568361', '0.0181090340165361', '0.0181264401469612', '0.0181213607853913', '0.0181053968781984', '0.0181112694102031', '0.0181143349633352', '0.0181028416689998', '0.0181058145750794', '0.018112246653407', '0.018102646778684', '0.0181018787328736', '0.0181089858610059', '0.0181129695097887', '0.0181304682872664', '0.0181118867082669', '0.0181302966023328', '0.0181224601621861', '0.0181439211278299', '0.0181333813478864', '0.0181515932110585', '0.0181361972250634', '0.0181645852590311', '0.018168622995547', '0.0182029242145575', '0.01826668143855', '0.0187321041138753'], 'b1': ['0.0246216519286131', '0.024510637261161', '0.0246496004937187', '0.0246158903420498', '0.0244170047588795', '0.0245126709060577', '0.0246256846551714', '0.0247016785610073', '0.0245795106168697', '0.024601391414026', '0.0247430929974417', '0.0246690990460763', '0.0246595979967682', '0.024549218035998', '0.0245417076893854', '0.0249321420235364', '0.0245095865737246', '0.0245109975567032', '0.0246271043662396', '0.0249088567021879', '0.0244657876231882', '0.0248177038501861', '0.0247746806522609', '0.0246467759093347', '0.0244827044066167', '0.0246539416709665', '0.024721638131062', '0.0244816703025508', '0.0248143197952532', '0.0247325126325631', '0.0245241834309148', '0.0244880571694591', '0.0247891481591618', '0.0245174540737672', '0.0248839095525633', '0.0244844522938572', '0.024819053561975', '0.0246153722426461', '0.0244569738236619', '0.024594164032081', '0.024739169721128', '0.0246157473759408', '0.0245033974853286', '0.0247480762129667', '0.0246028704761041', '0.0245055458173238', '0.02469614722145', '0.0244073975760008', '0.0245040215437411', '0.0244248794159556', '0.0244697287048048', '0.0246472875499521', '0.0246650067939463', '0.0244401485106133', '0.0243791267698239', '0.0246499286698909', '0.0243780806209942', '0.0247780093711051', '0.0247202135322636', '0.0245516643449751', '0.0244492274695042', '0.0246700816544131', '0.0246774251199509', '0.0245070955769284', '0.0246320020464858', '0.0244041100537399', '0.0245954472358265', '0.0243854736620815', '0.0245493665880845', '0.0247136054955626', '0.0246331129577409', '0.0247415952572516', '0.0248944354541623', '0.0247328998106215', '0.0246575704615342', '0.0247710366748172', '0.0247250916615888', '0.0247268100478861', '0.0248027810861271', '0.0248363912138882', '0.0249100102065207', '0.0245452771289432', '0.0246815472221476', '0.0246684887780455', '0.0248864084046402', '0.024731509076811', '0.0246692868745663', '0.0245807166643024', '0.0247555966841634', '0.024710914276389', '0.0247437058838994', '0.0247758020372237', '0.0244627418690115', '0.0246814871728906', '0.0246144002825787', '0.0247326369205602', '0.0247778595970861', '0.0250858798171903', '0.02491093660596', '0.0248098248290651', '0.0248231980080813', '0.0247223508668658', '0.0247285340201608', '0.0245271073409594', '0.0246145044959695', '0.0247301532553592', '0.0247854968501228', '0.0249164176717207', '0.0248323871154641', '0.0245063201734407', '0.0249895534773082', '0.0247316035147414', '0.0250480786353239', '0.0245604978699841', '0.0248995078707639', '0.0247918838915929', '0.0246323141629729', '0.0246174315481265', '0.0245240120112333', '0.0247643169185683', '0.0246655463644507', '0.024543567994421', '0.0246558676112366', '0.0245943996905025', '0.0250753080058395', '0.0250045579362867', '0.0246554029277417', '0.0250264155167244', '0.0246469593737799', '0.024665052703698', '0.0248279473108028', '0.0246961217354281', '0.0245553355540586', '0.0245557204628138', '0.0247270518159704', '0.0247966155635732', '0.0247140158903397', '0.0247626610253931', '0.0248185803249523', '0.024609407466155', '0.0247364268316634', '0.0246575409605911', '0.0248112543155938', '0.0245781406559126', '0.0247824863574285', '0.0246500847281345', '0.0247009649523946', '0.0248219430833464', '0.024708337569752', '0.0246372621170157', '0.0247286281089676', '0.0245687148427376', '0.0244441117615777', '0.0246077550642157', '0.0247010606122576', '0.0247215691791535', '0.0245714196777312', '0.024795434478477', '0.0244320022353862', '0.0247462735133231', '0.0246903013215404', '0.0245514873393163', '0.0245751469211505', '0.0246573018109337', '0.0244665511564739', '0.0246441606245413', '0.0244944379267046', '0.0247590790173862', '0.0244953459971555', '0.0247222716158114', '0.0246553421802375', '0.0246119307568831', '0.0246354342804737', '0.0243070187840778', '0.0247393772751007', '0.0245134415963769', '0.0247120136665658', '0.0245733489346753', '0.0244120664057354', '0.0245414062211677', '0.0248899691161084', '0.0246153303478156', '0.0247247613906751', '0.0246353044064992', '0.0248533992931349', '0.0244737232023303', '0.0247406206787574', '0.0245452593236402', '0.0245186117675831', '0.024411721471631', '0.0246871115538839', '0.0245525059073826', '0.0247245782753535', '0.0246827284818056', '0.0247343388980489', '0.0248475752134495', '0.024459163701364', '0.0247058137553385', '0.0246986457244034', '0.024567998615698', '0.0243962081650239', '0.02490341386546', '0.024537072550077', '0.0244906673919604', '0.0245997164936153', '0.0246575069210413', '0.0242198948182748', '0.024409780344485', '0.0242338197871209', '0.0244076180475463', '0.0245564188845504', '0.0246008453847352', '0.0245239058776628', '0.0246243248187984', '0.0246248141155061', '0.0243052663582307', '0.0245985008452839', '0.0243217586073769', '0.0246622282938758', '0.0246268287331674', '0.0244327690853459', '0.0245608707339754', '0.0244063069139137', '0.0246343666605434', '0.0244305303303416', '0.0247014261446536', '0.0246118652962104', '0.0246281107149804', '0.0246470772029907', '0.0247607972291217', '0.0247295342592388', '0.0246461279359564', '0.0245565616760977', '0.0244480411475541', '0.0245717391258137', '0.0246028116487796', '0.0248620650642601', '0.0244563693161703', '0.0245400739655581', '0.024658254394642', '0.0247536939606119', '0.024581995678565', '0.024518225986019', '0.0249431329577538', '0.024793957860264', '0.0246779200026361', '0.0246277942344484', '0.0245882612250266', '0.0245443142460891', '0.0244427728726199', '0.0245225095578749', '0.0246755827947801', '0.0244593372157869', '0.0246154502717679', '0.0255941653568822'], 'SAMSN': '852F', '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'}}} - save_path_csv:Path = self.mydir.current_filepath - data_str = "" - for k in self.res.keys(): - self.mydir.setContent(self.res[k].tolist(),TOKEN,k ) - data_str = data_str + NEWLINE + self.mydir.content_str - save_path_csv.write_text(header+data_str) - # info.txt - self.mydir.newFileIfNot(self.ymdhms+"_info.txt") - path_info_txt:Path = self.mydir.current_filepath - self.save_dict_to_file( self.info_dict, path_info_txt ) + ## 封装该类的 处理buf hex2int函数 - self.do_retrieve() - self.append_retrieve(save_path_csv) - - def do_retrieve(self, ) -> None: - '''反演参数并保存 self.res''' - par_400_700 = self.get_par_400_700() - par_350_950 = self.get_par_350_950() - chl = self.get_chl() - cdom = self.get_CDOM() - self.res_retrieve = [ par_400_700, par_350_950, chl, cdom ] - pass - - def append_retrieve(self, fpath) -> None: - '''反演参数并保存 self.res''' - # save_path_csv:Path = self.mydir.current_filepath - res = NEWLINE + "res" - for r in self.res_retrieve: - res = res + TOKEN + str(r) - with open(fpath, '+a') as f: - f.write(res) +@dataclass +class AWRAMS(object): + deviceid:int = None + configSensor:List[str] =None # 序列号 + configFunc:List[str] =None # 功能 Lsky Esky Lwater + calibrationCfg:dict =None + data : AWRAMSData =None + beginWavelength: float =None + endWavelength: float =None + wvInterval: float =None + newWavelength:np.ndarray=None + Lsky:np.ndarray =None # 无需记录原始波长,记录插值后的波长 + Esky:np.ndarray =None + Lwater:np.ndarray =None + Lw:np.ndarray =None + Rs:np.ndarray =None + + def __post_init__(self): + assert self.deviceid != None + self.data = AWRAMSData(deviceid=self.deviceid ) pass - - def get_par_400_700(self, ) -> float: - '''反演参数并保存 基于self.res''' - par_400_700 = 0.0 - for i in range( 50, 350, 1 ): - par_400_700 = par_400_700 + self.res['Esky'][i] - return par_400_700 + + def set_cfg_calibration(self,calcfg:dict): + assert self.deviceid != None + # assert self.deviceid in calcfg.keys(), f">>>> No calibrations data for the current id {self.deviceid}" + self.calibrationCfg = calcfg pass - def get_par_350_950(self, ) -> float: - '''反演参数并保存 基于self.res''' - par_350_950 = 0.0 - for i in range( 0, 600, 1 ): - par_350_950 = par_350_950 + self.res['Esky'][i] - return par_350_950 + def set_retrieve(self,rtv:dict): + self.beginWavelength = float(rtv["beginWL"]) + self.endWavelength = float(rtv["endWL"]) + self.wvInterval = float(rtv["interval"]) + self.rowFactor = float(rtv["rowFactor"]) + self.newWavelength = np.arange(self.beginWavelength,self.endWavelength,self.wvInterval) pass - def get_chl(self, ) -> float: - '''反演参数并保存 基于self.res''' - return 0.0 - pass + def config_awrams(self, cfg:dict): + assert self.deviceid in cfg.keys(), f'>>>> Cannot get the configuration of device id {self.deviceid}' + self.configSensor = [None,None,None] + self.configFunc = [None,None,None] + + # Lsky Esky Lwater + # {1: {'FUNC': 'Lsky', 'SN': '85B5'}, 2: {'FUNC': 'Esky', 'SN': '50ED'}, 3: {'FUNC': 'Lwater', 'SN': '852F'}} + for k,v in cfg.items() : + if v["FUNC"] == "Lsky": + self.configSensor[0] = v["SN"] + self.configFunc[0] = v["FUNC"] + if v["FUNC"] == "Esky": + self.configSensor[1] = v["SN"] + self.configFunc[1] = v["FUNC"] + if v["FUNC"] == "Lwater": + self.configSensor[2] = v["SN"] + self.configFunc[2] = v["FUNC"] + + # 将传感器配置传给 AWRAMSDATA + self.data = AWRAMSData( deviceid=self.deviceid, configSensor=self.configSensor, configFunc=self.configFunc ) + # 将标定配置传给 AWRAMSData 建立工厂 + self.data.build_datafactory_by_configSensor( self.calibrationCfg) + pass + + def callback( self, wavelength:list, spectrum:list ): + ''' 处理返回的数据, 生成Lsky Esky Lwater Lw Rs ''' + log.info( " call back for Lw Rs , 插值, 计算, 保存.................. " ) + self.wavelength = wavelength + self.spectrum = spectrum + + self.Lsky = np.interp( self.newWavelength, self.wavelength[0], self.spectrum[0]) + self.Esky = np.interp( self.newWavelength, self.wavelength[1], self.spectrum[1]) + self.Lwater = np.interp( self.newWavelength, self.wavelength[2], self.spectrum[2]) + self.Lw = self.Lwater - self.rowFactor * self.Lsky + self.Rs = self.Lw/self.Esky + + # 发送到前端展示 + # msg = {"flag":"notice", "data":0} + msg = {"flag":"data", "data": + [ self.data.info_frame.time_str, self.newWavelength, self.Rs ] } + pub.sendMessage('update' , msg=msg) + # self.save() + self.save_SD() + + # 保存 进一步处理 + + def save(self, mode=0): + ''' ''' + pth = self.data.currentPath + fanme = "20"+self.data.info_frame.year+"_"+self.data.info_frame.month+"_" \ + +self.data.info_frame.day+"_"+self.data.info_frame.hour+"_" \ + +self.data.info_frame.minute+"_"+self.data.info_frame.second \ + +".csv" + save_fpath = pth.joinpath(fanme) + ret = "" + ret = ret + str(self.deviceid)+"_"+pth.parts[-1] + TOKEN + self.list2str(list(self.newWavelength)) + ret = ret + NEWLINE + "Lsky" + TOKEN + self.list2str( list(self.Lsky) ) + ret = ret + NEWLINE + "Esky" + TOKEN + self.list2str( list(self.Esky) ) + ret = ret + NEWLINE + "Lwater" + TOKEN + self.list2str( list(self.Lwater) ) + ret = ret + NEWLINE + "Lw" + TOKEN + self.list2str( list(self.Lw) ) + ret = ret + NEWLINE + "Rs" + TOKEN + self.list2str( list(self.Rs) ) + save_fpath.write_text( ret ) + pass + + def save_SD(self, mode=0): + ''' 保存到五个文件 Lsky Esky Lwater Lw Rs ''' + pth = DATA_DIR + header = str(self.deviceid) + TOKEN + self.list2str(list(self.newWavelength)) + + Lsky_fpath = pth.joinpath( "Lsky"+SAVE_EXT_NAME ) + Esky_fpath = pth.joinpath( "Esky"+SAVE_EXT_NAME ) + Lwater_fpath = pth.joinpath( "Lwater"+SAVE_EXT_NAME ) + Lw_fpath = pth.joinpath( "Lw"+SAVE_EXT_NAME ) + Rs_fpath = pth.joinpath( "Rs"+SAVE_EXT_NAME ) + + if not Lsky_fpath.exists(): + Lsky_fpath.write_text( header ) + if not Esky_fpath.exists(): + Esky_fpath.write_text( header ) + if not Lwater_fpath.exists(): + Lwater_fpath.write_text( header ) + if not Lw_fpath.exists(): + Lw_fpath.write_text( header ) + if not Rs_fpath.exists(): + Rs_fpath.write_text( header ) + + Lsky = NEWLINE + self.list2str( list(self.Lsky) ) + Esky = NEWLINE + self.list2str( list(self.Esky) ) + Lwater = NEWLINE + self.list2str( list(self.Lwater) ) + Lw = NEWLINE + self.list2str( list(self.Lw) ) + Rs = NEWLINE + self.list2str( list(self.Rs) ) + + # 追加写入 + with open(Lsky_fpath, 'a') as f: + f.write( Lsky ) + with open(Esky_fpath, 'a') as f: + f.write( Esky ) + with open(Lwater_fpath, 'a') as f: + f.write( Lwater ) + with open(Lw_fpath, 'a') as f: + f.write( Lw ) + with open(Rs_fpath, 'a') as f: + f.write( Rs ) + pass + + def list2str( self, lst:list, token=";" ): + ''' 保存在原文件所在目录 ''' + ret= "" + for i in range(len(lst)): + if i == 0: + ret = ret + str(lst[i]) + else: + ret = ret + TOKEN + str(lst[i]) + return ret + pass + +class AwramsHandle(object): + def __init__(self, deviceid=2, cfg=None, calcfg=None, rtv=None): + self.sensor_cfg = cfg + self.calcfg = calcfg + self.retrieve = rtv + self.device_id = deviceid + self.aw = AWRAMS( deviceid=self.device_id) + self.aw.set_cfg_calibration(self.calcfg) + self.aw.set_retrieve( self.retrieve) + self.aw.config_awrams(self.sensor_cfg) - def get_CDOM(self, ) -> float: - '''反演参数并保存 基于self.res''' - return 0.0 pass - def getRetDict(self,) : - ret_dict = { } - ret_dict.update( {self.device_enum(1).name:np.array([])} ) - ret_dict.update( {self.device_enum(2).name:np.array([])} ) - ret_dict.update( {self.device_enum(3).name:np.array([])} ) - # self.one_group_result = ret_dict - return ret_dict - - def __do_sensor_dict_interpo(self,) : - log.info( f"同步处理多个个插值 ", __name__, "__do_sensor_dict_interpo" ) - self.clearRes() - for k in self.intensity_after_avg.keys(): - tmp = np.interp( self.wavelength, self.real_wavelength[k], self.intensity_after_avg[k] ) - self.res.update( { k : tmp } ) - - def getCfgByDid(self, func:str) : - cfg_id:dict = self.syscfg.get(int(self.device_id)) - cfg_sensor = cfg_id.get( func) - return cfg_sensor + def read_one_folder_awrams_online(self, pth:Path): + ''' self.data 传数据 info_frame, data_frame''' + log.info(f" 读一个文件夹进行处理 {pth}" ,__name__,"read_one_folder_awrams_online") + bytes_list = [] + + bin_files = pth.glob('*.bin') + for bf in bin_files: + if bf.name != "info.bin": + bytes_list.append( self.read_bin(bf) ) + # print(f"++++++++++ {bytes_list}" ) + self.aw.data.set_data_frame( bytes_list, self.aw.callback ) + pass + + def read_folders_from_SD(self, pth:Path): + ''' self.data 传数据 info_frame, data_frame''' + log.info(f" 读 SD文件夹进行处理 {pth}" ,__name__,"read_one_folder_awrams_online") + fs = None + filelist = [] + fs = pth.glob( "*/*/info/*" ) + msg = {"flag":"notice", "data": "开始处理数据 " } + pub.sendMessage('update' , msg=msg) + for f in fs: + if f.stat().st_size == 0: + continue + mypath = f.parent.parent + log.info(f" mypath {mypath}") + sensor_path = mypath.joinpath( 'sensor', f.name ) + if not sensor_path.exists() or sensor_path.stat().st_size == 0: + continue + readout = self.read_bin(sensor_path) + log.info( f" ==== {len(readout)}" ) + assert len(readout)%1754 == 0, f" wrong bytes number" + bytes_list = [] + for i in range( int(len(readout)/1754)): + bytes_list.append( readout[ i*1754 : i*1754+1754 ] ) + log.info( f" curent file {sensor_path}", __name__, "read_folders_from_SD" ) + + # 处理SD 需要多处理info_frame + self.aw.data.set_info_frame( self.read_bin(f) ) + + # 1754 字节? + self.aw.data.set_data_frame( bytes_list, self.aw.callback ) + + msg = {"flag":"notice", "data": "完成数据处理 " } + pub.sendMessage('update' , msg=msg) pass - def getFuncBySeq(self, seq:int) : - func = "" - if self.device_type == DeviceType.AWRAMS.name: - func = RamsesAWRAMS(seq).name - if self.device_type == DeviceType.SURFACE.name: - func = RamsesAWRAMS(seq).name - if self.device_type == DeviceType.PROFILE.name: - func = RamsesAWRAMS(seq).name - return func - - def getCfgByFunc(self, func:str) : - cfg_id:dict = self.syscfg.get(int(self.device_id)) - cfg_sensor = cfg_id.get( func) - return cfg_sensor - pass - - def getCfgBySeq(self, seq:int) : - func = "" - if self.device_type == DeviceType.AWRAMS.name: - func = RamsesAWRAMS(seq).name - if self.device_type == DeviceType.SURFACE.name: - func = RamsesAWRAMS(seq).name - if self.device_type == DeviceType.PROFILE.name: - func = RamsesAWRAMS(seq).name - cfg_id:dict = self.syscfg.get(int(self.device_id)) - cfg_sensor = cfg_id.get( func) - return cfg_sensor - pass - - def appendSave(self, ) -> bool: - '''self.output_path''' - self.checkAndSaveData( ) - self.getLwRsAndSave() - path_info_txt = self.output_path.joinpath( "info.txt" ) - self.save_dict_to_file( self.info_dict, path_info_txt ) - - def checkAndSaveData(self, ) -> bool: - """ - check self.Lsky Esky Lwater and Save - 处理self.res 的数据 - """ - log.info(f"checkAndSaveData: {self.output_path.parts}", __name__) - self.mydir.setBaseDir(self.output_path) #基路径 - self.mydir.setHeader( self.wavelength.tolist(), TOKEN, "device_id_"+str(self.device_id) ) - # print(f"header_str : {self.mydir.header_str[-1:]}") - - if self.current_group_num == 0: - self.newFileByFunc( self.device_enum(1).name ) - self.newFileByFunc( self.device_enum(2).name ) - self.newFileByFunc( self.device_enum(3).name ) - pass - - self.appendFileByFunc( self.device_enum(1).name ) - self.appendFileByFunc( self.device_enum(2).name ) - self.appendFileByFunc( self.device_enum(3).name ) - - def newFileByFunc(self, func:str) -> None: - self.mydir.newFileIfNot( func+SAVE_EXT_NAME) - if self.mydir.checkHeader() == -1: - log.error(f"请备份文件:{self.mydir.current_filepath.parent} {self.mydir.current_filepath.name}, 并删除文件后再试!", __name__) - raise MyException( f"请备份文件:{self.mydir.current_filepath.parent} {self.mydir.current_filepath.name}, 并删除文件后再试!" ) - return False - if self.mydir.checkHeader() == 1: - pass - if self.mydir.checkHeader() == 0: - self.mydir.writeHeader() - pass - # 写入数据content - self.mydir.setContent(self.res[func].tolist(), TOKEN, self.current_measure_time) - self.mydir.writeContent() - - def appendFileByFunc(self, func:str) -> None: - # 追加写入数据content - self.mydir.setContent(self.res[func].tolist(), TOKEN, self.current_measure_time) - self.mydir.writeContent() - - def clearRes(self, ) -> None: - self.res = { } - - def getLwRs(self, ) -> bool: - """ - 并计算Lw Rs并保存 - """ - Lw = self.res["Lwater"] - ROWFACTOR * self.res["Lsky"] - self.res.update({ "Lw" : Lw }) - Rs = self.res["Lw"] / self.res["Esky"] - self.res.update({ "Rs" : Rs }) - - def getLwRsAndSave(self, ) -> bool: - """ - 并计算Lw Rs并保存 - """ - Lw = self.res["Lwater"] - ROWFACTOR * self.res["Lsky"] - self.res.update({ "Lw" : Lw }) - Rs = self.res["Lw"] / self.res["Esky"] - self.res.update({ "Rs" : Rs }) - self.mydir.setBaseDir(self.output_path) #基路径 - - # 保存 - - if self.current_group_num == 0: - self.newFileByFunc( "Lw" ) - self.newFileByFunc( "Rs" ) - pass - - self.appendFileByFunc( "Lw" ) - self.appendFileByFunc( "Rs" ) - - return True - - 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 + def read_bin(self,fpath: Path): + assert fpath.exists(), f">>>> not find {fpath} " + ret = b'' with open(fpath, 'rb') as file: ret = file.read() - return ret - log.debug(f" readbin: {ret} ", __name__, "", "" ) - return ret - pass - - def decode_info( self,info: bytes ) -> dict: - ret = {} - # 剖面型加了1311+24个字节共26个字节 - # 保留字节有所变化,改为序列号,每个序列号两个字节 - try: - temp = struct.unpack(" 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) - - def save_error_to_file(self, errlist: list, fpath: Path) -> None: - temp_str = "" - if len(errlist) <1: - return None - for errdict in errlist: - temp_str = temp_str + errdict["path"] +" : "+ errdict["error"] + "\n" - pass - with open(fpath, "w+") as f: - f.write(temp_str) - return None pass - def getWavelenthDict( self, ) -> dict: - ret_dict = self.getRetDict() - cfg_id:dict = self.syscfg.get( int(self.device_id)) - for k in ret_dict.keys(): - tmp = self.getWavelength( cfg_id.get(k) ) - ret_dict.update({ k : tmp }) - return ret_dict - - def getRealWavelenthDict( self, ) -> dict: - ret_dict = self.getRetDict() - cfg_id:dict = self.syscfg.get( int(self.device_id)) - for k in ret_dict.keys(): - tmp = self.getWavelength( cfg_id.get(k) ) - ret_dict.update({ k : tmp }) - self.real_wavelength = ret_dict + - def getWavelength(self,ramsesdict:dict) -> np.ndarray: - ret = [] - for i in range(2,257): - tmp = float(ramsesdict['c0s']) + float(ramsesdict['c1s'])*i \ - + float(ramsesdict['c2s'])*i*i + float(ramsesdict['c3s'])*i*i*i - ret.append(tmp) - pass - return np.array(ret) - - def setSyscfg(self, syscfg:dict): - self.syscfg = syscfg - - def setRetrieve(self, retrieve:dict): - log.debug( f"setRetrieve : {retrieve}......", __name__ ) - self.retrieve = retrieve - self.setNewWavelength() - # self.wavelength:np.ndarray = np.arange ( self.retrieve['beginWL'], self.retrieve['endWL'], self.retrieve['interval'] ) + pass - def setNewWavelength(self, ): - self.wavelength:np.ndarray = np.arange ( - self.retrieve['beginWL'], self.retrieve['endWL'], self.retrieve['interval'] ) +class Acfg: + cfg= {1: {'FUNC': 'Lsky', 'SN': '85C2'}, 2: {'FUNC': 'Esky', 'SN': '50ED'}, 3: {'FUNC': 'Lwater', 'SN': '852F'}} + calcfg= {'Lsky': {'SN': '85C2', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85C2', 'inifile': 'SAM_85C2.ini', 'calfile': 'Cal_SAM_85C2.dat', 'calaqfile': 'CalAQ_SAM_85C2.dat', 'backfile': 'Back_SAM_85C2.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.63607834406219', '0.718127096538326', '0.812216798598817', '0.914442457893824', '1.03343454996493', '1.15933885373154', '1.29479643420084', '1.43677001665361', '1.56848190839848', '1.67447970580786', '1.73889146263122', '1.73244260903254', '1.69192414835577', '1.61622082709111', '1.5270353751059', '1.46047364317447', '1.41296265347303', '1.39311700938614', '1.39852760194912', '1.42554260762195', '1.4700968507055', '1.53635620441153', '1.62082921439482', '1.7237742274692', '1.84755749123585', '1.98432162640748', '2.12689147788928', '2.27366206436985', '2.41515311346652', '2.54267625633242', '2.65248757975216', '2.73468816910085', '2.77942967914337', '2.79565522877852', '2.77806955157777', '2.73891358506136', '2.69063680629234', '2.6282750012231', '2.56338981635672', '2.49687123158122', '2.4309933291301', '2.36993023507549', '2.32161558853422', '2.28314087424895', '2.25846162084215', '2.24994522727437', '2.25549954861938', '2.27668712518828', '2.30493256690767', '2.33255656715114', '2.35720768052834', '2.37757260164886', '2.40002374613635', '2.42905705371268', '2.4673307146952', '2.51294806887351', '2.56575613007937', '2.62193109349514', '2.67842958533042', '2.73753357518048', '2.7913329207665', '2.8423865946084', '2.89027340109411', '2.93157202353872', '2.96274906831744', '2.98346548286676', '2.98798866816702', '2.97297872291037', '2.93559195933884', '2.87662286787444', '2.80380712732453', '2.72275302648293', '2.6373282860483', '2.55448424591999', '2.47778601018081', '2.40377038673745', '2.33484934711808', '2.2698793292122', '2.20651375086021', '2.14704740380438', '2.08988763493926', '2.0346458333411', '1.98224825426305', '1.93452491480363', '1.89146397238956', '1.8653548650058', '1.84879059497611', '1.8371693859594', '1.83197484046632', '1.83105981302589', '1.83169544364263', '1.83369029033973', '1.82985806236537', '1.81684973319988', '1.7961872241934', '1.76710061502081', '1.73459539138238', '1.70421983997876', '1.67561137148482', '1.65483955955664', '1.64005456402998', '1.63103006074007', '1.62646109446179', '1.62483351776729', '1.61794627041935', '1.60638099649103', '1.59160518167625', '1.57856502215575', '1.56723770329055', '1.55884357172436', '1.55081356970191', '1.5440909800073', '1.53473504989623', '1.52335047710565', '1.51140772671503', '1.49628095199023', '1.48082183121466', '1.4668009209167', '1.45300293604089', '1.43913779397284', '1.42471804569399', '1.41116472805909', '1.39601546893463', '1.3795217760198', '1.36066889187826', '1.3395095955925', '1.31771535033317', '1.29387042583309', '1.26955248066416', '1.24679628762607', '1.22528340309588', '1.20486570624273', '1.18549206002717', '1.16756178865017', '1.15111957559202', '1.13469169498467', '1.11621030173639', '1.09569135455521', '1.07275908862679', '1.04573742076401', '1.01572627731635', '0.98381634710957', '0.950352559222019', '0.915760692099546', '0.881456713194727', '0.848044938315892', '0.816038892625263', '0.785024915273114', '0.754850603543375', '0.725690734641156', '0.697449171016547', '0.669846688269734', '0.643097402076866', '0.615807664216611', '0.589686777991522', '0.563134754809732', '0.537416951715189', '0.512092492411016', '0.487999533569422', '0.464888888064952', '0.442938789447448', '0.422687485052752', '0.403811887358409', '0.386602162003576', '0.370223420179536', '0.355850417036878', '0.342554004485098', '0.330263308885894', '0.318892349787717', '0.308390808825048', '0.29923285616278', '0.290049870831026', '0.280987628676386', '0.272166680353347', '0.263184326446838', '0.254328565772045', '0.245533707259442', '0.236284846332185', '0.227364007848682', '0.218575558150069', '0.209919539318749', '0.201723665364338', '0.193439417628863', '0.185095630044576', '0.176908759167827', '0.168492281717065', '0.15971620196905', '0.151519711134016', '0.143896290701505', '0.137256829327417', '0.131333761731513', '0.125851036682123', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '+NAN', '0.356482954042082', '0.402818840212745', '0.455981796582809', '0.513790947820199', '0.581106393394544', '0.652400597895999', '0.729165245163259', '0.809695951374305', '0.88453433247143', '0.944944312747719', '0.981931183530144', '0.97890644433893', '0.956596648488616', '0.914337507780978', '0.864381326448261', '0.827167246646249', '0.800694416668645', '0.78986648983256', '0.793342729280327', '0.809072983311401', '0.834767169405595', '0.872805947088459', '0.921221494674019', '0.980173791184887', '1.05102154902541', '1.12930675423331', '1.21095167248078', '1.29504423201304', '1.3761833690735', '1.44941098633961', '1.51258129060157', '1.56003462286042', '1.58613256964525', '1.59595706282003', '1.58646705138274', '1.56463589386165', '1.53756622064089', '1.50241608927798', '1.4657899060372', '1.42819643066784', '1.39093699353292', '1.35640193401339', '1.3291366616142', '1.3074826757329', '1.29371125003749', '1.28918595210661', '1.29271559006051', '1.30520259911165', '1.32173660739306', '1.33791597187085', '1.35239128956384', '1.36440760724462', '1.37762092569269', '1.39461338947335', '1.4169141265919', '1.44343724653861', '1.47409755299312', '1.50670023106802', '1.53949706626466', '1.57379985877493', '1.60506087092559', '1.63474977349559', '1.66262314886676', '1.6867112751644', '1.70497845407306', '1.71722612221823', '1.72015067971529', '1.71182391495322', '1.69060216043102', '1.65693636912006', '1.615276853664', '1.56885138733016', '1.51988696317221', '1.47238950135993', '1.42841545003656', '1.38597016134539', '1.34644570226061', '1.30918427370975', '1.272833651334', '1.23871854263795', '1.20592126590957', '1.17421842576069', '1.14414540628486', '1.11675959841052', '1.09205554594672', '1.07713100431408', '1.06771250877206', '1.06114445201819', '1.05828511190168', '1.05789551638809', '1.05839987869692', '1.05968794981088', '1.05760658826783', '1.05021868492741', '1.03840218029399', '1.02171038385539', '1.00303608270452', '0.985587384786529', '0.969155119807841', '0.957250725878805', '0.948805673627153', '0.943690255948233', '0.94115052725798', '0.940311121408207', '0.936426058319819', '0.929831072715321', '0.92137487467603', '0.913920568414937', '0.907455306712896', '0.902686110798026', '0.898125710110949', '0.894320543495939', '0.888988205031672', '0.882478589132188', '0.875643320641074', '0.866960905236801', '0.85808331524723', '0.850036611133456', '0.842116721554211', '0.834155584125161', '0.825870667226897', '0.818085734330888', '0.80937333573889', '0.799879100950076', '0.789014440994224', '0.776809660553211', '0.764233867550572', '0.750465870807386', '0.736420569195548', '0.723278335744868', '0.710854686038585', '0.699063893618938', '0.687876475273581', '0.67752433279025', '0.668033624297236', '0.658549260619002', '0.647871055584177', '0.636008041103345', '0.622741859229467', '0.607099198838907', '0.589718195082128', '0.571231808679594', '0.551840143680759', '0.531790313016104', '0.511904550502093', '0.492533916324242', '0.473976829140493', '0.455993213863435', '0.438494694002521', '0.421582939065556', '0.405202246583534', '0.389190520866554', '0.373672278430399', '0.357837814065771', '0.342680416381626', '0.327270394695731', '0.312343150425572', '0.297642550528398', '0.283655852976372', '0.270238359496543', '0.257493807901754', '0.245735256551437', '0.234775054990433', '0.224782070488707', '0.21527102824311', '0.206925139776841', '0.19920428909151', '0.192067375381572', '0.18546450086342', '0.17936649692309', '0.1740492565549', '0.168716810424925', '0.163453964529452', '0.158330867670766', '0.153113270397234', '0.147968724530474', '0.142859028020375', '0.137484591721589', '0.132300435162079', '0.12719275157505', '0.122161584010771', '0.117397671330868', '0.112581820604776', '0.107730813198643', '0.102970640334024', '0.0980763328283588', '0.0929722067690889', '0.0882049761452578', '0.0837708982222196', '0.0799092380316381', '0.0764642971780796', '0.0732754076052096', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0167342121256965', '0.0166272578208838', '0.0166286620082263', '0.0167322590351011', '0.0166920032801035', '0.0166775698812814', '0.0166447407209946', '0.0166906961017275', '0.0166809423386799', '0.0166877673382172', '0.0166557529834584', '0.0166967839378053', '0.0166669086656532', '0.0166892149702227', '0.0166767580418549', '0.0166905701296523', '0.0166797450805357', '0.0166853286793596', '0.0166606032573071', '0.0166908025324281', '0.0166781405941041', '0.0166909536291278', '0.016658955500689', '0.0166904685842953', '0.0166691280074769', '0.0167018280551104', '0.0166777291783793', '0.0166913413160407', '0.0166761335902522', '0.016706050038872', '0.0166582396233696', '0.0166925097855527', '0.0166940355830564', '0.0167090314943029', '0.0166814589637695', '0.0167022263850933', '0.0166789583657336', '0.0167125271321517', '0.0167029600590216', '0.0167033172125368', '0.0166891849602547', '0.016717239220566', '0.0166950287036272', '0.0167214463738202', '0.0167003460512228', '0.0167208076151397', '0.0167006723223871', '0.0167002158917102', '0.016694364122416', '0.0167280688060731', '0.0166797285052627', '0.0167266316426611', '0.0167086472969212', '0.0167237098582131', '0.0167077462999733', '0.0167322560689996', '0.0167032709762488', '0.0167360191794125', '0.0167094863546909', '0.0167321362036039', '0.0167044837628067', '0.0167368275293078', '0.0167091722968856', '0.0167287705507912', '0.0167181887219972', '0.0167349817417959', '0.0167306388457792', '0.0167342461486254', '0.0167197319671568', '0.0167519464465281', '0.0166999253882404', '0.0167488868255989', '0.016719535855505', '0.0167381012081846', '0.016714746997405', '0.0167499849810578', '0.0167221554465538', '0.0167373439799208', '0.0167244929090075', '0.0167622135196106', '0.0167296907401605', '0.0167466896422982', '0.0167188426601383', '0.0167413380972971', '0.0167347596331369', '0.0167533143427464', '0.0167352247876418', '0.0167353516320998', '0.0167414953006763', '0.016749848191436', '0.0167323993142541', '0.0167619493621011', '0.0167279053215378', '0.0167620692274968', '0.0167349965723033', '0.0167560658380733', '0.0167266768320897', '0.0167505611026539', '0.0167372640696571', '0.0167451675088022', '0.0167349737158742', '0.0167567040733241', '0.0167333020559676', '0.0167609921837014', '0.0167265123006951', '0.0167540701751976', '0.0167341789751504', '0.0167567098310506', '0.0167278048230401', '0.0167495269800919', '0.0167406579876722', '0.0167589262067727', '0.0167242688811064', '0.0167535141184058', '0.016737757663841', '0.0167484752353975', '0.0167302035267659', '0.0167375224694401', '0.0167320194787863', '0.016746486202631', '0.016722477006851', '0.0167550999358457', '0.0167311361039708', '0.0167435888449013', '0.016719886378911', '0.0167514476180474', '0.016733504972205', '0.0167560567652923', '0.0167352814925233', '0.016753138644852', '0.0167400480176239', '0.0167452113024184', '0.0167247150176664', '0.0167355227936036', '0.0167245276298426', '0.0167448593832', '0.0167307758098776', '0.0167412056695892', '0.0167255880983649', '0.0167422534013228', '0.0167193516082593', '0.0167385023297925', '0.016705906968094', '0.0167404309936697', '0.0167155682585657', '0.0167350478684115', '0.0167151202027635', '0.0167373663129203', '0.016693902980872', '0.0167265196287105', '0.0167148515088635', '0.0167491921595762', '0.0167138374511057', '0.01672268288919', '0.016713883163964', '0.0167278643195466', '0.016726385107284', '0.0167313726941841', '0.0167074498643005', '0.0167181608057478', '0.0167095725461107', '0.0167157395945461', '0.0167250866527359', '0.0167240209499168', '0.016707788697777', '0.016726686602777', '0.0167067578902697', '0.0167323436562319', '0.0166997167142764', '0.016728047519933', '0.0167000236185428', '0.0167135718977838', '0.0167101554722925', '0.0167162518577217', '0.016698760233783', '0.0167259262339352', '0.0167001843114531', '0.0167124269826071', '0.0166979893963477', '0.0167173175605408', '0.0167030137978017', '0.0167130235179605', '0.0166889363311589', '0.0167049515344599', '0.0166891643720208', '0.0167144257860609', '0.0166950775570635', '0.0167066258115149', '0.0166899927867203', '0.0167204148684066', '0.0166873287041492', '0.0167186125255577', '0.0166735365066795', '0.0167133203025865', '0.0166931954784274', '0.0167035377509067', '0.0166783023338738', '0.0167123730693506', '0.016688532417926', '0.0167097555720206', '0.0166789950058109', '0.0166970927613137', '0.0166853232705863', '0.0166682147971699', '0.0166882733202367', '0.0166994431350328', '0.016669055250752', '0.0167072431095787', '0.0166842073185183', '0.0167115228450812', '0.0166787196818017', '0.0166820776576458', '0.0166828917652676', '0.0166828919397441', '0.0166886184348693', '0.0167101844354013', '0.0166679419158325', '0.0167196613041506', '0.0166913228215255', '0.0166967333396033', '0.0166900756630856', '0.0166983214252384', '0.0166703969754865', '0.0167076025312892', '0.0166881337389899', '0.0167046749891148', '0.0166851051748882', '0.0166903757627661', '0.0166863544270468', '0.0167023502634498', '0.0166933265103228', '0.0166808331163543', '0.0166929039280982', '0.0166964178859856', '0.0166797501403559', '0.0166952298750991', '0.0166972180354827', '0.0166983521331127', '0.0166914643220144', '0.0167088154923236', '0.0166859086394399', '0.0167097267833884', '0.0166896925125632', '0.0167073085382882', '0.0167009005377256', '0.0167047615294878', '0.0166963988680408', '0.0167178228446541', '0.0167224817177181', '0.0167383386707806', '0.0167398232918166', '0.0167536060675521', '0.0167773394158932', '0.016865794494642', '0.0172802874625528'], 'b1': ['0.0168913253365429', '0.0166791480947141', '0.0169747489414428', '0.0167706507685505', '0.0167499611810745', '0.0168839981052519', '0.0168264213414614', '0.0170086107873105', '0.0168850491418118', '0.0168500119713871', '0.0170821184095186', '0.0168872250545704', '0.0168648846362113', '0.016992469931055', '0.0171467378688764', '0.0169317564663933', '0.0170060449035047', '0.0169903947404513', '0.0169514527972631', '0.016996943775266', '0.0168920295188188', '0.0169695187209796', '0.0169094752244822', '0.0170826763090113', '0.0170169785814538', '0.0170845636711249', '0.0169070530050327', '0.0170568509390025', '0.0169742290964211', '0.0169703541737244', '0.016693127352278', '0.0167815989351284', '0.016990941642551', '0.0169070091900225', '0.016947108477903', '0.0168397329001644', '0.0169154708984108', '0.0170660484253514', '0.0169203949374878', '0.0169889800916751', '0.0168200981896078', '0.0166983649043365', '0.0169160836103067', '0.0169049146230597', '0.0172020140827875', '0.0172544859614827', '0.0168596984053201', '0.0170316986792703', '0.0167926783721753', '0.0169303102219324', '0.0169470697251848', '0.0169785680043656', '0.0169713491759485', '0.0168609210361233', '0.016910657531511', '0.0168641905785195', '0.0169026608557411', '0.017002157237797', '0.017056576353301', '0.0168407017181195', '0.0171230816037162', '0.0170056650570416', '0.0169474424146144', '0.0169244955685839', '0.0171115600016459', '0.0168694972570483', '0.0167703526170068', '0.0170216701042216', '0.016901836749513', '0.0170673187115242', '0.0170244000761134', '0.0168948935541682', '0.0167532385787514', '0.0169219944472036', '0.0167925835851213', '0.0168808996334135', '0.0168016955361912', '0.0170095228726826', '0.0168141370789144', '0.016859864413586', '0.0169525347312605', '0.0169839569014993', '0.0168162084291586', '0.0169273999277077', '0.0169807152889901', '0.0170102816927999', '0.0169689170064767', '0.0170848820718366', '0.0171890165607514', '0.0172478463290971', '0.0171135568140042', '0.016861817410934', '0.0170351581448981', '0.0171095326409737', '0.0169284916371655', '0.0167662697912137', '0.0169589875825269', '0.0169346709501011', '0.0170533392793984', '0.0170522329067499', '0.016856227418614', '0.0169100022265374', '0.0168937077559035', '0.0171910392082551', '0.0169340819786091', '0.0172338230819611', '0.0170901543616921', '0.0167868528959956', '0.0171335879543943', '0.0171073040105534', '0.0169701885145821', '0.0170029078535099', '0.0169215596137755', '0.0169346131701474', '0.0169591706978485', '0.0169375894487302', '0.0168295302870074', '0.016924547064313', '0.0169383559495664', '0.0167915482591228', '0.0170090248478852', '0.0169868139543769', '0.0168841494503271', '0.0172432628600796', '0.0172512663437595', '0.0166901924448404', '0.0170508184325355', '0.0169314384148052', '0.0170312671625162', '0.0167689058488605', '0.0171305203799934', '0.0168542409054016', '0.0171618674886609', '0.0170515112682947', '0.0172975114287112', '0.0169936038844669', '0.0169549054549809', '0.0169298114988878', '0.0170253563256194', '0.0168266819622194', '0.0170997161585044', '0.0168946802396562', '0.016992920125921', '0.016921162311133', '0.0169877344187152', '0.0169613225210795', '0.0170480064166006', '0.0169424862561673', '0.0169208393718146', '0.0171000242600703', '0.0170023016004004', '0.0168152008584853', '0.0168970548037361', '0.0170935871193654', '0.0170835660504739', '0.0168896237081778', '0.0169240319324598', '0.0171229468420115', '0.0169091491430516', '0.0171242712423403', '0.0169583039985427', '0.016980123873633', '0.0168419522788097', '0.0168699013676008', '0.0170141937971587', '0.0168653728855483', '0.0170303089928306', '0.0169958541605496', '0.0169007481821674', '0.0168055502097199', '0.016751384907064', '0.0170459629962434', '0.0171742067381729', '0.017009789952227', '0.017035314726827', '0.0170120934696568', '0.0168354903503301', '0.0170146720964735', '0.0168405631160553', '0.0169598953038541', '0.0170114023795155', '0.0169785282042766', '0.0170050780057293', '0.0167849335890737', '0.0170350095928116', '0.0167703564573663', '0.0168229929478329', '0.0170766078428147', '0.0169629183649976', '0.0170641607141142', '0.0169760169583123', '0.0169847640752334', '0.017033343924176', '0.0169504539546795', '0.0168980927481615', '0.0170428481155964', '0.0169532237266603', '0.0169255748841544', '0.0170238355432726', '0.017064109218385', '0.0168959845653789', '0.016870468169745', '0.0172003683141964', '0.0169669170520062', '0.0170209620815863', '0.0171222604650386', '0.0171542234277143', '0.0169524532109029', '0.017089563819144', '0.0169282528366317', '0.017089845561879', '0.0170309442231979', '0.0171422081648913', '0.0169198881846007', '0.0169923559422037', '0.0170145441426787', '0.0167905391173934', '0.0169942132796888', '0.0170522837042319', '0.016866790501875', '0.0168580034103032', '0.0170697227765472', '0.0168474858876703', '0.0171097497958451', '0.0168593377606543', '0.0169034298004424', '0.0170586911694318', '0.016946299558551', '0.016882736372607', '0.0172839598475418', '0.0170588570031359', '0.0169339589125446', '0.0171035821785497', '0.01705823067542', '0.0169105737418501', '0.0171094713697842', '0.0168824476474002', '0.0169520237888903', '0.0171060674148068', '0.0170696843729526', '0.0168485220864778', '0.0170749217504493', '0.0168917989226893', '0.0169097503338691', '0.0168361954054149', '0.016864311200719', '0.0169334457008711', '0.0173226382024216', '0.017014697931619', '0.0171750945594558', '0.0171205895595492', '0.0170395124142804', '0.017286882535654', '0.017103441481744', '0.0182295080172893'], 'SAMSN': '85C2', 'DarkPixelStart': '237', 'DarkPixelStop': '254', 'Firmware': '2.06', 'IDDataBack': 'DLAB_2018-07-02_16-15-52_275_586', 'IDDataCal': 'DLAB_2018-07-03_17-15-16_983_888', 'IDDataCalAQ': 'DLAB_2018-07-03_17-15-53_767_889', 'IntegrationTime': '0', 'Reverse': '0', 'SerialNo_MMS': '', 'c0s': '297.806', 'c1s': '3.3369', 'c2s': '0.000302696', 'c3s': '-1.83769e-06', 'c4s': '+0.000000000E+00'}, 'Esky': {'SN': '50ED', 'FUNC': 'Esky', 'TYPE': 'SAMIP', 'samsn': '859F', 'inifile': 'SAMIP_50ED_ALL.ini', 'calfile': 'Cal_SAM_859F.dat', 'calaqfile': 'CalAQ_SAM_859F.dat', 'backfile': 'Back_SAM_859F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.549282530081406', '0.621825635483575', '0.705214779700439', '0.782494923890489', '0.848306874043027', '0.952625287085828', '1.06364941208026', '1.17099618224932', '1.27964867192574', '1.37878597375063', '1.42771820575638', '1.4380590385421', '1.41583530083466', '1.35751030831315', '1.28801896577964', '1.23773169248486', '1.19003370359023', '1.16911032524399', '1.16789019991587', '1.17908641221467', '1.20561721452238', '1.24993325867368', '1.3042108426727', '1.37841324495146', '1.46663415660191', '1.55813913029349', '1.66686169700722', '1.78274771118438', '1.89315285694338', '2.00609300108623', '2.10386062632617', '2.18077321675475', '2.23620955735442', '2.266135432154', '2.26878990322214', '2.25797663538301', '2.22685859649013', '2.17776313289299', '2.1222752364519', '2.06098344374156', '1.99948809108821', '1.94462577242816', '1.8989381397134', '1.8637403074385', '1.84137175128878', '1.82996842025894', '1.82735603324287', '1.82819560800875', '1.82831225824908', '1.82476779554239', '1.82142520789599', '1.82469614734563', '1.83514598035505', '1.85423698694933', '1.88102853388183', '1.91679111910883', '1.95713305118927', '2.0033013266641', '2.05191276620812', '2.10100127704333', '2.15116215495783', '2.19982933350689', '2.24341508467426', '2.28026480621138', '2.30634686430023', '2.31796219508283', '2.31589695847203', '2.29809543158409', '2.2668387918562', '2.22596956700897', '2.17822422289454', '2.1262484698939', '2.07154274835781', '2.01784816285075', '1.9635850159156', '1.90957838150673', '1.85662335754133', '1.80118393109592', '1.74752896056537', '1.69458207285898', '1.64238998731142', '1.59255947952261', '1.55042463825823', '1.52145095482736', '1.50182839545807', '1.48602912306116', '1.47501182897849', '1.46801797625318', '1.46252443118698', '1.4571840542778', '1.44881752975571', '1.433373570625', '1.4106211402034', '1.38310053980989', '1.35343439202405', '1.32469024445085', '1.29921323938482', '1.2757042981125', '1.25356245928469', '1.23230080447944', '1.20776661327865', '1.18172190161938', '1.16211138784545', '1.14836490545677', '1.13698033747357', '1.12673020620722', '1.115430409999', '1.10428562795353', '1.0934141739792', '1.0851095103506', '1.08102444265095', '1.08007408967758', '1.08238869164072', '1.08781099449618', '1.09202496629142', '1.09279743926351', '1.08928198225434', '1.08099296127192', '1.06779395728469', '1.05125732218958', '1.03307124483462', '1.01642561672595', '1.0017478853335', '0.98877464388953', '0.978591382441999', '0.970432000434175', '0.962460675619692', '0.953651636148435', '0.943103023421902', '0.930554197290447', '0.915976069829803', '0.89827602173614', '0.878650755188226', '0.859108524352699', '0.840122962860222', '0.820853477964574', '0.803547895709764', '0.786651104537257', '0.769194844035412', '0.751217544779413', '0.731862968408631', '0.710478767970412', '0.687207420135085', '0.662469528888512', '0.636358233772055', '0.609121332586544', '0.580838486227566', '0.552767035926316', '0.525876935395925', '0.499896413074609', '0.475284681533185', '0.452387885405863', '0.431848904268036', '0.413013739466993', '0.395710805209202', '0.380181587532903', '0.365591896979342', '0.352105459639395', '0.339276260510366', '0.32616389487977', '0.313880254968568', '0.301213081346406', '0.28867892621412', '0.276332017077307', '0.263867205519659', '0.251559483539307', '0.239917175566115', '0.228872841726392', '0.218348838385983', '0.208663588155861', '0.199488791575245', '0.191252859631973', '0.183364916996847', '0.175877803627425', '0.169219899131997', '0.162866423884395', '0.156727192611269', '0.151124000714184', '0.145138407523578', '0.13971586046093', '0.134506608902369', '0.129059486722317', '0.124203168251957', '0.119075347065844', '0.113513221481262', '0.107843336832916', '0.101790305051534', '0.0961960826886135', '0.0914035900672732', '0.0868727278958915', '0.082573024301116', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '+NAN', '0.308009257704273', '0.348985396550329', '0.39611199753429', '0.43986968240828', '0.477232425339663', '0.536318311921194', '0.599255756896796', '0.660195405447511', '0.721940911560072', '0.778381764258939', '0.806518994572799', '0.812862184246214', '0.800779958731845', '0.768238986615194', '0.729324871828135', '0.701235591002145', '0.674572715683613', '0.663056816542841', '0.662699926877705', '0.669382520005193', '0.684772623825422', '0.710275115045633', '0.74145572495904', '0.783988164111933', '0.834525694448954', '0.886966821712609', '0.949247521262016', '1.01565043430167', '1.07897249264832', '1.14377888540009', '1.19997013476615', '1.24429313837597', '1.2763795229717', '1.29391228294411', '1.29587029284695', '1.29012478792631', '1.27276079346714', '1.2450982196578', '1.21375364521069', '1.17906121512383', '1.14422362714978', '1.11315509839511', '1.08731507394343', '1.06746197368796', '1.05494171300318', '1.04869254224893', '1.04747349722362', '1.04822757370139', '1.04856210675178', '1.04679141002185', '1.04513065036628', '1.04725995618916', '1.0535067386541', '1.06471361999517', '1.08034380002613', '1.10113009018595', '1.12455239246124', '1.15132895471663', '1.1795169782144', '1.20798673857183', '1.23708055274173', '1.26532262623006', '1.29064822236823', '1.31210337451311', '1.32736540301797', '1.33430139824988', '1.33335932325033', '1.32335113190924', '1.30558590461423', '1.28227321775146', '1.25498704776805', '1.22525023251367', '1.19392661641762', '1.16317225749886', '1.13207700011805', '1.10111674556499', '1.07075040366943', '1.03893893539784', '1.0081446443131', '0.97774721715577', '0.947774052897518', '0.919152947182789', '0.894963764571428', '0.87836395884067', '0.867156996532193', '0.858153034494107', '0.851906778357719', '0.847981268808314', '0.844919850173329', '0.841944554421527', '0.83721825473176', '0.828398944802337', '0.815351600734525', '0.799543228463232', '0.782489183888857', '0.765962841341892', '0.751320667184625', '0.737812095757199', '0.725090001717255', '0.712873061263532', '0.698758948036327', '0.683766639638848', '0.672493396285743', '0.664610527729123', '0.658092136872804', '0.652228157780532', '0.645754399378545', '0.639368207275896', '0.633138158063289', '0.628392493836991', '0.626088937445665', '0.625599854321674', '0.627001238574581', '0.630202545823175', '0.632703647598273', '0.633210363154327', '0.63123164301687', '0.626485370072314', '0.618891745640103', '0.609361448964366', '0.598872648152344', '0.58927447780469', '0.580815044730471', '0.573341941514821', '0.567484926926375', '0.562800136636572', '0.558223116403165', '0.553158922485434', '0.547084299354418', '0.539847820827437', '0.531432360197925', '0.521203701656628', '0.509855867118928', '0.498554054755033', '0.487573187562371', '0.476425489189536', '0.466415695619565', '0.456641365086098', '0.446540473657011', '0.436135290849149', '0.424928637592468', '0.412541586513936', '0.399056656796071', '0.384717912438278', '0.369579305401316', '0.353784632326527', '0.337380068381195', '0.321095903578543', '0.305495669126019', '0.290421643260465', '0.276140762920409', '0.262854333224098', '0.250936131068681', '0.240006392992584', '0.229965608856624', '0.220954309792884', '0.212487857424938', '0.204661532835082', '0.197216204057537', '0.189605277840326', '0.182475141050851', '0.175121099828465', '0.167843462384963', '0.160673785509465', '0.153434661065448', '0.146286002352245', '0.139523451810534', '0.133107862589632', '0.126994143420237', '0.121367561058691', '0.116037239577153', '0.111252442566666', '0.106669531239736', '0.102319284531729', '0.098450973344807', '0.0947593486764351', '0.0911919684356708', '0.0879361030612687', '0.0844573547823388', '0.0813058869947144', '0.0782782092672921', '0.0751117681314502', '0.0722888539254525', '0.0693076153913147', '0.0660732713239472', '0.0627758734115707', '0.0592551057473219', '0.0560010918166818', '0.0532135140872552', '0.0505779890461858', '0.0480767985810033', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0165892037855774', '0.0165122714877024', '0.0164973019224162', '0.0166164505683762', '0.0165490556826164', '0.0165598147795938', '0.0164974439463348', '0.0165638938670541', '0.0165295399561229', '0.0165679375357729', '0.0165135498774463', '0.0165496044113927', '0.0165162233817516', '0.0165748471564411', '0.0165168071803162', '0.016561615028724', '0.0165228899565738', '0.0165630265440819', '0.0165138880130166', '0.016557182975186', '0.0165155392591658', '0.0165657065040199', '0.016518681058554', '0.0165595148543898', '0.0165168741793146', '0.0165713147040385', '0.0165192898072665', '0.0165624174464164', '0.0165336104942318', '0.0165711529642688', '0.0165277786152653', '0.0165778362888406', '0.0165368341231259', '0.0165763434674064', '0.0165347332508855', '0.0165844704110229', '0.0165276158286362', '0.016561547855249', '0.0165227810832013', '0.0165862270410135', '0.0165383602695828', '0.0165776928691096', '0.0165375732058275', '0.0165658438170714', '0.0165459794864142', '0.0165800024153139', '0.0165525603932462', '0.0165907623846741', '0.0165508449397234', '0.0165903560287695', '0.0165476473078365', '0.0165857165226035', '0.0165481178711146', '0.0165957271151451', '0.0165507685189908', '0.0165883062781607', '0.0165548565047555', '0.0166030835702795', '0.0165500053585241', '0.0165961038100348', '0.0165517131350783', '0.0166133108627067', '0.0165473248751564', '0.0165983146025071', '0.0165525591719102', '0.0166064242729443', '0.0165435383848847', '0.0165950365369267', '0.0165586482293239', '0.0166092385798323', '0.0165697841956677', '0.0165967129077004', '0.0165732545344154', '0.0166026855892496', '0.0165687354170748', '0.0166129015407006', '0.0165534954131229', '0.0166168593669527', '0.0165646865140591', '0.0166018156491291', '0.0165586096700045', '0.0166129247460829', '0.0165712166482126', '0.0166143243970348', '0.0165701301826831', '0.0166189659969196', '0.0165676643054824', '0.0166299271377517', '0.0165751742999882', '0.0166072596667062', '0.0165629157514673', '0.0166089130065742', '0.0165693558557167', '0.0166203017894511', '0.0165698981288603', '0.0166107804291794', '0.0165637935430329', '0.0166245248200721', '0.0165754381085446', '0.0166166770389491', '0.01656780789969', '0.0166270111110302', '0.0165662229546329', '0.0166136421936913', '0.0165698424708382', '0.0166173691874565', '0.0165821997730911', '0.0166164975025705', '0.0165739878593907', '0.016623824645643', '0.0165631308810639', '0.0166247172677161', '0.0165669479047333', '0.0166042075482691', '0.0165806895040011', '0.0166075213815439', '0.0165708319274012', '0.0166233251192561', '0.0165772010196913', '0.016621139974838', '0.0165690780890356', '0.0166295818486425', '0.0165801878838955', '0.0166132293821539', '0.0165742146789166', '0.0166257485986531', '0.0165839324997932', '0.0166274820232614', '0.0165711257459257', '0.0166118375826471', '0.0165702390560556', '0.0166138555785223', '0.0165495885340259', '0.0166076853895089', '0.0165715106412136', '0.0165914878582042', '0.0165708420470416', '0.0166090042578143', '0.0165677817282062', '0.0166140523880802', '0.0165772907006423', '0.0166172060518744', '0.0165733789362016', '0.0166208616847272', '0.0165699940909675', '0.0166094990733341', '0.0165568282643426', '0.0166152531357555', '0.0165675189665092', '0.0166057366608274', '0.0165695308557048', '0.0165973481768498', '0.0165636400036615', '0.0166118299056785', '0.0165665354421491', '0.0165949780872796', '0.0165594520428288', '0.0166050473039449', '0.0165700478297475', '0.0166062033856213', '0.0165620390067611', '0.0165990297819202', '0.016574294763657', '0.0165960321001693', '0.016567221483977', '0.0166072507684017', '0.0165554031398131', '0.0166002793830319', '0.0165516576515327', '0.0166026362123836', '0.0165560230550254', '0.0166113124082061', '0.0165672890064051', '0.016604050693843', '0.0165640243755198', '0.0166057021144688', '0.0165508046356384', '0.0165935180674385', '0.0165675029146658', '0.0165893028882626', '0.0165492090475113', '0.0165956159735774', '0.0165528561310127', '0.0166073952349921', '0.0165463099450159', '0.0166001891786512', '0.0165482056328235', '0.0165952621351168', '0.0165536456374398', '0.0165997360630289', '0.0165524916494821', '0.0165986206343906', '0.0165521507222869', '0.016599824522644', '0.0165434263709342', '0.0166010940140834', '0.0165431388335659', '0.0165863373101985', '0.0165434326520903', '0.0166064767903884', '0.016561522556148', '0.0165987263671851', '0.0165499257972134', '0.0165839637310972', '0.0165457994266058', '0.0165795458101604', '0.0165524665248577', '0.016595737060309', '0.0165466772181714', '0.0165879578484734', '0.0165430683450362', '0.0165948067512992', '0.0165396531408809', '0.0165652856665609', '0.0165523227561735', '0.0165783818770389', '0.0165503544861175', '0.016572293692008', '0.0165450638334354', '0.0165749698134617', '0.01655305398743', '0.0165967214570518', '0.0165454616399886', '0.0165946692637712', '0.0165392806334286', '0.0165890797327443', '0.0165355112418597', '0.0165804930433963', '0.0165460245013662', '0.0165847202614547', '0.0165448417247764', '0.0165611542361331', '0.0165515342966058', '0.0165765880835414', '0.0165339756736686', '0.0165878632821788', '0.0165440089481629', '0.0165963711081224', '0.0165516928957975', '0.0165934388550809', '0.0165544309564294', '0.0165877533619469', '0.0165399865655842', '0.0165907330726123', '0.016550628937744', '0.0166034288593887', '0.0165659505967252', '0.0166105647761531', '0.0165655829746165', '0.0166172674676229', '0.0165796119367761', '0.0166424952076873', '0.0166246136286404', '0.0167334388455894', '0.0171297295465388'], 'b1': ['0.018605511502516', '0.0184837131056956', '0.0183851120510798', '0.0184840774161591', '0.0185292503425739', '0.0186302980552904', '0.0183759157866635', '0.0186312056020559', '0.0185970883722841', '0.018610557385725', '0.018696732782741', '0.0185527901750176', '0.0184841121539561', '0.0185602766066645', '0.0183555554227304', '0.0185179326286786', '0.0185996666499772', '0.0186817794703681', '0.0184706934143117', '0.0185104139030999', '0.0185717901788923', '0.0185864488309574', '0.0184904599190226', '0.0185467707606851', '0.0185513739551852', '0.0186439978394227', '0.0185915799003217', '0.0186942077463949', '0.0186620183770728', '0.0186390987626822', '0.0185678106936811', '0.0186122998615499', '0.0184338018739524', '0.0186563994074951', '0.0186582494133848', '0.0184381484626158', '0.0187957369005385', '0.0184585601477162', '0.018382363401076', '0.0185619393077496', '0.0188072553604966', '0.018482204891798', '0.0185649745882186', '0.0189122127337069', '0.0186279875553889', '0.0184615582465232', '0.0185698745377681', '0.0185120261558266', '0.0184379972921025', '0.0185804266236362', '0.0185466583428899', '0.0185885491584593', '0.0184078979511364', '0.0184049089295427', '0.0184970417714545', '0.0184417327399261', '0.0183843069720872', '0.0185357707492544', '0.018271672720313', '0.018684147226538', '0.0187957920620654', '0.0182829548236024', '0.0184118543941909', '0.0184413151881155', '0.0184057733595452', '0.0182871827102461', '0.0183972310036081', '0.0185852110132782', '0.0183187237570663', '0.0184794824260633', '0.0185034061198914', '0.0181402547467266', '0.0184165518520597', '0.0183788985240326', '0.0181609569026518', '0.0186252303518572', '0.0183105499010758', '0.0181418076484435', '0.0183057028437498', '0.018502016957137', '0.0184040678908206', '0.0184980723842845', '0.0184303921584359', '0.0185389638335849', '0.0182085812003356', '0.0184602108040376', '0.0184275042081207', '0.0185323186152219', '0.0182322636497648', '0.0183371464850892', '0.0182259586523378', '0.018483065481441', '0.0182905728748417', '0.0184016187888549', '0.0183132295991711', '0.0181924879994499', '0.0184099916452902', '0.0187024550929006', '0.0183715293979111', '0.0183022039271567', '0.0184077949596782', '0.0183611756142407', '0.018411879705651', '0.0183403743072167', '0.0184016243748323', '0.0184520221102946', '0.0183486391099018', '0.01861046347148', '0.0185649627180167', '0.0184582639163523', '0.0186787228933602', '0.0185190477294169', '0.0186510274428554', '0.0186025957968757', '0.0183767100428249', '0.0183237705130843', '0.0183277608211268', '0.0185572685578353', '0.0184446809140601', '0.0186042166031303', '0.0186733833972142', '0.0186773335560441', '0.0184308924525366', '0.0186073100126766', '0.0183468275076066', '0.0185506345114271', '0.0186062746866781', '0.0184876664066378', '0.0182968567502917', '0.0184814123812545', '0.0186338901878814', '0.0185727479994544', '0.0184737700659259', '0.0185519168423637', '0.0184109360245942', '0.0186137698464147', '0.0184927182249478', '0.0183322589294271', '0.0184634239629744', '0.0185381407747276', '0.0183129747389523', '0.018566407740545', '0.0184619363473684', '0.0185385801467623', '0.0184219012982279', '0.0184126872285087', '0.0186440826764544', '0.0184714934310123', '0.0186275679088368', '0.0184197444127049', '0.0184460824707018', '0.018243945325', '0.018415498022511', '0.0184500097619367', '0.0185133976878398', '0.0184093356420695', '0.0185570035730324', '0.0186677780434563', '0.0187476308123041', '0.0184833070749635', '0.0183987680202018', '0.0183971864903508', '0.0184699862644854', '0.0186248246702486', '0.0185793174579989', '0.0187341727962561', '0.0185118727160099', '0.0185141533658448', '0.0185683596905223', '0.0185158860662092', '0.0183562021741761', '0.018351702145696', '0.0183285858001638', '0.0184325741808572', '0.0182299784613234', '0.0183180300484981', '0.0186951084852505', '0.0184788363728647', '0.0183958849576168', '0.0184240855899527', '0.0185323332784126', '0.0186074587393249', '0.0186410439047495', '0.0184129410413568', '0.0183934452819879', '0.0185733495393955', '0.0185109349700541', '0.0185722325184776', '0.0184577447695778', '0.0184457087339014', '0.0183168259212451', '0.0184703884548581', '0.0184217183574681', '0.0185029386434078', '0.0186379566048659', '0.018342027581965', '0.0184254820843023', '0.0186074793376165', '0.0184241568111645', '0.0182465302360413', '0.0184340305499022', '0.0186743681002925', '0.0184118549178763', '0.0184971573313619', '0.0183981095731159', '0.018496162154576', '0.0184611797965545', '0.0186299800037023', '0.018466689839573', '0.0186946017323634', '0.0185245357776493', '0.018476103782546', '0.0182796915654308', '0.0185767679830018', '0.0183549425362727', '0.0183019200896801', '0.0185407187032971', '0.0184576592342989', '0.0184396004676159', '0.0183728665412509', '0.018711382183031', '0.0185027394684012', '0.0184419015411806', '0.0184852501222893', '0.0186597281263393', '0.0187948452388963', '0.0182642088071376', '0.0186078693086637', '0.0186437127800135', '0.0185804302894338', '0.0185832597615481', '0.0185230038233477', '0.0187595940557125', '0.0185726041605364', '0.018819251596084', '0.0186927800054842', '0.0187059691963698', '0.0186125063681518', '0.0187091867193515', '0.0187669087185543', '0.0187420275532877', '0.0185165169325316', '0.0184496782690904', '0.0184827699483242', '0.0184833114390083', '0.0188096297500146', '0.0186457825592016', '0.0186986550572133', '0.018635516056428', '0.0185666859920442', '0.0185794000257273', '0.0185533461543306', '0.0186423201260233', '0.0186220849228963', '0.0196555486961812'], 'SAMSN': '859F', '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', 'IPSN': 'C121', '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'}, 'Lwater': {'SN': '852F', 'FUNC': 'Lwater', 'TYPE': 'SAM', 'samsn': '852F', 'inifile': 'SAM_852F.ini', 'calfile': 'Cal_SAM_852F.dat', 'calaqfile': 'CalAQ_SAM_852F.dat', 'backfile': 'Back_SAM_852F.dat', 'cal': ['+NAN', '+NAN', '+NAN', '+NAN', '0.099081925071204', '0.107353085872454', '0.113070264290883', '0.114376499819276', '0.116544285861757', '0.1185169696214', '0.121561138979849', '0.126964155564462', '0.134364254054539', '0.144053858633949', '0.154882735476408', '0.16719673162462', '0.181437615712041', '0.194237970806716', '0.20386154720656', '0.211556336359081', '0.211417859085921', '0.208790218500257', '0.20437467341685', '0.198246352046376', '0.192966396099738', '0.18897229193584', '0.186243043953596', '0.18578727224224', '0.187114583931684', '0.189090911319999', '0.193600418301244', '0.200054490546523', '0.208072057884887', '0.218285958582262', '0.230634876630779', '0.243459214546046', '0.257752719558026', '0.272580246630834', '0.286712281491418', '0.300342726342385', '0.312249154496702', '0.321331680226083', '0.327112591435919', '0.329469692698771', '0.327542874308678', '0.322985767437387', '0.316224456423823', '0.308782990589082', '0.301183418606427', '0.293575702556702', '0.286696408065096', '0.280798842600295', '0.275808444038661', '0.271299340181449', '0.266225534078626', '0.260785177597799', '0.255342424416527', '0.250947812402455', '0.24777514930692', '0.246247860756574', '0.246092032695547', '0.247219177075727', '0.249675195006791', '0.253195744885965', '0.257788026175471', '0.26369589320837', '0.270555680751329', '0.277823002163503', '0.284937579021833', '0.291097253127256', '0.296043211270752', '0.299540235735164', '0.301795150475552', '0.303069111244916', '0.30355995799167', '0.303606664702465', '0.303007474849756', '0.302001653949665', '0.300361927400822', '0.297986890885497', '0.295325565249305', '0.291656567474701', '0.287335862742648', '0.282306131698578', '0.276702242286357', '0.270280607979823', '0.263050805729498', '0.255009286552014', '0.247098798503932', '0.2398191835424', '0.23466817932016', '0.230585310303585', '0.227279061892254', '0.224693206022759', '0.222993136629962', '0.221791418806722', '0.220695274517678', '0.219442816624831', '0.217000405185694', '0.213283732282521', '0.208384750595562', '0.202985389753009', '0.197924660371165', '0.193409646692029', '0.189628652821804', '0.186318519164064', '0.183315563032657', '0.180098687261504', '0.176492614557115', '0.172650422408531', '0.168979191040057', '0.166106531649937', '0.163622827054655', '0.161570328667133', '0.159693607722301', '0.157690305409947', '0.15544650006387', '0.153185383511044', '0.150954772341381', '0.148960802743881', '0.147350785081686', '0.146182367433256', '0.145312879880878', '0.144781245193999', '0.14473607505965', '0.144976432177203', '0.145464936657928', '0.145889790468872', '0.146174517595681', '0.14615421098877', '0.145743119998859', '0.144922809795091', '0.143805231938307', '0.142492952453543', '0.141053445832183', '0.139720571628269', '0.138186469198598', '0.136919534961634', '0.135732624874463', '0.134597268963386', '0.133432724955799', '0.13211501546202', '0.130478475600008', '0.128290801143951', '0.125726707508103', '0.122634784100445', '0.119472073398083', '0.116199128230447', '0.112813911251756', '0.109547291781198', '0.106268392530964', '0.10313443150471', '0.100113578226984', '0.097073834113113', '0.0941199411272616', '0.0911853891891621', '0.0882319764053268', '0.085267274530049', '0.0822333903307463', '0.0792187073154596', '0.0760907077820793', '0.0728848234132589', '0.0697048920692252', '0.0665600438164166', '0.0635411651500916', '0.0606319242880778', '0.0578670530064308', '0.0553155735461356', '0.0529193006810867', '0.050722718025932', '0.0486788470977319', '0.0467747209472673', '0.0450423813898501', '0.0434307741189043', '0.041915712424757', '0.0405250313895705', '0.0390895391040532', '0.0377897158697839', '0.0365016922380464', '0.0351788001916396', '0.0338645937424847', '0.0325302009051183', '0.0312848146149282', '0.0300375958148976', '0.0288302935207691', '0.027652203865544', '0.0264621566936286', '0.0252688692008588', '0.0241226625595337', '0.0229255436965288', '0.0217207281738409', '0.0205701146867025', '0.0193892949195812', '0.0183936626191952', '0.017494647116465', '0.0167605279940225', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'calaq': ['+NAN', '+NAN', '+NAN', '+NAN', '0.0757791569140749', '0.0831133762408903', '0.0873256015093429', '0.088798490578607', '0.0893180250587088', '0.0912184306930603', '0.0934315009445713', '0.0978927038642625', '0.10316713605413', '0.111042352696646', '0.119482024262908', '0.129446496806651', '0.140324929207819', '0.149929004563169', '0.157951375798488', '0.163167079267684', '0.163684554455683', '0.161710955408623', '0.158158176144384', '0.153120816765498', '0.149159625705894', '0.146361065436421', '0.144318454214309', '0.144129633718655', '0.144738939517372', '0.146583353055999', '0.149927549178646', '0.154781330782628', '0.161281049713208', '0.169324782015295', '0.178566729488516', '0.188750791302883', '0.199826540979236', '0.211193704798505', '0.222305048038871', '0.232787040612667', '0.242185638548782', '0.249199329450493', '0.253905646769863', '0.255480704613068', '0.254086308176615', '0.250712203525897', '0.245637528877396', '0.239859851966525', '0.233843628655063', '0.228059104546805', '0.222661940533832', '0.218199567518201', '0.214240155949967', '0.21061280671042', '0.206823867975479', '0.202504211638902', '0.198378089686984', '0.195008429198418', '0.192596053511712', '0.1913409806608', '0.191204589224151', '0.191982450755957', '0.193875999271111', '0.196568015329539', '0.200197325412529', '0.204781342874412', '0.210052890237844', '0.215505542064364', '0.22102191587617', '0.225647984382987', '0.229501509141454', '0.232213608637945', '0.233859853462842', '0.234864695710533', '0.235347731196379', '0.235169523165461', '0.2348286160222', '0.23395735104209', '0.232593294508701', '0.230910869907075', '0.228844605598996', '0.226021135136259', '0.222713212172475', '0.218813740820075', '0.214437631947854', '0.20945948892298', '0.203847193841702', '0.197707092492944', '0.191556734852924', '0.18600061167507', '0.181873354953207', '0.178782316057322', '0.176167924779435', '0.174141863608666', '0.172744990342331', '0.171801376758966', '0.170954015345458', '0.169960140045412', '0.168049955384139', '0.165224777136175', '0.161531979240228', '0.157405412608478', '0.153570487964493', '0.150141271545146', '0.14725256652001', '0.144660342475923', '0.142269456600007', '0.139762314536934', '0.136963054606891', '0.133984343960448', '0.131197679174342', '0.129003116254732', '0.127069994503092', '0.125436648144931', '0.12397269238396', '0.122419985358787', '0.120693422850158', '0.118931546980571', '0.117166660339047', '0.115631793601506', '0.114393230429202', '0.113425752529033', '0.112707849783804', '0.112359222280159', '0.11219082672674', '0.112343608199868', '0.112664705152637', '0.112877954686814', '0.112998494144185', '0.112887922565457', '0.11253063359053', '0.111841159102354', '0.110997003525569', '0.109948198155768', '0.108874849717231', '0.107795318097265', '0.106637360724801', '0.105678694194695', '0.104756017092462', '0.103825430274706', '0.102939456306441', '0.102001186921616', '0.100737446991222', '0.0991453606719906', '0.0971498679860747', '0.0948117209915638', '0.0924075366042346', '0.0899484551808979', '0.0873520434504222', '0.0848497958878303', '0.0823900490277647', '0.0799786063537234', '0.0776610830064481', '0.0752837851752474', '0.0729604964467151', '0.0707262742573907', '0.0684046065784823', '0.0660274200992436', '0.0636252573638505', '0.0612270512870042', '0.0587905905539405', '0.0563195707029216', '0.0538582650571118', '0.0514203967394221', '0.0490721477077881', '0.0468328465329872', '0.044723244642693', '0.0427398639178554', '0.0408841538190041', '0.0391762093418711', '0.0375882143782858', '0.0361234008364646', '0.0347811387811729', '0.0335210387242261', '0.0323747022105674', '0.0312594345687719', '0.030174948252246', '0.0291339080526091', '0.0281312995576928', '0.027138393963344', '0.0260756668210364', '0.0250906058668046', '0.0240551778532538', '0.0230712653382013', '0.0221310389230639', '0.0211757703478467', '0.0202209094313405', '0.0192572613107586', '0.0182920464007378', '0.0172950661682144', '0.0163207919630062', '0.0153269728531649', '0.0143853788804443', '0.0135213976548868', '0.0127456574145877', '0.0120278700767597', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN', '+NAN'], 'b0': ['0.0181271394490075', '0.0179948670252732', '0.0180195207374602', '0.0181005261905924', '0.018089553708784', '0.0180460947386496', '0.0180426749981038', '0.0180534564280807', '0.0180790359128869', '0.0180635226786445', '0.0180649523395645', '0.0180630058790784', '0.0180600544336154', '0.0180597668962471', '0.0180588020408788', '0.0180498552319141', '0.0180704773142647', '0.0180562171706652', '0.0180717635554537', '0.0180430410499234', '0.0180523488508876', '0.0180618142041841', '0.0180579205853055', '0.0180626933915622', '0.0180613022899616', '0.0180574472304024', '0.0180710633810246', '0.0180638238251844', '0.0180615148024098', '0.0180669541091198', '0.0180750465063777', '0.0180621163975833', '0.0180742925931686', '0.0180599654505706', '0.0180625609638543', '0.018079003460247', '0.0180789446616468', '0.0180641596925595', '0.0180789860125912', '0.0180726758933779', '0.0180883707577176', '0.0180761767655234', '0.0180788425928601', '0.0180748167207502', '0.018087924097728', '0.0180769134055532', '0.0180908061015206', '0.0180821035597377', '0.0180826006434528', '0.0180812086694694', '0.0180992416941691', '0.0180889166948691', '0.0180883470289057', '0.0180961206574913', '0.0180961166445305', '0.0180882432153534', '0.0180960383045557', '0.0180981065496797', '0.0180892262162838', '0.018090062656905', '0.0181151497688632', '0.0180994168686337', '0.0180945880554018', '0.0181024354875717', '0.0180812022138367', '0.018095840622615', '0.0181047246200187', '0.0180913783846324', '0.0181042299789754', '0.018097802960468', '0.0180910716548426', '0.0181013286082848', '0.0180952437383085', '0.0181025522123893', '0.0180982995207534', '0.0180837411967154', '0.0181112380044225', '0.0181073538072781', '0.018103745283096', '0.0180962696604722', '0.0181080471771214', '0.0180900361364681', '0.0181011494208593', '0.0181086649986149', '0.0181182547536976', '0.0181057997445719', '0.0181089392757648', '0.0181055429150778', '0.0181146218027973', '0.0181128730242519', '0.0181162224507446', '0.018127437978399', '0.0181252793544177', '0.0181109518628667', '0.0181264111838525', '0.018109165222908', '0.0181143328696165', '0.0181233651720949', '0.0181237422159377', '0.0181142894249535', '0.0181268594141312', '0.0181223244194237', '0.0181331201564784', '0.0181055589669212', '0.0181385395728607', '0.0181050559510032', '0.0181237826944993', '0.0181113664191696', '0.0181140599882791', '0.0181137768128247', '0.0181257021111189', '0.0181361358093148', '0.0181222916178307', '0.0181118017381829', '0.0181256476744327', '0.0181248496186543', '0.0181254770363585', '0.0181331583668447', '0.0181230066227672', '0.0181144363342157', '0.0181321676889458', '0.0181179351126425', '0.0181364284065034', '0.0181453949313192', '0.0181325621804444', '0.0181156688366246', '0.0181297948077507', '0.0181383919656923', '0.0181374979478067', '0.0181199012889798', '0.0181422937849691', '0.0181196791803209', '0.0181355928382649', '0.0181084210803862', '0.018133168137532', '0.0181404589894803', '0.0181418954549861', '0.0181177946590129', '0.0181147076452641', '0.0181089181641013', '0.0181443674388664', '0.0181377502409103', '0.0181289850620429', '0.0181158340659255', '0.0181305586661236', '0.0181270701818138', '0.0181084884283378', '0.0181265399475526', '0.0181359089897888', '0.0181099418180697', '0.0181312042293899', '0.0181193782082575', '0.0181291396482737', '0.0181114958807759', '0.018131541667054', '0.0181167600130213', '0.018133784563213', '0.01811013496362', '0.018139256671516', '0.0181215378790981', '0.0181241962039428', '0.0181255386265836', '0.0181152391008612', '0.0181239868320727', '0.018128921378099', '0.0181191986718789', '0.0181302022105147', '0.0181156925654366', '0.018128299020215', '0.0181149622065629', '0.0181265924649967', '0.0181200464534764', '0.018134817115486', '0.0181138528846042', '0.0181302275096157', '0.0181219730236349', '0.0181227435121171', '0.0181128882037125', '0.0181298839652721', '0.0181217728990224', '0.0181271213034454', '0.0181002302783493', '0.0181198512142075', '0.0181077788321745', '0.0181113704321304', '0.0181110165936699', '0.0181200574454996', '0.0181026958065969', '0.0181267051768535', '0.018099050467861', '0.0181217983725999', '0.0181250125797599', '0.018113538826799', '0.0181123129544992', '0.0181229691103072', '0.0181081715789076', '0.0181231769118883', '0.0181145502674084', '0.0181123405217955', '0.0181137211548025', '0.0181167594895916', '0.0181050918931742', '0.0181182652222911', '0.0181006336681525', '0.0181259247432075', '0.018101253059935', '0.018119688602055', '0.018109630726366', '0.0181146952574284', '0.0181041917686091', '0.0181114787820732', '0.0181135109105496', '0.0181156468525783', '0.0180992396004504', '0.0181260718269463', '0.0181003136781442', '0.0181070481243477', '0.0181074850136501', '0.0181076732738566', '0.0181037805273608', '0.0181054610855719', '0.0180953817492662', '0.0181251186615074', '0.0181015350140535', '0.0181170220768121', '0.0180958751689736', '0.0181153706561862', '0.0181087792807607', '0.0181190203568361', '0.0181090340165361', '0.0181264401469612', '0.0181213607853913', '0.0181053968781984', '0.0181112694102031', '0.0181143349633352', '0.0181028416689998', '0.0181058145750794', '0.018112246653407', '0.018102646778684', '0.0181018787328736', '0.0181089858610059', '0.0181129695097887', '0.0181304682872664', '0.0181118867082669', '0.0181302966023328', '0.0181224601621861', '0.0181439211278299', '0.0181333813478864', '0.0181515932110585', '0.0181361972250634', '0.0181645852590311', '0.018168622995547', '0.0182029242145575', '0.01826668143855', '0.0187321041138753'], 'b1': ['0.0246216519286131', '0.024510637261161', '0.0246496004937187', '0.0246158903420498', '0.0244170047588795', '0.0245126709060577', '0.0246256846551714', '0.0247016785610073', '0.0245795106168697', '0.024601391414026', '0.0247430929974417', '0.0246690990460763', '0.0246595979967682', '0.024549218035998', '0.0245417076893854', '0.0249321420235364', '0.0245095865737246', '0.0245109975567032', '0.0246271043662396', '0.0249088567021879', '0.0244657876231882', '0.0248177038501861', '0.0247746806522609', '0.0246467759093347', '0.0244827044066167', '0.0246539416709665', '0.024721638131062', '0.0244816703025508', '0.0248143197952532', '0.0247325126325631', '0.0245241834309148', '0.0244880571694591', '0.0247891481591618', '0.0245174540737672', '0.0248839095525633', '0.0244844522938572', '0.024819053561975', '0.0246153722426461', '0.0244569738236619', '0.024594164032081', '0.024739169721128', '0.0246157473759408', '0.0245033974853286', '0.0247480762129667', '0.0246028704761041', '0.0245055458173238', '0.02469614722145', '0.0244073975760008', '0.0245040215437411', '0.0244248794159556', '0.0244697287048048', '0.0246472875499521', '0.0246650067939463', '0.0244401485106133', '0.0243791267698239', '0.0246499286698909', '0.0243780806209942', '0.0247780093711051', '0.0247202135322636', '0.0245516643449751', '0.0244492274695042', '0.0246700816544131', '0.0246774251199509', '0.0245070955769284', '0.0246320020464858', '0.0244041100537399', '0.0245954472358265', '0.0243854736620815', '0.0245493665880845', '0.0247136054955626', '0.0246331129577409', '0.0247415952572516', '0.0248944354541623', '0.0247328998106215', '0.0246575704615342', '0.0247710366748172', '0.0247250916615888', '0.0247268100478861', '0.0248027810861271', '0.0248363912138882', '0.0249100102065207', '0.0245452771289432', '0.0246815472221476', '0.0246684887780455', '0.0248864084046402', '0.024731509076811', '0.0246692868745663', '0.0245807166643024', '0.0247555966841634', '0.024710914276389', '0.0247437058838994', '0.0247758020372237', '0.0244627418690115', '0.0246814871728906', '0.0246144002825787', '0.0247326369205602', '0.0247778595970861', '0.0250858798171903', '0.02491093660596', '0.0248098248290651', '0.0248231980080813', '0.0247223508668658', '0.0247285340201608', '0.0245271073409594', '0.0246145044959695', '0.0247301532553592', '0.0247854968501228', '0.0249164176717207', '0.0248323871154641', '0.0245063201734407', '0.0249895534773082', '0.0247316035147414', '0.0250480786353239', '0.0245604978699841', '0.0248995078707639', '0.0247918838915929', '0.0246323141629729', '0.0246174315481265', '0.0245240120112333', '0.0247643169185683', '0.0246655463644507', '0.024543567994421', '0.0246558676112366', '0.0245943996905025', '0.0250753080058395', '0.0250045579362867', '0.0246554029277417', '0.0250264155167244', '0.0246469593737799', '0.024665052703698', '0.0248279473108028', '0.0246961217354281', '0.0245553355540586', '0.0245557204628138', '0.0247270518159704', '0.0247966155635732', '0.0247140158903397', '0.0247626610253931', '0.0248185803249523', '0.024609407466155', '0.0247364268316634', '0.0246575409605911', '0.0248112543155938', '0.0245781406559126', '0.0247824863574285', '0.0246500847281345', '0.0247009649523946', '0.0248219430833464', '0.024708337569752', '0.0246372621170157', '0.0247286281089676', '0.0245687148427376', '0.0244441117615777', '0.0246077550642157', '0.0247010606122576', '0.0247215691791535', '0.0245714196777312', '0.024795434478477', '0.0244320022353862', '0.0247462735133231', '0.0246903013215404', '0.0245514873393163', '0.0245751469211505', '0.0246573018109337', '0.0244665511564739', '0.0246441606245413', '0.0244944379267046', '0.0247590790173862', '0.0244953459971555', '0.0247222716158114', '0.0246553421802375', '0.0246119307568831', '0.0246354342804737', '0.0243070187840778', '0.0247393772751007', '0.0245134415963769', '0.0247120136665658', '0.0245733489346753', '0.0244120664057354', '0.0245414062211677', '0.0248899691161084', '0.0246153303478156', '0.0247247613906751', '0.0246353044064992', '0.0248533992931349', '0.0244737232023303', '0.0247406206787574', '0.0245452593236402', '0.0245186117675831', '0.024411721471631', '0.0246871115538839', '0.0245525059073826', '0.0247245782753535', '0.0246827284818056', '0.0247343388980489', '0.0248475752134495', '0.024459163701364', '0.0247058137553385', '0.0246986457244034', '0.024567998615698', '0.0243962081650239', '0.02490341386546', '0.024537072550077', '0.0244906673919604', '0.0245997164936153', '0.0246575069210413', '0.0242198948182748', '0.024409780344485', '0.0242338197871209', '0.0244076180475463', '0.0245564188845504', '0.0246008453847352', '0.0245239058776628', '0.0246243248187984', '0.0246248141155061', '0.0243052663582307', '0.0245985008452839', '0.0243217586073769', '0.0246622282938758', '0.0246268287331674', '0.0244327690853459', '0.0245608707339754', '0.0244063069139137', '0.0246343666605434', '0.0244305303303416', '0.0247014261446536', '0.0246118652962104', '0.0246281107149804', '0.0246470772029907', '0.0247607972291217', '0.0247295342592388', '0.0246461279359564', '0.0245565616760977', '0.0244480411475541', '0.0245717391258137', '0.0246028116487796', '0.0248620650642601', '0.0244563693161703', '0.0245400739655581', '0.024658254394642', '0.0247536939606119', '0.024581995678565', '0.024518225986019', '0.0249431329577538', '0.024793957860264', '0.0246779200026361', '0.0246277942344484', '0.0245882612250266', '0.0245443142460891', '0.0244427728726199', '0.0245225095578749', '0.0246755827947801', '0.0244593372157869', '0.0246154502717679', '0.0255941653568822'], 'SAMSN': '852F', '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'}} + +def my_init(): + ''' 写个handle 类处理''' + cfg = mycfg.cfg + calcfg = mycfg.cal_cfg + device_id = 2 - def setDeviceID(self, did:int): - self.device_id = did - - def setDeviceType(self, device_type): - self.device_type = device_type - - def getErrorInfoDict(self, ): - return self.error_result - - def printResult(self,): - log.info( f"***** : Print Lsky Esky Lwater Lw Rs......", __name__ ) - print(self.res[self.device_enum(1)]) - print(self.res[self.device_enum(2)]) - print(self.res[self.device_enum(3)]) - print(self.res[self.device_enum(4)]) - print(self.res[self.device_enum(5)]) - pass + aw = AWRAMS( deviceid=device_id) + + aw.set_cfg_calibration(calcfg) + aw.config_awrams(cfg) - def printTest(self,d,sleep_time:int=5): - log.info( f"***** : I am testing ********", __name__ ) - print(d) - log.info( f"***** : Ending testing ********", __name__ ) - time.sleep(sleep_time) - pass -if __name__ == "__main__": - # hh = HandHeld() - # hh.getDataFileList() - # hh.dealAllMeasurements() - - # data/2023_02/07/sensor/14_02_46 - # hhb= HandHeldBuf() - # hhb.readFile2Buf("data/2023_02/07/sensor/14_02_46") - # hhb.decode_handheld() - # print(hh.error_result) - # print("======") - # print(hh.filelist) - # print( hh.getDataFname() ) +if __name__ == '__main__': - # t = b'\x07' - # print( int(t[0])) - # print( 2 << int(t[0])) - - - pass - - # def dealOneGroup(self, ): - # # 分组,并获得平均值, 255个未插值结果 (依据 measurement_interval measurement_repeat) - # self.getAvg( self.intensity_before_avg ) - - # # 插值 - # self.real_wavelength = self.getWavelenthDict() - # self.__do_sensor_dict_interpo() - - # self.ymdhms = "20"+ str(self.info_dict['year']) + '_' \ - # + str(self.info_dict['month']) + '_' \ - # + str(self.info_dict['day']) + '_' \ - # + str(self.info_dict['hour']) + '_' \ - # + str(self.info_dict['minute']) + '_' \ - # + str(self.info_dict['second']) - - # self.output_path = self.output_path.joinpath( self.ymdhms ) - # self.appendSave() - - # def dealOneHandheldMeasurement(self, fpath:Path): - # '''handheld一次测量包含多组数据''' - # # 调用handheldbuf 处理,将一组数据提交出来 - # log.info(f" 手持一个文件,多组测量数据", __name__, "dealOneHandheldMeasurement") - # if len(self.filelist)<1: - # pass - - # # 当前文件名 - # self.output_path = OUTPUT_DIR - # self.current_filepath = fpath - # self.current_measure_time = self.hhp.getCurrentMeasureTimeFromPath(fpath) - # self.ymdhms = "20"+ str(self.info_dict['year']) + '_' \ - # + str(self.info_dict['month']) + '_' \ - # + str(self.info_dict['day']) + '_' \ - # + str(self.info_dict['hour']) + '_' \ - # + str(self.info_dict['minute']) + '_' \ - # + str(self.info_dict['second']) - # self.output_path = self.output_path.joinpath( self.ymdhms ) - # log.debug(f"current_measure_time: {self.current_measure_time}", __name__, "dealOneHandheldMeasurement") + # my_init() + ah =AwramsHandle( 2, Acfg.cfg, Acfg.calcfg) + fpath = Path.cwd() + # t= ("data", "2","2002","8", "17","51", "info.bin") + # t= ("data" ) + fpath = fpath.joinpath('data\2\2022\8\17\51\0.bin') + # fpath = fpath.joinpath( *t ) + # ah.read_one_folder_awrams_online(fpath) + if fpath.exists(): + print(" 00000000000000000000000") + else: + print("1111111111111111") - # self.hhb.readFile2Buf(fpath) - # log.debug(f"buf: {self.hhb.get_buf_size()}", __name__, "dealOneHandheldMeasurement") - # self.decode_sensor_buf() - - # # 解析Buf, 对buf分组,获得[{lsky: esky : lwater} .... ] - # len_total = len(self.intensity_before_avg) - # if len_total%self.measurement_repeat != 0: - # self.res = {} - # return # 返回退出 - # group_num = int(len_total/self.measurement_repeat) - - # log.info(f"group_num...: {group_num}", __name__, "dealOneHandheldMeasurement") - # self.real_wavelength = self.getWavelenthDict() - # if group_num == 1: - # self.dealOneGroup() # self.intensity_before_avg - # return - - # self.dealMultiGroup(group_num) + # ah.read_one_folder_awrams_online(fpath) - # def dealMultiGroup(self, group_num:int ): - # log.info(f"group_num: {group_num}", __name__, "dealMultiGroup") - # # 分组进行处理 - # for i in range(group_num): - # self.current_group_num = i - # # 重设当前测量时间 - # self.current_measure_time = "" - # self.res = {} - # tmp_before_avg = [] - # for j in range( self.measurement_repeat ): - # tmp_before_avg.append( self.intensity_before_avg[j+i*self.measurement_repeat] ) - # pass - # self.getAvg(tmp_before_avg) - # self.__do_sensor_dict_interpo() - # self.appendSave( ) - - # def checkLskyEskyLwater(self, ) -> bool: - # if not self.res["Lsky"] : - # return False - # if not self.res["Esky"] : - # return False - # if not self.res["Lwater"] : - # return False - # return True \ No newline at end of file + # data\2\2022\8\17\51\0.bin \ No newline at end of file diff --git a/awrams.py.bk b/awrams.py.bk new file mode 100644 index 0000000..6e311f0 --- /dev/null +++ b/awrams.py.bk @@ -0,0 +1,1126 @@ +#! python3 +# -*- encoding: utf-8 -*- +''' +@File : handheld.py +@Time : 2023/02/24 17:20:59 +@Author : Jim @ Yiwin +@Version : 1.0 +@Contact : jim@yi-win.com +''' + +CUR_TIME_STR_FMT = "%Y-%m-%d %H:%M:%S" + +import time +import locale +import struct +import numpy as np +from pubsub import pub +from pathlib import PurePath,Path +from myconfig import CURRENT_DIR,DATA_DIR,OUTPUT_DIR,SERVER_DIR,NEWLINE,ROWFACTOR,SAVE_EXT_NAME,TOKEN +from myconfig import DeviceType,RamsesSURFACE,RamsesAWRAMS,RamsesPROFILE +from tools.mylogger import log +from tools.myexception import MyException +from tools.mytime import MyTime +from tools.mypath import MyDir +from Ramses import Ramses + +class HandHeldBuf: + def __init__(self,) -> None: + self.__buf = b'' + self.__head = {} + self.__begin_sign = b'\x23' + self.__end_sign = b'\x0D' + self.data_ip = b'' + self.measure_group = { + "Lsky": b'', + "Esky": b'', + "Lwater": b'', + } + self.one_group_data= b'' + self.state = 0 + + def readFile2Buf(self, fpath) -> None: + with open(fpath,"rb") as f: + self.__buf = f.read() + pass + pass + + 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 = {} + + def reset_buf(self) -> None: + self.__buf = b'' + + def getResult(self) -> str: + return self.res + + def resetMeasureGroup(self) -> None: + self.measure_group['Lsky'] = b'' + self.measure_group['Esky'] = b'' + self.measure_group['Lwater'] = b'' + + def getMeasureGroup(self) -> dict: + return self.measure_group + + def decode_handheld(self) -> bool: + '''以26个字节开始,一般26个00 ,然后23... 07.... ''' + if self.get_buf_size() < 1754: + self.__buf = b'' + return False + + self.data_ip = self.read_buf(26) + Lsky = self.read_buf(576) + Esky = self.read_buf(576) + Lwater = self.read_buf(576) + + self.measure_group['Lsky'] = self.deal_576_to_512(Lsky) + self.measure_group['Esky'] = self.deal_576_to_512(Esky) + self.measure_group['Lwater'] = self.deal_576_to_512(Lwater) + + if self.measure_group['Lsky'] == b'' \ + or self.measure_group['Esky'] == b'' \ + or self.measure_group['Lwater'] == b'' : + return False + + return True + + def decode_one_group_handheld(self) -> bool: + '''以26个字节开始,一般26个00 ,然后23... 07.... ''' + if self.get_buf_size() < 1754: + self.__buf = b'' + return False + + self.data_ip = self.read_buf(26) + self.one_group_data = self.read_buf(1728) + + return True + + def deal_576_to_512(self,data:bytes) -> bytes: + ''' 576字节校验,拆分成字典 23... 07.... ,然后254*2''' + ret = {} + index = 72 + for i in range(8): + temp = data[i*index : i*index+index] + # print( temp.hex()) + if temp[0] != 35 and temp[0]<8 and temp>0 : + return b'' + pass + ret.update( { temp[4]: temp} ) + if len(ret) != 8: + return b'' + ret_byte = ret[7][7:71]+ ret[6][7:71]+ ret[5][7:71]+ ret[4][7:71] \ + + ret[3][7:71]+ ret[2][7:71]+ ret[1][7:71]+ ret[0][7:71] + return ret_byte + + + def decode(self) -> str: + ret = '' + temp_buf = b'' + token = ";" + if TOKEN: + token = TOKEN + + if self.state == 0: + while self.get_buf_size() >= 1: + if self.read_buf(1) != self.__end_sign: + continue + self.state = 1 + break + + if self.state == 1: + while self.get_buf_size() >= 1: + buf = self.read_buf(1) + if buf != self.__end_sign: + temp_buf += buf + if buf == self.__end_sign: + ret = temp_buf[0:20].decode( + 'utf-8').strip(" ") + token + temp_buf[-9:-1].decode('utf-8').strip(" ") + log.info(f"decode : {ret}") + temp_buf = b'' + self.back_bytes(temp_buf) # 写回临时buf到 + self.res = ret + return ret + pass + + +class HandHeldPath(object): + '''处理一次测量''' + def __init__(self, ): + self.mode = 0 + self.cfg ={} + self.mydir = MyDir() + self.base_path:Path = Path() + self.output_path:Path = Path() + self.data_path:Path = Path() + self.server_path:Path = Path() + self.filelist = [] + self.error_result = [] + pass + + def setMode( self, mode:int = 0 ): + self.mode = mode + pass + + def setBasePath( self, fpath:Path ): + self.base_path = fpath + pass + + def setDataPath( self, fpath:Path ): + self.data_path = fpath + pass + + def setServerPath( self, fpath:Path ): + self.server_path = fpath + pass + + def setOutputPath( self, fpath:Path ): + self.output_path = fpath + pass + + def getSensorPathFromInfoPath( self, info_path:Path, ) -> Path: + # 服务器上转移后的模式 + if self.mode == 1: + sensor_path = self.base_path.joinpath( + info_path.parent, + "sensor.bin" + ) + elif self.mode == 0: + sensor_path = self.base_path.joinpath( + "data", + info_path.parts[1][:4] + "_" + info_path.parts[1][-2:], + info_path.parts[2], + "sensor", + info_path.name + ) + else: + sensor_path = None + return sensor_path + pass + + def getOutputPathFromSensorPath(self,sensor_path:Path ) -> Path: + if self.mode == 1: + output_path = self.output_path.joinpath( + self.info_dict['year'] + "_" + self.info_dict['month'] + + "_" + self.info_dict['day'] + "_" + self.info_dict['hour'] + + "_" + self.info_dict['minute'] + "_" + self.info_dict['second'] + ) + elif self.mode == 0: + output_path = self.output_path.joinpath( + sensor_path.parts[1][:4] + "_" + sensor_path.parts[1][-2:] + + "_" +sensor_path.parts[2] + "_" +sensor_path.name + ) + else: + output_path = None + return output_path + pass + + def getCurrentMeasureTimeFromPath(self,fpath:Path ) -> str: + ret = '' + if self.mode == 1: # 读信息txt获得时间 + txt_path = fpath.parent.glob("*.txt") + txt_stem = txt_path[0].stem + ret = fpath.parts[1][:4]+"-"+fpath.parts[1][-2:]+"-"+fpath.parts[2]+" " \ + + txt_stem[-9:-7] + ":" + txt_stem[-6:-4] + ":" + txt_stem[-3:-1] + pass + elif self.mode == 0: + ret = fpath.parts[1][:4]+"-"+fpath.parts[1][-2:]+"-"+fpath.parts[2]+" " \ + + fpath.name[0:2] + ":" + fpath.name[3:5] + ":" + fpath.name[6:8] + else: + pass + return ret + pass + + def getDataFileList(self, ): + ''' + 获得成对的info sensor 文件 + [目录名,文件名,年月日,时间, measure_id] + ''' + # ret = [] + fs = None + self.filelist = [] + if self.mode == 1: + fs = self.server_path.glob( "*/*/*/*/info.bin" ) + else: + fs = self.data_path.glob( "*/*/info/*" ) + + for f in fs: + error_file = {} + if f.stat().st_size==0: + error_file.update( {"path": f } ) + error_file.update( {"error":"info file size is zero"} ) + self.error_result.append( error_file ) + continue + + # self.info_path_fname = f + sensor_path = self.getSensorPathFromInfoPath( f ) + # sensor_path = Path(sensor_purepath) + # sensor 文件不存在 + if not sensor_path.exists(): + error_file.update( {"path":f} ) + error_file.update( {"error":"cannot find the sensor file "} ) + self.error_result.append(error_file) + continue + + # sensor文件大小为0 + if sensor_path.stat().st_size==0: + error_file.update( {"path":sensor_path} ) + error_file.update( {"error":"sensor file size of the sensor is zero' "} ) + self.error_result.append(error_file) + continue + self.setFilelist(f,sensor_path ) + pass + + def getDataFileList_SERVER(self, ): + ''' + 获得成对的info sensor 文件 + [目录名,文件名,年月日,时间] + ''' + log.info(f" === ", self.server_path, "getDataFileList_SERVER") + self.filelist = [] + fs = self.server_path.glob( "*/*/*/*/*/info.bin" ) + for f in fs: + # print(f) + error_file = {} + if f.stat().st_size==0: + error_file.update( {"path": f } ) + error_file.update( {"error":"info file size is zero"} ) + self.error_result.append( error_file ) + continue + + ## 获得全部bin文件 (info.bin (num).bin),不含 pic.bin + current_path = f.parent + bin_files = current_path.glob('*.bin') + res_files = [] + + # 检查(num).bin 是否有遗漏 + for bl in bin_files: + if bl.stem.isdigit(): + res_files.append(bl) + pass + + if res_files != []: + res_files.append(f) + self.filelist.append(res_files) + + pass + + def setFilelist(self, info_path:Path, sensor_path:Path): + temp = {} + temp.update( {"info_path" : info_path } ) + temp.update( {"name" : info_path.name} ) + temp.update( {"parent" : info_path.parent} ) + + if self.mode==1: # 服务器转移后目录 + temp.update( {"year" : info_path.parts[-5] } ) + temp.update( {"month" :info_path.parts[-4] } ) + temp.update( {"day" :info_path.parts[-3] } ) + + temp.update( {"year" : info_path.parts[1][:4] } ) + temp.update( {"month" :info_path.parts[1][-2:] } ) + temp.update( {"day" :info_path.parts[2] } ) + temp.update( { "sensor_path" :sensor_path } ) + self.filelist.append(temp) + + def getFilelist(self, ): + return self.filelist + + def printTest(self,d,sleep_time:int=5): + log.info( f"***** : I am testing from HandheldPath ********", __name__ ) + print(d) + log.info( f"***** : Ending testing from HandheldPath ********", __name__ ) + time.sleep(sleep_time) + pass + +class AWRAMS(object): + def __init__(self, ): + """ + @description : 手持数据初始化 + 处理入口 : dealAllMeasurements() + 每个文件调用 :dealOneMeasurement() + 读取buf :decode_sensor_buf() 数值截取 转光强 + dealOneGroup(),平均 插值 追加保存 + """ + self.device_type = DeviceType.AWRAMS.name + self.device_enum = None + self.device_id = {} + self.syscfg = {} + self.retrieve ={} + self.error_result=[] + self.mode = 0 # 0:默认SD数据, 1:服务器数据 + self.base_path = CURRENT_DIR + self.current_path = CURRENT_DIR + self.data_path = DATA_DIR + self.output_path = OUTPUT_DIR + self.info_path_fname:Path = self.base_path + self.sensor_path_fname:Path = self.base_path + self.filelist = [] # 包含了全部路径信息 + self.intensity_before_avg = None + self.intensity_after_avg = {} # 最终结果{lsky: esky: lwater: } + self.intensity_after_interpo = {} # 最终结果{lsky: esky: lwater: } + + self.one_group_result = {} # 手持式 多次间隔 + self.wavelength = np.array([]) + self.real_wavelength = {} # 最终结果{lsky: esky: lwater: } + self.current_filepath = '' # 不含后缀 + self.current_measure_time = None # 当前测量时间 + self.current_group_num = 0 + self.measurement_interval = 0 + self.measurement_repeat = 1 + # self.sl2f = SaveList2File() + self.mydir = MyDir() + self.my_time = MyTime() + self.hhb = HandHeldBuf() + self.hhp = HandHeldPath() + self.ramses = Ramses() + self.info_dict = {} + self.res = {} # 最终结果{lsky: esky: lwater: Lw: Rs:} + self.msg ={} + + # 方法 + self.setDeviceEnum() + self.setMode() + self.set_hhp_path() + pass + + def setMode(self,mode=0 ): + self.hhp.setMode (mode) # 0 :读SD卡 1:读服务器数据 + + def set_hhp_path(self, ): + self.hhp.setBasePath (self.base_path) + self.hhp.setDataPath (self.data_path) + self.hhp.setOutputPath (self.output_path) + + def setDeviceEnum(self, ): + if self.device_type == DeviceType.SURFACE.name: + self.device_enum = RamsesSURFACE + if self.device_type == DeviceType.AWRAMS.name: + self.device_enum = RamsesAWRAMS + if self.device_type == DeviceType.PROFILE.name: + self.device_enum = RamsesPROFILE + + def __set_msg(self, flag, d): + self.msg = {} + self.msg.update( {"flag":flag} ) + self.msg.update( {"data":d} ) + pass + + def getDataFileList(self, ): + self.hhp.setMode() + self.hhp.filelist = [] + self.hhp.getDataFileList() + self.filelist = self.hhp.getFilelist() + # self.printTest(self.filelist) + pass + + def getDataFiles_server(self, ): + ''' + 服务器数据二次处理 server/id/year/month/day/measure_id/*.bin + 判断是否存在上面样式文件夹,文件夹下是否 *.bin文件 + "server/*/*/*/*/*/info.bin" + ''' + log.info(f" 服务器数据下载,二次处理", __name__, "getDataFiles_server", ) + self.hhp.setMode( 1 ) + self.hhp.setServerPath( SERVER_DIR ) + self.hhp.filelist = [] + self.hhp.getDataFileList_SERVER( ) + self.filelist = self.hhp.getFilelist() + pass + + def dealAllMeasurements(self, ): + log.info(f" 所有测量文件", __name__, "dealAllMeasurements", ) + if len(self.filelist)<1: + pass + # 前面已经考虑各种文件错误 + for df in self.filelist: + # 处理信息帧 + self.info_dict = {} + self.info_path_fname:Path = df["info_path"] + self.sensor_path_fname:Path = df["sensor_path"] + hex_info = self.read_bin( self.info_path_fname ) + try: + self.info_dict = self.decode_info( hex_info ) + except: + log.error( f"处理信息文件" + + "/" +self.info_path_fname.stem + + "出现错误", __name__, "dealAllMeasurements" ) + raise MyException( "处理文件"+ self.info_path_fname + "出现错误") + pass + + try: # awrams每次只有一组数据 + self.dealOneMeasurement( self.sensor_path_fname ) + # self.measurement_interval = int(self.info_dict['Measure_Interval']) + # self.measurement_repeat = int(self.info_dict['Measure_Repeat']) + # self.dealOneHandheldMeasurement(self.sensor_path_fname ) + except Exception as e: + log.error( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误",__name__,"dealAllMeasurements") + raise MyException( "处理传感器文件" + self.sensor_path_fname.name + " 出现错误" ) + pass + self.__set_msg('notice', '处理文件完成') + pub.sendMessage('update' , msg=self.msg) + log.info(f"Finished !! ", __name__, "dealAllMeasurements") + # return True,self.error_result + pass + + def dealAllMeasurements_Server(self, ): + log.info(f" 所有服务器文件", __name__, "dealAllMeasurements_Server", ) + if len(self.filelist)<1: + pass + # 前面已经考虑各种文件错误 + for df in self.filelist: + # 处理信息帧 + self.info_dict = {} + self.info_path_fname:Path = df[-1] + # self.sensor_path_fname:Path = df["sensor_path"] + hex_info = self.read_bin( self.info_path_fname ) + try: + self.info_dict = self.decode_info( hex_info ) + except: + log.error( f"处理信息文件" + + "/" +self.info_path_fname.stem + + "出现错误", __name__, "dealAllMeasurements_Server" ) + raise MyException( "处理文件"+ self.info_path_fname + "出现错误") + pass + + # 0.bin 1.bin ... 多个文件 + for i in range(len(df)-1): + fpath:Path = df[i] + stem = fpath.stem + if stem.isdigit( ) : + tmp_buf = fpath.read_bytes() + self.hhb.write_buf( tmp_buf ) + pass + pass + + # 将buf 处理成光强值 self.intensity_before_avg + self.decode_sensor_buf() + # 获得真实波长 self.real_wavelength + self.getRealWavelenthDict() + # 多组数据平均 self.intensity_after_avg + self.getAvg( self.intensity_before_avg ) + # 波长插值 self.res esky lsky lw + self.__do_sensor_dict_interpo() + # 获得输出文件名 self.ymdhms + self.get_ymdhms() + # get Lw Rs + self.getLwRs() + # 设置保存路径 self.output_path + self.get_output_path(1) + # 保存 data info + self.saveOnefileForLskyEskyLwaterLwRS() + # 通知ui + self.__set_msg("data", {"tm":self.ymdhms, "res":self.res} ) + pub.sendMessage("update" , msg=self.msg) + + self.__set_msg( 'notice', '处理文件完成' ) + pub.sendMessage( 'update' , msg=self.msg ) + log.info(f"Finished !! ", __name__, "dealAllMeasurements") + # return True,self.error_result + pass + + def dealOneMeasurement(self, fpath:Path): + '''handheld一次测量包含多组数据''' + # 调用handheldbuf 处理,将一组数据提交出来 + log.info(f"dealOneMeasurement: 一组测量数据", __name__, "dealOneMeasurement") + if len(self.filelist)<1: + pass + + # 当前文件名 + self.output_path = OUTPUT_DIR + self.current_filepath = fpath + self.current_measure_time = self.hhp.getCurrentMeasureTimeFromPath(fpath) + self.get_ymdhms() + # self.ymdhms = "20"+ str(self.info_dict['year']) + '_' \ + # + str(self.info_dict['month']) + '_' \ + # + str(self.info_dict['day']) + '_' \ + # + str(self.info_dict['hour']) + '_' \ + # + str(self.info_dict['minute']) + '_' \ + # + str(self.info_dict['second']) + # self.output_path = self.output_path.joinpath( self.ymdhms ) + log.debug(f"current_measure_time: {self.current_measure_time}", __name__, "dealOneMeasurement") + # 读取buf + self.hhb.readFile2Buf(fpath) + # 将buf 处理成光强值 self.intensity_before_avg + self.decode_sensor_buf() + # 获得真实波长 self.real_wavelength + self.getRealWavelenthDict() + # 多组数据平均 self.intensity_after_avg + self.getAvg( self.intensity_before_avg ) + # 波长插值 self.res esky lsky lw + self.__do_sensor_dict_interpo() + # 获得输出文件名 self.ymdhms + self.get_ymdhms() + # get Lw Rs + self.getLwRs() + # 设置保存路径 self.output_path SD卡 + self.get_output_path(0) + # 保存 data info + self.saveOnefileForLskyEskyLwaterLwRS() + # 通知ui + self.__set_msg("data", {"tm":self.ymdhms, "res":self.res} ) + pub.sendMessage("update" , msg=self.msg) + + def get_ymdhms(self, ): + self.ymdhms = "20"+ f"{self.info_dict['year']:02d}" + '_' \ + + f"{self.info_dict['month']:02d}" + '_' \ + + f"{self.info_dict['day']:02d}" + '_' \ + + f"{self.info_dict['hour']:02d}" + '_' \ + + f"{self.info_dict['minute']:02d}" + '_' \ + + f"{self.info_dict['second']:02d}" + + def get_output_path(self, mode=0): + self.mydir.setBaseDir(DATA_DIR) + # if mode == 0: + # self.mydir.setBaseDir(DATA_DIR) + # else: + # self.mydir.setBaseDir(SERVER_DIR) + # dir_tuple = ( "output", "20"+str(self.info_dict['year']),str(self.info_dict['month']),str(self.info_dict['day'])) + self.output_path = self.mydir.current_dir.joinpath("output") + + + def decode_sensor_buf(self,) : + # 处理Buf,对多组数据取平均 + self.intensity_before_avg = [] + # res_before_avg = [] + self.clearRes() # 清空数据 + while True: + ## 以下代码已经处理了 ip的数据帧 + if not self.hhb.decode_one_group_handheld() : + break # 清空数据 + + res = {} + ## 上方代码已经处理了 ip的数据帧 + buf = self.hhb.one_group_data + # buf = self.hhb.one_group_data[26:] + for i in range( 1, 4, 1 ): + site = ( i - 1 ) * 576 + temp_buf = buf[7+site:71+site] + buf[79+site:143+site] + \ + buf[151+site:215+site] + buf[223+site:287+site] + \ + buf[295+site:359+site] + buf[367+site:431+site] + \ + buf[439+site:503+site] + buf[511+site:575+site] + + # Ramses类 标定处理,设置buf 标定文件 + self.ramses.setBuf(temp_buf) + func = self.getFuncBySeq(i) + cfg = self.getCfgByFunc( func) + self.ramses.setCalCfg(cfg) + self.ramses.resetItSpectrum() + self.ramses.ConvertAndCalibrate() + res.update( { func : self.ramses.spectrum } ) + self.intensity_before_avg.append( res ) + pass + + def getAvg( self, d:list) : + log.info(f"getAvg: 平均多组数据", __name__, "getAvg") + data = d + ret = {} + len_result = len(data) + if len_result == 0: + self.intensity_after_avg ={} + return None + if len_result == 1: + self.intensity_after_avg = data[0] + return None + ret = data[0] + + res_dict = self.getRetDict() + + for k in res_dict.keys(): + for i in range(1,len_result,1): + data[0][k] = data[0][k] + data[i][k] + ret = data[0][k]/len_result + self.intensity_after_avg.update( { k : ret } ) + log.debug(f"getAvg: {self.intensity_after_avg}", __name__, "getAvg") + pass + + + def saveOnefileForLskyEskyLwaterLwRS(self, ) -> bool: + log.info(f" ", __name__, "saveOnefileForLskyEskyLwaterLwRS") + year = "20"+ f"{self.info_dict['year']:02d}" + month = f"{self.info_dict['month']:02d}" + day = f"{self.info_dict['day']:02d}" + save_path = self.output_path.joinpath(year,month,day) + self.mydir.setBaseDir(save_path) #基路径 + self.mydir.newDirIfNot() + self.mydir.newFileIfNot(self.ymdhms + SAVE_EXT_NAME) + + self.mydir.setHeader( self.wavelength.tolist(), TOKEN, "device_id_"+str(self.device_id) ) + header = self.mydir.header_str + + save_path_csv:Path = self.mydir.current_filepath + data_str = "" + for k in self.res.keys(): + self.mydir.setContent(self.res[k].tolist(),TOKEN,k ) + data_str = data_str + NEWLINE + self.mydir.content_str + save_path_csv.write_text(header+data_str) + + # info.txt + self.mydir.newFileIfNot(self.ymdhms+"_info.txt") + path_info_txt:Path = self.mydir.current_filepath + self.save_dict_to_file( self.info_dict, path_info_txt ) + + self.do_retrieve() + self.append_retrieve(save_path_csv) + + + def do_retrieve(self, ) -> None: + '''反演参数并保存 self.res''' + par_400_700 = self.get_par_400_700() + par_350_950 = self.get_par_350_950() + chl = self.get_chl() + cdom = self.get_CDOM() + self.res_retrieve = [ par_400_700, par_350_950, chl, cdom ] + pass + + def append_retrieve(self, fpath) -> None: + '''反演参数并保存 self.res''' + # save_path_csv:Path = self.mydir.current_filepath + res = NEWLINE + "res" + for r in self.res_retrieve: + res = res + TOKEN + str(r) + with open(fpath, '+a') as f: + f.write(res) + pass + + def get_par_400_700(self, ) -> float: + '''反演参数并保存 基于self.res''' + par_400_700 = 0.0 + for i in range( 50, 350, 1 ): + par_400_700 = par_400_700 + self.res['Esky'][i] + return par_400_700 + pass + + def get_par_350_950(self, ) -> float: + '''反演参数并保存 基于self.res''' + par_350_950 = 0.0 + for i in range( 0, 600, 1 ): + par_350_950 = par_350_950 + self.res['Esky'][i] + return par_350_950 + pass + + def get_chl(self, ) -> float: + '''反演参数并保存 基于self.res''' + return 0.0 + pass + + def get_CDOM(self, ) -> float: + '''反演参数并保存 基于self.res''' + return 0.0 + pass + + def getRetDict(self,) : + ret_dict = { } + ret_dict.update( {self.device_enum(1).name:np.array([])} ) + ret_dict.update( {self.device_enum(2).name:np.array([])} ) + ret_dict.update( {self.device_enum(3).name:np.array([])} ) + # self.one_group_result = ret_dict + return ret_dict + + def __do_sensor_dict_interpo(self,) : + log.info( f"同步处理多个个插值 ", __name__, "__do_sensor_dict_interpo" ) + self.clearRes() + for k in self.intensity_after_avg.keys(): + tmp = np.interp( self.wavelength, self.real_wavelength[k], self.intensity_after_avg[k] ) + self.res.update( { k : tmp } ) + + def getCfgByDid(self, func:str) : + cfg_id:dict = self.syscfg.get(int(self.device_id)) + cfg_sensor = cfg_id.get( func) + return cfg_sensor + pass + + def getFuncBySeq(self, seq:int) : + func = "" + if self.device_type == DeviceType.AWRAMS.name: + func = RamsesAWRAMS(seq).name + if self.device_type == DeviceType.SURFACE.name: + func = RamsesAWRAMS(seq).name + if self.device_type == DeviceType.PROFILE.name: + func = RamsesAWRAMS(seq).name + return func + + def getCfgByFunc(self, func:str) : + cfg_id:dict = self.syscfg.get(int(self.device_id)) + cfg_sensor = cfg_id.get( func) + return cfg_sensor + pass + + def getCfgBySeq(self, seq:int) : + func = "" + if self.device_type == DeviceType.AWRAMS.name: + func = RamsesAWRAMS(seq).name + if self.device_type == DeviceType.SURFACE.name: + func = RamsesAWRAMS(seq).name + if self.device_type == DeviceType.PROFILE.name: + func = RamsesAWRAMS(seq).name + cfg_id:dict = self.syscfg.get(int(self.device_id)) + cfg_sensor = cfg_id.get( func) + return cfg_sensor + pass + + def appendSave(self, ) -> bool: + '''self.output_path''' + self.checkAndSaveData( ) + self.getLwRsAndSave() + path_info_txt = self.output_path.joinpath( "info.txt" ) + self.save_dict_to_file( self.info_dict, path_info_txt ) + + def checkAndSaveData(self, ) -> bool: + """ + check self.Lsky Esky Lwater and Save + 处理self.res 的数据 + """ + log.info(f"checkAndSaveData: {self.output_path.parts}", __name__) + self.mydir.setBaseDir(self.output_path) #基路径 + self.mydir.setHeader( self.wavelength.tolist(), TOKEN, "device_id_"+str(self.device_id) ) + # print(f"header_str : {self.mydir.header_str[-1:]}") + + if self.current_group_num == 0: + self.newFileByFunc( self.device_enum(1).name ) + self.newFileByFunc( self.device_enum(2).name ) + self.newFileByFunc( self.device_enum(3).name ) + pass + + self.appendFileByFunc( self.device_enum(1).name ) + self.appendFileByFunc( self.device_enum(2).name ) + self.appendFileByFunc( self.device_enum(3).name ) + + def newFileByFunc(self, func:str) -> None: + self.mydir.newFileIfNot( func+SAVE_EXT_NAME) + if self.mydir.checkHeader() == -1: + log.error(f"请备份文件:{self.mydir.current_filepath.parent} {self.mydir.current_filepath.name}, 并删除文件后再试!", __name__) + raise MyException( f"请备份文件:{self.mydir.current_filepath.parent} {self.mydir.current_filepath.name}, 并删除文件后再试!" ) + return False + if self.mydir.checkHeader() == 1: + pass + if self.mydir.checkHeader() == 0: + self.mydir.writeHeader() + pass + # 写入数据content + self.mydir.setContent(self.res[func].tolist(), TOKEN, self.current_measure_time) + self.mydir.writeContent() + + def appendFileByFunc(self, func:str) -> None: + # 追加写入数据content + self.mydir.setContent(self.res[func].tolist(), TOKEN, self.current_measure_time) + self.mydir.writeContent() + + def clearRes(self, ) -> None: + self.res = { } + + def getLwRs(self, ) -> bool: + """ + 并计算Lw Rs并保存 + """ + Lw = self.res["Lwater"] - ROWFACTOR * self.res["Lsky"] + self.res.update({ "Lw" : Lw }) + Rs = self.res["Lw"] / self.res["Esky"] + self.res.update({ "Rs" : Rs }) + + def getLwRsAndSave(self, ) -> bool: + """ + 并计算Lw Rs并保存 + """ + Lw = self.res["Lwater"] - ROWFACTOR * self.res["Lsky"] + self.res.update({ "Lw" : Lw }) + Rs = self.res["Lw"] / self.res["Esky"] + self.res.update({ "Rs" : Rs }) + self.mydir.setBaseDir(self.output_path) #基路径 + + # 保存 + + if self.current_group_num == 0: + self.newFileByFunc( "Lw" ) + self.newFileByFunc( "Rs" ) + pass + + self.appendFileByFunc( "Lw" ) + self.appendFileByFunc( "Rs" ) + + return True + + 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 + + def decode_info( self,info: bytes ) -> dict: + ret = {} + # 剖面型加了1311+24个字节共26个字节 + # 保留字节有所变化,改为序列号,每个序列号两个字节 + try: + temp = struct.unpack(" 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) + + def save_error_to_file(self, errlist: list, fpath: Path) -> None: + temp_str = "" + if len(errlist) <1: + return None + for errdict in errlist: + temp_str = temp_str + errdict["path"] +" : "+ errdict["error"] + "\n" + pass + with open(fpath, "w+") as f: + f.write(temp_str) + return None + pass + + def getWavelenthDict( self, ) -> dict: + ret_dict = self.getRetDict() + cfg_id:dict = self.syscfg.get( int(self.device_id)) + for k in ret_dict.keys(): + tmp = self.getWavelength( cfg_id.get(k) ) + ret_dict.update({ k : tmp }) + return ret_dict + + def getRealWavelenthDict( self, ) -> dict: + ret_dict = self.getRetDict() + cfg_id:dict = self.syscfg.get( int(self.device_id)) + for k in ret_dict.keys(): + tmp = self.getWavelength( cfg_id.get(k) ) + ret_dict.update({ k : tmp }) + self.real_wavelength = ret_dict + + def getWavelength(self,ramsesdict:dict) -> np.ndarray: + ret = [] + for i in range(2,257): + tmp = float(ramsesdict['c0s']) + float(ramsesdict['c1s'])*i \ + + float(ramsesdict['c2s'])*i*i + float(ramsesdict['c3s'])*i*i*i + ret.append(tmp) + pass + return np.array(ret) + + def setSyscfg(self, syscfg:dict): + self.syscfg = syscfg + + def setRetrieve(self, retrieve:dict): + log.debug( f"setRetrieve : {retrieve}......", __name__ ) + self.retrieve = retrieve + self.setNewWavelength() + # self.wavelength:np.ndarray = np.arange ( self.retrieve['beginWL'], self.retrieve['endWL'], self.retrieve['interval'] ) + + def setNewWavelength(self, ): + self.wavelength:np.ndarray = np.arange ( + self.retrieve['beginWL'], self.retrieve['endWL'], self.retrieve['interval'] ) + + def setDeviceID(self, did:int): + self.device_id = did + + def setDeviceType(self, device_type): + self.device_type = device_type + + def getErrorInfoDict(self, ): + return self.error_result + + def printResult(self,): + log.info( f"***** : Print Lsky Esky Lwater Lw Rs......", __name__ ) + print(self.res[self.device_enum(1)]) + print(self.res[self.device_enum(2)]) + print(self.res[self.device_enum(3)]) + print(self.res[self.device_enum(4)]) + print(self.res[self.device_enum(5)]) + pass + + def printTest(self,d,sleep_time:int=5): + log.info( f"***** : I am testing ********", __name__ ) + print(d) + log.info( f"***** : Ending testing ********", __name__ ) + time.sleep(sleep_time) + pass + +if __name__ == "__main__": + # hh = HandHeld() + # hh.getDataFileList() + # hh.dealAllMeasurements() + + # data/2023_02/07/sensor/14_02_46 + # hhb= HandHeldBuf() + # hhb.readFile2Buf("data/2023_02/07/sensor/14_02_46") + # hhb.decode_handheld() + # print(hh.error_result) + # print("======") + # print(hh.filelist) + + # print( hh.getDataFname() ) + + # t = b'\x07' + # print( int(t[0])) + # print( 2 << int(t[0])) + + + pass + + # def dealOneGroup(self, ): + # # 分组,并获得平均值, 255个未插值结果 (依据 measurement_interval measurement_repeat) + # self.getAvg( self.intensity_before_avg ) + + # # 插值 + # self.real_wavelength = self.getWavelenthDict() + # self.__do_sensor_dict_interpo() + + # self.ymdhms = "20"+ str(self.info_dict['year']) + '_' \ + # + str(self.info_dict['month']) + '_' \ + # + str(self.info_dict['day']) + '_' \ + # + str(self.info_dict['hour']) + '_' \ + # + str(self.info_dict['minute']) + '_' \ + # + str(self.info_dict['second']) + + # self.output_path = self.output_path.joinpath( self.ymdhms ) + # self.appendSave() + + # def dealOneHandheldMeasurement(self, fpath:Path): + # '''handheld一次测量包含多组数据''' + # # 调用handheldbuf 处理,将一组数据提交出来 + # log.info(f" 手持一个文件,多组测量数据", __name__, "dealOneHandheldMeasurement") + # if len(self.filelist)<1: + # pass + + # # 当前文件名 + # self.output_path = OUTPUT_DIR + # self.current_filepath = fpath + # self.current_measure_time = self.hhp.getCurrentMeasureTimeFromPath(fpath) + # self.ymdhms = "20"+ str(self.info_dict['year']) + '_' \ + # + str(self.info_dict['month']) + '_' \ + # + str(self.info_dict['day']) + '_' \ + # + str(self.info_dict['hour']) + '_' \ + # + str(self.info_dict['minute']) + '_' \ + # + str(self.info_dict['second']) + # self.output_path = self.output_path.joinpath( self.ymdhms ) + # log.debug(f"current_measure_time: {self.current_measure_time}", __name__, "dealOneHandheldMeasurement") + + # self.hhb.readFile2Buf(fpath) + # log.debug(f"buf: {self.hhb.get_buf_size()}", __name__, "dealOneHandheldMeasurement") + # self.decode_sensor_buf() + + # # 解析Buf, 对buf分组,获得[{lsky: esky : lwater} .... ] + # len_total = len(self.intensity_before_avg) + # if len_total%self.measurement_repeat != 0: + # self.res = {} + # return # 返回退出 + # group_num = int(len_total/self.measurement_repeat) + + # log.info(f"group_num...: {group_num}", __name__, "dealOneHandheldMeasurement") + # self.real_wavelength = self.getWavelenthDict() + # if group_num == 1: + # self.dealOneGroup() # self.intensity_before_avg + # return + + # self.dealMultiGroup(group_num) + + # def dealMultiGroup(self, group_num:int ): + # log.info(f"group_num: {group_num}", __name__, "dealMultiGroup") + # # 分组进行处理 + # for i in range(group_num): + # self.current_group_num = i + # # 重设当前测量时间 + # self.current_measure_time = "" + # self.res = {} + # tmp_before_avg = [] + # for j in range( self.measurement_repeat ): + # tmp_before_avg.append( self.intensity_before_avg[j+i*self.measurement_repeat] ) + # pass + # self.getAvg(tmp_before_avg) + # self.__do_sensor_dict_interpo() + # self.appendSave( ) + + # def checkLskyEskyLwater(self, ) -> bool: + # if not self.res["Lsky"] : + # return False + # if not self.res["Esky"] : + # return False + # if not self.res["Lwater"] : + # return False + # return True \ No newline at end of file diff --git a/data/2/2022/8/17/51/0.bin b/data/2/2022/8/17/51/0.bin new file mode 100644 index 0000000000000000000000000000000000000000..42c77794d5019fd206bd2fb35cec99ec2f34d8bd GIT binary patch literal 1754 zcmZ`(X;2hL6kfGwdSB1%AtG|`;vy?zxDnKVTmo__a;yi&D2H5fh=Q^xC~~L}Kvck} zg<2*WOsY&ME2s&YMB|ZEX)LS2C}j+y5bv01$~ffB{?C5(x?jKd`kUT<-;6@>e?LQ) zLO~@-faQ<~sgMG(kN^wNp9}LK3c_FxS{!=ukYuq4%*TQW7D6)4iy;llU?W_Rd3Z^x zgGOkDL-0BD!7zBSa<-c38DR=E%3i?>xDQWZ5FWx45SSbDVehe-OvkL4f%&pX)-LmK zl4N3QSsANirP*!U(N^pi`h*{ZuY^;=apAD=sn8~vg^fa;WOxf7HERKI9l#!yd>?1kDv{9LOs-i8LH5VAs;fK5O1*n=asModk}&h zm=6)yfdB}FS%@(3$4&&oPWe3JB*_yq{@@3*!4tFdARK})5`i@#IEKRexIY}b7GYtD zMlS#&5y6;=Myru|6q1yHoN`Sh)~DiA!?5#*D&ss$CWLH#{lg^2V|kX1isb%V^68$TF?jowG^iLH&G}t6v+kE}~pAS5z;m z(bb-=3v962G1L%Uuc)ow7F^X}ep(*9eqZs7g2Al#l{=Q{OsW){q=dwSaf31KQH_z` z%RH!`l5m^QUxP2tJv%!&u-w1Er`NM}=46lMGsfIq+#edRxeZKv=epa_;}WXBtsBw3 z(oNUz(cjTe)>G#-j#C|*93`0t_4BjSP2EG6Ov6&wYp%VnuMIvf&W>HS&+Mi;S?N~m zMx2$-w;anHeC)mK-nY$~(qQx9wP9LY?IVq+%!B%Qpc&Ad)2!9JROwOTjh1-5oM=xt8%k)wsM#@(QFzm^Pql~ z(`9rKO`-`j5yurYhnCU?x`kFEw$gH1K?|^l=`@YT&`>&y8mWP*5CR?J-|^3RFPR7R z^Edy3f5QL8KjZ&E?=faZ_(vES#>fMH6eCYDGlJuDjEtf;Y{6snM{(avnFsa5b2VfW z*-W;Otz;XbmeiA7q|q`rk~XrJbdUq&I5|O1lds7oa-IA}UJyGjitFIUxc&TDnFsaL zLVaOWDAQh;^3&8WePd(HnIF`5oP2r3_)F7;mxoVQ@5`)CObM>=t}z~U>38aO&^TOm z=y5uu?{M{V5ArPc3y^tGKUafXLQ*2!V~XM(7xBq{sk_q_nl_u}nvSLQq;5%J$&pFn z3l#|^u^&fwMlK0cha8ymW>%x$Y3~ltt1~$dfA=qB9@I~UF=N^?LyU{BPVK}yxZBlC zaklBVJ~3&NRouiNZJcJ6x>MCJx{3|hIWvAY%3(aTD5oh0=|y^m9;2&e9@NiX>`Eq$ z!agYIO}?8iPGG8__F66eGOl^Pql; z$a+#h){=E-rDOwU3bA4xDYDd+;#`U`IbMtv`8bxK6{4Sqt6VZ9^PqlmEzx}B%0U#8 hY|Q6jJ|8PHaaDlG$4E9pu9CAk$ex4GFCk52%74zO1(pB+ literal 0 HcmV?d00001 diff --git a/data/2/2022/8/17/51/1.bin b/data/2/2022/8/17/51/1.bin new file mode 100644 index 0000000000000000000000000000000000000000..42c77794d5019fd206bd2fb35cec99ec2f34d8bd GIT binary patch literal 1754 zcmZ`(X;2hL6kfGwdSB1%AtG|`;vy?zxDnKVTmo__a;yi&D2H5fh=Q^xC~~L}Kvck} zg<2*WOsY&ME2s&YMB|ZEX)LS2C}j+y5bv01$~ffB{?C5(x?jKd`kUT<-;6@>e?LQ) zLO~@-faQ<~sgMG(kN^wNp9}LK3c_FxS{!=ukYuq4%*TQW7D6)4iy;llU?W_Rd3Z^x zgGOkDL-0BD!7zBSa<-c38DR=E%3i?>xDQWZ5FWx45SSbDVehe-OvkL4f%&pX)-LmK zl4N3QSsANirP*!U(N^pi`h*{ZuY^;=apAD=sn8~vg^fa;WOxf7HERKI9l#!yd>?1kDv{9LOs-i8LH5VAs;fK5O1*n=asModk}&h zm=6)yfdB}FS%@(3$4&&oPWe3JB*_yq{@@3*!4tFdARK})5`i@#IEKRexIY}b7GYtD zMlS#&5y6;=Myru|6q1yHoN`Sh)~DiA!?5#*D&ss$CWLH#{lg^2V|kX1isb%V^68$TF?jowG^iLH&G}t6v+kE}~pAS5z;m z(bb-=3v962G1L%Uuc)ow7F^X}ep(*9eqZs7g2Al#l{=Q{OsW){q=dwSaf31KQH_z` z%RH!`l5m^QUxP2tJv%!&u-w1Er`NM}=46lMGsfIq+#edRxeZKv=epa_;}WXBtsBw3 z(oNUz(cjTe)>G#-j#C|*93`0t_4BjSP2EG6Ov6&wYp%VnuMIvf&W>HS&+Mi;S?N~m zMx2$-w;anHeC)mK-nY$~(qQx9wP9LY?IVq+%!B%Qpc&Ad)2!9JROwOTjh1-5oM=xt8%k)wsM#@(QFzm^Pql~ z(`9rKO`-`j5yurYhnCU?x`kFEw$gH1K?|^l=`@YT&`>&y8mWP*5CR?J-|^3RFPR7R z^Edy3f5QL8KjZ&E?=faZ_(vES#>fMH6eCYDGlJuDjEtf;Y{6snM{(avnFsa5b2VfW z*-W;Otz;XbmeiA7q|q`rk~XrJbdUq&I5|O1lds7oa-IA}UJyGjitFIUxc&TDnFsaL zLVaOWDAQh;^3&8WePd(HnIF`5oP2r3_)F7;mxoVQ@5`)CObM>=t}z~U>38aO&^TOm z=y5uu?{M{V5ArPc3y^tGKUafXLQ*2!V~XM(7xBq{sk_q_nl_u}nvSLQq;5%J$&pFn z3l#|^u^&fwMlK0cha8ymW>%x$Y3~ltt1~$dfA=qB9@I~UF=N^?LyU{BPVK}yxZBlC zaklBVJ~3&NRouiNZJcJ6x>MCJx{3|hIWvAY%3(aTD5oh0=|y^m9;2&e9@NiX>`Eq$ z!agYIO}?8iPGG8__F66eGOl^Pql; z$a+#h){=E-rDOwU3bA4xDYDd+;#`U`IbMtv`8bxK6{4Sqt6VZ9^PqlmEzx}B%0U#8 hY|Q6jJ|8PHaaDlG$4E9pu9CAk$ex4GFCk52%74zO1(pB+ literal 0 HcmV?d00001 diff --git a/data/2/2022/8/17/51/2.bin b/data/2/2022/8/17/51/2.bin new file mode 100644 index 0000000000000000000000000000000000000000..42c77794d5019fd206bd2fb35cec99ec2f34d8bd GIT binary patch literal 1754 zcmZ`(X;2hL6kfGwdSB1%AtG|`;vy?zxDnKVTmo__a;yi&D2H5fh=Q^xC~~L}Kvck} zg<2*WOsY&ME2s&YMB|ZEX)LS2C}j+y5bv01$~ffB{?C5(x?jKd`kUT<-;6@>e?LQ) zLO~@-faQ<~sgMG(kN^wNp9}LK3c_FxS{!=ukYuq4%*TQW7D6)4iy;llU?W_Rd3Z^x zgGOkDL-0BD!7zBSa<-c38DR=E%3i?>xDQWZ5FWx45SSbDVehe-OvkL4f%&pX)-LmK zl4N3QSsANirP*!U(N^pi`h*{ZuY^;=apAD=sn8~vg^fa;WOxf7HERKI9l#!yd>?1kDv{9LOs-i8LH5VAs;fK5O1*n=asModk}&h zm=6)yfdB}FS%@(3$4&&oPWe3JB*_yq{@@3*!4tFdARK})5`i@#IEKRexIY}b7GYtD zMlS#&5y6;=Myru|6q1yHoN`Sh)~DiA!?5#*D&ss$CWLH#{lg^2V|kX1isb%V^68$TF?jowG^iLH&G}t6v+kE}~pAS5z;m z(bb-=3v962G1L%Uuc)ow7F^X}ep(*9eqZs7g2Al#l{=Q{OsW){q=dwSaf31KQH_z` z%RH!`l5m^QUxP2tJv%!&u-w1Er`NM}=46lMGsfIq+#edRxeZKv=epa_;}WXBtsBw3 z(oNUz(cjTe)>G#-j#C|*93`0t_4BjSP2EG6Ov6&wYp%VnuMIvf&W>HS&+Mi;S?N~m zMx2$-w;anHeC)mK-nY$~(qQx9wP9LY?IVq+%!B%Qpc&Ad)2!9JROwOTjh1-5oM=xt8%k)wsM#@(QFzm^Pql~ z(`9rKO`-`j5yurYhnCU?x`kFEw$gH1K?|^l=`@YT&`>&y8mWP*5CR?J-|^3RFPR7R z^Edy3f5QL8KjZ&E?=faZ_(vES#>fMH6eCYDGlJuDjEtf;Y{6snM{(avnFsa5b2VfW z*-W;Otz;XbmeiA7q|q`rk~XrJbdUq&I5|O1lds7oa-IA}UJyGjitFIUxc&TDnFsaL zLVaOWDAQh;^3&8WePd(HnIF`5oP2r3_)F7;mxoVQ@5`)CObM>=t}z~U>38aO&^TOm z=y5uu?{M{V5ArPc3y^tGKUafXLQ*2!V~XM(7xBq{sk_q_nl_u}nvSLQq;5%J$&pFn z3l#|^u^&fwMlK0cha8ymW>%x$Y3~ltt1~$dfA=qB9@I~UF=N^?LyU{BPVK}yxZBlC zaklBVJ~3&NRouiNZJcJ6x>MCJx{3|hIWvAY%3(aTD5oh0=|y^m9;2&e9@NiX>`Eq$ z!agYIO}?8iPGG8__F66eGOl^Pql; z$a+#h){=E-rDOwU3bA4xDYDd+;#`U`IbMtv`8bxK6{4Sqt6VZ9^PqlmEzx}B%0U#8 hY|Q6jJ|8PHaaDlG$4E9pu9CAk$ex4GFCk52%74zO1(pB+ literal 0 HcmV?d00001 diff --git a/data/2/2022/8/17/51/2022_8_17_12_20_13.csv b/data/2/2022/8/17/51/2022_8_17_12_20_13.csv new file mode 100644 index 0000000..adab900 --- /dev/null +++ b/data/2/2022/8/17/51/2022_8_17_12_20_13.csv @@ -0,0 +1,6 @@ +2_51;350.0;351.0;352.0;353.0;354.0;355.0;356.0;357.0;358.0;359.0;360.0;361.0;362.0;363.0;364.0;365.0;366.0;367.0;368.0;369.0;370.0;371.0;372.0;373.0;374.0;375.0;376.0;377.0;378.0;379.0;380.0;381.0;382.0;383.0;384.0;385.0;386.0;387.0;388.0;389.0;390.0;391.0;392.0;393.0;394.0;395.0;396.0;397.0;398.0;399.0;400.0;401.0;402.0;403.0;404.0;405.0;406.0;407.0;408.0;409.0;410.0;411.0;412.0;413.0;414.0;415.0;416.0;417.0;418.0;419.0;420.0;421.0;422.0;423.0;424.0;425.0;426.0;427.0;428.0;429.0;430.0;431.0;432.0;433.0;434.0;435.0;436.0;437.0;438.0;439.0;440.0;441.0;442.0;443.0;444.0;445.0;446.0;447.0;448.0;449.0;450.0;451.0;452.0;453.0;454.0;455.0;456.0;457.0;458.0;459.0;460.0;461.0;462.0;463.0;464.0;465.0;466.0;467.0;468.0;469.0;470.0;471.0;472.0;473.0;474.0;475.0;476.0;477.0;478.0;479.0;480.0;481.0;482.0;483.0;484.0;485.0;486.0;487.0;488.0;489.0;490.0;491.0;492.0;493.0;494.0;495.0;496.0;497.0;498.0;499.0;500.0;501.0;502.0;503.0;504.0;505.0;506.0;507.0;508.0;509.0;510.0;511.0;512.0;513.0;514.0;515.0;516.0;517.0;518.0;519.0;520.0;521.0;522.0;523.0;524.0;525.0;526.0;527.0;528.0;529.0;530.0;531.0;532.0;533.0;534.0;535.0;536.0;537.0;538.0;539.0;540.0;541.0;542.0;543.0;544.0;545.0;546.0;547.0;548.0;549.0;550.0;551.0;552.0;553.0;554.0;555.0;556.0;557.0;558.0;559.0;560.0;561.0;562.0;563.0;564.0;565.0;566.0;567.0;568.0;569.0;570.0;571.0;572.0;573.0;574.0;575.0;576.0;577.0;578.0;579.0;580.0;581.0;582.0;583.0;584.0;585.0;586.0;587.0;588.0;589.0;590.0;591.0;592.0;593.0;594.0;595.0;596.0;597.0;598.0;599.0;600.0;601.0;602.0;603.0;604.0;605.0;606.0;607.0;608.0;609.0;610.0;611.0;612.0;613.0;614.0;615.0;616.0;617.0;618.0;619.0;620.0;621.0;622.0;623.0;624.0;625.0;626.0;627.0;628.0;629.0;630.0;631.0;632.0;633.0;634.0;635.0;636.0;637.0;638.0;639.0;640.0;641.0;642.0;643.0;644.0;645.0;646.0;647.0;648.0;649.0;650.0;651.0;652.0;653.0;654.0;655.0;656.0;657.0;658.0;659.0;660.0;661.0;662.0;663.0;664.0;665.0;666.0;667.0;668.0;669.0;670.0;671.0;672.0;673.0;674.0;675.0;676.0;677.0;678.0;679.0;680.0;681.0;682.0;683.0;684.0;685.0;686.0;687.0;688.0;689.0;690.0;691.0;692.0;693.0;694.0;695.0;696.0;697.0;698.0;699.0;700.0;701.0;702.0;703.0;704.0;705.0;706.0;707.0;708.0;709.0;710.0;711.0;712.0;713.0;714.0;715.0;716.0;717.0;718.0;719.0;720.0;721.0;722.0;723.0;724.0;725.0;726.0;727.0;728.0;729.0;730.0;731.0;732.0;733.0;734.0;735.0;736.0;737.0;738.0;739.0;740.0;741.0;742.0;743.0;744.0;745.0;746.0;747.0;748.0;749.0;750.0;751.0;752.0;753.0;754.0;755.0;756.0;757.0;758.0;759.0;760.0;761.0;762.0;763.0;764.0;765.0;766.0;767.0;768.0;769.0;770.0;771.0;772.0;773.0;774.0;775.0;776.0;777.0;778.0;779.0;780.0;781.0;782.0;783.0;784.0;785.0;786.0;787.0;788.0;789.0;790.0;791.0;792.0;793.0;794.0;795.0;796.0;797.0;798.0;799.0;800.0;801.0;802.0;803.0;804.0;805.0;806.0;807.0;808.0;809.0;810.0;811.0;812.0;813.0;814.0;815.0;816.0;817.0;818.0;819.0;820.0;821.0;822.0;823.0;824.0;825.0;826.0;827.0;828.0;829.0;830.0;831.0;832.0;833.0;834.0;835.0;836.0;837.0;838.0;839.0;840.0;841.0;842.0;843.0;844.0;845.0;846.0;847.0;848.0;849.0;850.0;851.0;852.0;853.0;854.0;855.0;856.0;857.0;858.0;859.0;860.0;861.0;862.0;863.0;864.0;865.0;866.0;867.0;868.0;869.0;870.0;871.0;872.0;873.0;874.0;875.0;876.0;877.0;878.0;879.0;880.0;881.0;882.0;883.0;884.0;885.0;886.0;887.0;888.0;889.0;890.0;891.0;892.0;893.0;894.0;895.0;896.0;897.0;898.0;899.0;900.0;901.0;902.0;903.0;904.0;905.0;906.0;907.0;908.0;909.0;910.0;911.0;912.0;913.0;914.0;915.0;916.0;917.0;918.0;919.0;920.0;921.0;922.0;923.0;924.0;925.0;926.0;927.0;928.0;929.0;930.0;931.0;932.0;933.0;934.0;935.0;936.0;937.0;938.0;939.0;940.0;941.0;942.0;943.0;944.0;945.0;946.0;947.0;948.0;949.0 +Lsky;-0.00037448754571359476;-0.00033930179224656915;-0.0003257980186714976;-0.0003201663632471721;-0.00031453470782284666;-0.0003030057628007389;-0.00028218467195649164;-0.0002613635811122444;-0.00024033693904381277;-0.00021467295665507198;-0.0001890089742663312;-0.00016334499187759037;-0.00016618523627971157;-0.0001814619875986001;-0.00019673873891748862;-0.00020431809310356437;-0.00019757857406592805;-0.0001908390550282917;-0.000184287276665797;-0.000248934458058329;-0.0003135816394508609;-0.0003782288208433929;-0.000373241634002858;-0.00033161944995846606;-0.0002899972659140742;-0.00025894885133778553;-0.0002517092207234917;-0.00024446959010919787;-0.00023722995949490404;-0.000203387364686872;-0.00016842046605345843;-0.00013345356742004483;-0.00013604053768967634;-0.00016253369195870298;-0.0001890268462277296;-0.0002084232927919306;-0.00020785835715277727;-0.00020729342151362397;-0.00020672848587447067;-0.00021197743787382497;-0.00021777896114663785;-0.00022358048441945073;-0.00021728366236384295;-0.0002016276485844542;-0.00018597163480506547;-0.0001647896227942484;-0.00012332952580526707;-8.186942881628573e-05;-4.040933182730439e-05;8.551439279747286e-05;0.0002247116857954836;0.00036390897879349436;0.0004584202443393478;0.0005106722585028636;0.0005629242726663794;0.0006105231407706864;0.0006343080108207523;0.000658092880870818;0.0006818777509208837;0.0006736400125584028;0.0006580223889312267;0.0006424047653040507;0.0006408079966020298;0.0006555574744913358;0.0006703069523806419;0.0006876119839615601;0.0007254910813014866;0.0007633701786414131;0.0008012492759813395;0.000848222013102493;0.000898081476300081;0.0009479409394976689;0.0009983201880025062;0.0010494555308298197;0.0011005908736571332;0.0011545395741682054;0.0012563252508467546;0.0013581109275253036;0.0014598966042038528;0.0016727996861413373;0.0019325326743287157;0.002192265662516094;0.002445708849535352;0.0026875374057543193;0.0029293659619732872;0.003171194518192255;0.003139271046280128;0.0031070525507930495;0.003074834055305971;0.0029345162794535786;0.002735063701256376;0.002535611123059173;0.002364927072288358;0.002263418470717785;0.002161909869147212;0.0020604012675766387;0.0020513605330959132;0.002048125576696509;0.002044890620297105;0.0020436875681418927;0.002043908230610363;0.0020441288930788336;0.002047934300455099;0.002063411231315915;0.002078888162176731;0.002094365093037547;0.00209126547597832;0.002085676716394351;0.002080087956810382;0.0020648379209785707;0.0020409728276966754;0.0020171077344147796;0.001993774845547004;0.001972945208574318;0.0019521155716016314;0.001931285934628945;0.0019469249210329552;0.001970462557704809;0.0019940001943766624;0.0019805209917192375;0.0019250572009633946;0.0018695934102075514;0.0018221839384890116;0.001836694465125636;0.0018512049917622606;0.001865715518398885;0.0018862699610040395;0.0019087161275605105;0.0019311622941169816;0.0019936014408287912;0.0021140435616562123;0.0022344856824836334;0.0023535203986920494;0.002448181285568346;0.0025428421724446424;0.002637503059320939;0.0026903192800035746;0.002725293572807558;0.002760267865611541;0.002775958356692082;0.0027554505550444227;0.002734942753396763;0.0027144349517491035;0.0026808366820301175;0.002647160535076223;0.0026134843881223287;0.002562850081345836;0.0025027032042343137;0.0024425563271227913;0.002388245583715907;0.0023484169991682758;0.0023085884146206445;0.0022687598300730133;0.0022848031983865673;0.002304801808473568;0.0023248004185605687;0.0023582451789692315;0.002401402467946345;0.0024445597569234577;0.0024911419778816707;0.002549359973792959;0.002607577969704248;0.0026657959656155366;0.0027117476421724914;0.00275593570879485;0.0028001237754172077;0.002840978542140255;0.0028787722183707897;0.002916565894601324;0.0029538730247219286;0.0029887772105739404;0.0030236813964259527;0.0030585855822779645;0.003102842793187524;0.003149214545154825;0.0031955862971221258;0.0032710500621735135;0.003380260660792179;0.0034894712594108453;0.003614861917830964;0.003870548705001643;0.004126235492172322;0.004381922279343001;0.005043971793936197;0.0058356742392417695;0.006627376684547342;0.0077269855527218505;0.009277192296148946;0.010827399039576042;0.01238370161337867;0.014046923751743382;0.015710145890108097;0.01737336802847281;0.018118063223119863;0.01847307660735159;0.018828089991583318;0.018674847503341613;0.017579825746313;0.016484803989284386;0.015389782232255775;0.013897660792563663;0.012405185805803298;0.010912710819042933;0.009729245063944436;0.00871368790817683;0.007698130752409223;0.00681696764469945;0.006253943821135748;0.005690919997572045;0.005127896174008343;0.004851443743384479;0.004591260834979152;0.004331077926573824;0.004162098912292011;0.004054987076895969;0.003947875241499927;0.0038655929848302765;0.003859561134843967;0.003853529284857657;0.0038474974348713478;0.00401388162111939;0.004200335235970559;0.004386788850821729;0.004704614593747769;0.0051316255900007365;0.005558636586253703;0.00601748946837441;0.006606303180498277;0.007195116892622144;0.007783930604746011;0.008403349116581036;0.009028262622081356;0.009653176127581676;0.010171565498659095;0.010583043465599927;0.010994521432540759;0.011377300864868482;0.011598387088879851;0.01181947331289122;0.01204055953690259;0.012147999555256375;0.012227509091652024;0.012307018628047674;0.01241576884216278;0.01255953563137722;0.012703302420591662;0.012850429153105063;0.013025375971655576;0.013200322790206089;0.013375269608756603;0.01397133918037055;0.014699784281248086;0.015428229382125623;0.0170079021249726;0.019790942389769764;0.022573982654566928;0.02542686658321848;0.02923448512599931;0.03304210366878014;0.036849722211560965;0.03887430628809869;0.04021385589310744;0.04155340549811619;0.04177626848892387;0.04015483751019899;0.03853340653147412;0.036892596851196335;0.034670426110063296;0.03244825536893026;0.030226084627797217;0.028587562224157512;0.027213934422014918;0.025840306619872324;0.02469157208884476;0.023972001579353988;0.023252431069863216;0.02253288362277802;0.021883895933074854;0.021234908243371684;0.020585920553668514;0.019798101202350493;0.018937893716232748;0.018077686230115003;0.01719902073481316;0.016280166125179702;0.015361311515546244;0.014442456905912785;0.013825568192178252;0.013217163468866281;0.01260875874555431;0.012198757711884885;0.011904719535604876;0.011610681359324866;0.011382575743523343;0.011315819421315522;0.011249063099107701;0.011182306776899882;0.011184454163149705;0.011190259270328002;0.011196064377506297;0.011195289192933102;0.011190300433478788;0.011185311674024473;0.01116604106284032;0.011108200782594647;0.011050360502348975;0.010992520222103303;0.010981517427854798;0.010973965265097736;0.010966413102340674;0.010970170947994488;0.010981687646175574;0.010993204344356657;0.01100035794265606;0.010994793293743005;0.010989228644829952;0.010983663995916899;0.01089745249904368;0.010804070140860586;0.010710687782677494;0.010625623937323742;0.010546537887491792;0.010467451837659842;0.01040664888188864;0.010401883291501842;0.010397117701115045;0.010392352110728248;0.01036423876500953;0.010333838052847405;0.010303437340685279;0.010241446513028699;0.01015621911479907;0.010070991716569442;0.009980468615215152;0.009873380023563352;0.009766291431911552;0.00965920284025975;0.009472262877905197;0.009277325668870344;0.009082388459835491;0.008881125827171559;0.008675213889587918;0.008469301952004278;0.008290950359336278;0.008197785320693795;0.008104620282051314;0.008011455243408834;0.008031275613683959;0.00806183233744559;0.008092389061207223;0.008386681023776378;0.008869842105508986;0.009353003187241594;0.009871109638348152;0.01049244506518935;0.011113780492030548;0.011735115918871745;0.012036557353229232;0.012311626619053915;0.0125866958848786;0.01238099974785114;0.011848750418911553;0.011316501089971967;0.01070378116661505;0.009871190160395;0.009038599154174948;0.008206008147954899;0.007569946493227294;0.006946181943298906;0.006322417393370517;0.0059503772808220745;0.005735874658665782;0.005521372036509489;0.005350023385773386;0.005284425545446736;0.005218827705120086;0.005153229864793436;0.005242309716938537;0.005336942523191903;0.005431575329445268;0.005649419025678316;0.005936063385387985;0.006222707745097653;0.006494221428347455;0.006733410774888483;0.006972600121429511;0.007211789467970539;0.007526463485005133;0.007841377679008674;0.008156291873012214;0.008384026784985796;0.008569911328521392;0.008755795872056986;0.008940822863984529;0.009124293998664297;0.009307765133344066;0.009484121988219869;0.009469224205256976;0.009454326422294086;0.009439428639331194;0.009431505787108795;0.009426332252945134;0.009421158718781476;0.009268316426346974;0.008893567346686823;0.008518818267026674;0.008130354695851758;0.0075898685165173485;0.007049382337182939;0.006508896157848531;0.006224997030694223;0.006019114397790168;0.005813231764886113;0.005786997343505646;0.005978702174716589;0.006170407005927532;0.006376890428448419;0.006675857685649489;0.006974824942850559;0.007273792200051628;0.00757121226173601;0.007868303339078647;0.008165394416421284;0.00831907505197541;0.00833632645136425;0.008353577850753089;0.00835733362623946;0.008307527843438122;0.008257722060636786;0.008207916277835448;0.008134532598703604;0.008058264788276336;0.007981996977849067;0.00786168574627415;0.007709708688767464;0.007557731631260778;0.007386720115174691;0.007165140428531544;0.006943560741888397;0.0067219810552452495;0.006637805321767855;0.006558435324718824;0.006479065327669793;0.006394272557853636;0.006306685685116717;0.006219098812379798;0.006134647753299539;0.00605590085937659;0.005977153965453641;0.0059020860717767356;0.00589612760859027;0.005890169145403805;0.00588421068221734;0.005875394871678214;0.005865613385008617;0.005855831898339021;0.005760336073973321;0.005558079128336702;0.005355822182700084;0.005148734518177322;0.004913004733569193;0.004677274948961063;0.004441545164352934;0.004083970112182977;0.0037039406942362273;0.003323911276289478;0.0030485713824617722;0.0028604369084001156;0.0026723024343384585;0.0025298601368020407;0.0025260977696897717;0.0025223354025775023;0.0025185730354652333;0.002493417232380721;0.002467164104237156;0.0024409109760935906;0.0024647183367809138;0.002514809541564495;0.002564900746348076;0.0026298062516794053;0.002720892700075789;0.002811979148472172;0.002902208629983865;0.002980722325473419;0.0030592360209629734;0.0031377497164525275;0.0031105996319174484;0.003052968618309473;0.002995337604701498;0.0030214181746783357;0.0031363041808984207;0.0032511901871185057;0.0033345181247481444;0.00328801516132617;0.0032415121979041954;0.003195009234482221;0.0031647890491432133;0.003136237718231473;0.0031076863873197333;0.003052170204779424;0.0029801085518535836;0.002908046898927743;0.002827291118196703;0.002729171605447068;0.0026310520926974335;0.0025393710231880026;0.0025732289136036163;0.0026070868040192294;0.002640944694434843;0.002592697596298802;0.0025192508393603232;0.0024458040824218443;0.002353804338235737;0.0022419279500498347;0.002130051561863932;0.0020260975512279293;0.0019535076467400124;0.001880917742252096;0.0018083278377641792;0.0017374455239904589;0.0016667080639304944;0.00159597060387053;0.001572404357601236;0.0015750016312648905;0.0015775989049285452;0.0016285293735552075;0.001763202538859154;0.001897875704163101;0.0020086954629873676;0.0018782451393884716;0.0017477948157895756;0.0016173444921906794;0.0014100492604619665;0.0011853459605451863;0.0009606426606284059;0.0007573136370886177;0.0005720489680129123;0.00038678429893720685;0.00025645031126624414;0.0002746655833237022;0.00029288085538116035;0.00031109612743861843;-5.163458318222858e-05;-0.00041463374924951657;-0.0007776329153168046;-0.0012798913562665141;-0.0018336585884984788;-0.002387425820730444;-0.002599709053623534;-0.0024144256994894715;-0.0022291423453554087;-0.0021198957582207675;-0.002323543131108591;-0.0025271905039964144;-0.0027308378768842374;-0.002833777920797156;-0.0029291770481188655;-0.003024576175440575;-0.0031711554433007717;-0.0033433355771049847;-0.003515515710909198;-0.0037025209366341708;-0.003911376740824185;-0.004120232545014199;-0.0042824104354355595;-0.004165515498295296;-0.004048620561155033;-0.003931725624014769;-0.004083764699196957;-0.004271162703434623;-0.004458560707672288;-0.004579807772450745;-0.0046614913908013915;-0.004743175009152038;-0.004783074527261531;-0.004751571138160688;-0.004720067749059844;-0.0047492527700927255;-0.005249937138183674;-0.005750621506274624;-0.006251305874365573;-0.006371734974870393;-0.006430462533873756;-0.006489190092877119;-0.006505624850130105;-0.006494818650663376;-0.006484012451196646;-0.006766923908481268;-0.007577524839653687;-0.008388125770826108;-0.009067730430601701;-0.00867026710783784;-0.008272803785073978;-0.007875340462310117;-0.00797287463294054;-0.008150445710061386;-0.008328016787182233;-0.008378599214407674;-0.008349592725954532;-0.008320586237501388 +Esky;0.028865542522827463;0.03260684269348145;0.036348142864135444;0.04132385585106919;0.04653415152541041;0.05174444719975164;0.05757064803236685;0.06404246099616116;0.07051427395995548;0.07736592775189807;0.08663524141083799;0.09590455506977791;0.10517386872871783;0.1186234795944912;0.13323175001421603;0.14784002043394084;0.1634608341324167;0.18042472857341338;0.19738862301441007;0.21386103999407377;0.22438954398690072;0.2349180479797277;0.24544655197255466;0.25143704837090436;0.2556852809436112;0.259933513516318;0.26306653222188187;0.264288260673835;0.2655099891257881;0.26667676590403033;0.2639970040585863;0.26131724221314223;0.2586374803676981;0.25541647680440205;0.2519159040365104;0.24841533126861876;0.24752296238088795;0.25258974842574855;0.25765653447060916;0.26272332051546976;0.2701633566649773;0.27773039570650787;0.2852974347480385;0.2918314132712491;0.29765846200715096;0.3034855107430528;0.31146822750331404;0.3263533778248966;0.3412385281464791;0.3561236784680616;0.3798973571523636;0.404860058745391;0.42982276033841843;0.45080823095830014;0.46820703919716106;0.485605847436022;0.5008597093309864;0.5055971375575589;0.5103345657841312;0.5150719940107036;0.5186063941866578;0.5218637100492346;0.5251210259118114;0.5289449243665102;0.5334447786006076;0.537944632834705;0.5422545855648031;0.5448362013765591;0.5474178171883151;0.549999433000071;0.5530739091980508;0.5563199049145504;0.5595659006310499;0.5636719503267186;0.569154696478378;0.5746374426300375;0.5801218692041715;0.5856667743086218;0.5912116794130722;0.5967565845175224;0.6072284704921126;0.6201334816255747;0.6330384927590369;0.6505358261609373;0.6781754282433943;0.7058150303258512;0.7334546324083082;0.7712101841685759;0.8094557092059902;0.8477012342434044;0.8895963691637973;0.9339671997341324;0.9783380303044675;1.0242970931177704;1.0753482107808263;1.126399328443882;1.177450446106938;1.2276360655610052;1.2777031983615008;1.3277703311619964;1.3691681087473315;1.4026063461953686;1.4360445836434055;1.465234575041355;1.4726152990732098;1.4799960231050646;1.4873767471369195;1.4762650388936813;1.4606642981843674;1.4450635574750534;1.425885138472774;1.4022672778226415;1.3786494171725092;1.3547773345655583;1.3282642248957786;1.3017511152259986;1.275238005556219;1.24822014457079;1.2210149625414257;1.1938097805120618;1.1678284366587819;1.1439233885831837;1.1200183405075854;1.0961803595780428;1.0777046803827601;1.0592290011874774;1.0407533219921947;1.0253856446750982;1.0116632310911369;0.9979408175071754;0.9847793052919989;0.972955693703331;0.9611320821146631;0.9493084705259952;0.9348174499226068;0.9201469492814615;0.9054764486403161;0.8908576326357835;0.8762764664868181;0.8616953003378528;0.8485239299843476;0.84034521058656;0.8321664911887725;0.8239877717909849;0.8201800977615249;0.8170727855383778;0.8139654733152307;0.8096744915923352;0.8042171034080342;0.7987597152237331;0.7931083051870654;0.7863176700636776;0.7795270349402897;0.7727363998169019;0.7675393159325414;0.7627723168791568;0.7580053178257721;0.7549661668993063;0.7542219681172746;0.7534777693352428;0.752774518564678;0.7526016622212065;0.7524288058777351;0.7522559495342636;0.7504236308554856;0.747926428125525;0.7454292253955644;0.7429029090113487;0.7403240086649535;0.7377451083185582;0.7351662079721629;0.7373702298994643;0.7395794588215822;0.7417886877437;0.7463789313551916;0.7522991023535168;0.7582192733518419;0.7641679892220721;0.7701884966292734;0.7762090040364747;0.782229511443676;0.7880799835403492;0.7939171719789776;0.799754360417606;0.8059136535819418;0.8123151761229926;0.8187166986640435;0.8246936116688719;0.8291128008747425;0.8335319900806132;0.8379511792864838;0.8419043236765302;0.8457802297012473;0.8496561357259644;0.8542062724874289;0.8594261224829121;0.8646459724783953;0.8700722962170923;0.8767086950146231;0.883345093812154;0.8899814926096847;0.8966594465101848;0.9033484417952075;0.9100374370802301;0.9162534654889732;0.9218542737761425;0.9274550820633116;0.9328628664584936;0.9360344831726136;0.9392060998867335;0.9423777166008536;0.9449789230807095;0.9473632807570819;0.9497476384334543;0.9519019343378285;0.9536643758431289;0.9554268173484294;0.9571641985250476;0.9573188119059569;0.9574734252868662;0.9576280386677755;0.9570040684419316;0.9559817732154625;0.9549594779889933;0.9539813217615402;0.9531024166560454;0.9522235115505507;0.951344606445056;0.9504747968633722;0.9496054216410882;0.948736046418804;0.9477789408978975;0.946763676914663;0.9457484129314286;0.9441391616309622;0.9407347889263743;0.9373304162217865;0.9339260435171987;0.9255700656671818;0.9166408825489634;0.9077116994307449;0.8977201144708342;0.8868388439511111;0.8759575734313881;0.8657772948406931;0.8585355846040813;0.8512938743674695;0.8440521641308577;0.8380716205404575;0.8323288844050487;0.82658614826964;0.8206097838054962;0.8143907398007839;0.8081716957960716;0.8018706271241918;0.795065902313439;0.7882611775026862;0.7814564526919333;0.774489233332592;0.7674788240014156;0.7604684146702392;0.7532183783421494;0.7456638739309243;0.738109369519699;0.7305261413537368;0.7226568458220499;0.7147875502903631;0.7069182547586762;0.700001662732744;0.6934154203290949;0.6868291779254457;0.680732820860317;0.6753890947629828;0.6700453686656488;0.6647303855593636;0.6600050769966488;0.6552797684339341;0.6505544598712194;0.6458652371159255;0.6411915410759761;0.6365178450360266;0.6321241745671581;0.6282452213550154;0.6243662681428725;0.6204927600491532;0.6175171105067417;0.6145414609643303;0.6115658114219187;0.6083811060511033;0.6050888108021032;0.6017965155531031;0.597929728258016;0.5928132660178459;0.5876968037776756;0.5825803415375055;0.5753379689825643;0.5680302538389229;0.5607225386952817;0.552762254756128;0.5444120467735863;0.5360618387910446;0.527943004078378;0.520412360875041;0.5128817176717039;0.5053510744683668;0.49996323131439013;0.4947140578048362;0.48946488429528223;0.485724951412769;0.4830050881188802;0.4802852248249914;0.47814480170889656;0.47769933230946615;0.4772538629100357;0.4768083935106052;0.47689829910591536;0.47703894544642134;0.4771795917869273;0.4760481489643224;0.47396756917806276;0.47188698939180307;0.46939790164322664;0.4655609138991331;0.4617239261550396;0.4578869384109461;0.4545649029507788;0.45130450927976173;0.44804411560874463;0.445105267793333;0.4424250276348486;0.43974478747636414;0.43713618122308723;0.4347875175943172;0.43243885396554715;0.43009019033677715;0.42527090087737696;0.42010990348972715;0.4149489061020774;0.40850287352738923;0.40096930880481996;0.3934357440822507;0.3861729638913059;0.37995755035869;0.3737421368260741;0.3675267232934582;0.36504765731858463;0.3631272758328129;0.3612068943470412;0.3600961257156095;0.3596887014745269;0.35928127723344433;0.35892570552777003;0.3587762192855799;0.3586267330433898;0.3584772468011997;0.3590677670134037;0.3597711601480074;0.3604745532826111;0.36198083154125427;0.36418489261783343;0.3663889536944126;0.36855147020596934;0.3705510024377986;0.37255053466962784;0.3745500669014571;0.37314967213082234;0.371250122367455;0.3693505726040877;0.36440725855704775;0.3568877960821254;0.34936833360720304;0.3422884264113771;0.3368423378944566;0.3313962493775362;0.3259501608606158;0.32552116272749354;0.32575577569014896;0.3259903886528044;0.32799836730437143;0.331427321701605;0.33485627609883856;0.33915681409103177;0.34640948538777844;0.3536621566845251;0.3609148279812718;0.37152297018382513;0.3824975698033342;0.3934721694228433;0.4044402492502166;0.4154035291486361;0.42636680904705565;0.43667513895087284;0.44503146301775165;0.45338778708463046;0.46174411115150926;0.46788584896760527;0.4738540772439817;0.47982230552035815;0.48457563929085784;0.48853350080982094;0.4924913623287841;0.4957713109935429;0.4973265458485312;0.4988817807035196;0.500437015558508;0.4991523110146215;0.4977519682552301;0.4963516254958388;0.48836427252050946;0.47667951131551545;0.46499475011052144;0.44934239349043764;0.4252973315493626;0.40125226960828764;0.3772253099675578;0.36067019090895724;0.34411507185035667;0.3275599527917561;0.3288781261663364;0.33842453227913266;0.34797093839192894;0.36165061105021884;0.38242761132147707;0.40320461159273524;0.42364069944442767;0.43789368157786945;0.45214666371131124;0.466399645844753;0.4736536773017516;0.4784156168024068;0.4831775563030619;0.4861513630597338;0.48669165505528905;0.4872319470508443;0.4874797087688754;0.48537680531731564;0.4832739018657558;0.481170998414196;0.4777437067699411;0.4739827647810669;0.4702218227921927;0.4658978326433693;0.46098276885135697;0.4560677050593446;0.4512964963593639;0.4471898118768234;0.4430831273942829;0.43897644291174237;0.43647072425302;0.4342062042188284;0.43194168418463674;0.4300027925373764;0.4283185004870055;0.4266342084366346;0.42519117360732245;0.42445527560950475;0.42371937761168704;0.42298347961386934;0.42224964627516565;0.4215159247864744;0.4207822032977832;0.41834497977833796;0.4149656344479625;0.41158628911758705;0.4061490585378528;0.39672150763429;0.38729395673072714;0.3778137143611441;0.36698776239693376;0.35616181043272344;0.34533585846851306;0.33878547020718774;0.3337671104953657;0.3287487507835437;0.32632929745331013;0.32727411534741835;0.3282189332415266;0.3294188028630171;0.3322313078518907;0.33504381284076423;0.33785631782963776;0.34051285459652514;0.3431393324083366;0.34576581022014813;0.3482712953962238;0.35067429408320183;0.35307729277017985;0.35595815252938917;0.3603073493095783;0.3646565460897674;0.3690057428699565;0.37310123443411036;0.3771836033949218;0.3812659723557333;0.3845045863112337;0.38730322472903483;0.390101863146836;0.3919550488595743;0.39216262733308477;0.39237020580659526;0.39240475754505033;0.3902645381441334;0.3881243187432165;0.38598409934229966;0.38228774151284256;0.37816189165717184;0.3740360418015011;0.3702143659820881;0.36670312306928815;0.36319188015648823;0.3604626859692227;0.3607233897696497;0.3609840935700767;0.3612447973705037;0.3608382196991785;0.3603743928799511;0.3599105660607237;0.35874575056296526;0.35717952102166123;0.35561329148035714;0.3542086959986902;0.353101640508125;0.35199458501755976;0.3509515349268439;0.35076666983706956;0.3505818047472952;0.35039693965752083;0.3498353560156217;0.34917246429783094;0.3485095725800401;0.3479798117644611;0.3475789814705484;0.34717815117663564;0.3465813075099271;0.3453254497123442;0.3440695919147612;0.34281373411717825;0.3432388823628482;0.3437491907253416;0.34425949908783493;0.3422062604562978;0.338922251763441;0.3356382430705842;0.3320215581512877;0.3279075089577323;0.3237934597641769;0.31902886359713206;0.3098042450925473;0.3005796265879625;0.2913550080833777;0.2799001702557715;0.2680675238929648;0.256234877530158;0.24751666519888454;0.24101392964478996;0.2345111940906954;0.22968063649850695;0.22848825528815306;0.22729587407779916;0.22597690912899732;0.22208107731723975;0.21818524550548218;0.2142894136937246;0.21144173754395512;0.20888945270762876;0.20633716787130238;0.20319590184133365;0.19949963899823675;0.19580337615513987;0.19344660123806717;0.19508753310836238;0.1967284649786576;0.1983693968489528;0.19655708259338706;0.1947046196386995;0.19285215668401198;0.1940728479409807;0.19644483170475927;0.19881681546853783;0.19601013041146173;0.1873134645760029;0.1786167987405441;0.1695713535846502;0.15921157798379842;0.14885180238294662;0.13849202678209485;0.1249146947394994;0.11117875212626925;0.0974428095130391;0.09013596361534333;0.0856134700193636;0.08109097642338389;0.07776780410073235;0.07594618961362046;0.07412457512650858;0.07298907878513332;0.07474486948615301;0.07650066018717272;0.07825645088819241;0.07660226889536352 +Lwater;0.26511067017774687;0.27301702266044464;0.2809233751431424;0.28835590884964396;0.2858038184059587;0.2832517279622735;0.2806996375185883;0.2776459199894028;0.2744016100172006;0.27115730004499833;0.27008013634773903;0.2722057893873224;0.2743314424269058;0.2772455272477379;0.28898319456766935;0.3007208618876009;0.3124585292075324;0.3153908130491555;0.31554317386310904;0.3156955346770626;0.32362239697198375;0.3415391926882476;0.35945598840451143;0.37564341232752374;0.37849940704566803;0.38135540176381233;0.3842113964819566;0.4030605118561607;0.42611995689999366;0.44917940194382666;0.4702649866945847;0.4891066627440939;0.5079483387936031;0.5284813395245448;0.5590694219891137;0.5896575044536825;0.6202455869182514;0.6495058094325153;0.6784737859968045;0.7074417625610936;0.7541147522517708;0.8188593440912522;0.8836039359307335;0.9497434472202261;1.0227036994342902;1.0956639516483542;1.1686242038624184;1.2862585440017908;1.4121278024716368;1.5379970609414826;1.678707295140554;1.8331942484824977;1.9876812018244414;2.154736996478636;2.3745130691976244;2.5942891419166134;2.814065214635602;3.1333786449161822;3.4680785714841065;3.8027784980520303;4.2494585333109285;4.791751830044612;5.334045126778297;5.943078440639692;6.799538430690253;7.655998420740815;8.512458410791378;9.798654835015125;11.140599499614986;12.482544164214847;14.215230897905778;16.25788792436666;18.30054495082754;20.53723686936105;23.42410351469235;26.310970160023658;29.19783680535496;32.99885764263726;36.89942362093268;40.7999895992281;45.34673619555154;50.37399450456187;55.401252813572206;60.72634724363612;66.9692028562807;73.21205846892528;79.45491408156985;86.82542849089039;94.29896717460613;101.77250585832188;109.44396436951229;117.25447120995123;125.0649780503902;132.41913232708376;138.46237798095518;144.50562363482663;150.54886928869809;152.41459207774295;153.96061086261432;155.50662964748568;154.0097145032064;150.47926976639752;146.94882502958865;142.55405684856953;135.8196111659155;129.08516548326145;122.35071980060741;115.25602003651774;108.13830597462857;101.02059191273939;94.51348673047073;88.39677636452332;82.2800659985759;76.49969253710732;71.58458669847302;66.66948085983871;61.754375021204424;57.79175351127111;53.87958739123095;49.96742127119079;46.60972697302568;43.59278705156275;40.575847130099824;37.808339566915976;35.65468292994174;33.5010262929675;31.34736965599327;29.888156670315478;28.45907789888565;27.02999912745582;25.92210369781589;25.00462150733564;24.08713931685539;23.29987291448709;22.820638083121185;22.34140325175528;21.862168420389377;21.809054628275458;21.770761022873256;21.732467417471057;21.943159479150715;22.29659933930091;22.650039199451108;23.10672914649775;23.79895047004458;24.491171793591413;25.18339311713824;26.188512160210013;27.20201406083458;28.215515961459143;29.369561686467197;30.601629550326354;31.833697414185508;33.12099582712578;34.53000723869026;35.93901865025474;37.348030061819216;38.82055627827053;40.29429635683051;41.768036435390485;43.228002260850026;44.6805631884335;46.13312411601698;47.56288943428706;48.944105227785165;50.32532102128327;51.70653681478139;52.987265944430135;54.26684526292399;55.54642458141784;56.709534908726724;57.81208404216728;58.91463317560783;59.946199895046206;60.83179365985247;61.71738742465874;62.602981189465005;63.26781081974522;63.93186703543161;64.595923251118;65.1383313695044;65.61970978718693;66.10108820486948;66.53159474596718;66.86130127581603;67.19100780566488;67.52013423855902;67.73366005682814;67.94718587509726;68.1607116933664;68.30011791782744;68.40378541277995;68.50745290773249;68.58575237849095;68.61578030149246;68.64580822449399;68.67479053623352;68.632307952648;68.58982536906251;68.547342785477;68.46774712065842;68.37104426544352;68.27434141022863;68.15970959615747;68.01245999757994;67.8652103990024;67.71676951215939;67.52200273118234;67.32723595020528;67.13246916922823;66.91058213083733;66.67682749910463;66.44307286737192;66.2017396177545;65.94729661751796;65.69285361728143;65.4370941504562;65.14728629631698;64.85747844217775;64.56767058803852;64.24451415392579;63.90762547782533;63.57073680172487;63.23250731166167;62.89208679290153;62.55166627414139;62.208780311260725;61.82017317334694;61.43156603543315;61.042958897519355;60.62521013533244;60.19629215027054;59.76737416520864;59.32800208209093;58.87261270843583;58.417223334780736;57.95955056150903;57.47016629850956;56.980782035510096;56.491397772510624;56.01334366179295;55.53927708467326;55.06521050755357;54.58226227539519;54.08666220703413;53.591062138673074;53.086807133418375;52.49000232927496;51.89319752513155;51.29639272098813;50.69305161237682;50.0876336267898;49.48221564120279;48.88589039708632;48.301494747824584;47.71709909856284;47.14808847384143;46.70815909749421;46.26822972114698;45.82830034479976;45.42242817845256;45.02611790463588;44.62980763081921;44.21475028314188;43.77727482749966;43.33979937185743;42.89218362124026;42.37693267642525;41.86168173161024;41.34643078679523;40.80532509162762;40.25798440236584;39.71064371310406;39.126784810482626;38.50358390343422;37.880382996385805;37.255373426327495;36.62068529732744;35.985997168327394;35.35130903932734;34.74708015201141;34.14891840088955;33.55075664976769;32.97186144810628;32.411422509884225;31.850983571662177;31.292127921346367;30.740111220368405;30.18809451939044;29.636077818412478;29.115398873624233;28.599583400806342;28.083767927988454;27.579123783769276;27.083853399447538;26.588583015125796;26.10240671296475;25.64804968021157;25.193692647458395;24.73933561470522;24.325957107976066;23.91706841610306;23.50817972423005;23.112289915304768;22.725786477948827;22.339283040592885;21.95460844871757;21.575123012680933;21.195637576644298;20.816152140607663;20.43276336848048;20.04912975570201;19.66549614292354;19.281943937261644;18.898441235997552;18.514938534733457;18.142866286123944;17.797060462958317;17.451254639792694;17.10544881662707;16.801718245139202;16.498623994323413;16.195529743507628;15.87342346679562;15.541846955994524;15.210270445193428;14.893178745501748;14.602935783675058;14.312692821848366;14.022258846929995;13.726383174044049;13.4305075011581;13.134631828272154;12.844364250005938;12.55629997656926;12.268235703132582;11.997591166600456;11.752803044093781;11.508014921587108;11.265751128203739;11.049751502676886;10.833751877150034;10.61775225162318;10.41254725780025;10.210504492705684;10.008461727611119;9.80268574895528;9.592523146233871;9.382360543512462;9.171121552499294;8.953621822338425;8.736122092177558;8.51862236201669;8.308817770164705;8.100541970676648;7.892266171188591;7.683581863623723;7.4745241348761695;7.265466406128617;7.056827797756017;6.849754081001828;6.6426803642476395;6.43560664749345;6.290169167058628;6.151526412366118;6.012883657673607;5.926789452743768;5.877088375666095;5.827387298588421;5.785234415917785;5.762338036040055;5.739441656162325;5.716545276284595;5.667687252017669;5.618110330508869;5.568533409000069;5.525870254617605;5.486686884613774;5.447503514609943;5.4070602929078255;5.36435814998186;5.321656007055895;5.278262655242377;5.22216088305891;5.166059110875444;5.109957338691977;5.051106606065478;4.991319154315601;4.931531702565724;4.875383633240422;4.823851705275015;4.772319777309608;4.718143107910779;4.647246261147666;4.576349414384553;4.50545256762144;4.4293426750506795;4.352188080540511;4.275033486030342;4.199266608424653;4.124728891737294;4.050191175049934;3.9655533380278754;3.8467760173730077;3.72799869671814;3.6092213760632723;3.470824629453392;3.3308850535973957;3.190945477741399;3.1002332825369576;3.0388468500584755;2.9774604175799935;2.944506557197168;2.970054453413177;2.9956023496291855;3.0211186975921493;3.0455498952476314;3.069981092903113;3.094412290558595;3.1013987575948234;3.1019417834597633;3.1024848093247033;3.0869624111134937;3.0504125843627907;3.0138627576120873;2.9771599450889936;2.939491830648444;2.901823716207894;2.8641556017673446;2.828054658313253;2.7922492379660855;2.756443817618918;2.7105855871408955;2.6563937696323463;2.602201952123797;2.5546698612926275;2.5267976927473987;2.4989255242021704;2.4710533556569416;2.4298047806453;2.388001707783926;2.346198634922553;2.307602733982212;2.270598983490344;2.2335952329984754;2.2037663331289266;2.185782984257573;2.1677996353862192;2.1473627011739005;2.101208792401696;2.0550548836294915;2.0089009748572866;1.9844694722106946;1.9655399659019415;1.9466104595931883;1.9170050195786312;1.8771276327524262;1.8372502459262214;1.7944096589035923;1.7412043226168665;1.6879989863301408;1.6347936500434153;1.5914536638576147;1.5487885266486399;1.5061233894396655;1.4770367644362665;1.4552428597284504;1.4334489550206342;1.419890564309239;1.4205873712250912;1.4212841781409433;1.420064473013869;1.3976012941062583;1.375138115198648;1.3526749362910373;1.3409640901301734;1.3319358449426209;1.3229075997550683;1.3252518306977954;1.3381396406866863;1.3510274506755773;1.3608774619541928;1.3610289308748276;1.3611803997954623;1.3613318687160971;1.3810273097005807;1.4015551801736845;1.422083050646788;1.416788762891431;1.3993886372098243;1.3819885115282173;1.3631835575671716;1.342302205541485;1.3214208535157985;1.3012242407067298;1.2857206288236314;1.270217016940533;1.2547134050574344;1.2433950647763379;1.2328026830231884;1.2222103012700392;1.2293576733634781;1.2494504785431946;1.2695432837229108;1.2757389145610578;1.25028963955188;1.2248403645427024;1.1993067540179436;1.1713234842845248;1.143340214551106;1.1153569448176872;1.1094191424106286;1.1103469804814396;1.1112748185522505;1.1208686383646094;1.1393783408026092;1.1578880432406091;1.1622687353797494;1.1178132837378778;1.073357832096006;1.0289023804541344;1.011550875256351;0.9954160541060659;0.979281232955781;0.9684954243915843;0.9601033907026464;0.9517113570137085;0.9359589600583778;0.9102810426853978;0.8846031253124178;0.8721302959370157;0.9279949965174679;0.9838596970979201;1.0397243976783723;1.0205079905555272;0.9928810909375375;0.9652541913195478;0.9364328353193218;0.9069331181294045;0.8774334009394871;0.8528775763709672;0.8364738333426017;0.8200700903142364;0.8037746415594584;0.7882851159692114;0.7727955903789642;0.757306064788717;0.7068894844971713;0.6508166492525156;0.59474381400786;0.6049835397217782;0.6586935496631402;0.7124035596045022;0.7250758536372284;0.6610946045433465;0.5971133554494645;0.5412636778152112;0.5632366683457438;0.5852096588762765;0.6071826494068091;0.607819701285532;0.6044466564879168;0.6010736116903017;0.6075817529168217;0.6209494555314482;0.6343171581460747;0.6327465428238812;0.6021778327961331;0.571609122768385;0.5456828317679592;0.5661020565543774;0.5865212813407957;0.606940506127214;0.5908934742398838;0.5680760266911775;0.5452585791424711;0.5292344121928351;0.5177942425206754;0.5063540728485156;0.4829123222138658;0.43738686727581844;0.391861412337771;0.34925912659299463;0.3306856619048344;0.3121121972166742;0.29353873252851403;0.2817919742019256;0.27110004911508956;0.2604081240282536;0.3136151188465694;0.40512354509476733;0.4966319713429653;0.5066034055928522;0.38669660918184434;0.26678981277083647;0.16558698492332177;0.1724905314135036;0.1793940779036854;0.1862976243938672;0.28522777873605487 +Lw;0.2651204068539354;0.27302584450704304;0.2809318458916279;0.2883642331750884;0.28581199630836207;0.2832596061121063;0.28070697432005914;0.27765271544251174;0.27440785877761575;0.27116288154187135;0.27008505058106996;0.2722100363571112;0.2743357632430491;0.27725024525941544;0.2889883097748812;0.30072617415802155;0.3124636662504581;0.31539577486458625;0.31554796533230234;0.31570200697297207;0.32363055009460945;0.34154902663758957;0.3594656926869955;0.37565203443322265;0.3785069469745818;0.3813621344339471;0.3842179409216954;0.40306686806550357;0.4261261248789405;0.44918469001530853;0.47026936562670213;0.4891101325368468;0.5079518758475831;0.5284855654005357;0.5590743366871156;0.589662923459295;0.6202509912355374;0.6495111990614747;0.6784791609374372;0.7074472739744783;0.7541204145047606;0.8188651571838471;0.8836095853059549;0.9497486895390893;1.022708534696795;1.0956682361785468;1.1686274104300893;1.28626067260694;1.4121288531142644;1.5379948375672698;1.6787014526367232;1.833184786849049;1.9876692828980886;2.154723718999915;2.374498433166535;2.594273268314953;2.8140487226273208;3.1333615345012795;3.4680608426625827;3.8027609834117038;4.249441424728817;4.791735127520714;5.334028465770385;5.943061396145355;6.799521002709492;7.655980542829232;8.512439548023265;9.79863498739048;11.140578667133811;12.482522110442506;14.215207547787394;16.25786327790223;18.300518994502653;20.537209583517246;23.424074899329636;26.310940141994728;29.197804140898437;32.998822331753146;36.89938566362097;40.79994610643626;45.346685949702014;50.373937505654645;55.40118922514212;60.72627736766357;66.96912669276568;73.21197601786781;79.45483246052265;86.82534770752407;94.29888722892069;101.77242956089862;109.44389325785606;117.25440528406203;125.06491656228631;132.41907347820353;138.46232177129858;144.50557006439368;150.54881595332424;152.41453882647795;153.9605576954582;155.5065765116089;154.0096613615924;150.4792166190463;146.94877178329685;142.5540031998775;135.81955711482328;129.08511102976902;122.35066542770504;115.25596580892311;108.13825189234169;101.02053822695345;94.51343366517722;88.39672391972222;82.28001416042993;76.4996412405319;71.58453594346815;66.66943064640441;61.75432440115648;57.79170227924461;53.87953554722589;49.967369777645004;46.60967692153845;43.592738442134085;40.575799753317426;37.808291812859885;35.65463479861196;33.500977784364025;31.347320612974283;29.888107043696163;28.459027688666;27.02994729381836;25.922048732683287;25.004563410707895;24.08707812532502;23.299809261773664;22.8205719692247;22.34133467667574;21.862098472088096;21.808983770642566;21.77068925590875;21.732395242553782;21.943087837436284;22.296528230789324;22.649968624142364;23.106659444744015;23.79888164387067;24.491103842997322;25.183326483036126;26.188447089926704;27.20195055437007;28.21545386707397;29.369500627625218;30.601569527027575;31.833638426429925;33.12093642224262;34.52994731384324;35.93895820544385;37.34796874744456;38.82049384180636;40.29423279827683;41.76797166569906;43.22793597749071;44.68049539140629;46.133054805321876;47.56281892884836;48.944033573456736;50.32524821806511;51.70646294933929;52.987191096352454;54.26676943221073;55.546347780719195;56.709457200519246;57.81200542645097;58.91455365238269;59.946119221133586;60.8317117802743;61.717304339415016;62.60289614216339;63.26772293296804;63.931776309178865;64.59582926470813;65.13823073523807;65.61960250506414;66.10097427489022;66.53146360270054;66.86114954828581;67.19083549387108;67.51993333693466;67.73341884982844;67.94690436272224;68.16038971712445;68.2997526978099;68.4033769489868;68.50700120016374;68.58528130884714;68.61530000150067;68.64531869415421;68.67430499019842;68.63185087717861;68.58939676415879;68.54694265113896;68.46738578147782;68.37072173061256;68.27405767974733;68.1594566357858;68.01223344169432;67.86501024760283;67.71659227100062;67.52184012864299;67.32708798628533;67.1323358439277;66.9104559933;66.67670812632292;66.44296025934584;66.20163140318277;65.94719118785396;65.69275097252515;65.4369936450386;65.14718594772746;64.85737825041635;64.56757055310521;64.24440979300364;63.907516269109195;63.57062274521475;63.23238499168223;62.89195337063619;62.551521749590144;62.208623856534544;61.82000140946425;61.43137896239394;61.04275651532363;60.62499164825541;60.19605741544236;59.76712318262933;59.32773762138797;58.872337549305726;58.41693747722349;57.959254751686544;57.46986474044525;56.98047472920396;56.491084717962664;56.01302781380451;55.53895916943688;55.064890525069245;54.58193946540529;54.08633565910772;53.59073185281014;53.08647302226039;52.48966366949969;51.892854316739005;51.296044963978304;50.69268835755813;50.08725143239849;49.48181450723886;48.88544819163107;48.30098018332245;47.716512175013825;47.14742737531027;46.70739900088093;46.267370626451594;45.827342252022255;45.42141744648907;45.025072344382664;44.628727242276256;44.21366410016117;43.776230801724395;43.338797503287616;42.89122441372213;42.37603124534639;41.860838076970644;41.345644908594906;40.8045818150098;40.25727684007087;39.70997186513195;39.12614282960831;38.50296063139316;37.87977843317799;37.254787571353305;36.62011631603318;35.98544506071307;35.35077380539295;34.746565401380145;34.14842601565293;33.55028662992571;32.97141427356718;32.41099922556497;31.850584177562773;31.291752417466814;30.739751755595407;30.18775087314025;29.635749990685092;29.115081705923725;28.599273878098415;28.083466050273113;27.578827836799945;27.083559188142583;26.588290539485218;26.10211597298855;25.64775888440333;25.193401700717367;24.739044517031402;24.32566603045705;23.91677746829179;23.507888906126524;23.111999598237134;22.72549766472848;22.338995731219825;21.954322643191794;21.574837493227808;21.195352253547405;20.815867013867003;20.43247814403583;20.048844231823207;19.665210319610587;19.281657927955134;18.898155371371914;18.51465281478869;18.14258071086005;17.79677712919334;17.450973733969033;17.10517033874472;16.80144197891683;16.498349784338338;16.195257589759848;15.87315289392469;15.541576507028944;15.210000120133198;14.89290854434687;14.602666313467168;14.312424142058992;14.021990957559138;13.72611689643471;13.430243439461115;13.134369982487524;12.844104757821942;12.556043268688647;12.267981779555353;11.99734002732661;11.752556765258955;11.507773711119718;11.265514986103783;11.04952059340538;10.833526321588904;10.617532049772429;10.412331693090907;10.210291350287346;10.008251007483786;9.802477451118952;9.592314333067915;9.382150935871689;9.170911150383702;8.953403768631807;8.735891476282815;8.51837918393382;8.308561121314108;8.100269167104953;7.891977212895798;7.683276750609832;7.474211184384986;7.265146303836522;7.05650054366301;6.849432175008384;6.642372296736748;6.43531241846511;6.289890868748296;6.151269761421948;6.012648654095598;5.926576096531921;5.876891557057271;5.827206697857895;5.785070033065557;5.762183326230754;5.7392925234211996;5.716401720611646;5.667548151409639;5.617972935444687;5.568397719479735;5.52573627064112;5.486550584561134;5.44736475410434;5.40691907194926;5.364211265087192;5.321501669407875;5.278100864841004;5.221992033301773;5.165884042195296;5.10977605108882;5.0509190995393105;4.991123466264991;4.93132782674607;4.875171569651724;4.823633720578605;4.772096959615067;4.717915457218106;4.647013799753203;4.576112182740587;4.505210565727973;4.429096087878985;4.351941880711174;4.274787673543362;4.19902118328003;4.1244836725868295;4.049946090411358;3.965308387901187;3.8465350411459225;3.727767463967126;3.6089998867883297;3.4706132402313;3.3306877170159663;3.1907621938006323;3.1000640512368536;3.0386850001356773;2.977303920605651;2.944355413171281;2.969903991482246;2.9954469033726427;3.0209582670099953;3.045384096096492;3.069807520603286;3.094230945110081;3.1012096389976223;3.1017449319409582;3.102280233437887;3.0867501108586666;3.0501962884114393;3.013646013124352;2.976942752064874;2.939274539974162;2.9016077204839648;2.863940900993768;2.827841252490029;2.792037740118519;2.7562343027344225;2.7103780552194716;2.656189365802943;2.6020014996978893;2.5544733602702148;2.5266056380244044;2.4987392305510285;2.4708728230776527;2.4296300091378633;2.38782912484556;2.3460281156041103;2.3074342782836927;2.27043273240384;2.233431259170662;2.2036046365598048;2.185623483415987;2.1676421819638754;2.147207295170799;2.10105533816383;2.054901584311668;2.008747830459506;1.984316482732957;1.965387205635278;1.946457953645178;1.9168527679492744;1.876977864014503;1.8371057358688847;1.794270407526842;1.7410704555193939;1.687871248207068;1.6346720408947422;1.5913381836833416;1.548682343425723;1.5060270869816155;1.476950342743083;1.4551635968725063;1.4333745836610159;1.4198210844459462;1.4205215948615344;1.4212184995989314;1.419998892293402;1.3975358112073362;1.375073286350606;1.3526107900243272;1.340900626444795;1.3318717622658645;1.3228422147069876;1.3251851432783903;1.3380712657241427;1.3509567074653752;1.3608043504963325;1.360953473450448;1.361102901015;1.3612523285795521;1.380945728207953;1.4014743045832547;1.422003673462712;1.4167108841137088;1.3993100803372827;1.381906967619514;1.3630990266223064;1.3422155080702416;1.321335365121604;1.3011399613895842;1.285637558583535;1.2701347324252552;1.2546318628767605;1.2433142649302675;1.232723326597864;1.222132818447691;1.229282064144106;1.2493769689741214;1.2694723252611693;1.2756705072066477;1.2502236159052773;1.2247734605909486;1.199238969761039;1.1712548197224695;1.1432728044136022;1.115291444295864;1.1093555515044855;1.1102857815686455;1.1112165284255493;1.1208132570240008;1.1393256622662773;1.1578372520417939;1.1622198315184509;1.117766267214096;1.0733126585123822;1.0288590460444722;1.0115093800206503;0.9953751715927683;0.9792402829133681;0.9684544068200561;0.960061048938934;0.9516655137476981;0.9359096152900696;0.9102288166033601;0.8845542909387937;0.8720848532718052;0.9279529455606709;0.983823035817148;1.039693578683398;1.020483013846351;0.9928614007829732;0.9652393180463795;0.9364227789275494;0.9069264504213116;0.8774262596343206;0.8528699614687273;0.8364657448432883;0.8200714328133991;0.8037854220369389;0.7883053344250096;0.7728288675542271;0.7573537399120179;0.7069515575685102;0.6508842416879098;0.5948065890760468;0.6050414974227575;0.658748666952854;0.712463971725911;0.7251415605903323;0.6611656063281455;0.5971870336754053;0.5413398364184623;0.5633153073263053;0.5852921089178024;0.6072695761318139;0.6079111046940157;0.6045429220322693;0.6011753074855631;0.6076888789629921;0.6210607982027695;0.6344254615490303;0.6328518069584712;0.6022800576623575;0.5717153006505642;0.5457938819982485;0.5662179791327768;0.5866403563428795;0.6070617049033747;0.5910167967901218;0.5682003866288863;0.5453821199920633;0.5293571339543106;0.5179177230926978;0.5064905712141085;0.48306183837302896;0.43754940122855196;0.3920270774471176;0.34942631861887535;0.3308543808472492;0.3122813434627776;0.2937075978134313;0.2819605585256567;0.2712759891367101;0.2606051396740846;0.31383321011661086;0.405359306085963;0.49685739828776904;0.5068184984912641;0.3869013680338644;0.2669971075112929;0.16579889651178337;0.17270705984997034;0.17961192148326;0.18651471380474202;0.2854441139782299 +Rs;9.184667381334432;8.373268368041797;7.728918832021598;6.978154076772278;6.141983617178273;5.474202961694138;4.87586962999344;4.335447312981223;3.8915221467564125;3.504939311416953;3.1174963696388174;2.838343143962845;2.6084023204534024;2.337229073090609;2.1690648793853247;2.034132390372569;1.9115506653865286;1.7480739882962009;1.5986127291098546;1.4762015885722821;1.4422710806591867;1.4539071372969334;1.464537553280399;1.4940202204373798;1.4803626770289435;1.4671526163555133;1.4605352405589516;1.5251031848249168;1.604934436862407;1.6843787965276202;1.781343569801799;1.8717101420269326;1.963953078747292;2.0691130502330513;2.2192895634175147;2.3736977925153715;2.5058321267224337;2.57140760109829;2.6332697609686715;2.692746394139846;2.7913497367443734;2.948417493521971;3.0971522267149654;3.254442963809124;3.4358456594868296;3.6102818664914738;3.7519955720608937;3.941312577120245;4.138245645310303;4.31870984873364;4.4188289837548265;4.527946749130679;4.62439281096494;4.779690278546017;5.071471025378238;5.342343552930025;5.618436999826022;6.19734824773324;6.795661268473737;7.382969813211548;8.19396265137323;9.18196654653117;10.157712608266763;11.235690376012304;12.746438385893965;14.231911753605498;15.698234325039138;17.984551985777895;20.351143710219034;22.695518143272146;25.702184303720347;29.223946751284057;32.70485026672329;36.43468434363881;41.155901979312766;45.787027071492474;50.33046621902542;56.34402322158052;62.41315411808675;68.36949463980025;74.67812883172617;81.23079788178492;87.51630407762632;93.34809079775474;98.74897246900952;103.7268588401529;108.32958024906276;112.58324836714715;116.49666085056116;120.05695574070171;123.02646127111684;125.54445736150073;127.83405396534059;129.27799401943477;128.7604520871979;128.28982263690426;127.86000162562353;124.15286834769516;120.49790428081725;117.11858057222707;112.48411380432876;107.28542404447819;102.32883676248505;97.29090865594273;92.2301684630747;87.21990398254286;82.2593641209063;78.07267853155716;74.03361061590915;69.90733224458702;66.2840442859289;63.03842735101077;59.681608054627205;56.466578889927575;53.89329517557773;51.21518995958751;48.42572455658674;46.29928665276968;44.126842995503345;41.85538650572327;39.91140775342924;38.108092619844285;36.22779939025706;34.49094073115266;33.08386374080585;31.627700664168792;30.1198371896327;29.148162156265073;28.13093014952348;27.08572173782641;26.322698490294826;25.699591022006153;25.06115296071392;24.543981208619837;24.41179502063639;24.28018121901288;24.14430381366265;24.480885577773243;24.844544032081735;25.220510352131388;25.86030524541725;26.532582026886754;27.218073383111435;28.042478584992054;29.01665342627031;29.974200923678882;30.939059835629152;32.34441415885976;33.824138331672195;35.32408223563303;37.03088271241595;38.91756562528907;40.83711917556306;42.861882046828065;44.98785482003642;47.11623299661192;49.271380911379055;51.42017688189205;53.4248994349253;55.43358193905167;57.42481302357817;59.36805302759707;61.312185877182124;63.2269096153981;65.22187143501912;67.28636176714829;69.36468438288168;71.3245169101135;73.30137723085798;75.29205840119822;77.13828054875252;78.40295564188057;79.65953211606892;80.81293259333977;81.50245033018665;82.038253330805;82.56568824136619;82.79295105958964;83.00796050444275;83.2196340531921;83.27253035368035;83.265155663866;83.25928271600671;83.18987291042708;82.96316764347715;82.71522860690432;82.47044850448462;82.1316157800244;81.95133917970621;81.77297395692331;81.50803338682236;81.24839726475642;80.9985842591311;80.72122170958774;80.32638276196978;79.87343751646213;79.42476710248526;78.88063000692787;78.23510494898736;77.5992792978773;76.93124671695308;76.25048952164913;75.57887357846943;74.89742054400425;74.22862341415376;73.61793743127208;73.01333895367887;72.38131407779353;71.92799965882195;71.47774684600509;71.00173827819837;70.55893681623219;70.13461637044682;69.70444434310778;69.27939613204883;68.88456005756385;68.48980210398966;68.06270653260613;67.74898544121336;67.43536566955922;67.08701834000037;66.7787299725434;66.49773513086319;66.21473104266215;65.92577017598761;65.629381120501;65.32985491529955;64.98171218993987;64.63230710074737;64.28223251909284;63.90079925506856;63.512761064741966;63.12781599036405;62.730993581576875;62.35557208283379;62.09713743433745;61.834390251956265;61.5357769915182;61.56257299454746;61.628371364884146;61.707949615425335;61.8666756756081;62.09120281621856;62.31116793886659;62.471418436839286;62.42109565851463;62.35974981225471;62.18770106886658;61.91935515400728;61.6295384253604;61.32777383661371;61.03662474035326;60.75930396672129;60.48893873161141;60.235377814682955;60.015794962620014;59.81193634916722;59.769676019674485;59.739204413940264;59.71153967882992;59.72821036385199;59.77691681326717;59.85099828828573;59.901236762421526;59.924249556083964;59.97147574792302;60.00555605130325;59.94474037144858;59.801055205425754;59.62608228264129;59.410087874046425;59.13814584287757;58.79569595222372;58.3932740368394;57.92267281266724;57.39316219437252;56.8532546951499;56.29062372930672;55.716646434485355;55.13293850706643;54.588517309225644;54.021705528088354;53.40317043329608;52.80780842251137;52.23429073209088;51.57846420065318;50.918862932965034;50.264012770962566;49.619803397715174;48.97752108719391;48.38027631177699;47.830493328067774;47.37320782127655;46.92696584280379;46.48896857155451;46.21334237075353;45.95198195269078;45.7405527947599;45.577282971016885;45.4417654121457;45.37846992674874;45.301817210444796;45.17165746524444;45.06302096935175;44.96972265990703;44.68127720610813;44.3778022816015;44.07841744212284;43.6365317282941;43.09657915807229;42.54238333373905;41.93048666464289;41.16650158278;40.40126110323345;39.63469525406242;38.823063218090304;38.03165524333009;37.295763346769554;36.65800144782603;36.089326466804216;35.60480020983745;35.147898460096165;34.78654909863988;34.37801680780722;33.941952048172716;33.46056860395174;32.99968920787986;32.59202789356344;32.155144361725235;31.693484956126984;31.213825126176115;30.72324830647489;30.208709889281312;29.701551190507143;29.193977334978932;28.847451716647583;28.557622487992546;28.32290094618981;28.17060651679393;28.095703932261568;28.08468920174013;28.05355976354202;27.94399542725022;27.859667581277904;27.781085573292472;27.416286084393025;26.99460520732709;26.55628805316155;26.054573392665052;25.49680074127428;24.92031824640364;24.33899646010982;23.74287571482917;23.167712710108717;22.59632721291544;21.979074531079245;21.356010713724203;20.734365619770184;20.07052769314534;19.37614845289018;18.69442871010016;18.02291629178573;17.366873591295583;16.883322619107435;16.4230908094867;16.11323579560222;15.963836075630782;15.911418562647789;15.990918295458842;16.209772641635308;16.49314712279909;16.767416250654847;16.970555887789782;17.10202865015833;17.235680818844784;17.106100484598166;16.96281902886986;16.83040597373126;16.60790204193111;16.314041474279204;16.019443707556054;15.690387007761995;15.23659451453121;14.765481504315746;14.313305083889096;13.75359388562318;13.20510115171791;12.684819547939362;12.19297000209093;11.735989772747772;11.313342451209067;10.928254287798923;10.601307658622588;10.24953457532322;9.910493869274395;9.628866903473924;9.3469620724578;9.069903234264144;8.821713942944411;8.595155043245743;8.374733016806395;8.168980335500104;7.973249007119932;7.710313725471325;7.449024248949264;7.23025779336242;6.9725756231499;6.710339094162772;6.533570069187713;6.5034556292999826;6.534880231257305;6.625913699079921;6.923051697608738;7.401588019381273;7.940736806950354;8.3759577119379;8.849900353742195;9.371742468637168;9.408442516925296;9.163666765267902;8.913804544353587;8.57811417608003;8.071462466301568;7.564884430172019;7.113683876635361;6.798323148527761;6.500710446137106;6.221290574156656;6.046487208351664;5.910846454784465;5.7784921995989365;5.669498251300309;5.568984031401911;5.451591140278329;5.337661143412954;5.262866565286788;5.228102796923321;5.193037898763992;5.17196310085045;5.125988094229781;5.07809082672206;5.035499097073336;5.0054675232941745;4.9782799948713885;4.948922221173635;4.927671825329462;4.932761706069397;4.937946482015863;4.919476097384421;4.8388422775851305;4.757358827709911;4.67147624462207;4.632805915403503;4.606726715228193;4.577841861418303;4.516030022707888;4.429766404817668;4.343209189980495;4.249311807256263;4.130497457246392;4.011270521848993;3.907473783385379;3.8348674000446623;3.7627160679866;3.7080649464099515;3.7228895190239624;3.757258721917611;3.793865942862211;3.8688513076636832;3.9884163693340766;4.115467492723507;4.191439766956319;4.187158552360541;4.182748323980669;4.144926001373975;4.097178981054948;4.0578760923757535;4.015685210467685;3.9887425175148157;3.9937202671463323;3.998613126857636;3.996337677497533;3.9661832524372644;3.93648782147775;3.908597540405599;3.9379725047091885;3.969313046408461;3.9948619335114293;3.931951115702783;3.8373370650881307;3.7449470484434166;3.6534294202744846;3.5585202961882314;3.465652486523912;3.3839387297617005;3.3194599902518056;3.2559053222136782;3.2009585449331905;3.170404771575171;3.1417353008844167;3.114469931744859;3.1498687274786534;3.2190123335217;3.2889238894148636;3.3369380408547387;3.3060539506680002;3.2744797926209723;3.2393096539615676;3.1940137567390234;3.147847919730477;3.094055189920797;3.075363513890509;3.075719405218361;3.0760762134543675;3.1061378641053983;3.1615056029960833;3.2170137840477984;3.239675535374638;3.1294242850678686;3.0182017495588136;2.904669076922597;2.864640839858616;2.827813875441046;2.7902436247144253;2.7609647383826443;2.7384793960740796;2.7159641139499087;2.6752859572269103;2.6068172885103826;2.5381061541305106;2.5061363440879663;2.6697613924600896;2.833770018311444;2.9998547415994676;2.955134105222805;2.885641231059273;2.815637828898792;2.7281955135188576;2.6383377034506337;2.5487350732781167;2.492268728022423;2.4680166040768543;2.443319406367347;2.4208832297289837;2.4040478271774592;2.3867957929634795;2.3739348577199593;2.2819298597968656;2.1654303356366476;2.0415183284092704;2.1616331882537736;2.457398260655707;2.780511297264973;2.92966762463314;2.743267193321903;2.5465182418731267;2.3569241389749513;2.465401587560342;2.5750230235920064;2.687308090337488;2.7373385974061315;2.7707782010267943;2.8054363354822525;2.874025185480061;2.973155370711965;3.074702769714942;3.1144909972280646;3.01895312034966;2.9198439366927973;2.821418823102306;2.9023791018889358;2.981980042423053;3.0602588632440026;3.006845589038092;2.918268645516774;2.8279804041065053;2.7276207855479755;2.6364538002765396;2.547523809897554;2.464473837954152;2.3359207103396202;2.1947939959251532;2.060644744717694;2.0780799049734773;2.097934579652456;2.1207545635501073;2.257224893465618;2.4399985064467473;2.6744419724393547;3.4817757255683106;4.734760850065777;6.127160137937273;6.517073541574917;5.094414479544556;3.602005233157942;2.2715575983616043;2.310620930068859;2.347847992995183;2.383378132893118;3.726314090880758 \ No newline at end of file diff --git a/data/2/2022/8/17/51/3.bin b/data/2/2022/8/17/51/3.bin new file mode 100644 index 0000000000000000000000000000000000000000..42c77794d5019fd206bd2fb35cec99ec2f34d8bd GIT binary patch literal 1754 zcmZ`(X;2hL6kfGwdSB1%AtG|`;vy?zxDnKVTmo__a;yi&D2H5fh=Q^xC~~L}Kvck} zg<2*WOsY&ME2s&YMB|ZEX)LS2C}j+y5bv01$~ffB{?C5(x?jKd`kUT<-;6@>e?LQ) zLO~@-faQ<~sgMG(kN^wNp9}LK3c_FxS{!=ukYuq4%*TQW7D6)4iy;llU?W_Rd3Z^x zgGOkDL-0BD!7zBSa<-c38DR=E%3i?>xDQWZ5FWx45SSbDVehe-OvkL4f%&pX)-LmK zl4N3QSsANirP*!U(N^pi`h*{ZuY^;=apAD=sn8~vg^fa;WOxf7HERKI9l#!yd>?1kDv{9LOs-i8LH5VAs;fK5O1*n=asModk}&h zm=6)yfdB}FS%@(3$4&&oPWe3JB*_yq{@@3*!4tFdARK})5`i@#IEKRexIY}b7GYtD zMlS#&5y6;=Myru|6q1yHoN`Sh)~DiA!?5#*D&ss$CWLH#{lg^2V|kX1isb%V^68$TF?jowG^iLH&G}t6v+kE}~pAS5z;m z(bb-=3v962G1L%Uuc)ow7F^X}ep(*9eqZs7g2Al#l{=Q{OsW){q=dwSaf31KQH_z` z%RH!`l5m^QUxP2tJv%!&u-w1Er`NM}=46lMGsfIq+#edRxeZKv=epa_;}WXBtsBw3 z(oNUz(cjTe)>G#-j#C|*93`0t_4BjSP2EG6Ov6&wYp%VnuMIvf&W>HS&+Mi;S?N~m zMx2$-w;anHeC)mK-nY$~(qQx9wP9LY?IVq+%!B%Qpc&Ad)2!9JROwOTjh1-5oM=xt8%k)wsM#@(QFzm^Pql~ z(`9rKO`-`j5yurYhnCU?x`kFEw$gH1K?|^l=`@YT&`>&y8mWP*5CR?J-|^3RFPR7R z^Edy3f5QL8KjZ&E?=faZ_(vES#>fMH6eCYDGlJuDjEtf;Y{6snM{(avnFsa5b2VfW z*-W;Otz;XbmeiA7q|q`rk~XrJbdUq&I5|O1lds7oa-IA}UJyGjitFIUxc&TDnFsaL zLVaOWDAQh;^3&8WePd(HnIF`5oP2r3_)F7;mxoVQ@5`)CObM>=t}z~U>38aO&^TOm z=y5uu?{M{V5ArPc3y^tGKUafXLQ*2!V~XM(7xBq{sk_q_nl_u}nvSLQq;5%J$&pFn z3l#|^u^&fwMlK0cha8ymW>%x$Y3~ltt1~$dfA=qB9@I~UF=N^?LyU{BPVK}yxZBlC zaklBVJ~3&NRouiNZJcJ6x>MCJx{3|hIWvAY%3(aTD5oh0=|y^m9;2&e9@NiX>`Eq$ z!agYIO}?8iPGG8__F66eGOl^Pql; z$a+#h){=E-rDOwU3bA4xDYDd+;#`U`IbMtv`8bxK6{4Sqt6VZ9^PqlmEzx}B%0U#8 hY|Q6jJ|8PHaaDlG$4E9pu9CAk$ex4GFCk52%74zO1(pB+ literal 0 HcmV?d00001 diff --git a/data/2/2022/8/17/51/4.bin b/data/2/2022/8/17/51/4.bin new file mode 100644 index 0000000000000000000000000000000000000000..42c77794d5019fd206bd2fb35cec99ec2f34d8bd GIT binary patch literal 1754 zcmZ`(X;2hL6kfGwdSB1%AtG|`;vy?zxDnKVTmo__a;yi&D2H5fh=Q^xC~~L}Kvck} zg<2*WOsY&ME2s&YMB|ZEX)LS2C}j+y5bv01$~ffB{?C5(x?jKd`kUT<-;6@>e?LQ) zLO~@-faQ<~sgMG(kN^wNp9}LK3c_FxS{!=ukYuq4%*TQW7D6)4iy;llU?W_Rd3Z^x zgGOkDL-0BD!7zBSa<-c38DR=E%3i?>xDQWZ5FWx45SSbDVehe-OvkL4f%&pX)-LmK zl4N3QSsANirP*!U(N^pi`h*{ZuY^;=apAD=sn8~vg^fa;WOxf7HERKI9l#!yd>?1kDv{9LOs-i8LH5VAs;fK5O1*n=asModk}&h zm=6)yfdB}FS%@(3$4&&oPWe3JB*_yq{@@3*!4tFdARK})5`i@#IEKRexIY}b7GYtD zMlS#&5y6;=Myru|6q1yHoN`Sh)~DiA!?5#*D&ss$CWLH#{lg^2V|kX1isb%V^68$TF?jowG^iLH&G}t6v+kE}~pAS5z;m z(bb-=3v962G1L%Uuc)ow7F^X}ep(*9eqZs7g2Al#l{=Q{OsW){q=dwSaf31KQH_z` z%RH!`l5m^QUxP2tJv%!&u-w1Er`NM}=46lMGsfIq+#edRxeZKv=epa_;}WXBtsBw3 z(oNUz(cjTe)>G#-j#C|*93`0t_4BjSP2EG6Ov6&wYp%VnuMIvf&W>HS&+Mi;S?N~m zMx2$-w;anHeC)mK-nY$~(qQx9wP9LY?IVq+%!B%Qpc&Ad)2!9JROwOTjh1-5oM=xt8%k)wsM#@(QFzm^Pql~ z(`9rKO`-`j5yurYhnCU?x`kFEw$gH1K?|^l=`@YT&`>&y8mWP*5CR?J-|^3RFPR7R z^Edy3f5QL8KjZ&E?=faZ_(vES#>fMH6eCYDGlJuDjEtf;Y{6snM{(avnFsa5b2VfW z*-W;Otz;XbmeiA7q|q`rk~XrJbdUq&I5|O1lds7oa-IA}UJyGjitFIUxc&TDnFsaL zLVaOWDAQh;^3&8WePd(HnIF`5oP2r3_)F7;mxoVQ@5`)CObM>=t}z~U>38aO&^TOm z=y5uu?{M{V5ArPc3y^tGKUafXLQ*2!V~XM(7xBq{sk_q_nl_u}nvSLQq;5%J$&pFn z3l#|^u^&fwMlK0cha8ymW>%x$Y3~ltt1~$dfA=qB9@I~UF=N^?LyU{BPVK}yxZBlC zaklBVJ~3&NRouiNZJcJ6x>MCJx{3|hIWvAY%3(aTD5oh0=|y^m9;2&e9@NiX>`Eq$ z!agYIO}?8iPGG8__F66eGOl^Pql; z$a+#h){=E-rDOwU3bA4xDYDd+;#`U`IbMtv`8bxK6{4Sqt6VZ9^PqlmEzx}B%0U#8 hY|Q6jJ|8PHaaDlG$4E9pu9CAk$ex4GFCk52%74zO1(pB+ literal 0 HcmV?d00001 diff --git a/data/2/2022/8/17/51/info.bin b/data/2/2022/8/17/51/info.bin new file mode 100644 index 0000000000000000000000000000000000000000..ff1a1ace1b023757d7a3021199285da659e0d773 GIT binary patch literal 79 pcmWgR5abcz6}**rWcAbf-^L8@_!-bZ&bt%_hD#1&JZR!rxd1}n37G%@ literal 0 HcmV?d00001 diff --git a/data/2/2022/8/17/51/pic.jpg b/data/2/2022/8/17/51/pic.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c78ef0e8326d547fa2df87f5be38d50024d7b7a8 GIT binary patch literal 47452 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

ds=H|S2PPN~x+w;;^G6MHp2$Mh9Nrr$I0 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 K^+Imv|Nq&Gc9LQM literal 0 HcmV?d00001 diff --git a/myRamses.py b/myRamses.py new file mode 100644 index 0000000..36dc5bf --- /dev/null +++ b/myRamses.py @@ -0,0 +1,786 @@ +from dataclasses import dataclass, field +from typing import Any, List +from enum import Enum +import numpy as np +import struct +# import time + +from tools.mylogger import log + + +class RamsesType(Enum): + SAM = 1 + SAMIP = 2 + + +class AirWater(Enum): + Air = 1 + Water = 2 + + +@dataclass +class SamCal(object): + SAMSN: str = None + DarkPixelStart: int = 0 + DarkPixelStop: int = 0 + Firmware: str = None + IDDataBack: str = None + IDDataCal: str = None + IDDataCalAQ: str = None + IntegrationTime: int = None + Reverse: float = None + SerialNo_MMS: str = None + WavelengthRange: str = None + c0s: float = None + c1s: float = None + c2s: float = None + c3s: float = None + c4s: float = None + cs: int or str = None + + def __post_init__(self): + assert self.SAMSN != None + assert len(self.SAMSN) == 4 , "SAMSN len is wrong" + pass + + def set_samcal(self, samcal: dict): + assert self.SAMSN == samcal['SAMSN'], "SamCal SAMSN doesnot match." + # SAMSN_ = samcal['SAMSN'] + self.DarkPixelStart = int(samcal['DarkPixelStart']) + self.DarkPixelStop = int(samcal['DarkPixelStop']) + self.Firmware = samcal['Firmware'] + self.IDDataBack = samcal['IDDataBack'] + self.IDDataCal = samcal['IDDataCal'] + self.IDDataCalAQ = samcal['IDDataCalAQ'] + if hasattr( samcal, 'IntegrationTime') : + self.IntegrationTime = samcal['IntegrationTime'] + else: + self.IntegrationTime = " " + # self.Reverse = samcal['Reverse'] + # self.SerialNo_MMS_ = samcal['SerialNo_MMS'] + if hasattr( samcal, 'WavelengthRange') : + self.WavelengthRange = samcal['WavelengthRange'] + else: + self.WavelengthRange = "310-1100" + + self.c0s = float(samcal['c0s']) + self.c1s = float(samcal['c1s']) + self.c2s = float(samcal['c2s']) + self.c3s = float(samcal['c3s']) + self.c4s_ = float(samcal['c4s']) + if hasattr( samcal, 'cs'): + cs = samcal['cs'] + else: + cs_ = 0 + pass + +@dataclass +class IPCal(object): + IPSN: str = None + Incl_Orientation: str = None + Incl_Xgain: float = None + Incl_Xoffset: float = None + Incl_Ygain: float = None + Incl_Yoffset: float = None + Incl_KBG: float = None + Incl_Kref: float = None + Press_Current_mA: float = None + Press_Surface_bar: float = None + Press_Gain: float = None + WithIncl: float = None + WithPress: float = None + Press_Sens_mV_bar_4mA: float = None + Press_Sens_mV_bar_1mA: float = None + Press_Type: str = None + CalibrationDate: str = None + + def __post_init__(self): + pass + + def set_ipcal_from_dict(self, ipcal: dict): + self.IPSN = ipcal['IPSN'] # = float(ipcal['IPSN'] ) + self.Incl_Orientation = ipcal['Incl_Orientation'] + self.Incl_Xgain = float(ipcal['Incl_Xgain']) + self.Incl_Xoffset = float(ipcal['Incl_Xoffset']) + self.Incl_Ygain = float(ipcal['Incl_Ygain']) + self.Incl_Yoffset = float(ipcal['Incl_Yoffset']) + self.Incl_KBG = float(ipcal['Incl_KBG']) + self.Incl_Kref = float(ipcal['Incl_Kref']) + self.Press_Current_mA = float(ipcal['Press_Current_mA']) + self.Press_Surface_bar = float(ipcal['Press_Surface_bar']) + self.Press_Gain = float(ipcal['Press_Gain']) + self.WithIncl = float(ipcal['WithIncl']) + self.WithPress = float(ipcal['WithPress']) + self.Press_Sens_mV_bar_4mA = float(ipcal['Press_Sens_mV_bar_4mA']) + self.Press_Sens_mV_bar_1mA = float(ipcal['Press_Sens_mV_bar_1mA']) + self.Press_Type_ = ipcal['Press_Type'] + self.CalibrationDate = ipcal['CalibrationDate'] + +@dataclass +class RamsesCal(object): + SN: str = None + typ: RamsesType = RamsesType.SAM + samsn: str = "" + inifile: str = None + calfile: str = None + calaqfile: str = None + backfile: str = None + b0: List[float] = None + b1: List[float] = None + cal: List[float] = None + calaq: List[float] = None + samcal: SamCal = None + ipcal: IPCal = None + + def __post_init__(self): + assert self.SN != None, " Pls pass the SN when initiating..." + assert len(self.SN) == 4 , "SN len is wrong" + + def set_ramsescal_from_dict(self, ramsescal: dict): + ''' 与获得cfg兼容 + # {'Lsky': + # {'SN': '85B5', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85B5', + # 'inifile': 'SAM_85B5.ini', 'calfile': 'Cal_SAM_85B5.dat', 'calaqfile': 'CalAQ_SAM_85B5.dat', 'backfile': 'Back_SAM_85B5.dat', + # 'cal': ['+NAN',.......... + ''' + assert self.SN == ramsescal['SN'], "RamsesCal SN doesnot match." + if ramsescal['TYPE'] == "SAMIP": + self.typ = RamsesType.SAMIP + else: + self.typ: RamsesType = RamsesType.SAM + self.samsn: str = ramsescal['samsn'] + self.inifile: str = ramsescal['inifile'] + self.calfile: str = ramsescal['calfile'] + self.calaqfile: str = ramsescal['calaqfile'] + self.backfile: str = ramsescal['backfile'] + self.b0: List[float] = [float(i) for i in ramsescal['b0'] ] + self.b1: List[float] = [float(i) for i in ramsescal['b1'] ] + self.cal: List[float] = [float(i) for i in ramsescal['cal'] ] + self.calaq: List[float] = [float(i) for i in ramsescal['calaq'] ] + self.samcal: SamCal = SamCal( SAMSN=self.samsn ) + self.samcal.set_samcal(ramsescal ) + if self.typ == RamsesType.SAMIP: + self.ipcal: IPCal = IPCal( ) + self.ipcal.set_ipcal_from_dict( ramsescal ) + + # def set_ramsescal_samcal(self, samcal: SamCal): + # samcal: SamCal = samcal + + # def set_ramsescal_ipcal(self, ipcal: IPCal): + # ipcal: IPCal = ipcal + + # def set_samcal_from_dict(self, samcal: dict): + # assert self.SN != samcal['SAMSN'], "RamsesCal SN doesnot match." + # # SAMSN_ = samcal['SAMSN'] + # self.samcal.set_samcal + + # c0s_ = float(samcal['c0s']) + # c1s_ = float(['c1s']) + # c2s_ = float(['c2s']) + # c3s_ = float(['c3s']) + # c4s_ = float(['c4s']) + # if samcal['cs_']: + # cs_ = samcal['cs'] + # else: + # cs_ = 0 + + # self.samcal = SamCal(self.SN, DarkPixelStart_, DarkPixelStop_, Firmware_, IDDataBack_, IDDataCal_, IDDataCalAQ_, + # IntegrationTime_, Reverse_, SerialNo_MMS_, WavelengthRange_, c0s_, c1s_, c2s_, c3s_, c4s_, cs_,) + # pass + + # def set_samcal_from_dict(self, ipcal: dict): + # IPSN_ = ipcal['IPSN'] # = float(ipcal['IPSN'] ) + # Incl_Orientation_ = ipcal['Incl_Orientation'] + # Incl_Xgain_ = float(ipcal['Incl_Xgain']) + # Incl_Xoffset_ = float(ipcal['Incl_Xoffset']) + # Incl_Ygain_ = float(ipcal['Incl_Ygain']) + # Incl_Yoffset_ = float(ipcal['Incl_Yoffset']) + # Incl_KBG_ = float(ipcal['Incl_KBG']) + # Incl_Kref_ = float(ipcal['Incl_Kref']) + # Press_Current_mA_ = float(ipcal['Press_Current_mA']) + # Press_Surface_bar_ = float(ipcal['Press_Surface_bar']) + # Press_Gain_ = float(ipcal['Press_Gain']) + # WithIncl_ = float(ipcal['WithIncl']) + # WithPress_ = float(ipcal['WithPress']) + # Press_Sens_mV_bar_4mA_ = float(ipcal['Press_Sens_mV_bar_4mA']) + # Press_Sens_mV_bar_1mA_ = float(ipcal['Press_Sens_mV_bar_1mA']) + # Press_Type_ = ipcal['Press_Type'] + # CalibrationDate_ = ipcal['CalibrationDate'] + + # self.ipcal = IPCal(IPSN_, Incl_Xgain_, Incl_Xoffset_, Incl_Ygain_, Incl_Yoffset_, Incl_KBG_, Incl_Kref_, Press_Current_mA_, Press_Surface_bar_, Press_Gain_, WithIncl_, WithPress_, + # Press_Sens_mV_bar_4mA_, Press_Sens_mV_bar_1mA_, Press_Type_, CalibrationDate_) + # pass + + +@dataclass +class RamsesFactory(object): + SN: str = None + typ: RamsesType = RamsesType.SAM + airwater: AirWater = AirWater.Air + data_raw: bytes = None # 原始的字节 未去遮罩 + ip_raw: bytes =None # ip 数据分开传进来 + data_after_remove_mask: bytes = None # 去遮罩后 + data_valid_buf: bytes = None # 去掉帧头帧尾后的buf + ip_buf: bytes = None + data_Int_from_Hex: List[int] = None # 去遮罩后 + data_after_cal: List[float] = None + Wavelength: List[float] = None + integratedTime: int = None + RamsesCalData: RamsesCal = None + + '''Usage + + 设置标定参数: + sn = "85C2" + rf = RamsesFactory( SN=sn, airwater = AirWater.Air ) + rf.set_cfg(cfg ) + + 设置数据, + 从原始数据开始 + set_data_raw(self, byt: bytes) + removeMask() + get_data_valid_buf() -- valid_buf + 从有效数据开始 + set_data_valid_buf(self, byt: bytes) + 处理数据 + process_from_hex_2_int(self,) + ''' + + def __post_init__(self): + assert self.SN != None + assert len(self.SN) == 4 , "SAMSN len is wrong" + self.RamsesCalData = RamsesCal(self.SN) + pass + + def set_cfg(self, cfg:dict): + assert self.SN == cfg["SN"] , "ramsesFactory SN does not match!!" + if cfg['TYPE'] == "SAMIP": + self.typ: RamsesType = RamsesType.SAMIP + else: + self.typ: RamsesType = RamsesType.SAM + self.RamsesCalData.set_ramsescal_from_dict(cfg) + + def set_airwater(self,air_water:AirWater): + self.airwater = air_water + pass + + def set_data_raw_ip_raw(self, byt: bytes ): + ''' byt 含 data_raw ip_raw ''' + assert isinstance(byt, bytes) + num = 0 + buf = byt + for i in range(50): + if byt[i] == 35: + num+=1 + if num == 2: + self.ip_raw = buf[:i] + self.data_raw = buf[i:] + break + + def set_data_raw(self, byt: bytes ): + ''' 需要 光谱数据 + 兼容: 传入前分不出byte ip + ip_byt: 判断是否含IP数据 + ''' + assert isinstance(byt, bytes) + self.data_raw = byt + + def set_ip_raw(self, byt: bytes ): + ''' 需要 光谱数据 + 兼容: 传入前分不出byte ip + ip_byt: 判断是否含IP数据 + ''' + assert isinstance(byt, bytes) + self.ip_raw = byt + + def set_ip_buf(self, byt: bytes ): + ''' 处理不含遮罩的 IP buf ''' + assert isinstance(byt, bytes) + self.ip_buf = byt + + def set_data_valid_buf(self, byt: bytes): + self.data_valid_buf = byt + pass + + def set_data_Int_254(self, int_list: list): + self.data_Int_from_Hex = int_list + pass + + + def get_data_valid_buf(self, ): + self.remove_frame_head_tail( ) + pass + + def remove_frame_head_tail(self,): + ''' 兼容 SAM 576, SAMIP 的IP数据单独传进来 + 去掉 23 00 00 00 00 00 00 ...... 01 + ''' + assert self.data_after_remove_mask != None, "please remove mask in advance" + res = {} + buf = self.data_after_remove_mask + len_ = len(buf) + + # print( f" head tail, {len_}") + # print( self.data_after_remove_mask) + # if self.typ == RamsesType.SAMIP: + # assert len_ == 602, "SAMIP sensor , wrong the num of bytes" + # self.buf_ip = self.data_after_remove_mask[:26] + # buf = buf[26:] + # # self.ip = self.decode_ip_buf(self.buf_ip, self.cal_cfg) + # # self.buf = self.buf[26:] + # len_ = len_ - 26 + assert len_ == 576, f"SAM sensor , wrong the num of bytes {len_}" + + for i in range(576): + res.update({i+1: {}}) + self.data_valid_buf = buf[7:71] + buf[79:143] + \ + buf[151:215] + buf[223:287] + \ + buf[295:359] + buf[367:431] + \ + buf[439:503] + buf[511:575] + + pass + + def set_integrate_time(self, it:int): + self.integratedTime = it + + def process_from_hex_2_int(self, mode= 0): + """ + @description :从data_after_remove_mask 到 data_Int_from_Hex + """ + assert self.data_valid_buf != None, "please remove frame head and tail" + + # print( f" == {len(self.data_valid_buf)}= {self.data_valid_buf} ") + + self.integratedTime = 2 << int(self.data_valid_buf[0]) # integrated time + + # print(f"===============it {self.integratedTime}") + + tmp = struct.unpack( + " None: + # self.integratedTime = 2 << int(self.data_valid_buf[0]) # integrated time + # self.data_Int_from_Hex = struct.unpack( + # " np.ndarray: + ''' ( 26 +3*sensor) removeMask get_valid_buf''' + self.rf.set_data_raw(data) # 同时传入 IPbuf + self.rf.removeMask() + self.rf.get_data_valid_buf( ) + self.rf.process_from_hex_2_int() + self.rf.calibrate_data() + + def deal_raw_data_list(self, data:list) -> np.ndarray: + ''' (15 + 26 +3*sensor) removeMask get_valid_buf''' + log.info( f" len: {len(data)} ", __name__,"deal_raw_data_list ") + size = len(data) + assert size > 0, ">>>> raw datalist len is 0 " # ????? 会发生正常字节 40后接66 67,造成处理中断 + tmp_data = np.array([]) + for i in range(size): + # log.info( f" Num {i} Group len(data[i]) : { data[i].hex() } ", __name__,"deal_raw_data_list ") + self.rf.set_data_raw( data[i] ) + self.rf.removeMask() + self.rf.get_data_valid_buf( ) + self.rf.process_from_hex_2_int() + self.rf.calibrate_data() + if i == 0: + tmp_data = self.rf.data_after_cal + else: + tmp_data = tmp_data + self.rf.data_after_cal + self.rf.data_after_cal = tmp_data/size + # return tmp_data/size + + def deal_raw_ip_list(self, ip_data:list) -> np.ndarray: + ''' ip_raw''' + log.info(" 处理 ip_data:list ",__name__, "deal_raw_ip_list") + pass + + def deal_data_valid_buf(self, data:bytes): + ''' 去 23 00 00 00 .....01后的数据, 64*8=512 ''' + self.rf.set_data_valid_buf(data) + self.rf.process_from_hex_2_int() + self.rf.calibrate_data() + + def deal_data_int254(self, data:list, integrationTime:int): + '''254 * int, integrationTime ''' + self.rf.set_data_Int_254(data) + self.rf.set_integrate_time(integrationTime) + self.rf.calibrate_data() + + def get_data_after_cal(self,): + return self.rf.data_after_cal + + +def test_01(): + """ + @description :调用RamsesTest RamsesFactory 获得结果和已知的比较 + """ + # sn = "85C2" + sn = "84E3" + cfg = {} + # r85c2 = Ramses85C2() + # cfg = r85c2.calcfg + + r84e3 = Ramses84E3() + cfg = r84e3.calcfg + # rt.get_ip_cal() + # rt.get_sam_cal() + # rt.get_ramses_cal() + + rf = RamsesFactory( SN=sn, airwater=AirWater.Air ) + rf.set_cfg(cfg ) + + # rf.set_data_raw( bytes.fromhex(r85c2.data_85C2) ) + # rf.removeMask() + # rf.get_data_valid_buf() + + + # rf.process_from_hex_2_int() + # rf.get_wavelenth(1) + # rf.calibrate_data(1) + + # rf.process_from_hex_2_int() + rf.data_Int_from_Hex = r84e3.data_Int_from_Hex + rf.set_integrate_time (256) + + print( len(rf.RamsesCalData.b0) ) + print( len(rf.RamsesCalData.b1) ) + print( len(rf.RamsesCalData.cal) ) + print( len(rf.RamsesCalData.calaq) ) + + # print( rf.RamsesCalData.samcal.DarkPixelStart ) + # print( rf.RamsesCalData.samcal.DarkPixelStop ) + + + + # rf.get_wavelenth(1) + rf.calibrate_data(1) + # 4 1077 0 0 0.016433967 0.017747166 -0.001313199 0.000333492 0.010671759 0.085698462 0.124526848 0.124526478 + # 5 1088 0 0 0.016601816 0.0177432 -0.001141384 0.000505308 0.016169857 0.102722719 0.157412665 0.157412431 + + +def test_02(): + """ + @description :调用RamsesTest RamsesFactory 获得结果和已知的比较 + """ + sn = "85C2" + cfg = {} + r85c2 = Ramses85C2() + cfg = r85c2.calcfg + + + rf = RamsesFactory( SN=sn, airwater=AirWater.Air ) + rf.set_cfg(cfg ) + + rf.set_data_raw( bytes.fromhex(r85c2.data_85C2) ) + # print(f"raw : {rf.data_raw.hex()}" ) + rf.removeMask() + + # print(f"mask : {rf.data_after_remove_mask.hex() }" ) + rf.get_data_valid_buf() + rf.process_from_hex_2_int(1) + + + # rf.data_Int_from_Hex = r85c2.data_Int_from_Hex + # rf.set_integrate_time (4096) + + # print( rf.data_Int_from_Hex) + + # print( len(rf.RamsesCalData.b0) ) + # print( len(rf.RamsesCalData.b1) ) + # print( len(rf.RamsesCalData.cal) ) + # print( len(rf.RamsesCalData.calaq) ) + + + # rf.get_wavelenth(1) + rf.calibrate_data(1) + + +if __name__ == '__main__': + # 由于很多数据,要到整数这一步取平均, 需要将平均后的整数值传进去,在处理 + + # test_01() + test_02() + # print(hex(100)) + # rc= RamsesCal() + # print(rc) + + # rt =RamsesTest() + # rt.get_sam_cal() + # rt.get_ramses_cal() + # print(rt.samcal) + pass + + +# {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'}}} + +# {'Lsky': +# {'SN': '85B5', 'FUNC': 'Lsky', 'TYPE': 'SAM', 'samsn': '85B5', +# 'inifile': 'SAM_85B5.ini', 'calfile': 'Cal_SAM_85B5.dat', 'calaqfile': 'CalAQ_SAM_85B5.dat', 'backfile': 'Back_SAM_85B5.dat', +# 'cal': ['+NAN',.......... \ No newline at end of file diff --git a/yiwinframe.py b/yiwinframe.py index 5127b3c..cb2ecb5 100644 --- a/yiwinframe.py +++ b/yiwinframe.py @@ -4,6 +4,7 @@ import time import threading from pathlib import PurePath,Path from pubsub import pub + # from configobj import ConfigObj from listctrl import Listctrl @@ -16,12 +17,13 @@ from uiconfig.uiabout import About from uiconfig.uihelp import Help from uiconfig.ui_plot_setting import UI_Plot_Setting -from myconfig import TOKEN,DeviceType,YAML_FILE_NAME,RETRIEVE_CFG_FILE +from myconfig import TOKEN,DeviceType,YAML_FILE_NAME,RETRIEVE_CFG_FILE,DATA_DIR from myconfig import MyConfig,RamsesFunc from mythread import Mythead from configuration import Configuration -from awrams import AWRAMS,HandHeldBuf - +# from awrams import AWRAMS,HandHeldBuf +from awrams import AWRAMS,AwramsHandle + from tools.myexception import MyException from tools.mylogger import log @@ -54,6 +56,7 @@ class YiwinFrame(wx.Frame): self.title = title self.path = PurePath() # self.save_fname:Path = Path(self.path.joinpath(DATA_FNAME)) + self.error_result = [] self.result = '' self.displayData:list =[] self.interval = 0 @@ -94,7 +97,7 @@ class YiwinFrame(wx.Frame): self.__setTimer() log.info(f"system init....",__name__, "__init__") self.mycfg = MyConfig() - self.awrams = AWRAMS() + # self.awrams = AWRAMS() self.mythread = Mythead() pub.subscribe( self.updateDisplay, "update") @@ -166,32 +169,29 @@ class YiwinFrame(wx.Frame): pass def updateDisplay(self, msg): - log.warning(f" updateDisplay 。。 {msg['data']}") + log.warning(f" msg : {msg['data']}",__name__,"updateDisplay") if msg['flag'] == "notice": self.__update_notice(msg['data']) pass if msg['flag'] == "data": - # log.info(f" ... update .{msg['data']}........... " ) self.__update_data(msg['data']) pass pass - def __update_notice(self,msg): + def __update_notice( self, msg ): log.info(f" .......{msg}... ",__name__,'__update_notice') - self.alterStatus_0( msg) - self.popDialog( msg ) + self.alterStatus_0( msg ) + # self.popDialog( msg ) pass def __update_data(self,data ): - log.info(f" .......... ",__name__,'__update_data') - self.plotpanel.set_axes_title( data['tm']) - res = data['res'] - x = self.awrams.wavelength.tolist() - length = len(data) + log.info(f" .......... ", __name__, '__update_data') + self.plotpanel.set_axes_title( data[0]) self.plotpanel.clear_past() - for display in RamsesFunc: - self.plotpanel.plot_one(display.name, x, res[display.name],color= LineColor(display.value).name ) - pass + self.plotpanel.plot_one( "Rs", data[1], data[2], color= LineColor(1).name ) + # for display in RamsesFunc: + # self.plotpanel.plot_one(display.name, x, res[display.name],color= LineColor(display.value).name ) + # pass pass def OnStart( self, event ): @@ -221,7 +221,7 @@ class YiwinFrame(wx.Frame): # 读取配置文件 self.mycfg.setDeviceType(DeviceType.SURFACE) self.sensor_cfg = self.mycfg.read_yaml() - + def OnDealData(self, e)-> None: ''' SD卡的文件结构 ''' log.info(f"OnDealData: 处理测量数据", __name__, "", "") @@ -230,57 +230,55 @@ class YiwinFrame(wx.Frame): log.warning(f"Pls get the cal info, and try again", __name__, "OnDealData") self.statusBar.SetStatusText("Pls get the cal info, and try again",0) pass - - self.awrams.getDataFileList() - self.awrams.setDeviceID(self.device_id) - self.awrams.setRetrieve(self.retrieve) - if self.syscfg != {}: - self.awrams.setSyscfg(self.syscfg) - else: - log.warning(f"Pls get the cal info, and try again", __name__, "OnDealData","setCfg") - MyException( f"System Configuration is empty." ) - pass + ## 调用 AwramsHandle 的函数 + self.myhandle:AwramsHandle = self.awrams_handle[self.device_id] + # 处理数据 self.alterStatus_0(" 正在处理数据...." ) try: - self.mythread.set_task( self.awrams.dealAllMeasurements ) + self.mythread.set_task( self.read_folders_from_sd ) self.mythread.start() except Exception as e: log.error(e) pass + def read_folders_from_sd(self,): + # myhandle:AwramsHandle = self.awrams_handle[self.device_id] + self.myhandle.read_folders_from_SD( DATA_DIR ) + pass + def OnDealServer(self, e)-> None: '''对服务器数据进行再次处理,''' log.info(f"OnDealServer: 处理服务器数据", __name__, "", "") - if not self.calinfo_is_ok: - self.onNotify("Pls get the cal info, and try again" ) - log.warning(f"Pls get the cal info, and try again", __name__, "OnDealData") - self.statusBar.SetStatusText("Pls get the cal info, and try again",0) - pass + # if not self.calinfo_is_ok: + # self.onNotify("Pls get the cal info, and try again" ) + # log.warning(f"Pls get the cal info, and try again", __name__, "OnDealData") + # self.statusBar.SetStatusText("Pls get the cal info, and try again",0) + # pass - self.awrams.getDataFiles_server( ) - self.awrams.setDeviceID(self.device_id) - self.awrams.setRetrieve(self.retrieve) - if self.syscfg != {}: - self.awrams.setSyscfg(self.syscfg) - else: - log.warning(f"Pls get the cal info, and try again", __name__, "OnDealData","setCfg") - MyException( f"System Configuration is empty." ) - pass + # self.awrams.getDataFiles_server( ) + # self.awrams.setDeviceID(self.device_id) + # self.awrams.setRetrieve(self.retrieve) + # if self.syscfg != {}: + # self.awrams.setSyscfg(self.syscfg) + # else: + # log.warning(f"Pls get the cal info, and try again", __name__, "OnDealData","setCfg") + # MyException( f"System Configuration is empty." ) + # pass - # 处理数据 - self.alterStatus_0(" 正在处理数据...." ) - try: - self.mythread.set_task( self.awrams.dealAllMeasurements_Server ) - self.mythread.start() - except Exception as e: - log.error(e) - pass + # # 处理数据 + # self.alterStatus_0(" 正在处理数据...." ) + # try: + # self.mythread.set_task( self.awrams.dealAllMeasurements_Server ) + # self.mythread.start() + # except Exception as e: + # log.error(e) + # pass + + # pass - pass - def OnCalInfo(self,e): '''依据传感器获取标定文件信息''' ####################################### @@ -299,20 +297,20 @@ class YiwinFrame(wx.Frame): self.popDialog("没有发现retrieve.yml文件") pass - init_para = self.mycfg.read_yaml() + self.sensor_cfg = self.mycfg.read_yaml() log.info(f"Current Device: {device_type} ", __name__, "", "") - log.info(f"Sensor: {init_para}", __name__, "", "") + log.info(f"Sensor: {self.sensor_cfg}", __name__, "", "") # 配置反演需要的参数 波长 间隔 self.retrieve = self.mycfg.get_retrieve() log.warning(f"Retrieve: {self.retrieve}", __name__, "", "") - self.syscfg = {} + self.cal_cfg = {} cfgr = Configuration( ) cfgr.setDeviceType(device_type) - cfgr.setSystemCfgDict(init_para) + cfgr.setSystemCfgDict(self.sensor_cfg) - for k,v in init_para.items(): + for k,v in self.sensor_cfg.items(): cfgr.setSystemCfgDict(v) try: cfgr.getCalConfiguration() @@ -320,18 +318,77 @@ class YiwinFrame(wx.Frame): log.error(f"读取配置文件失败. \n {e}",__name__, "", "" ) raise log.info(f"v: {cfgr.configuration}", __name__, "", "") - self.syscfg.update({k:cfgr.cal_configuration}) + self.cal_cfg.update({k:cfgr.cal_configuration}) - # log.warning(f"self.syscfg: {self.syscfg}", __name__, "", "") - log.warning(f"self.syscfg 2: {self.syscfg[2].keys()}", __name__, "", "") - # log.warning(f"self.syscfg 3: {self.syscfg[3].keys()}", __name__, "", "") + # log.warning(f"self.cal_cfg: {self.cal_cfg}", __name__, "", "") + log.warning(f"self.syscfg 2: {self.cal_cfg[2].keys()}", __name__, "", "") + # log.warning(f"self.cal_cfg 3: {self.cal_cfg[3].keys()}", __name__, "", "") log.info(f"传感器配置文件读取成功", __name__, "", "") self.alterStatus_0("传感器配置文件读取成功") self.onNotify("获取标定信息成功") self.calinfo_is_ok = True + self.__init_data_process() pass + def __init_data_process(self, mode = 0): + ''' 多个handle AwramsHandle''' + self.awrams_handle = { } + for k,v in self.cal_cfg.items(): + ah = AwramsHandle( deviceid=k, cfg=self.sensor_cfg[k], calcfg=v, rtv=self.retrieve) + self.awrams_handle.update( {k:ah } ) + + # def OnCalInfo(self,e): + # '''依据传感器获取标定文件信息''' + # ####################################### + + # self.onNotify("正在获取标定信息") + # device_id = self.device_id # 多个设备 + # device_type = DeviceType.SURFACE.name + # self.mycfg = MyConfig() + # self.mycfg.setDeviceType(DeviceType.SURFACE) + + # # 检查配置文件是否存在,不存在报错 config.yml retrieve.yml + # if not self.mycfg.check_config_yml(): + # self.popDialog("没有发现config.yml文件") + # pass + # if not self.mycfg.check_retrieve_yml(): + # self.popDialog("没有发现retrieve.yml文件") + # pass + + # init_para = self.mycfg.read_yaml() + # log.info(f"Current Device: {device_type} ", __name__, "", "") + # log.info(f"Sensor: {init_para}", __name__, "", "") + # # 配置反演需要的参数 波长 间隔 + # self.retrieve = self.mycfg.get_retrieve() + # log.warning(f"Retrieve: {self.retrieve}", __name__, "", "") + + # self.syscfg = {} + + # 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__, "", "") + # self.syscfg.update({k:cfgr.cal_configuration}) + + # # log.warning(f"self.syscfg: {self.syscfg}", __name__, "", "") + # log.warning(f"self.syscfg 2: {self.syscfg[2].keys()}", __name__, "", "") + # # log.warning(f"self.syscfg 3: {self.syscfg[3].keys()}", __name__, "", "") + # log.info(f"传感器配置文件读取成功", __name__, "", "") + # self.alterStatus_0("传感器配置文件读取成功") + # self.onNotify("获取标定信息成功") + # self.calinfo_is_ok = True + + # pass + def alterStatus_0(self,msg): self.statusBar.SetStatusText( msg, 0 )