From c2f62535758073bc1e14167a3e325d1e1f215eb4 Mon Sep 17 00:00:00 2001 From: Danila Gamkov Date: Thu, 24 Apr 2025 16:20:41 +0300 Subject: [PATCH] add exception processing into plot_flight_borders functional --- .gitignore | 3 +- asotr.py | 69 ++++++++++++++---- data/experiments/cyclogram_imp_ident_ch1.xls | Bin 0 -> 8704 bytes data/experiments/cyclogram_step_ident_ch1.xls | Bin 0 -> 8704 bytes .../cyclogram_imp_ident_ch1.xls | Bin 0 -> 8704 bytes .../cyclogram_step_ident_ch1.xls | Bin 0 -> 8704 bytes .../cyclogram_imp_ident_ch2.xls | Bin 0 -> 8704 bytes .../cyclogram_step_ident_ch2.xls | Bin 0 -> 8704 bytes .../cyclogram_imp_ident_ch3.xls | Bin 0 -> 8704 bytes .../cyclogram_step_ident_ch3.xls | Bin 0 -> 8704 bytes .../cyclogram_imp_ident_ch4.xls | Bin 0 -> 8704 bytes .../cyclogram_step_ident_ch4.xls | Bin 0 -> 8704 bytes .../cyclogram_imp_ident_ch1.xls | Bin 0 -> 8704 bytes .../cyclogram_step_ident_ch1.xls | Bin 0 -> 8704 bytes decode_cmd_data.py | 5 +- plot_flight_borders.py | 37 ++++++---- plot_flight_borders.sh | 28 ++++--- prepare_flight_cyclo.py | 12 +-- temp_peaks_forecast.py | 2 +- 19 files changed, 104 insertions(+), 52 deletions(-) create mode 100644 data/experiments/cyclogram_imp_ident_ch1.xls create mode 100644 data/experiments/cyclogram_step_ident_ch1.xls create mode 100644 data/experiments/step_impulse/asotr01_ch1_25042025/cyclogram_imp_ident_ch1.xls create mode 100644 data/experiments/step_impulse/asotr01_ch1_25042025/cyclogram_step_ident_ch1.xls create mode 100644 data/experiments/step_impulse/asotr01_ch2_30042025/cyclogram_imp_ident_ch2.xls create mode 100644 data/experiments/step_impulse/asotr01_ch2_30042025/cyclogram_step_ident_ch2.xls create mode 100644 data/experiments/step_impulse/asotr01_ch3_01052025/cyclogram_imp_ident_ch3.xls create mode 100644 data/experiments/step_impulse/asotr01_ch3_01052025/cyclogram_step_ident_ch3.xls create mode 100644 data/experiments/step_impulse/asotr01_ch4_02052025/cyclogram_imp_ident_ch4.xls create mode 100644 data/experiments/step_impulse/asotr01_ch4_02052025/cyclogram_step_ident_ch4.xls create mode 100644 data/experiments/step_impulse/asotr02_ch1_03052025/cyclogram_imp_ident_ch1.xls create mode 100644 data/experiments/step_impulse/asotr02_ch1_03052025/cyclogram_step_ident_ch1.xls diff --git a/.gitignore b/.gitignore index 8ce8877..1a60579 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,5 @@ *.zip *.log *.txt +*.report_* /__pycache__ -/data -/reports diff --git a/asotr.py b/asotr.py index 4d1bba6..8eb8959 100644 --- a/asotr.py +++ b/asotr.py @@ -8,7 +8,16 @@ import json import pytz from matplotlib import dates -fname_json_decode = '/home/danila/Danila/work/MVN/Soft/PID/python/decode_asotr_cmd.json' +""" +module asotr parses csv data from flight device ASOTR MVN + +Danila Gamkov [] +danila_gamkov@cosmos.ru +# License: IKI RAN +""" +__author__ = 'Danila Gamkov' + +fname_json_decode = './decode_asotr_cmd.json' def get_utc_seconds(timestamp_str, timestamp_format): dt_obj = datetime.strptime(timestamp_str, timestamp_format) @@ -115,8 +124,20 @@ def cmd_flight_parse(asotr_data): return (decode_list, temperature_list) -# accuracy: minutes, hours -def find_best_time_idx(time_arr, user_time, accuracy='minutes'): +# accuracy: 'seconds', 'minutes', 'hours' +def find_best_time_idx(time_arr, user_time, accuracy='minutes') -> int: + """ + finds best time index according specified user_time in time_arr and with specified accuracy + + Args: + time_arr(pandas.core.series.Series[datetime]): timestamp array + user_time(string): time value, which index required find in time_arr (string in the following format: d.m.Y HH:MM:SS) + accuracy(string): specify accuracy which time index required find in time_arr(type 'seconds', 'minutes' or 'hours') + + Returns: + int: index that has been found in time_arr (or -1 if index has not been found) + """ + tstamp = datetime.strptime(user_time, "%d.%m.%Y %H:%M:%S") if accuracy == 'minutes': delta = timedelta(minutes=30) @@ -166,15 +187,20 @@ def find_best_time_idx(time_arr, user_time, accuracy='minutes'): return j return mid - # raise ValueError("data not found!") def find_time_idx(data_list, keys_list, timestamp, accuracy): out_dict = dict.fromkeys(keys_list, -1) for i, elem in enumerate(data_list): - out_dict[keys_list[i]] = find_best_time_idx(elem['timestamp'], timestamp, accuracy) + idx = find_best_time_idx(elem['timestamp'], timestamp, accuracy) + if idx != -1: + out_dict[keys_list[i]] = idx + else: + raise TimeIndexNotFound(f'index corresponding to time {timestamp} in times array not found!') + return out_dict + def get_cmd_data(fname): asotr_data = pd.read_csv(fname, delimiter=';') cmd_list, temperature_list = cmd_flight_parse(asotr_data) @@ -191,9 +217,22 @@ def get_data(path, asotr_kit, start_date, end_date, time_accuracy): dateparse = lambda x: datetime.strptime(x, "%d.%m.%Y %H:%M:%S.%f") - data = [ pd.read_csv(fname[0], sep=";", parse_dates=["timestamp"], date_parser=dateparse), + try: + data = [ pd.read_csv(fname[0], sep=";", parse_dates=["timestamp"], date_parser=dateparse), pd.read_csv(fname[1], sep=";", parse_dates=["timestamp"], date_parser=dateparse), pd.read_csv(fname[2], sep=";", parse_dates=["timestamp"], date_parser=dateparse),] + except FileNotFoundError: + print(f'Error opening file: one (or all) file not found in directory: \n{fname}') + return + except pd.errors.EmptyDataError: + print(f'Error opening file: one (or all) file is empty or have incorrect format. \nLook at the files: {fname}') + return + except pd.errors.ParserError: + print(f'Error parsing file: file have incorrect structure. \nLook at the files: {fname}') + return + except Exception as e: + print(f'Error parsing file: {e}. \nLook at the files: {fname}') + return ch = [[], [], [], [], [], []] data_dict = { @@ -208,8 +247,12 @@ def get_data(path, asotr_kit, start_date, end_date, time_accuracy): idxb = dict.fromkeys(ch_signs, -1) idxe = dict.fromkeys(ch_signs, -1) - idxb = find_time_idx(data, ch_signs, start_date, time_accuracy) - idxe = find_time_idx(data, ch_signs, end_date, time_accuracy) + try: + idxb = find_time_idx(data, ch_signs, start_date, time_accuracy) + idxe = find_time_idx(data, ch_signs, end_date, time_accuracy) + except Exception as e: + print(e) + return data_dict["time_temp"] = data[0]["timestamp"][idxb["temp"] : idxe["temp"]] data_dict["time_temp_set"] = data[1]["timestamp"][idxb["temp_set"] : idxe["temp_set"]] @@ -324,8 +367,7 @@ def plot_signal_profile(time, data, pattern_t, pattern, method, shift_flag, peak plt.grid(True) plt.show() -def insert_temp_data_from_flight_cmd(fname_cmd_temp): - dir_asotr = '/home/danila/Danila/work/MVN/Soft/asotr_csv/data/' +def insert_temp_data_from_flight_cmd(fname_cmd_temp, dir_asotr): fname_asotr = [f'{dir_asotr}asotr01_data_T.csv', f'{dir_asotr}asotr02_data_T.csv'] df_cmd = pd.read_csv(fname_cmd_temp, sep=';') @@ -473,13 +515,11 @@ def plot_step_response_in_thermocycle(data_info, thermocycle_info, interp, def plot_imp_response(data, data_info, plot_info, thermocycle_info): - title = f'{plot_info["title"]}, канал {data_info["channel"][2]} АСОТР КДИ СПИН-X, период опроса {data_info["period"]} ({thermocycle_info["date"]})' fig = plt.figure(figsize=(11, 6), dpi=200) fig.suptitle(title, fontsize=plot_info['font']) ax1 = fig.add_subplot(1,1,1) - date_formatter = dates.DateFormatter(plot_info['ox_dtime_format']) ax1.xaxis.set_major_formatter(date_formatter) @@ -499,13 +539,12 @@ def plot_imp_response(data, data_info, plot_info, thermocycle_info): #timestamp as string format: dd:mm:YYYY HH:MM:SS -def insert_data_cyclo(base_time_str, fname): - path = '/home/danila/Danila/work/MVN/flight/experiments/' +def insert_data_cyclo(base_time_str, fname, path): time_format = "%d.%m.%Y %H:%M:%S" cyclogram_file = path + fname df = pd.read_excel(cyclogram_file) - base_time = pd.to_datetime(base_time_str) + base_time = pd.to_datetime(base_time_str, format='%d.%m.%Y %H:%M:%S') df['timestamp'] = df.iloc[:, 0].apply(lambda x: base_time + timedelta(seconds=x)) df.iloc[:, 0] = df['timestamp'].dt.strftime(time_format) df = df.drop(['timestamp'], axis=1) diff --git a/data/experiments/cyclogram_imp_ident_ch1.xls b/data/experiments/cyclogram_imp_ident_ch1.xls new file mode 100644 index 0000000000000000000000000000000000000000..3c0eb7e3bd29e224c7fb72ef662b407d4f67cbf1 GIT binary patch literal 8704 zcmeHMU2Igx6+U-&c3H=Oje#|PF&C3K7;Lm_7h)SbUfcO8g@8reA5~V%Vz0r8|707{ zNd4K6=B-Fc^H5caltdyARjRaAtM;L&HGS$s|5Pbb+Ef+cp;FX5Y@)PPq`>z3&fLr1 zy*|)%=|Ao;h>o%$zfG_x|aR8?L@fhTrbv0Jb*iBulMPCky^Bg zT`v}kK8)sS`V?8ohUujTv$U4+v35QG{T8_K~biMpY(MwwPNdq{LGU9e= z!;uf2jOu&5S8&Bm2@E0QpCwVEduFprc-jI)L-H@d5{PPFUIF4JV1jcaOs#$L$nGlP(jfxK=5MfP^M=jJCDb8bh< z?dTC_$P6e$ABO5MJz#Z(>KsG|4sEGUGh_|{$tV{U>hjd3lB833egNEQab=J6gO76e zgX%^5FgPr7)U?vFB{dGZ=~QZWWkt%n(jpzml?F^p3cps~G$DH8?97sowzka z7xX!b?$njKaW37MF~$0pbEV5X2)fBM!m4&S&a4x>G~pm@!ddP#Tg)cYu9mX4IgV%K zp%w8;10@y~vx{dJ+|Hyp1G=7rSi=rAR+kDHMA>WlQD%S+!o(SHgw`niKU*Ug19Q!~ zu{K9g2G_k+iny?^lS45P>|7a3Y(_@IOPjqq!dtyP{p-t4|Fv+HaV#{?%MB_v`s`G8zPTmc(K4_Zd!Xf}e8bt(Ik#o_SsmcpTDCx$PEGIjKM-i|LHpVE zx6Ze}Rp@UGv|p8GY_@SskH7QM=CnC}f4_F*^N^j8Z>SALe$!~}Mw-2LZ!OUgaQ@+Q zB^s|%&hxc=K|+ey7v}qw;7e8_VgqedMi_>`Tc;R_Fh=8tG0F&IT!1i! zptz&rvRzTjDe{#i8y;f3S&CfZX{C%3sga|AmYRCSPzHB?k`_>jWNOqu4JeV4eTm1) zC9*4{3EvfMSGr82zH59Fafkw~YUGS6C%2`g$Vmms$&H@WetgEmKdJvvSc;t7l2nHy z`ReS*+?XI?PB5lIbb|QrYN;tMQObY`0up1Yr7w}r<4fFIE|Fd1WnJSpx>9XUCMh4F zBT3r8q(Q5@pgKlXBJLtWi$iXf-O+HyS69lz(`fT*Z>n zxG*K7aU^ewCr_59NSH>ewZV|PLXC#CqF%VO1SHm$Nu;)(#8}r0M)YnvNf&>GVOG4!;FR zBW6YY>FirDTc4(*Z`B_5Ih{QCoDS~OJTzR;;b5@~m=g*r%@wfS6|nn475{!d7`thB1ps;j^G{Qz&rTImmR@I*AriXx51->`}a?V2?jClu|_Q z(SGbh7kwzwAU~(WNrr`&?xj5X1P9=a-EmIiW`3F@dI@2M|Amm^wqH#*vjC0h|F;X{ ztMy4Ul+dnhuco`#0uEL<3RmF_>k~Z0MV7RbM;XB$pB$T?U6`F%bRYTJSZ>Pgez1Kc zdnz|ImD3Y+aB^az%d+2IiT!5>y}j7}EkV^KVZ)LdgkiLk2x##66Ii=sBp0eOAlnvOy6veZPF|3-di z{hxhKjzfnhEqDth$ES~RY^G|v9`+a=j5~#Y{BJk$0&hpQWi@g*f8K_fV)BHX#dijN zY2dfN!}#7Xp=&~95#J?dfvlYNc;oZdR_*+0uOE6MWAZRY7*ic``UUdV^y#{d`7{3e Y<9lk{QFW{K4}O2Uqk+B7cQXEe0XBbF3jhEB literal 0 HcmV?d00001 diff --git a/data/experiments/cyclogram_step_ident_ch1.xls b/data/experiments/cyclogram_step_ident_ch1.xls new file mode 100644 index 0000000000000000000000000000000000000000..cec3d6aaca0998c970c1423551bbcc88fe0b4926 GIT binary patch literal 8704 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 Zzu&*7#vR>m)&9Z%Z+FzO*Z5BQ|1XHNS8o6S literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr01_ch1_25042025/cyclogram_step_ident_ch1.xls b/data/experiments/step_impulse/asotr01_ch1_25042025/cyclogram_step_ident_ch1.xls new file mode 100644 index 0000000000000000000000000000000000000000..57b9ccf84db810eda9405fc9ee0002b448e8ca49 GIT binary patch literal 8704 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 UTe{t-{e%DCZmDCh@vZd#88=Z?umAu6 literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr01_ch2_30042025/cyclogram_step_ident_ch2.xls b/data/experiments/step_impulse/asotr01_ch2_30042025/cyclogram_step_ident_ch2.xls new file mode 100644 index 0000000000000000000000000000000000000000..f3c102099ed8407cc75f2340d6c7f6f6eeb638df GIT binary patch literal 8704 zcmeHMTWlQF8UAPY?0T16>^O-Hxi}MtIC0`cyLLnD#E!>yC=CgT70g8l6*kT~xHz`4 z9feAzT>`v;R752nh(r;2samxl5J-T);fV)&5fT!Ym%v-pJ}ig|ArY4E`)39pPsWOq z&`Lx;t8?c3-~6}ppYxwHv-7WiE<5+a%d0+s-{ zgfO}bocvP&24m)ay_=$E-_&esysD2@Q3@)tCqzmNERM#Fd+6 z6xRv)HD-4Hr4B2`Ry!X_d%u_u|D|{q?9W8tQnBKFJO0@WHu7{z-dyrNQ(klbGfBux z<}6x~&r$D{aqbO$g^@w`|5bX`hk`>Nrg6x0q36hHpiAX%ioT_7m(+p-#S^z(JC1zi zce$PWJ;YiBq!TKMTf{aMyE*O5iyW6EaW7lz{ z+8Kb=<5HAKxxpUa=&KH6Ue+rf<5B)2a3h1 z{FB%f9Q@8Y8B~#hryTjW+#`54C?8fg(q%OZb6ihcn|5uJMP+91J9yH_$fFLPH8Ru4 zUCDUT@C65mr;W^F)OysfG3IaOkBOB&&b3}^JhQ`ennT8wRH$r(ATXJ#d#!lFs4&4shqimCe!(KI+{L zsuTTv;P8j| z;m-kx(^vY&v2R2xRlm3Ffebc3l!RDE+CSsQp6!d}FLqg-dMH!I9Gjg%joL%2sC zMiFlmaAI<*Fm+p@$!qv-?;6t^4_}0uid>12Cj$)#DTrES(OwY)- zfBNEs+m7^i-=}yih_;_*BJy<;H z9v(Yh7;QORJa%HFFwxkQZ*A&Xi8au4NxuHVv7+15|CkzhT-zo%)28Ko_a>{q8U4q$ zeROKuN9FEjtN(&DVzC{?@c26=El!IQ%7<4+?tt!$JfbladAHt=8)-^yxM7A)fb$=> z&d_+1asIG~?astDFfV!z+0^ti73Y4M=|P%Vw`{|mWsjnUKQoz zh8o4VT%s7?!=f0MP*OI|8VBFWqZrpAqk_v1<7IrJ7$XzKmc?M)v!i^=V=z9YMEN*R zQLHWo!;XIuAJ3Ag>~-etQ-I|-Owq9I=J%d7y;Etrh0v6r$%ZHH6EO;k)qs9 z_^RfMGG*%ZQUABthp5nZjhsp4(wL0=ZH20hbJt$SuuvRc9Dca4bFtg657zE~9TGnZ30%7;G2M{GIdl3yzsg5|S z;$gJ2YMaq|8%j9xYW*dYrV*Q_8JlKG+ceYJrkTn%%`~=Yrm#&jeQlblYttN>O*3U} zn(1oOOjVm^n%Xo|)TWu9HqF$uX{M!3GbKZs+q?@px?QY~!5U+*4Kdh_5sY)>0t;=D zrhc2IZkwiFo2Jf?{*UydpD6zV7|#4M*MWn|w5yh6IfrhwnDS=Dvt|DvBg0Hd$aN}5 z87AAFM6JBW)De$OP}Wi(cM}@WpK}b)*vDuwDA+LgrvfRi!-aB@SpSHv$f3IEf7B2x~HYiooflt^AxD@@>O|6JwKOLsRa}4-Xbc+>V{w1`0=t zBO^r|aU#9LLqqL8`<1m=f4Q0U=)SUhw} z!(K7@{HG54Z@%&3o`+ujlqN4KbNNqui4Xt&;py$GYo2)){g?U%=?V?g;+zztX~2JKwV3&PNZ&&xd=Kl-w>S@STBQ8u;yR zAHFvX>6{Rm!gq-=Aaj?^fqgz~&UgHb*IxpaDcK7PgX%+3zd&A|KkZjAe(wLF{lJZ@ Tx?FDj?eA|_WjGMN8vEY^?PoJ% literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr01_ch3_01052025/cyclogram_imp_ident_ch3.xls b/data/experiments/step_impulse/asotr01_ch3_01052025/cyclogram_imp_ident_ch3.xls new file mode 100644 index 0000000000000000000000000000000000000000..da10b3874addf540856b5f83ec36c00e4f98fe7f GIT binary patch literal 8704 zcmeHMU2Igx6+U-&c3H=Oje)iKiMg1>!C<3ZyA<2l@!C$BQV3YY{ZVDLEcP0^@tFt$FK1s#cXErHxdPJXDIBhfS2KiWJy>-(`Q4`1>GJCP zZ%ageVXmPRc?Wq+78o0bvoquF|0@lt4q1mftl*I8N6V3yfNqwbD|%JSerW&)Qbycv zZ8-9wlTqC-YuTdZW|WTnR{Q*2k+kfTKcYwRJKyIa7I7rz3}XLJOIBti^b`!A+|xr+ zD2?klQs<0f)LF^N68!Ka>Iy)#22z68~B_rB>p< zfAK4@smtkk$+z=CYX|NPO+MbX2Hw5~eqar}rXtRDcVw>!;y`fRn2$GA!rMev;jdXa zyUY3G*mx>GfWH_)ILS+qb$vdn^_F~G>xR71dTV}z*4y&2;u&?@=i&M{y&(0}R4%ui z{vN`TgWokLfh;n5*^z(AR|S`o!f90_UQjhLoO%v0?q@%DNo|4Q;}5v%B;=xl%T8hi z!9x-mX?~vu!F4CG5xEihKd{lq@=9cv#pxRjCSwkpK6A>r(rJ#H&zO{X!gPb`HID*M znSNl$%~o-OKuXzN*=_cjJ!sdPy{6f;7}wPLjD3*XZ-yWt19?3LiX2G07Z#_Nb8cs+ z+u1A5uo+Z_ehk%Vdco=n)%h$saA-?)nPGDjNJhD+P`9Tpl_Z_Q^TXio5?A)i0Qe~P z5U4)1kAcG?CrleHTT-LjO{Y@(Dl1anl@{qlt~6j;Quwv;rU}uL=jX=Vo}=On=)|oV zx}nbrbf>P=jdSV2j49T)oGabt2xRII}MB(u6~>31_*-G?{ItLoH=(a|+MM zLo4Ey21+a~XP3_}xm`(d26a7$u!fy#tZo%DgtE^Jpv(Xrf{8QW2(3~2f3`+02IiXe zU~P`046b{d6menSBu8T+*ts&E*p7^bm$rL#gtvNo`q!78{u|*c6If`Tms?OWG9={V zAHVIUV4;TDC%&E=}(aJQ8T{NBg;s zH!pR(Sr}*wv|p7LY_bG&1!=T)Bh6lWca-P|IA8xl ziN>pxbGeo;NJtU;!u+rje91~gY@m(GD8mqV>l7mq#%TO7Mj2s@3lPSz{Hrj&*oFBR zP{SCvOBmyeU>M^T3S<0JAdGPzhB4ZQmO^#Q2DD5V+fo5z%ntKyt$^`X6XxSOg)v-= zR$++vt1zA=;l4X6U^^>dJT;=&Yp8C`mq%h4d$0o5Tmjn?!fxnmy6}>RWGM#}2eecK z6n9iyb}4E(MZUIT!$XWWOOdNQt&~wBHF5&bN^_qW%HYmV(gG@xOpW@d0VPthFY#o# zM0RB~;k%;kN|$MbA|l^L9HKz08aboN$!%#Va#BHZa-%1;AD{8?PwGDumLey&B-PV-Q?Kw@o~L~83vd?i~hkzE-~OUm%%vC8}& zPZ%KT^cNA*3=Tn>fgwmUCG(mKP9LP{@J&D( zF)Qj%XK%u6eVUHGLwnfgbn@VHI=D~s&~QPAgT-E8PAI6fRKWICz#a-=)X@dzkLg6> zJhwr!MX9z$S++$9JLEkX!7L($&x68Ep}=kDAk$gvBw9$JStq8jU-6oPJ^sj0N)dTL z`>_vQ^wCIz{DuxE85Ul8kn-pg9Dp}=$2o_a`8kg0C4?FN7eb2Lem&jJ0yL)o-!6== z)+fzSLc6lPp6*`@I9TB*T!k~NPw)^ISWxu-;`_B$~cio{qgTZPM+}GEifBA!tPEFPS5Z2T?W%wAhtR+Mqn|wnEEdAXfbnFa zaArnVU)K?|dADM6k@=i+=JO0PX|_4%!G(n{jMQ%__}9>WOZszXk{K;D@?-FGp6#(#f& WPmO!3?$rLl?{D`su-Exs#{VzFepQtK literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr01_ch3_01052025/cyclogram_step_ident_ch3.xls b/data/experiments/step_impulse/asotr01_ch3_01052025/cyclogram_step_ident_ch3.xls new file mode 100644 index 0000000000000000000000000000000000000000..03278248c1c1025c9bc0f09888605eeea93c1f18 GIT binary patch literal 8704 zcmeHMU2GiH6+Sb2cfCt~>^O-H`Ee!=aqPrNckQNGCpI42p%4-hE4V+ZP}_~O4lWzp zvK^&Jr8S{ER064#hdwkCAms(MYKvO65+HEicmTDkghb0r=o@MumWrxEB5c3!%nZJs zj1?!Lm56*-_s%`voWFbSJ@?M+{P|DouDtm2ruQXQ4oONrt>q+R;STz1Bf3Fk75czc4%A6~yeLtSw-Ap$3562DpT zLmm_KK7t7(l9?y#Xg$P_PR=jV=KbOTuo=MBAYu;kYYwo`< zuKdy z$VZN^zCWXFtF~*=I`T)A`I{mI*(7g5qV}Vo@(^?`OuFTA{@MS_;%xbyB9r?cUM0vVYxgr}Ne@Xsb^KgyIyhofv zQT(Ij;f!w*|57-$Ch_0C_$9>D@Xd&EPJ zl*_Y)r?D$I_+56gs3IfJIPwqqmf+c-dQ#oURMjlZaXoQu+O=C&RhhkS;7KDZPdIqi z$j&2oCF@Jeha4cDHnOWxn^FIRF@GX2xElkUYrWCv)43%z}25E^{w>oIU-cfmV9Jw99Z zy1KlsgW?RC0cGfesV;L6te()FuRwsN1FG8$nL|K)<)TBy&|Nx7I*alYZqh8M;ar$-O zK^Thg=NQE4D}CcwdN5+DjUwks(HsEXVww@vz#K=`4PJ(D5HaB>x0yT52D4Wq6~yKQ z?vaO4#2W>in3*ljo}2Nyo5UH=`5eR?c4@GRs$>vtujxnY106(&eQ?C)sPI3VBM*i- zXFZskqiF4U?~odvm)FQESo2u9GMe3picVO#dRbgPR0oG|!=l4?HB#j?CYs09I<(C6 ztbFp)hktqS)NucI6ra;abE*;9$z(=eJ%Kxy&2E+0qwNLd-5_^!yJ#C~YaJOsTb}Wb zm(P1AC(o89I!~6*oU4?kTiXgJdE*f>)%!mS9r^@@>*V+?*AqmDSn35a9q1dQ)h zaXxOSag56)j`2M#j&TX4WapxB@SQx4aUC)$xO_HV#wU(3GI4BO0>(W%&bK}R<5NnU zkMk7Ani4SV_}B39EQ!nBm4IzZz&0mfTN1FX30O-4wk?KT)wg63jzuJ(98e5;K)Il} zqB62s(STFr+w;NpkQRr`uko}}Msag;4A6W_uNdm!%5P!>R3n+1^_`s>sX5Yke6dD~ zayQ|tS|G}lX@(;rKg2#ng@J42OerUqWk8XW4w91#y-DSGkB5Jg{y`8>lTUDS)yBY<+Tx`1L3m~R=`rlARiy^B6Tl$;z!G&rR? z;+%>{(ax!DM(cGb;mGUt=PFGjHcc}&&6Kujrn5~mm2H}7Y|~6(n`ZjjG*j26IW(JQ z%Gxy3)ux%MHqA7(X{M-6Gd*pZscF+pOPgj&Ml`p14|IIH*q(s3CSW@fu)AXz=g0#V z*(6Q_JtQfH0T#NM=7`-`hc+WlTS`}Q^SDt$QUmu@%q~Vv(W@XQ=-~E*v z=nqioIPcSOK3Dsw+~kg-@{s)|Di7DwsQlhBg-Qz_TonnQ1*LExkdvPFSD%GKANQl; zqcb<|ms8Kb=dfSN{p3rJ{r)|gyrwMWKkd2iy#3C_eVZGe`#JpY{P@?0fu&>E!@zjZ zQaLLRg~-=o^l<=c@z6$N=6ye;+2@!Crl!7Lo}L+>oLG?OSh)uj_V3H1ptn+Pw+MWm z-+y%d#rBY-crmwpE#Y91IWJv#K zpOO>s;d=pi11;?{$7q{nxuQoxMhA8)_{aZd3t#O5%R##wJsdwD?pf0EketJJ27YPa zx4$F!-Y}+fLSz=-B_@F^UD`wYeAry>_!+NXg(}l>7#2p=hq8WwyfJ@@H!*(h|B?OB Vja$0hX#DN(Z?|MP6uuSv{{^4;F(d#0 literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr01_ch4_02052025/cyclogram_imp_ident_ch4.xls b/data/experiments/step_impulse/asotr01_ch4_02052025/cyclogram_imp_ident_ch4.xls new file mode 100644 index 0000000000000000000000000000000000000000..c329047d6806c05d36e09903c8d84b5feaa58dd1 GIT binary patch literal 8704 zcmeHMYiL}@6+U-&cD;&hOP1}G{F1NbM6qni>`HMX$x^hElBSLwTR7^2B3iGdm90iE zBpEl*HXEn;l?K}8M=1o7fKwGK56Ij{mQxZESD7KoO!FW*(|BZOo#xGgmMz-Sfp#5tS2;}jY{CdOh>GJCP z??^;`VJ@Q-c^7$1<{2A?v(w}5|0@lt4q1mfEaQ;rN6V2HfNqqZD|$)GerW&)Qbycv zZ8-9wlTqED)3Qa&jVK*?UHkk^k+f`=-=atH$?x(Ii#QT<2C@IABrDSrdJ2Y5?&(1( zl*V-&sdGj#>Wt)M5q@|a^?B6v%o*r13tjvkmuQYEdNiB$a*;9o;oNL)Av@h{cE~G| z6nO$^tYc-v0D>rMH%)(v^1_2&FKt+(W3#Z&6G&%pJsc|q#2v$@<- z`a1|q4t|%N1hUBJbB_E|zAU($6i%ud@q(&};nZ`0aXCm~Ncxa=gB z5j-T3k>>Yl5L|Z>>yaCg{{tI+EH6cNSe(AmU^3>A=`$ycE1l-3xzD7`!=@WluXzA? z%Jc&}YBq}#1X9ZG%1*P_>_)rZ>@m%z#ki){XY7OAelr9K8OZA~P-K7FJ-;xulyf_~ z+|FKchRvWd^kb+_(+gHtsLp55fkRuW%M6>tKr+fjg}Oa;sU+zXo*x4Ded5YK82}&U z9t72g_7QMc-ZUY4^4#pW+jCf)0iC!t zLpSs}hVImrx^XT&m@&ormUE@s+z-0hG{UNOIL@pKyfonuY{FUYHce)W=}=2q+nm5N z^3aNSrGXNQOWCD!i*8p^oIzdBA*^Ai8mn7{4592Z11K{H^||b2zIWFC$=J^;iau!9pSCsp8oY^r~i7m$^;gg=jA4pj0_3+ z_{Z=6<319zSxEN z7*N9)w@Vn~i(nYz77AnhQy`3SABHj7hn7Nh-3GKw7~50o?Dq!0yU_3RV*lVb+&zDDH7~53=Yp#Ip4q;dIHC=egL$Z_uiUV3I z0*X5-E;|&poFZRYw&5Yho2AGlo>s~zks3J$Xt}vh3}tZVCusqdNTx>p(|{5w*_U{{ zTq3(Nn($rGcBRWS>bu6b5Qiwxsz%PJa&lW*ikwuCoZRS1?Z;<4{FC|*g{8>JElG7a zlCRFr%=HNp<^*FZL??*{Jif&J+FHt7_F)8nQoHfen8?8oV`bOgflJXCaldD)V z8W*NyG>+s=@zkl(6baL4wKf=XSE$jjR@4i3mVm_CGKtjIllW4$Tq3(Nn3j~`$zzpy z15X$r>hu>8(hLqknt>rmGbjXU281BZU=XAk2!b@#4AKk$L7L7Vr0MuUnob|2>F`ZJ z8Zj&CPiJq!Y<-%JzD;}B=XCPmb2_+B^U!cXhl9l)U`{Bgv{b1BKVbswD=8x$_ z;ykxOvqh=4MOn5*3ESjfGJ;t|3ZDaon?ixx&OxTL)=9LGLbFaxVV~kP1$+FFp_C$W zm-b^Hy66Lu26>GRCm9xA+C_PEN)8aiFA_O}oB0`z=p}?1{ue@u+kP$G$O2p`|G!-r zU#(A?p@ep2doA6$7I3h_QMd|cSf8M4i7aa=pJfDlbZUHIZgFmM$$jYSS@$Jm9$XX1{N6E-%n{zZDq^oTwI+MA?8HOi?_$7{jXRO8&poQIH%N z*8kb(SEUf}J>wyZ`D=g-?PQ%oL{bNJ4{ zFAe Ye|%4k+p2EX{=x5Ww>7ZW`F6(tFXBH{E&u=k literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr01_ch4_02052025/cyclogram_step_ident_ch4.xls b/data/experiments/step_impulse/asotr01_ch4_02052025/cyclogram_step_ident_ch4.xls new file mode 100644 index 0000000000000000000000000000000000000000..923fcd50f6223072112bd46c63dde87d17c3cb2a GIT binary patch literal 8704 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 W58b$<%dN)W{{D7HhC|^yvHxFC?lblP literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr02_ch1_03052025/cyclogram_imp_ident_ch1.xls b/data/experiments/step_impulse/asotr02_ch1_03052025/cyclogram_imp_ident_ch1.xls new file mode 100644 index 0000000000000000000000000000000000000000..3c0eb7e3bd29e224c7fb72ef662b407d4f67cbf1 GIT binary patch literal 8704 zcmeHMU2Igx6+U-&c3H=Oje#|PF&C3K7;Lm_7h)SbUfcO8g@8reA5~V%Vz0r8|707{ zNd4K6=B-Fc^H5caltdyARjRaAtM;L&HGS$s|5Pbb+Ef+cp;FX5Y@)PPq`>z3&fLr1 zy*|)%=|Ao;h>o%$zfG_x|aR8?L@fhTrbv0Jb*iBulMPCky^Bg zT`v}kK8)sS`V?8ohUujTv$U4+v35QG{T8_K~biMpY(MwwPNdq{LGU9e= z!;uf2jOu&5S8&Bm2@E0QpCwVEduFprc-jI)L-H@d5{PPFUIF4JV1jcaOs#$L$nGlP(jfxK=5MfP^M=jJCDb8bh< z?dTC_$P6e$ABO5MJz#Z(>KsG|4sEGUGh_|{$tV{U>hjd3lB833egNEQab=J6gO76e zgX%^5FgPr7)U?vFB{dGZ=~QZWWkt%n(jpzml?F^p3cps~G$DH8?97sowzka z7xX!b?$njKaW37MF~$0pbEV5X2)fBM!m4&S&a4x>G~pm@!ddP#Tg)cYu9mX4IgV%K zp%w8;10@y~vx{dJ+|Hyp1G=7rSi=rAR+kDHMA>WlQD%S+!o(SHgw`niKU*Ug19Q!~ zu{K9g2G_k+iny?^lS45P>|7a3Y(_@IOPjqq!dtyP{p-t4|Fv+HaV#{?%MB_v`s`G8zPTmc(K4_Zd!Xf}e8bt(Ik#o_SsmcpTDCx$PEGIjKM-i|LHpVE zx6Ze}Rp@UGv|p8GY_@SskH7QM=CnC}f4_F*^N^j8Z>SALe$!~}Mw-2LZ!OUgaQ@+Q zB^s|%&hxc=K|+ey7v}qw;7e8_VgqedMi_>`Tc;R_Fh=8tG0F&IT!1i! zptz&rvRzTjDe{#i8y;f3S&CfZX{C%3sga|AmYRCSPzHB?k`_>jWNOqu4JeV4eTm1) zC9*4{3EvfMSGr82zH59Fafkw~YUGS6C%2`g$Vmms$&H@WetgEmKdJvvSc;t7l2nHy z`ReS*+?XI?PB5lIbb|QrYN;tMQObY`0up1Yr7w}r<4fFIE|Fd1WnJSpx>9XUCMh4F zBT3r8q(Q5@pgKlXBJLtWi$iXf-O+HyS69lz(`fT*Z>n zxG*K7aU^ewCr_59NSH>ewZV|PLXC#CqF%VO1SHm$Nu;)(#8}r0M)YnvNf&>GVOG4!;FR zBW6YY>FirDTc4(*Z`B_5Ih{QCoDS~OJTzR;;b5@~m=g*r%@wfS6|nn475{!d7`thB1ps;j^G{Qz&rTImmR@I*AriXx51->`}a?V2?jClu|_Q z(SGbh7kwzwAU~(WNrr`&?xj5X1P9=a-EmIiW`3F@dI@2M|Amm^wqH#*vjC0h|F;X{ ztMy4Ul+dnhuco`#0uEL<3RmF_>k~Z0MV7RbM;XB$pB$T?U6`F%bRYTJSZ>Pgez1Kc zdnz|ImD3Y+aB^az%d+2IiT!5>y}j7}EkV^KVZ)LdgkiLk2x##66Ii=sBp0eOAlnvOy6veZPF|3-di z{hxhKjzfnhEqDth$ES~RY^G|v9`+a=j5~#Y{BJk$0&hpQWi@g*f8K_fV)BHX#dijN zY2dfN!}#7Xp=&~95#J?dfvlYNc;oZdR_*+0uOE6MWAZRY7*ic``UUdV^y#{d`7{3e Y<9lk{QFW{K4}O2Uqk+B7cQXEe0XBbF3jhEB literal 0 HcmV?d00001 diff --git a/data/experiments/step_impulse/asotr02_ch1_03052025/cyclogram_step_ident_ch1.xls b/data/experiments/step_impulse/asotr02_ch1_03052025/cyclogram_step_ident_ch1.xls new file mode 100644 index 0000000000000000000000000000000000000000..cec3d6aaca0998c970c1423551bbcc88fe0b4926 GIT binary patch literal 8704 zcmeHMU2GiH6+W|jcfCt~>^O-H`Ee!=apJ^@c5M>u#KvPgKtn=e1=Cg)YP)gP!DVAx zwxhICfhE8jNFb1SAQB)&LI^}#wE~Hv;_$=+(5ey=g@=Z|p|;XeQ6VJ4_WRDv;Oog) zaT2IRqM5IPweYz zwHm_cE|%|61TF-=CNY5qHHFGKuR+bAW>K$0dFoB_IAexvA{+V)62I8Z!sJGJA; z=Z>eoKdx=Fw#(5v^18}=q)1-Y$UBgzKKKL=v4kTjrw{9YR0>j($Xzgedv|wAW!A3a zNUbvjt0$x=Q^>(R_b26wRLytT1Px*=9*`RVn-AGr|EX;8|ac$bQLzYySy>H=3BO?zvc-F|w zAa^C>Nz-Q>Af7fdOHmt9zrdKklIIhveVl8(-gsu0={ARrEA8fhxyj_r?WPmd9&-!u zoaq5}z^oL<26D>o$~v>jY(T%xY&1=#*|=s&$k+|NJ*FQTJm~8(aAaG%dunoYy6Cp& z-1a@<446J;=z*zrvj?oM(4E~7plP4#Fau^U5Kp=2P-oySog|&Z{axVBiz{2D7kt#a z6I3_)`@!KO2Tdy@JL|@7H=oOGig#qLC?nF28fP#sIs97rpa<0>C&z}}uD#;)>cIUl zbi$v55T~#7jbrJ;h^aP=oGYE?X3$Nh5mEKcabz9fWeEEb6OM9&x!$ZYJ2X;$Y!2fd zc^E~!QNW3*>B98MDYv6RoIah;e#~LJ2CGw*^rP)Iy=Xn4{RpuKj>sJ4zq2`VVVHB) zg}FI^)}HrPsp5HgnY@8DkCiLKnboN11cj@YCBcVk|M0DwbNDVrsvN^a^SD}pmYJTB zuU`7>uXi3D?ERVIWqmZK8j;ORX5`gFxO2{IQ;F@`o>tyfawE5kmVuV$q0tk?DfdwE zlzU|SL}9G$Nb&f|Qem>WCEwoCw;F4p<&u1Zh2urHW$J(u~D+48!B^w6r;GPADH<9l0C2GjhMiP~`1KKW?NcwdsagIswl2 z@0g|WCgVK4gzqOP3IBa{vl4vA$t3)ZGbuydiojc|7>Ovx;72j)h+>?8D3*%B_+Ay| zs~ziL4w1G}F{AhB~_b%OyGG8Wa&lSv6glZ2Il0gqRF3y}_&4Yu1U^MhE=jsWOQAdK zyl)0bm;+4d{|l1D0P)w+OjBBt)PWFK8dK_JsFBGNYTPzgBSq75MALIbIhati<6_a8 zIifX|=z1M_AewvDgC3L`X<9FslN9Y{RG3-kQw#$0EiD@~G=Z>t#si3wm3@c?r&LFr zRq-&|S+&h*{Rv7q@>=~Rl%^4zrWu=NO4~Hk*`}GwHqA7)X{NAEGktBEscX|5noToh zZJOz7(@a&HW}4bGQ`DxJo;J&_uRuSR>5_B{?X_D^X1`t>t22`Bipz9{%_ns ze~n7Vd7qB+x!ObJCU+2(hwP70dAJ@!<@b&WR9g7-f=KWzDEZyKT)FM?66;Y@r%U2|L`$QUR37upY{?Ty!XMGoonl!dItWtefjD>V5tap4=^6I zRL;snA@p?+eH?&VT(sesdEX0Y_BrOhiHRQ;C#Oco$7ba@R_+1$T|09q=q;9OEdt-> z_a9w 20: @@ -97,7 +101,7 @@ def plot_asotr_borders(ch, asotr_kit, begin, end, font=14, cmd=0): linestyle='-.') ax1.text(data_dict['time_temp'][idx], 30, row['cmd'], rotation=45, va='bottom', fontsize=font) - + if plot_task["temp"] == 1: for i in range(len(channels)): if channels[i] == 1: @@ -149,11 +153,14 @@ def plot_asotr_borders(ch, asotr_kit, begin, end, font=14, cmd=0): fig.suptitle(title, fontsize=font) plt.tight_layout() fig.savefig(pict_name) - plt.show() + if show_flag == True: + plt.show() if __name__ == '__main__': argparser = argparse.ArgumentParser("plot_flight_borders.py") + argparser.add_argument('-s', '--source', required=True, + help='type path with asotr csv data') argparser.add_argument('-c', '--channel', required=True, help='type channel (example: 000011)') argparser.add_argument('-a', '--asotr', required=True, @@ -166,7 +173,9 @@ if __name__ == '__main__': help='type font size (from 1 to 30)') argparser.add_argument('-d', '--cmd', required=False, help='type display commands flag (0/1)') + argparser.add_argument('-p', '--plot', required=False, + help='display data in plot flag (0/1)') args = argparser.parse_args() - plot_asotr_borders(args.channel, args.asotr, args.begin, args.end, - args.font, args.cmd) + plot_asotr_borders(args.source, args.channel, args.asotr, args.begin, args.end, + args.font, args.cmd, args.plot) diff --git a/plot_flight_borders.sh b/plot_flight_borders.sh index a9dbc7a..4ae012f 100755 --- a/plot_flight_borders.sh +++ b/plot_flight_borders.sh @@ -1,19 +1,23 @@ #! /bin/bash -if [ $# != 2 ] +if [ $# != 5 ] then echo "erorr use $0. Right use this script: " - echo "$0 25.02.2025 10.03.2025" + echo "$0 path_to_csv_astor_data/ 25.02.2025 10.03.2025 14 0" else - begin=$1 - end=$2 - python3 plot_flight_borders.py -c 111100 -a 01 -b ${begin} -e ${end} - python3 plot_flight_borders.py -c 001000 -a 01 -b ${begin} -e ${end} - python3 plot_flight_borders.py -c 000011 -a 01 -b ${begin} -e ${end} - python3 plot_flight_borders.py -c 111100 -a 02 -b ${begin} -e ${end} - python3 plot_flight_borders.py -c 010100 -a 02 -b ${begin} -e ${end} - python3 plot_flight_borders.py -c 010000 -a 02 -b ${begin} -e ${end} - python3 plot_flight_borders.py -c 000100 -a 02 -b ${begin} -e ${end} - python3 plot_flight_borders.py -c 000011 -a 02 -b ${begin} -e ${end} + path_csv_data=$1 + begin=$2 + end=$3 + font=$4 + cmd_flag=$5 + + python3 plot_flight_borders.py -s ${path_csv_data} -c 111100 -a 01 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} + python3 plot_flight_borders.py -s ${path_csv_data} -c 001000 -a 01 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} + python3 plot_flight_borders.py -s ${path_csv_data} -c 000011 -a 01 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} + python3 plot_flight_borders.py -s ${path_csv_data} -c 111100 -a 02 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} + python3 plot_flight_borders.py -s ${path_csv_data} -c 010100 -a 02 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} + python3 plot_flight_borders.py -s ${path_csv_data} -c 010000 -a 02 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} + python3 plot_flight_borders.py -s ${path_csv_data} -c 000100 -a 02 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} + python3 plot_flight_borders.py -s ${path_csv_data} -c 000011 -a 02 -b ${begin} -e ${end} -f ${font} --cmd ${cmd_flag} fi diff --git a/prepare_flight_cyclo.py b/prepare_flight_cyclo.py index 5c327e7..065c5ba 100644 --- a/prepare_flight_cyclo.py +++ b/prepare_flight_cyclo.py @@ -1,17 +1,19 @@ import sys from importlib import reload -sys.path.append('/home/danila/Danila/work/MVN/Soft/PID/python/') +sys.path.append('./') import asotr reload(asotr) import pandas as pd from datetime import datetime, timedelta -timestamp = '25.04.2025 01:18:00' +path = './data/experiments/' + +timestamp = '03.05.2025 01:27:00' cyclogram_file = 'cyclogram_step_ident_ch1.xls' -asotr.insert_data_cyclo(timestamp, cyclogram_file) +asotr.insert_data_cyclo(timestamp, cyclogram_file, path) -timestamp = '25.04.2025 04:24:00' +timestamp = '03.05.2025 04:33:00' cyclogram_file = 'cyclogram_imp_ident_ch1.xls' -asotr.insert_data_cyclo(timestamp, cyclogram_file) +asotr.insert_data_cyclo(timestamp, cyclogram_file, path) diff --git a/temp_peaks_forecast.py b/temp_peaks_forecast.py index cac510d..d0f0ab1 100644 --- a/temp_peaks_forecast.py +++ b/temp_peaks_forecast.py @@ -12,7 +12,7 @@ from datetime import timedelta path = '/home/danila/Danila/work/MVN/Soft/asotr_csv/data/' channel = 'ch1' asotr_kit = '01' -start_date = '20.04.2025 00:00:00' +start_date = '23.04.2025 00:00:00' forecast_days = 20 # end_date = '26.03.2025 01:20:00'