From 16f47677eadfb9bf701dc9c02929c9c47d4c0dc4 Mon Sep 17 00:00:00 2001 From: Hoa Ben The Nguyen <hbnguye@stud.ntnu.no> Date: Fri, 17 May 2024 16:37:59 +0200 Subject: [PATCH] add: method for adding new measurement and test for it --- .coverage | Bin 53248 -> 69632 bytes README.md | 6 +- .../getIceThicknessLakes.cpython-39.pyc | Bin 7532 -> 8496 bytes .../__pycache__/box_funcitons.cpython-39.pyc | Bin 0 -> 2815 bytes .../__pycache__/evalscript.cpython-39.pyc | Bin 0 -> 2414 bytes .../__pycache__/getAreaInfo.cpython-39.pyc | Bin 0 -> 6440 bytes server/__pycache__/consts.cpython-39.pyc | Bin 443 -> 504 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 178 -> 178 bytes .../add_new_lidar_measurement.cpython-39.pyc | Bin 0 -> 2324 bytes .../area_processing.cpython-39.pyc | Bin 5900 -> 5900 bytes .../__pycache__/input_new_data.cpython-39.pyc | Bin 3919 -> 3903 bytes .../process_lidar_data.cpython-39.pyc | Bin 3699 -> 3699 bytes .../add_new_lidar_measurement.py | 95 ++++++++++++++++++ server/data_processing/input_new_data.py | 35 +++---- .../__pycache__/__init__.cpython-39.pyc | Bin 189 -> 189 bytes ...ar_measurement.cpython-39-pytest-7.1.2.pyc | Bin 0 -> 1417 bytes ...ea__processing.cpython-39-pytest-7.1.2.pyc | Bin 7637 -> 7590 bytes ...input_new_data.cpython-39-pytest-7.1.2.pyc | Bin 2438 -> 458 bytes ...ess_lidar_data.cpython-39-pytest-7.1.2.pyc | Bin 2871 -> 481 bytes .../test_add_new_lidar_measurement.py | 18 ++++ .../unit_tests/test_area__processing.py | 2 - .../unit_tests/test_input_new_data.py | 1 + .../__pycache__/add_new_lake.cpython-39.pyc | Bin 5828 -> 6924 bytes .../get_lake_relation.cpython-39.pyc | Bin 1284 -> 1378 bytes .../update_measurements.cpython-39.pyc | Bin 6180 -> 6169 bytes ...t_add_new_lake.cpython-39-pytest-7.1.2.pyc | Bin 2640 -> 2635 bytes ...e_measurements.cpython-39-pytest-7.1.2.pyc | Bin 1282 -> 752 bytes .../unit_tests/test_update_measurements.py | 2 - 28 files changed, 134 insertions(+), 25 deletions(-) create mode 100644 server/Sentinelhub/__pycache__/box_funcitons.cpython-39.pyc create mode 100644 server/Sentinelhub/__pycache__/evalscript.cpython-39.pyc create mode 100644 server/Sentinelhub/__pycache__/getAreaInfo.cpython-39.pyc create mode 100644 server/data_processing/__pycache__/add_new_lidar_measurement.cpython-39.pyc create mode 100644 server/data_processing/add_new_lidar_measurement.py create mode 100644 server/data_processing/unit_tests/__pycache__/test_add_new_lidar_measurement.cpython-39-pytest-7.1.2.pyc create mode 100644 server/data_processing/unit_tests/test_add_new_lidar_measurement.py diff --git a/.coverage b/.coverage index 90d487d5235d822965d20d2735542e15d82d4d70..d06917897e5641380540d8f2477af9c3b378a3b8 100644 GIT binary patch delta 4444 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 delta 2071 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 diff --git a/README.md b/README.md index e21145f8..24128d70 100644 --- a/README.md +++ b/README.md @@ -187,12 +187,14 @@ This endpoint is only for production, and is not implemented in the application. ### New lidar data ``` -Method: POST +Method: GET Path: new_lidar_data?lake=* Paramters: - lake (required) ``` - +The endpoint will update the current data from ```*_lidar_data.json```, +with the content from folder ```./server/lidar_data/*```. Should be used after the +```./server/lidar_data/*``` has been updated. ## Database This project requires SQLite3. Download the precompiled binary for your operating system. diff --git a/server/ModelFromNVE/icemodellingscripts/__pycache__/getIceThicknessLakes.cpython-39.pyc b/server/ModelFromNVE/icemodellingscripts/__pycache__/getIceThicknessLakes.cpython-39.pyc index 4dc75562c32a5891e0a754550e688c65f718bd34..9c0b3d1fb4c72d32d9bc8b3f5bbc46597f3a9236 100644 GIT binary patch delta 2371 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 delta 1445 zcmY*ZO>7%Q6rLIXWc?c_aqKv8Vkc>STv6ksRSIp=x@m$+TLQE~z(TrpJ!5wh+Z$## zghWL?Bpf4@?garolmntSBo_&B=ZXMvS_#1w0ap%42;SRmk}}qO`@Nre^XAPwf4TU_ zxp*ZO3lkV`el}J6cIqIWWq*@{XY@AZg!_4blRCj!Q+SYf?NK$u6&~6n>LAbZFpq#{ zh(|?eEn8ze#^WFlyAtKyJOR=O@8P}RpA&iBx6b5WBFB@vR2}90>KIR{<2=m=_J|l= zBA`7XMtDY?5TVpsmJjaxC=nBUXqQsL=}l4?w&&=r?)s-on`d{|C(8Bj7rQ?EuJa@P zM+x-98C3hH@W(-wHEXiRwj%rVWQRp_lwP#QVh1#8KaPDuFLhpte?+G*g1dB~j4Tgu zAExQnBCN0?jWUJFd?%6Er;#N3L=pPzFM3{k9yfDWKVl9mmYjfSS#tXklV{LSI<(3% zFeg0U&`qmqG&e4MWzY2%+bOiC5e5*35Q+c=zg$3m6hw{I^oAt`*LcOMc<Ek2k1~K0 zs|!n$l`S+1^K(#{m?8-)G)rN!B$d}dmU94AADZ0Jxt{!*(j_~P`k-$SG)`#wy{g!- zbfZ-W$_4vDs&L++!rShsL{4<gG+KIX+s)-0SZ5|MTr^HojL|49(q0;;@^;6UF0p5^ zj$VZ2BX%4sJkRy2SCXI6eAT{_Ii0%>bSI{nn|Cy>zgxup<O-UX5MH()XC{NMBE4b% zni)U$Hc+R#Qm;!<hYEN_aug_;XjPg*uA=KL1P#I6-Aln<7#yZQ*lz)f&i3Fqz3g5v zMK?_RHwLg$=#sC)*9n-G)HmR>(a<e9fliYMIoDWg7!|7!kgN7DLzx@y{XMl4x}@-) z;81WTP3NZ8(yE5!=AU3Q;{YV$XHmGYI27>;lPz4MXj-$Pw=`|jzLq`T-U-i^X3v}| z&77Jk9rM{z6;nPOm~;r{WtiqHK%Lwpt0&*5_n?<E#3I%c1~SbMK$aogx9{7fHFm(> z@k4|8<xvsjT?kR|$r(c0L}EO78a2#&RF^#d0_vYb`2VTpi=azGFnJY?D5)WHeY0t< z8KPC75^rxOa#u7OMt;kX4PIa?D}_lpjqYx9xNS0mV(=#78}`H8vfp8*uz$}@_m86v zU$vY<@FR@b)A_UQQKSlh>Z@;=5;Juh+)Z4KY%~l@s~HV0q`ZwbfpA!Md^(z@Do<Xa z`BXQiu^Yu<J3<KQwVuQ-IzInP9xa2?QRbTl-)x8rPzhq<AA<rn?frV`089FS{~K<T ZE+rXGCerb&l2W=A=BIuZXNjcZ{}0`ZIFbMW diff --git a/server/Sentinelhub/__pycache__/box_funcitons.cpython-39.pyc b/server/Sentinelhub/__pycache__/box_funcitons.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2f7dc778831dfc1953ae7a474ce1a164a87091d1 GIT binary patch literal 2815 zcmbVO&u<$=6rP>kwKuktraz>nJ<vH68q+GIr9y30m8hxI3$)OH3RbGs#xr&{UGF+G z>kwP^DMjr832{M!Q*z8dfcRVX%BkYWjT7G+=VuA1>RR)5W_EUG-h1EoJx7z16^84# z>cduAX6z3d9KBo&7SN1_k*vX_BYEO99DC;tZtrfx#obN3j^FS*rAEnN(v$uR)+o!8 zEaM)?Ku+L3AuF<qdqvjdB<@vJlT**RPE}Q&lG9tfF{!5H=`9Ce;7hE2X7Fj{tH%!> z-x21yjyFUsw2EX$iL4`5vkfhyR3xh1Rw9oRp;EE3l5JuY?A)5k(n{qu4$dCcdEwo^ zpKTWI;*+JOLvwo<d00YQL^BI8<k1T@WDnSuGlEw~Mm%S^Gjz5bSPsi=pHsi(<?fod zMQ8Q~H^m~3nJXhALA#1prqQLNwc`z(GEPOlst!&mT5+O|or>ci9@-L`IS13miJsL) z*j=&<>?gkNEwNoklP9}umlu3)zVMq_rls~VXU*T=EZ$lE+9++7SF<R*vHUny4-iGQ zyhOoND_FhU)mi(-?fLn`4qn($dU;8ud7P?bwYRd2lZUNd+KlroHFMp5QMsGMCU0h) z?!8mk?k_YpxYV>>hvf3y-6U&9iMfZ){>pdp@HKfjc8Rid=$xLQA)$AgI#rmuuPJVY z+lf<{Xj4;i8~)RWOSf*;-NJ<%MX(v#FqtCg@AcmJXi+`lM-5*vv@>(3oGGr)qSvJ1 z{sq>s0BsS?`~Z`)HD?=0fpv3l$Jud4<2io_Z0+!olb4W1zQupMIO2JEI~a1Tai22j zdPw?~>#%hCIy0ZmGsphEg>AEuH*}?Ufk_{Hd4+!I0x<e)X5<fj+^0sRp|?FTEbV|h z>l^Fo5D2N42S1A^V2nA$T9itVDDUai2!%xVEoZKYm0m8gH0fJp5;}X`uF_(&FX)XV z`))j#rR>&)=`~leGRj4qizZmOf)|XEfObXTGJEI|ZIz1%xJdA%B?v@$3=j<hB*Rj) zaP*_X%llnb)IRSedHh9|^xIjAG!UHQl!#QX6g)G9*NyVkqAX*bMjcfI^j$j@gduS# z3=3~9L-xI_t6)h23NOhbS(GBUlgfG-S`_QhzBOUrv0ab4g(sstYS7U_LTyp*j?bbk z#tw*Ou~$^#S{Nlsh~-34%Twl`159epEccumegT2z13Wzj8jKl1)q;k;Jr<puZCTkt z;@m+Ui5q7LdsrD!<{E-16$B2cTkj#Jc_w1{cD%|Nsnu9HEaK~qMe{D#gyEB1wDhXe zL!#G!ayfRGa(4p3@kMg=2%l`oh^a;G=*w3yV<-TO>si>Q?b8?+v5lGy&H$Zbip-BG zvTGF?`U^&Z8#Aao;~u=l><rj6^6VPduJI4npocY>wQKyGZ@WWJmd>)FPxd_9aV&pk z#X}&N_#lCZC~Ydy(x^U=b3}m>5Q#1zm%m*Wj_S82g&zlt{5=x318tk5`NQDvAK|3n zzr+3{ZvVgkNBjHRN~0$+d`-Ekdzy4#Pr(#khgj*Eb)DBs7Dt6|L!wX9nlrS9%T2WY z8$OOvvG3JYEHw82h}GK5&SkFY0LRclh@!Z;wD=Ybk!HkSvX@TF{u_A#J+-yl9lG08 zqmg6iE9&!*4}lTjz-v*Rb_Z7uC}yiM<+GV&Mj0eLvpH`<fsFW9XenJ(3Cu+pTbj>6 z)<LjW&MVe}v>&ILjUr(lh1yM`941T0p*YC&Z9E=l`YJJH?;Ih4EQA1uu{<g1$ioMC zvGA=f*mPJ@qZHnt4_>zq@eO5)iTyYm{V_eW+?=PLCFuG8*!B~wFjV0fFFEHp<cwwt zC~hZ;(=cp5`Tf1`|NQd(h4!z%;OakGX!xoX8B;%1l*3SF%`nuL@QVJB%nVGUx?djf z=fc)(TdD2I#|lECU~_-483{hgJBmRLcxf>12$&9aCb-+lWG_+o2&Ohao)<ud13t}z QAUGR%K{c2Nc!dZ2A8I*-P5=M^ literal 0 HcmV?d00001 diff --git a/server/Sentinelhub/__pycache__/evalscript.cpython-39.pyc b/server/Sentinelhub/__pycache__/evalscript.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..540e1f7e8a3e8a9e29736ee320fb0be5b59f01e4 GIT binary patch literal 2414 zcma)8&2HO95T<RVXjLSa7RYrV6bNN2GD$mtE7wKg+HeKbQXttWphz&*;>spWk-{!1 zI4Sf%eSsYFAinl3a?0!<xmM)F0=(qT?9LA7`{rAdr%$U6{yzM8GI4)!od3nd{;lEU z5B%dl;}ALnCtMq>h3kX$aAU9$R{Bo;3HhbsI90%(9JaUL9QXR|Zs%a9G*0qloJDB@ zoM!pVt;4_42f%R7l41%FC9^zh!Q0xQw^wUG?a=qdBP1C)CH$r~YN%txd1;=h#U`3C zMqvw=(+SDrtk%%S2*)K!Lf!)33IM>#bQaUIcQe|87w7HH+1`s{%c5cBWdfT#Rz@zi zek1TmFI?=)mxUbVP!x*JNt~06zK(8b?5Z?*S+|&Gkc86+4q!~;aUSE+b`sKCv$Toz zYv|A8O{`*lAGWu_?X-LF68itNdww1Cd`r)DRyuByvMGt9_d2eysu&&PfGh>?r4Jla zpyfBLKvm;`xQ^2}Wqq;1l@S~87)$W#6#|d>_f8IxGc!gxO)?@WmGdaMg3i%tTjvj8 z*n;Qj$~BGY5v5-$sNfBfMm&NN08Lz1da<I~jTKdvEp2%i;idWtyy=(mr5UzBq7_IC z&lpMg1VMlaOQ(PUAPzpD^@>VJ<XjeG6|<~*uRimXWY<lW=1J(P(>DR@udtWMVUr@$ zKsvc10WJVcN#Zk)crJ(|;jz*nx2PrsMz&5A#)AIKIw2Z(1+SF3R1I4QjIZc?p(%mX z6mLg8c58+X<>JN2Zf#{ZLi5$|O76-)0IK@NqMKbz7u7GncvZufbWlMw=`^Xa#dl4M z<NJ>F9*h+4)L~+L|6Cr~|Eqic_Ys`5-yFknuh;EW$;Wj><sKR<QMjknmP+rcQrcpD z=*u#jmMb*dl<}>p<4Ua-{Udc+*XSXMw&YpGS(fHU2NEPebP$!|%O6H#PLSm^MB!D5 z2^99_-6uRkSOd%FW6NT6;S$PgZQ8rP$+vvIzb^<PHjUFHV}xhu^#e~EQT_08LzC-@ zOq6`1HZ93{9X5;om<4W*CZO+!LJ#5K07Dz1-2)kQR9&Meqw2`=@-^6^%O5FnVtiRf z9Dv50>dW)NkY3SfRxocQRK6=OcJPF@pw>iVyxs5x1t$unxLao-Y@K>#P!YGupqjCq zUPy(zdqNpY+1<04+|Y|?jDJG4{&Uy{{wpJgPv?KOhUc6zKD<uJMKJ6p^oT`sI_%$w z$7RaG;f$qM!LOcIzTk#AWy3z+Kv6>D>-=&k=)%V=nq|$|ySwjyo2FqN)8DbP9R3{+ KmCedemC9$6kbKJk literal 0 HcmV?d00001 diff --git a/server/Sentinelhub/__pycache__/getAreaInfo.cpython-39.pyc b/server/Sentinelhub/__pycache__/getAreaInfo.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..735003454656becfb40081b64cfddc8afa681a6c GIT binary patch literal 6440 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 Rb(hLk!2-Klb>@P1{~P2prpy2U literal 0 HcmV?d00001 diff --git a/server/__pycache__/consts.cpython-39.pyc b/server/__pycache__/consts.cpython-39.pyc index ded41a9b9378df29070f95b610b3abead5441e75..e1e6e78b87fda546bfd0023eb017c1ddec604a98 100644 GIT binary patch delta 152 zcmdnZ{DYY{k(ZZ?0SK6R+|yP}<dtPKnW$~Z5yg?h8O)%`H8G)5y-KM#wWut$NZ&U< zB{j#bC_mRP%vC?Xw4|W4q*%WoCm%@qX>v}y6Qz5L-^bI%F(}@}F~l)Gz%j%lN-#LY tF(f$NKQtsDGz2WPlA(whXkQWY<N(G<5dk2Rg^`7sg^`1i15C0o0sz)>CjI~b delta 92 zcmeytyqlRfk(ZZ?0SJC}I;Z7L<dtPKn5b>Y63n2<IWeV@*-w*WG7DprR209Dr;B4y pyo+OqV|;*Ph{sBXA|{}&BBsgRjFCcoKqd<#3o{EN2O|fV1OWaJ5_tds diff --git a/server/data_processing/__pycache__/__init__.cpython-39.pyc b/server/data_processing/__pycache__/__init__.cpython-39.pyc index 5e7a44e7ddbd81200f088b345c160601980ccd48..1c432fa6eee7d5356b4a3b456d8fbeb68927634e 100644 GIT binary patch delta 19 ZcmdnQxQUTFk(ZZ?0SK6R+$VA`2LL3!1CRg! delta 19 ZcmdnQxQUTFk(ZZ?0SH_iohNcH2LLBL1Ofm6 diff --git a/server/data_processing/__pycache__/add_new_lidar_measurement.cpython-39.pyc b/server/data_processing/__pycache__/add_new_lidar_measurement.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dad8079e88a289d04670f9d108d10184a82da143 GIT binary patch literal 2324 zcmaJ?O>7%g5Pom}y#7nvBo&m?f<TH<f6{V+2%(syqJfZBjZwwQ(rWAX;%vHpYu<Zq znsnWZdoA?9t*vAqxpLypg#+BtUODBCI8;JnX6?3aO8Zv(er9K8XWq<w6IQDw0^{zD zFLv)%3Hb{Tv%`kN8oY|Z#0aA?@h2<wDV&Yi=o-F3k!Hqb*Yd5d?c0=ahZlH(S&vO- zGv~hLyEBvmbAeLiC0=AjR$}F$Ii#S2?vQ%r82&`I>ojv&sJV{1yl!OkTbmn=>%m5& z*$A#Rnpd*Lt;ScEgX@>K8qLkC+dDb2Zf3<eyu||%c6nyTp@u0DZ3{I{hXX4*wGOZP z5++Sjni{D&G+V~N8rUfr(bO7)Ij}PrWyToXgS|N>xb9mcTRWpdYLDs2W#*V7FC$>O zwS81sPlV<|pVNmuepCy4y*O%zI!eTaeU*r(c3<zF`?y}r&V-Bwf*%BN#6lT#d8qo5 zcR|#zDlS+cx#}fCalf1&_jt&-^vn2ZvRA%+up7lZvkzpXd1m1cGMn|gJ(W3Jv=heb zPG%_{?@Dx8qVKW*6X?{T?yCTK{P}(lZ<@g=xBVv~=Yi?z-ui0m8^xt+?ImGwsdZKG z4H@0$t({xA+)N~E^<>hy^vTM~iwy|e=CTDE!vMavxl)nnv|j7(`QBmn?rXmWd!b-4 z&#hK@s?wTKq7~|z@)Q`^Heq@;DzHJGJht~KArI-%nkM^nWN0%bZ;>$_nEBaCA#Q2~ zqnnaP<cYCs+<*v9c_9aw3EYqm80j$?xnr_lWEQg@(1G0{11IM!VV=l8bvd<$^oMr_ z1zj0c(*pd(y+N2`5sM5>N<{4<QQxmX_Tcj^ym~Hmhm;lGCVD=#hZHlAxsy_OY<38% zJaz`f)E(8*B4(Ga?4L?qR%LS!jDaK0GV4upId}0HH(JN$hX&YJN=u`K)Ip6e*|%^J zZc44pTF7dtGr1Fs=*5Th@E#?DG9^dvu~TdzEk7b`@rgNFVoPI+d=B`<oI&|sd1tz= zkQLZLRh$lghES9|7!Agh7kZHPUY_>eOxk;q@IsO3JubaCnbeGz>;gNMbSal#?S(Sz zdYIAP^5>!ASDMXh*ZFsSuJn~jqSRNt2B?Dk7HvL}|9{3=h0j65TUJ_visl~o5JXS` zSmepcKRENS;x6PCp+i%H0BOAC-8c#LR2B%4?z89eGk(7G-$a~{OGM|*f|BdL1gS{q zv);tmhNt_zn0r{hVI-j1a+@b54pcA$?#2t__|;oic<qVc-pzy^qPGWt1TwcV`Vqo* zbQ*p2Si+SD!SVQ=Na<DYs5ZqdEc5dSJQA1*fOfeXwPm6>7{j)Yk$7yt<l9@(Mkt$g z(|32cP>I}Rerd960#y1=qpbl{>W*Li`UMtlZupfZbbu*|`NefWNG`WR{d}7U-<c@# zD?9z0EV>;jz*}{Uun!hFkzgQ{(SzgPfD-+UZY?&1$E8f9m$ch`DLDhD46h?y6gr(5 ziOQ^AsP_O?lSoK}naqw9i=;%o5}nFSksM@BU$=2BNZyOXHV5p*O9J_%$Av5-qXoIa zpc!$InGm$hfyMwxE)lULLRMD1e5cKO*eE3QVQ7OVA$u-Q(h01hT}8~q08R8=Y?484 z!xX|Z3mN^|Ox^`KWeHo(Nor>0eT4EH_a{>gEi1x=D66($A|=bL0rJ+&1#`);%nIP} zvQ?rEHK<|0OO1am+xW++mdu)Myh^XknHBn>314ZhxsUy*yZ`GiD(rlOLv62h{`eio z2W$0mesl5+@Z^_`Z4o=md2kVKH;>396z>B|X6NOX_k>(|X7?o2$c#tW(<Hi;xu13u X){psTn4St_;8K@XjGD1fTG;*%1B8e2 literal 0 HcmV?d00001 diff --git a/server/data_processing/__pycache__/area_processing.cpython-39.pyc b/server/data_processing/__pycache__/area_processing.cpython-39.pyc index 391fab42fdbe9fd2de2ab4a7d5eee38cc51b5e0d..2b4ae7a7e2245ccb5a988c2785f3339556e81724 100644 GIT binary patch delta 20 ZcmeCt>(S#*<mKgJ00L$n_l?|);s7W}11|so delta 20 ZcmeCt>(S#*<mKgJ0D^UOZX3B7#Q`sz1WNz_ diff --git a/server/data_processing/__pycache__/input_new_data.cpython-39.pyc b/server/data_processing/__pycache__/input_new_data.cpython-39.pyc index 4d82a412097a52e9863d648d978ccd3a9591cfc8..1ba1de3faa52b6a385fb82c82e491b30b6c15a10 100644 GIT binary patch delta 1411 zcmY*Z&2Jk;6rY*>$a=kAJI;r*vEweGRJbxF5j{mhP>6((D3?T3ky^r%87G^MU1xUO zsMah#m;*voSS$yitz=)gaX{gQRD_UFZ(OV8FQ~Y1;(&z2+cgsHuI9Zr?`wYV&C~qW z{HbYsrILx@`{BK}I**&*+voUlT8daecR7o?VGyyjm~Ri5M;T9xnQ1CVY4Qj5a4oq` zKE+P*n6wQ`L1;w!4--pS8C<1=Dw5noRDGay$PKiGgeH|C{(L!Bg+88<>IBEy4Ma5+ zsc5KR6jatxbaM^i{NDj845<w<)sGPWOcdzM5Mu;+jc4=jqgaPEBehL5!na1TAqoR& zWX{r{1qa0i;3jYrcoBF}phG++!jz<js8vIvC<{Xja;b&@mL)7|@8cnkOQJNkCum%r zpu-9+)5={O+Y*gu>8vbBENw}oDT^I_LI7?xmkH>SmsM>b%OlMHmgP-!>rq@0a}qK* z2(r$Cq&w&)iK}s@tpcWbD0Uu-EgvZ(90g+j{~iBix|@2`QM@1)GHbjT7_=NOz*@{P z%>gD`&PpN{<>D~;Q8n>=@~is7AU_tAwd~j-mL<AyUyqmM%(y0(CeWx6KD`n^-{@lA zwgNQ720tiGVp^k1)VZ(78M+Knn$#gm%c4%dlIU=0>`dUUs1`c_P|r(HM}&WyH(8a+ z1P@^Qfk5NsYy*AL59?B=b=tT~APB~St_%qb#<E-<H>8vKJTn;8br`JZo2N%3sKOA{ z_p{q_0CqDUjSJG5j+%<Z%1F7RV-(jh>c8I3aW-?DE`3hcVJ=r6DB}zC`3cTKbhMLI zQ2(gD^&ekDYanf*)<w@H=R10W2OFG;9uGF$7yUrA-AM4(hI`Ewz3wq{_rgGUe&7fD zt~g*|^h7TLEoH73&|G)IyeR5%cESSTQcrkp*vSpYKJ~cU@sC-QJD(je&Rk!ZE_`QR z<O=VI1+ThcFwNt2b4$Onn@8?uxvm^WVc>s>5$an(I8EOPx!c#>PS^`*(l#!izi+7c z{Iu{j9;Dhk{-(#bTS{tdu^<Zh+cY(&()OJ$OZ97e!oSU0I&Z)Wky_jS3A+vj0Dj6> zK*gJxUY~}f)>iLB>fiPwAD)dTDwtY0)%}1%ttme1H{K0he~(SExc*$=?)5m&8sTx~ zJ$VEH$uGq>8*12P0k34K)#K2ksdCJMRO@nRd9rFn`Yf1uIk{&!rD}FcgU@H0h2&?; z!D;flH3Yg_`uI{UQ|DwUld^{{3y8h|f{LnMRV-XJlA?VndBt9TO(9sv1QP-alYdl= z{H2#H#Z*+q#x^!pn^?H5nAiYag_t<c*s^o1yq$b!zX1pTX*(CMLVoUKWFsTl!BZSh KAxd5<ul@_y!fgBi delta 1447 zcmY*ZO>Epm6rS<ldc9unPqNu~H$Nt{B^x4?_JV{E;wMC^)N)Crsuoe?W}L*EjlH!e zNxK?%58D%>V!;&x(MVo#;ff-0t+=4xxWb+gw~9MA5O2Jt5L@%!oA>k0H{<7dy72RY z;S`G+g6I6rjlJ^X_r^J1v5S%Glbz6wx`7|Lb|IS{xDIhcyTC&eJF=5Mu!E<Po5Cl! zmi!{Dsy9T0hC=V}L>K4#Z&R5F1B?+7iNu6&5RuQsJ>eGGL{wqo0DsnqC7MfBCXH|` z-$F!@kc0*zMt=D!ipUzm*?Su#%`<s`N$wDZj{#SGft$~8wSRH<QLMnoF?k*Jhj{zD zSfw({l9@^hCW`Z*b<i5<BIp7|ZJY{JV?rGfqmF2S<p&t-QXK&;o$92#j|Vs|(qd|i zP+A(Hc9~R2^%0H@hSCa|VtIy{!33tU!k#h`fNqr~i&C)<RHr#rRvHSS#!BmG`&nG3 zQw$JH1gI6Tawhs%h^sO8)_~JAY!<3W<xm{r=mDMnZx((vnN2d9D6Y{OkH#~;N-A*; z#!SX(1~?fk`Btjpdh&yGxt}dZXIPytH^8h&W}hhWEX$>JHah}}LwxrgAC8NdoG|D{ zMm!G(Vn9A@jnqh!%#rygBFm8lsFopXG0Rc_Mdm1X)0aNfo=wdW|8_F5`Wa}RDcQax zIE~-4lb4t{!Z7=kqO`$nNYAyKOd+q3rAI<+@>U_Q4g_eH25Y2q%;Y&2nx%RbnlAe3 zLc7T15?_&AW@grMeSl4y`}~udz~{<^Ai((>5~A}%@%{!zaTBB7D&zbYIDhgQS!PY> z-`1I!E|QfI=8y`y4ILXdA2c^#=ryzk)+TDb?tG3B(kyuRzhlt@_k3A-h~Mp%cRC(% z!X4sJ=Z$t0_&sC8>$sL5P-`zZ_KEixDtn?ISiP#{-t!`A1wH_Hk#*#BlLK`{?J1Mg z^Dk5hmwLr0IC2kyQ|mMc52N!h^IzkBFMsO#)ap7B9m_Yobtl|viMG1w`cV*GC$=`R zw(fUbTX}DndM9p631{IRu=OqP$i3-0(Q)XK&;(c5;C^LNV(Xj7cZhf5MIKxZy{VV$ zSTwMlZWp#|%Wt)V6OTNXpst0-isutxGsdU3k_E0ke+H4>^hbf^?YfiASe|b=q3a|+ z7CxAhyP*dKQUGwF4!L8g6F6inc3eNP^k}sRzOcXp`48{yx?Kun#%dUJI(MAi!_a_8 zYc4GFtV;4!H?f`kst-VJ7auN9ad#%Bxy7%)DvT%vf%1}46?Iv~RWZpKSFoC_8rQB1 zsvuwm3s?XR?_ZKE{HYXGtV2YDVPFGmk|F4Lg?mH|tJsjrf`&8vmXU2ETuRQ2_kqT5 ZhIwfPRtsxftZ~6<Oj!MoUou}>`Uj@bXHEbB diff --git a/server/data_processing/__pycache__/process_lidar_data.cpython-39.pyc b/server/data_processing/__pycache__/process_lidar_data.cpython-39.pyc index b25a8d60414042c320cca5bb67208462c3090e40..00c429468ce27e0ca4e0f6b21e30495022da114e 100644 GIT binary patch delta 20 acmew?^I3*Fk(ZZ?0SK6R+&6M(@Bsid&jdFB delta 20 acmew?^I3*Fk(ZZ?0SG+R-8OP(@BsigRs@#- diff --git a/server/data_processing/add_new_lidar_measurement.py b/server/data_processing/add_new_lidar_measurement.py new file mode 100644 index 00000000..166a896c --- /dev/null +++ b/server/data_processing/add_new_lidar_measurement.py @@ -0,0 +1,95 @@ +import json +import os +from datetime import datetime + +from server.consts import LIDAR_DATA_PATH, LAKE_RELATIONS_PATH + +def add_new_lidar_measurement_handler(self, lake_name: str, lat: float, lon: float): + status_code, updated_content = add_new_lidar_measurement(lake_name, lat, lon) + + self.send_response(status_code) + self.send_header("Content-type", "application/json") + self.end_headers() + + # Write content data to response object + self.wfile.write(json.dumps(updated_content).encode('utf-8')) + +def add_new_lidar_measurement(lake_name: str, lat: float, lon: float): + """ + Adds a new lidar measurement in another location of a lake + + :param self (BaseHTTPRequestHandler): A instance of a BaseHTTPRequestHandler + :param lake_name (str): The name of the requested file/lake + :param lat (float): The latitude of the measurement + :param lon (float): The longitude of the measurement + :return (int, str): A tuple containing the status code and all lidar measurements in one body of water + """ + try: + # find out if lake exist in our database + # sjekk hvordan sara sjekker dette - se i sqlDB eller mapper eller ... + lake_data_path = os.path.join(LIDAR_DATA_PATH + lake_name) + if not os.path.isdir(lake_data_path): + return 404, f"lake does not exist: {lake_name}" + + # read json data with path to data for specific water body + file_path = os.path.join(LAKE_RELATIONS_PATH, lake_name + '_lidar_data.json') + + # time last updated data + time_now = datetime.now().utcnow().replace(microsecond=0) + + content = [] + + # check if water body data exist, else create + if os.path.exists(file_path): + # get the areas from the map's data + with open(file_path) as data: + measurement_data = json.load(data) + + # create an empty container for new measurement + new_measurement_data = { + 'MeasurementID': len(measurement_data) - 1, + 'TimeMeasured': str(time_now), + 'CenterLat': lat, + 'CenterLon': lon, + 'Sensor': { + 'SensorId': 2, + 'SensorType': "LiDar", + "Active": True, + }, + 'Subdivisions': [], + } + + measurement_data.append(new_measurement_data) + + # convert data to json format + content = json.dumps(measurement_data, indent=4) + + else: + # create an empty container for new measurement + new_measurement_data = { + 'MeasurementID': 0, + 'TimeMeasured': str(time_now), + 'CenterLat': lat, + 'CenterLon': lon, + 'Sensor': { + 'SensorId': 2, + 'SensorType': "LiDar", + "Active": True, + }, + 'Subdivisions': [], + } + content = json.dumps(new_measurement_data, indent=4) + + # write to file + with open(file_path, "w") as file: + file.write(content) + + # send response + return 200, content + + # error handling + except Exception as e: + return 500, f"An error occurred: {e} g".encode("utf-8") + + +print(add_new_lidar_measurement("mjøsa", 60.9, 10.9)) \ No newline at end of file diff --git a/server/data_processing/input_new_data.py b/server/data_processing/input_new_data.py index 946824d7..2ca6cd2b 100644 --- a/server/data_processing/input_new_data.py +++ b/server/data_processing/input_new_data.py @@ -23,6 +23,8 @@ def input_new_Lidar_data(cursor, sensorId, lake_name: str) -> (int, str): :param cursor (cursor): An Sqlite3 cursor object that points to the database :param sensorId: Id of the sensor used to measure the data :param lake_name (str): The name of the requested file/lake + :return: (int, str): A tuple containing the status code and the meassurement data of the lidar files and where it + was taken on the map """ try: # print("name=",lake_name) @@ -32,14 +34,14 @@ def input_new_Lidar_data(cursor, sensorId, lake_name: str) -> (int, str): # read json data with path to data for specific water body file_path = os.path.join(LAKE_RELATIONS_PATH, lake_name + '_lidar_data.json') - # map of water body area exist + # check if water body data exist if not os.path.exists(file_path): - # Just temporary, not gonna use: - # with open(file_path, "w") as file: - # file.write( - # "[{\"MeasurementID\": 1,\"TimeMeasured\": \"2024-04-15 16:23:28.620516\",\"CenterLat\": 60.841532,\"CenterLon\": 10.717878,\"Sensor\": {\"SensorID\": 2,\"SensorType\": \"LiDar\",\"Active\": true},\"Subdivisions\": []},{\"MeasurementID\": 2,\"TimeMeasured\": \"2024-04-15 16:23:28.620516\",\"CenterLat\": 60.841532,\"CenterLon\": 10.717878,\"Sensor\": {\"SensorID\": 2,\"SensorType\": \"LiDar\",\"Active\": true},\"Subdivisions\": []}]") # Writing an empty JSON object - print("File not found") - return 404, f"no {lake_name} exist on this map" + return 404, f"no data for {lake_name} found" + + # Just temporary, not gonna use: + # with open(file_path, "w") as file: + # file.write( + # "[{\"MeasurementID\": 1,\"TimeMeasured\": \"2024-04-15 16:23:28.620516\",\"CenterLat\": 60.841532,\"CenterLon\": 10.717878,\"Sensor\": {\"SensorID\": 2,\"SensorType\": \"LiDar\",\"Active\": true},\"Subdivisions\": []},{\"MeasurementID\": 2,\"TimeMeasured\": \"2024-04-15 16:23:28.620516\",\"CenterLat\": 60.841532,\"CenterLon\": 10.717878,\"Sensor\": {\"SensorID\": 2,\"SensorType\": \"LiDar\",\"Active\": true},\"Subdivisions\": []}]") # Writing an empty JSON object # get the areas from the map's data with open(file_path) as data: @@ -83,7 +85,6 @@ def input_new_Lidar_data(cursor, sensorId, lake_name: str) -> (int, str): # Calculate each area's ice thickness based on the area coordinates given to the calculation model areas_data = calculate_area_data((latitude, longitude), lake_name, laz_file_path) - print("somehow works") if (areas_data): # store lidar data in json format # calculate data for each zone within the area @@ -121,28 +122,27 @@ def input_new_Lidar_data(cursor, sensorId, lake_name: str) -> (int, str): else: print('No data found') - print("went past") measurement_data = { 'MeasurementID': measurement_id, 'TimeMeasured': str(time_now), 'CenterLat': latitude, 'CenterLon': longitude, 'Sensor': { - 'SensorId': 2, + 'SensorId': sensorId, 'SensorType': "LiDar", "Active": True, }, 'Subdivisions': subdiv_json_data, } - print("went past to append") lidar_json_data.append(measurement_data) - print("went past to append") # send the changes to the database cursor.connection.commit() - print("jovid") + # container for content, might not be needed + content = None + # check if there are ice in area if len(lidar_json_data) > 0: if os.path.exists(file_path): @@ -154,16 +154,13 @@ def input_new_Lidar_data(cursor, sensorId, lake_name: str) -> (int, str): # write to file with open(file_path, "w") as file: file.write(content) - - print("jovid2") - # Send response - return 200, content else: # return empty list, since there were no ice in area scanned content = json.dumps([]) - print('No ice found in area') - return 200, content + print('No ice found in current area') + # send response + return 200, content # error handling except Exception as e: diff --git a/server/data_processing/unit_tests/__pycache__/__init__.cpython-39.pyc b/server/data_processing/unit_tests/__pycache__/__init__.cpython-39.pyc index bab6ac9d680fceba19ad6359bbdf4d33d0c06a25..30e35933ced48b5c9e62d2122fbd977d99ea0fa4 100644 GIT binary patch delta 19 ZcmdnXxR;STk(ZZ?0SK6R+$VBx0stmd1F--A delta 19 ZcmdnXxR;STk(ZZ?0SG#rohNc{0sty?1Ze;O diff --git a/server/data_processing/unit_tests/__pycache__/test_add_new_lidar_measurement.cpython-39-pytest-7.1.2.pyc b/server/data_processing/unit_tests/__pycache__/test_add_new_lidar_measurement.cpython-39-pytest-7.1.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1c31f05f9ebcece4830641353883b360d925b792 GIT binary patch literal 1417 zcmds1yKmGm7`KyLlDj@AMMA9vs0)Y_;&hZUfH+iC9$OhI7@|nVJ^QYqd7Nyg50qP4 z{shJj?Sga*Gdl}^LskaVm9Z0_oxTJr>^Sl--{TkC-@~C36Ac98Xa8mIu7%Kdt(+e= zD2p)V3jl@~j!}Tk+e&N;VU##Q4Qr1TyNMTgAY*3lVdk*f2Pg24HJ5py)frwvP5%(q zLd#8D&Qium$~Q?IF)B#HsmujWc&fnZ3a)aIb~X8A)IsoIF2R(a0T>>_)<X=_Qm8-$ zF05TUw1)Q3VfL_A*hOvK8oGrmKPkL#F{f~Qm>GM|I&he)?0x3|Z6Nsu{9r%8;w?z7 zmQsts!A}`mhEW5?j$wcV43GJH)>Sn0Se-QrFTx=E$^(X9_y>3w??A$aE<+Id*m6); zTq+XNb^Zg+Z$|VHBQ(NCR;M$<@279x9&ERpa<0>v)8c$nmM-n8oW`Zkw+6hcI2&1| z4J-}wN0U@aE|g&}02_=8qq=~4qO!3#*fu*-QC=op8plNNf#_z*fC^rYgPW}8QLLgA zwuv)f$a03rwJeXBp^|=_t<spJG~s2PNZR9ig>v$#*)_`2=R#znyh3`JNT?!k#+as5 zfoD_?>N-^OabU+(0c5H0_0cd9x}N2jK0_74y}&5dLia0Ar92oRaShl<TT73^*AT7@ z*D^}x!&fPPCZY`<uB_|VY9?4X5LtizVY_`Mzy}*#gp4Xmz}w|gMrl9H(?}7W9vN0i zx~LypgYELp-zg+YHz+i+sja>@avT6*$2?Pj;s)sdSwH74#FV`I`bARVfOz-~K-4to zi)t!u$}IGcMoeg!)No0|j0RoS3a*1xHvf_4vm}oJ{m&%NfwkEv{gbX1(|XleQr&}A z)o9S0Ex|WMq@bryO{I5i6I1X_(5||s^;_4pF8phmD`%=K^eN6oW@0qq`Hz!~<uQK( NcOFTdvRl@q{|h^vi$eea literal 0 HcmV?d00001 diff --git a/server/data_processing/unit_tests/__pycache__/test_area__processing.cpython-39-pytest-7.1.2.pyc b/server/data_processing/unit_tests/__pycache__/test_area__processing.cpython-39-pytest-7.1.2.pyc index 31953821049774df24066f0c6941245d740dc5fd..8b0f8126b378c7b1fe671e6a619184c6665dd649 100644 GIT binary patch delta 2250 zcma)7O>7%Q6wcVrdTp=QcGmG<ym3;3lZ~CUO$Y?i1k$EyRobLgX)F0qH|f~PO7$AX zjzqbHN(gb_KsypABv6YgSpuXs2QD1ofKbH=q#o)k5|Yb>3lc}(8*kT66on+pr~Tf% zeeZkU%ub%pJ)8@!1%v(`__<g<Q@(UJsFUd3+~{^iF31&M!B_DY{FOi<P*Dm>C0GcO z9!jYD3qn1#_aje1wV6b{z(O{YsSjA#W_}s~7O|N^gTVT1rqU2F&1PX50Tu<ejV=19 z2DIN^jM9E!F`LC`99Z0D37Q0!uvv-@0882|O?6-?n+?(oumPJ5(P3a|N-p;pM_TB@ zis5ZarnO^|lSB$YfCcy?SDdK)iR&tH@geu;QXhsj{)2mhjPd90Pl%iU)T@zkzT(yS z*PibO#Cti+QV@aw%PfSC5&mAUHXFys1VR$w2*Q{H20S&jdZ|_~n${vKtre?V^_odb ze$ggxw|T@LNTXze|0*S=PVLP9)aGfgP9mbvBoulQ777VA?-c2CiZp!8jcX~cN3xvB z+J*M;7<(BZi!h3?XMm6xfSR@Xnsu{OJci@e#6cq-`1QjdI}Qr6{9pM&8dVssmIn)| z2*SONqO*=7b`+P7AspOsCIdNpJ5KXEs?Lx4pA&_r0+-1f+zO<^V!saZK<H|F@JAps zau^SIRv9B%zN*ZSMbY%W^7pJT`xVqagYYWCYY4LluOrMM2tmS!js;5{3+5rGA+rTc zeGB1DghQzsRt>Vme+x~@exeYWu%(?lszOpHu>#g*rx3cV<-=-{{}>9Bb$D%toaSFf zbUqUPE+^DGN)2~=91)np8e+Ypf7hYv#ROsKwT9G`-mRKey>_Sx;KgQGoUO8H(c)&w z+}Nyt2+^7h&;ujML?Y}Q$owU}43UN{OxP)ebu_JZJUs)c>?}gp>_D4|z0HbNwZ3Uu z8y~}JS5r98=Y=;!d%P@W7aaw>4XG~-!az%E2ZUJyau8tnd9;szM`G6py{|-`iw<g^ z!i!x}U|U!4%<bHc&XfEqEH+#%QT!5i5GQ^2?!B|`*Khb33T<!Hj3GD4`%QAYDOJnm zTB&}h?c(dP3388r7R!+<;^KN1`!gjhIDwUgo{RV-TnO=J@%f;0kPQ#(=PxD3176Iy z=17UcCGFc_CN0*?4@$NUelIZ_=-NB}G%=xl1@G9#c!-MU{W_l<(D_vIcMDZCT;hs0 zT<j`VM>&S)#ZEb!xGQi0bKEWbPFp^F3F|<{4SZg6K$wiV`#KBvDjwIiv-yU^3do$n z54c--D>bD(gluQ5Fc~9^!dQRxqZC#|*mIk8ouYMIzKPIn){V3=@(l!?stQ&uLB!CT z^7@u}t8Q8~mge84r%8(clg@iwu*iq>%=S1I%Ogx897mW&SVUMtIE`=);XJ|$!WD$; m2owQ(bx9K9#J@uMM5Ri%Zj}~rrrIFDf=l%}zk~c|J^UXSv6|-q delta 2317 zcma)7OK%%h6!x_p+hfnzPW&1>cABIi$>h<Jq=ky4Z4zkOP|`vR1r11!n>%qw_1MuJ zM^HAAct{nCl<HQMc&w;|FscwD8x}0e3M8bem4JnR0KzQj8i@txTu)plN>Mz@XMg9O zdmi6CbMxi&Z_`RaQGzb`9D9FZ^_`naj`ZFf9oir+>Y|=fz>;*y3hF^Cq=zh7mn}tC ztgs%oB6<XT2=#tWXb1Iu;MJoJ^V0yZPKQY}2&~ItAu0olIZUBpU~z{<XcSmNunj^x zX&2C>vlydsU@3<sXcCy}uoP8+r5%>08DJTQb<-@cZinS)53sDm4$xj;IfwPpeqcS6 zTy$v%V-1w#oJQ)>QlV(BELB#nZoNp(kRBQA458*`1b-vc+zk)@j__~Ymxzb^J-2-^ zG{pHG&p6TeL(g^6!TbC%GRn)|Uy~xr7<woOVSoh|<qv(afdm><gfv11;UI$6f)ReB zLnX3^HxBXc^N)N(-G^XZa~D7T1V7SjaY}qbvrgdo{RD;(b+u~P)x24rV@3hKY?B)K z)l#KUjbTFXVesKUk_^A#zZ(+O3mHW5T|0BsB<AHO)xjCo51VR!-M3aT%hd_zdy+LZ zf;BdXFoZCS(BA9Efw+n)*kVkH7oH&eu}QFrLVge2O<^ILyWz#n5d<Obo{Bz=%M%Fg zSsqC7L?0M;XF0-4a*ij1e-VX~(8a-N@TmvaSY^#%RnxHbK+&jJMwML?Q_-A>Cy3F3 zVz^m9|0&czu&>?~d6*3IXXK+~eyb!a1d7;Da*5}#`WXZ<NTOkpb8+VZuoK`@3$T;u zI)^Zeu&>mck#wd~HuBZNRim622WKz9ZX1<#@j3Y^z8v<GQ$n8)!;do0V`xmsUO;FU zcQc|9%D;~sB@6uT$S;G>qC=~6&BGoWrf^BnCy3}n5#MS~l&{{LD0^QmLF9T=4EL&8 zrui#|S-etx53F_oz(oS^_y{`-CFb~@&aYFa!CG^Q6B>)+_8h7+;K~*e+WY>jD;K*C z#<m17xJx3zpIzV0i9SVS0WX2;wisw=_?iZxlz=fXun>aSAWC^{*O~8G3T&yTclVyR z)=O1$tz>M%a$Ai7!p`HdZY{@;lcASk5iU4<``85p@xDJkF|6d(=H<2P{nsSs-yZqS zWPE=kznB~+xA@!1QST)PEMD+?$v-ke4>9thhF7o<AxV_qOC48QBdvK^k_XihAD$_D z1JkF)uxS3eRAeU2+vdB5GcWv_dMwm_U_Yqiu`ghwBZilRVJ29f|EoSSu>!dCn>P)6 z9m8WOns@uiTBo_ga1MPu4ZJrR5^lmc;8DQems=o2Mc+M@gqu{tRwkUeXK$istLgu{ zJ|AQzV_$)HtEDIzCd`1Aa(uG;eiX}L%Lt-`J*RsGmnlNKSf{hvz&BuQMV2x0Dp<4w z^}ywI6Nam7vmC#bol10rSy$G}W)-LKkOluxnVbKd9pnFGdp3kHqnKbE;V=T;@9YS| zJi;jiynxtQge8RY2skDzk6<8R{<bnj!6RU+2WG4aT`w6Yuur=eV9-6_4*TKZH*%@} E00?inXaE2J diff --git a/server/data_processing/unit_tests/__pycache__/test_input_new_data.cpython-39-pytest-7.1.2.pyc b/server/data_processing/unit_tests/__pycache__/test_input_new_data.cpython-39-pytest-7.1.2.pyc index aa59423b4338645471aa047587af7f9807d410b1..279b93a3e9baf699a8abb16b934f7ae92a575cdb 100644 GIT binary patch delta 146 zcmZn@KE<q^$ji&c00ep&?rB||3=EG!9Av-*<TwCvvE4*%dzN4ZO_qtvbR@ZNaU_*y z=9FaS72o1<D5#8w@g^VR(C59y1r#btEiQ>qEQ*@^o5P)RB|{N6(2yeT$%@Ry5*#+U W`6;D2sdkJYgV}(D8Y2fIj{^WlN+PTP literal 2438 zcmds2zjGT!6u#X%o$e%A*l`F6A;AoB;25HjWt$m1n21TpP{gLl&}cMsoV6?E?9-iQ z_s)qkQe!hTP*Bj2NfA?oQ3o>=Dd=e7AGnqV*FfV2-rJMqAH)Mg$x8R`y|-`o-tK<y zTW?~bph5fYvs>+LTho3)<7m^tsKX;SK`@PxKx+{7rd^$CMC%%j9KjwMnB9CMuXGYv z4GVmFV0R0R0{93s9ubyf<|js@II{B00;@E#Y*qkkVq_H$tUH=h+JkRvs}4!+6|dvB zR-)Dh7-#*km&9(!@42^q<_VX1u?K!r@Hi1+3kMxESellH=LS6TDTr9x(FTxqUt1?G zWn@4Y9ne_sYkktEJ9?82^nt<jL9Va&a~pJE_D%V1Y&^~}qi?ohDd=z0U4xmi`8dC; zZEEsk=(qa%E)naX*{Fq-nJhn!*j5oai1=JZfCdq;5s&COZIEZM3H`iJK)2!oL=^kh zF4-a5u;l}jX|Nf^)jb0FH|&_p*bTf5zV{_KhGd^EFAvFsGqbPvwyKVtSzew&wdTmQ zC}S^9q}z%ZPc44G$6GOHLz?OkilVk(_N3$@RzntG2sjs<lA!RZG|%tzRuc2Hl<lm$ z=>-WF2#vH*?`^3}JdsYhEiVXM!F!?=b$gzG5zy_fC4Lb5p-jynf(V(OcjetE3786X zJ3+MO1#akdd1|}TYjd0-Ex)HS@}uy5AtI4ZyX{DHz1W5P126Pq=o#8+u?uK$TZxbm zV@n>w+x1ym9`BEuSs=_);))`^i<nln;<?Po=AJ)lEDkmCDn##hZ!9%Gg58nLyOHPC znjePzrtmj;^Uemo)*`{0JrQ+kZ&#~_3JlofqKTk%p|{1Q^utaw3H{i`++<T_cnD&Q ztn{|hOUjS1&ieci_S<KpHRd2ASq7m|lUT$c2Au>cX2Ekh<bQzP4DubQ#jnW-_7q^R zKLhs0G1z|(K+FN)5%%U7_J^Qm(4WCR1nmI!0O~R9KUEP3`!7^P278OyBiI*M@gHDc zS{)jHn6QeK^&g)~&(Q^LL?d_Gzv&63JEnT=A!PTbYt`Dqwdx%FXXdI)Rs4(Bpr>>B zn_oYuT)$H9JSp6oO_o;cj-|$B!hw)1?%`M1?0N@0(9YC5KmUYHt9RyA`|Y|K(lEma zt59Ha0y#z?*(kgzu!$0y&!LzEG0cieOo0xC=`-%~b{h&()svXUxU(ppM{y3t3n<Q` zxPanC6c<q-Ix}$vwDjUBz`^wJ(_`3_Oa&VXuz3^wr^Dt6^a3{mxethf4+Z$>03V91 z32aG`FUM?o95xT(sQ&|O4gm6RIMD!B9ORG}hsD+G1o4o?RS^E~K#S@?oWHZ;yd%{K zIaEwQEYjWlgQFa{m~r5ucmukJwz!1TUPkc}3S<-UGKiy8QWG=aX()2Z_+;TIpS*SQ zyiOK+a;(r_fw{61Q$=o4^H0;7q+%ZY|A!M3*I*%Pdqows<6u_HtUY@RoN{U%+$pL| z(hF{O3so{shnt}y_&wpnon?<*X@2BWMV3w=6Jy0x@CM0lIy0N5F`JQh<pg<Gj+1p( pu}HkCj8w`;mZ27;3e$S08?hwd@8Zp^&h#o!cZrsZ<tg}0{sr?ka5De^ diff --git a/server/data_processing/unit_tests/__pycache__/test_process_lidar_data.cpython-39-pytest-7.1.2.pyc b/server/data_processing/unit_tests/__pycache__/test_process_lidar_data.cpython-39-pytest-7.1.2.pyc index bf986448ae8ed6e2e9d2b42f374754d56a45dca1..4d286464ec758a12fb05f87a060a9983fe992b85 100644 GIT binary patch delta 120 zcmdlk_K=x3k(ZZ?0SL@9+|#~K<dtQ#ny78X${5U`$ue=0vy>+HEsmtp%$$<Uyy9Ct z4h5C*Fy7=mE`6R`TtK0c)Z&u(#G=WIxI8&mG8FLwO)KJ^EWlhY#$l72pHiBWYR3o^ MD`o)_YK#Jm07!@-IRF3v literal 2871 zcmds3y>A>v6rY*>yz_TVoP;l#kAy6Uv*W~(Kp4exKp-K5lF(QuE$f>-XOq3%V`eT8 zYmWj`P*71&QP}B@KLAnD@DET=OB0tAG;ZL%+4K4Q5y@`Z)4qN4=H2bg{C@BKE*cxF z61e{T;lt+N4k3TxVEAG%xCOUd2g3=cDOscD$yyd8l(g(MhvE!N-IllJ8Q)6%R%NZy zs;*UGY;)&3vNpn9?!j}E`@90rF<#{(@Eqr(d<>owoZcnD_%6JMtOit1eDd+_<vZc+ z<$KHFXUq3K3Yea1CK(T#dCFrEHj^}#db$y%jZPY=IE+Lbg*;MG1Ak)wa>4Q7UV&Tw z0*2ErQKTSSv`Y(E_66{{b%AWKE-Prk9<r`gSn`RY+l<?V)ui0Pc$4ke+*Q`Ly+a-m zc?aepzC%SFJQux;;T8uO%49Ie_{L;_2N@pse`YhJYx4@P7Is3xca#Sie&OuUE&44S zZ`a}k4r63>vsRmvv3L}VIow&;7I`C<GRZdPI$5GZ6-y=O(3a=1dA{C?BiRvgE6!Ay z@NmACMw`dO*D&0pdu(Z`M>o%1zS@2~AIRCIrCD?r0;%1op*m5j{rKy4+)y#^F>OH> znuWdbNW!|5$-V*E5WEpogarqztGC*Z&5|Oar$PWI4Mp4*jl9(cjPxi>hwGgrRY?Y~ zNpr}M`eG>W=be<B)Nmus*P}GdqE@Ucp^Ta_{(>G~Hg8Sx>;oZkp{Iciq7|tS)|f_F zq+lj+wcU=?ec{7eL<JW#f^RGre61XmU%Ng$SnLt;0%Y%fx$<uPbJ(1$-_N6Pq5f$W z-xkTExPJE`KGt)=>wv??!aMWx2TqAn{Rm3+1C;9KNcsSVX~H96*jj5p)-!zskFeW@ z<w)EHp*HpDBo!}#e~8{VdyL+kbt$*H3~7$k-LksY22ifB3LEI{6wZL&j-fZiPo%ds zpf`9Y(%T-;8@wTUyN2Gbp|{tkw>O}-)2DZj?NZplE_RuJuu@wO{`gHsnh5AcMBv5_ zU=-M?#2A`!FujVv^AQthCecixIfrH%&2wnZqnQEI^R?T6nuvw2q|w9Ja7$dk=>bv1 zMI2s2^E?`)Lup<FPtO{ZPG~q`mWN0=T%a5UgLvU*6mIbbjQ>ZNiI-tN;#DwvD`#s? zb0@W?Qy?u~!#BQ;<}8R{^FTHnM<jsgvl00nW>F-bRYi)TENn4KjAx@aR9U|&wrzoA zU}d=&H<jfnd)qO>(S&)3L*2B&^Uy2nW{~l{$-v6`(PWgB1*&O;!$sXJ_AASWj7o8| zvPM?}mOQlxN&bWy60hLVT?Mn}iWr*w>?sbtS2g9Oowi6ab=oRBJ4)CvvDhS*@NnH! zX_bn%A$ABU?B|1i_XGx~Lkc9-0W6#j?Yf04e}Yp(jNCp(&Jm2hFbE(<4-5i*jEoN= z-Is9B^f=G-IA4`W`1?K1CSA9?-{%6hy98_99RYKIhIkW(0o`*GIh*Awpqn%MI$TDK zx?T^Y=}-X^_;pm;>zl*!yI9KaqIe5`t|BhuORk_f+}(y{aKW^?Vfni;Jh*wZ&@Mi! z^<h;?Y{!S86E`6eOlp5$=S_3gm%{R&L9G;HQ0tnAzY>W8l^=w(*N+*}>9JB-YmGdE z|2hJtLI?fW5w)!yS6B0oq!bF&PScD9*1w^aS?17QO?xrD-hZ!^^G+JSkNRXf$Q3%t JeAmaT`X2=C(Xs#l diff --git a/server/data_processing/unit_tests/test_add_new_lidar_measurement.py b/server/data_processing/unit_tests/test_add_new_lidar_measurement.py new file mode 100644 index 00000000..987ffe5b --- /dev/null +++ b/server/data_processing/unit_tests/test_add_new_lidar_measurement.py @@ -0,0 +1,18 @@ +from server.data_processing.add_new_lidar_measurement import add_new_lidar_measurement + +def test_add_new_lidar_measurement_invalid_lake() -> None: + lake_name = 'test_lake' + lat = 0.0 + lon = 0.0 + actual, _ = add_new_lidar_measurement(lake_name, lat, lon) + expected = 404 + assert actual == expected + +def test_add_new_lidar_measurement_valid_lake() -> None: + lake_name = 'mjøsa' + lat = 0.0 + lon = 0.0 + actual, _ = add_new_lidar_measurement(lake_name, lat, lon) + expected = 200 + assert actual == expected + diff --git a/server/data_processing/unit_tests/test_area__processing.py b/server/data_processing/unit_tests/test_area__processing.py index e00a8300..277deaba 100644 --- a/server/data_processing/unit_tests/test_area__processing.py +++ b/server/data_processing/unit_tests/test_area__processing.py @@ -1,5 +1,3 @@ -from unittest.mock import MagicMock - from server.data_processing.area_processing import inArea, distance, closest_points, find_height, calculate_corners, define_gridareas, define_grid_lidardata def test_inArea_inside() -> None: diff --git a/server/data_processing/unit_tests/test_input_new_data.py b/server/data_processing/unit_tests/test_input_new_data.py index 4303d0b4..0daa6c55 100644 --- a/server/data_processing/unit_tests/test_input_new_data.py +++ b/server/data_processing/unit_tests/test_input_new_data.py @@ -63,6 +63,7 @@ def test_new_input_unvalid_cursor() -> None: status_code, _ = input_new_Lidar_data(mock_cursor, sensor_id, test_lake_name) assert status_code == 500 + ''' def test_new_input_valid_cursor() -> None: sensor_id = 1 diff --git a/server/map_handler/__pycache__/add_new_lake.cpython-39.pyc b/server/map_handler/__pycache__/add_new_lake.cpython-39.pyc index 360bb6bc650b05b6f1e0dd479c799ffdd42be2cd..a2003fedd994538f1e6f8c40f7c4b14cd9bfed16 100644 GIT binary patch delta 3230 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 Xl$Z46KpyO!vG-Bm%eu&oXO8|CTMqLo delta 2167 zcmaJCO^@3|bjEfZ+i^ZO*?jIt%d(Juz_vg^e6HxS<+G|(pb$VIWSm`xY@8j>0xe@! zG!+7=z@j;DV3D#C2QD07`2h%VrQATWint&oE)|C!k;)sVEu{x+&70@<J#XH7K7Ztg zgQ-?BX(4zvjvVbQ-SSDQhQIq{|7UX~wXKpg$(+*~C1=7ZlkB!aa%2L&D<n?}=TM{i z^`(38zDCk_`lLx6f8h0fr;&(0SDhAdXd@w6W880uXO!o0QGB7ii_2nOoh$4Cx6=1f zSpFFWp)KW%Et=}NO&(i9Tlkf^Ak7S(<`zlh5l;-&Aj2~wlc&4Z4#tQjcxH%$470E9 zNtTkBr18uWdgWq}<=Ii1r*|;D09Zz1L5`=uMowDbxvu`Q7EA>Bpb$*5ET4ooU)n?^ zMC_pggaW)1rK{f^B`B_-pu}=K$0ml#7N)CUBHt~5vjagH<jce;Ba)1C%S0dJpjY7~ za9WX0xA6M?Y=V~{%qp*TCxaTVkyIJz{@L{lB+ZJOJUPU?NHW_Bu(I1~FvV?9pNe8m z68&BjB-bxQroLT2PjWoTEuP>Cx5>n|9!zsIDv><L9lWE!Dbc9BgMt}8Lkb(<hF*^N zlh^pH!c#+;&nm}!dZ^${M2dX6qntt~k%m}pOF8{0M!_sbXDXyb%6#@S^tmGWI(iY2 zLNNQz?8&S9g4BqC2D`3NA=UraSODFVs9tLw!%z{kv%9zIOIUm#KMv)RHRh^CC=eQf z5@4bAV9)hg+glqvJTFcdr<Ff-(J~9AMts?6u?_0fmC*7xUTYHfjiyT);v;jeS_REU z_Nu^9uh(<h%=P+po!++lqnXBdO8jb3@m%6Cu8H>(2Oen{9f!47y}lC~gPzBlYpp?; zdy~4%X?A_D-(+61<Mx~|yA1HS$CkZ~K6#8%kJk6lyttHDz=y?*T|Qiw;qQ}RzXbCD z!UV+T5{F2ubXrnkJ-6@pp(Zy$?M3{6*tPdsQQS5I7veYj&guWAf~G*T49h<Y0GZ-I zvOJ|)N(S4Cfemb{2Dap@rtqAiVH=BXvLfC~&QDvB*j}8$k&(I@Y6Gu#nvR1NKPB%g zXo1O1uD_1ylMDkE>nPk5CsKubO^%@i&Gib81qmp;ILN#MG8#{Sj4t7d0`+ZiW2Eq? zS!H?duBLv+n};D%YDjQ5fVxeOOZ?v?Mf}Gl?Fk8<l;9}<4QqwEq&ZF#ev2*xEySnC zg>k()=v_em0G3|^fRZ{SK~ptIMm|b}CVt9TT`5#oXaY7m37`$r=lY`oCgY3d(q%vx zA}~~-L2y?YsZ86!evQQlobW7WI@5?+geEH@qQQy{m5*zI!r~(X+DQ>7vIYFC=wxS3 zNt($O7(wbOM05>0WvF7*&m2Pj)&j!O`yxP&xcUaBe{pqWaU`2Q@)DQUiAk&v)sOc| z4_$++;NfDnTKMBeeWF7*rCQeRm$@Vs>HNm@UN{AGh3)ix=#OU0Z@X@&yM5yHSv?_s z&d+Qf0+CSj22P)5B9v^b4WJyo78zfZ_HVjE+zB<(Vy&B#zX+ON!SZENkqH%u4W)$l zsd;?6tVP)AB5>N!=+_?|u($~zN_bCvQ@HhMj$x$U5okn{2_MDa;QEeCU5x3YIM=$y z4(^(8{1}N7<3mW}`n*gRF{5<hQDO%YNi0Z2LcBEj_oD10xbcIqHSA-Kw*=8I)7Bac z3pxeFP?J4&^Lb`~^9w9GD?Tmm$(@Pc^7j1;N8SpkjNiR-<%;;TbjPAiPe}{vpvM{p z3?4Zy{7~<BbgjigowoYKTMOfIcl&G{g9$O5bg1k2v?^XI*EV&!1V$P$8HV3bJMId7 zO?rM+Qth#gX4~s|^yVNR0f`@B`SRXS+)z_0G`^C<6~$7i<km5jKiX?sjlKY1(KS;C zuuxlT<=HBgP0%n`9B%-TwtRX}9I6y>TO6yLSbRvz#X3+9jLL}<s`4mu{zM%I<>0ni XbhnYm8)6){rnp$y9~<Q6GPC~x2mSbI diff --git a/server/map_handler/__pycache__/get_lake_relation.cpython-39.pyc b/server/map_handler/__pycache__/get_lake_relation.cpython-39.pyc index 69cc0062bde8be6c071a8b5022d03bb31e477a61..78a3ba0cb8002fc8db42bb51086a412bb9c7bc28 100644 GIT binary patch delta 130 zcmZqSdc?(-$ji&c00i5(-P4#^H}c(QVoeNVWMG*5p6Pd(0u%(LmXsFd6<cw^1YopA zW?qSoLUBovrj>%Df=5V50FaYdQd+E#oS%}akeHXEP?C|VP?TC&np#|vnxc@BSduvT NDf3E3uF3r@r2t>lB+>u? delta 40 vcmaFF)xyP>$ji&c00gCG&S}e7HuBwPVygN*`4iLc$sR0A7&#`tWhn&!=d=wf diff --git a/server/map_handler/__pycache__/update_measurements.cpython-39.pyc b/server/map_handler/__pycache__/update_measurements.cpython-39.pyc index 55dfc3d1701664629e0aae4131a0b1b428cf136d..9f807770e09b37f6ad378e4c78c19cb759f8fae9 100644 GIT binary patch delta 1151 zcmZvbOH30{6o%){w6t{WSfI2#6blMkC82735b=R1g4SvTRO+J+ov9AA9dc(d5lYaw zabv_>7Z{%lU9cogTpQ!U#GP^DEKGD^!d5rNmG_@UB*sqi%{k{kbEo(GcU~kOCKNRo z3<&)9N<NmGNh~R{7;!=cUA3mDUeJqnMpJEdQJ`VgB|ab#_EzllKNSUGUYx$jeu_in z14~N#$N_do8X+IqXQ}K9-X<kQi?QdPZqmvePgk@pDrg&Ti}zx)wYG1(z9f}uwXn8{ z#k|qJ0||k+*C;1fBP9viU2(QfYcJL1#B;)s;1TTTym(`Q2(w`#OvkhiZF4F7NO&SX zZ_u`|X>TiummhnJ<nRW*7a9XvITovEGru`&hK+)Lva&0Uu7kWDXmQ1%sWHvCZdis{ zv}ij^`d*R*`|j)aELPJF*6VMUx1xD75HDZ#X9;oG`|3Ax7!?=wY#}f}eC$i0lT?)z z`Igky0I`W9<@j^DYV(0wPGFLnlRC8x-J+drNokC4;T_8az1x5UupQU|>;!fJd)N;p zHP??&0*(O#9FAlZZF&N!2k-((AO)P_aBBLEyq+@cesij*9i`Ny^a#XZj<`ar5NCn2 z9FCvrdDZ6ANC&N{vCPVB(mwWjtv}g`#tXnj;1Wl=&Ngi|pE0s}#=d4`CyKgd(aVrW zfiYm!w2+?WxX;3&QF59UL(h6J2zr%c*^g*9A{<TH1-K6vR-($#kz$jd*kDaFNtN}Q zcha1@&Lpoc%h0i+<4qbzR60!CP}v9#&M&*GxG!4E(|8r_fW8-4<v7xApdDxgdVu{L zDS8m04{-l>wR-@sAwR@1tzh!8qG`u+m_0Sv`}(e$<6Ls84a>}#w4ieLm>g+of>rb% zhtHrk#QGv_@&v+)ZEP~qJPIEiW%ajeX!Jaq(i~}-d-umWdIe<__>UD%P}Q`Ity`6^ z{TurlQEPAV=6Egb#WU_%n_(kS{m>xt2rv%7Ajgw8EZg<d@#gX--;aCpZld9@=@rY^ NuV}k>HZ-6Fe*=Tk37r4{ delta 1208 zcmZvcO>7%Q6vt<F?KqB;jqTWR(n9MdO<Gr_b_JA=mJb!zO{>Iw*d@&(Fx$+UZi#oJ zw`)*?LxpldLJ^gwNJR({BtXg$`Q8KKfYe(B2Uds!2c&S}$_beNhK~s0!*BoZz1ioP z`9J%^%4ZeB8W|a4>a+FeGwnahUm7WG+)Q_D%kPrivE860tial4G$za1EuNQOYsUw_ z&=|X^tqJ*?*5IL>*H81Bd{@83e~>@w{ZT_qOfpfNWE;F^h(q#r>@hwi@5RdH=>ijn zH?;SQ>)9Z2E#K37S&<Vnn>uHUOeA6~#x|68vnN%5za}g3{IfHg+WMH7?TxjyMb=O& zg2GMh`W9#FInLIK;)pof%YDQ?*0v@@=~IqX18hlkThG0nYy9=Bu!>R*Ryx+d6?ggB z1M0+d5GX2a570jKFo&B?$6nYyyP*9j-v`{U5DquGSA_G1<2#<~)3mH6KIbRoFNs>2 z9#r-1Bpp@{GjX20?&^hVIK1Gv&8yDx>#ptlbQFDNfFpf#aG7&c-bsFy8bc;RPQEuZ z$94Jb&~a|`dFmZq6i}R0sE31X+X|E;emJyB-l|Q3WBYVW)k4GXUTLX~wU(7zHW9~L zvkE(rDj_@plz|Fx62PYEVfnLBx2ljja1N*`gu3GfbOB)uhyxdad0;^y%+#C}yY2-w zuj`6)L>|#u6kkv%88iU>D$tZ4jLxR9Te=J^0j9h=IywCk<cmNH*mEBU>k6APkzV3; zX{A3ogJY3U*cpU+2ny3n4*=22*Zxtv*NPBZ{!X6B?C10S%b9QV8&RK*%I>64M@KV0 z?^G>n(jjD~P{WYy<Pb(*G^$i-Aaa>bA-l&@gpUBzzy$C(a9W{GPe3MsXxqtX@NC3S zDy$i}$D->6#Wrq|+VW1moS9RlFzNVS+oO)9ypX@=5A4Im(|`PW4!P&$sqv{BS0Vp3 zAw?M^;6#`VY=8IH9L<es?ER5Df-Yg@qJo)H6ZQ9`)5}P|0{o9bVagJssrpvcpTtj$ z$?wNo*|*f<QkI^=JJCG7DK8f6r_UqK1Fr$FEsU)=eh|4F#@j2NI%PCn=&)xLc8!$3 M7G~nt({skipMK{L&Hw-a diff --git a/server/map_handler/unit_tests/__pycache__/test_add_new_lake.cpython-39-pytest-7.1.2.pyc b/server/map_handler/unit_tests/__pycache__/test_add_new_lake.cpython-39-pytest-7.1.2.pyc index ed5bccfcc82a13f1ed283a3e65cac18b3c6ea0fe..cfee192e7c0b86ffbbe358e6c23a060d2523a7e5 100644 GIT binary patch delta 535 zcmZXRPfG$p7{;A7H@C$NOZtQ6TBarR-xP|_g1|08=LnXmR+3hCnOTMHGju5CRG*-Z zAq0Jd=+d>h1%Y&_Tj%Cosf6b6+nM)$p64BApJPuk4M!pa0kQ7YO7$yrseNb>id&|E zEz3B@E^ZH^2pZu*$IG8-m{OCtsm!e76>^lb73mIf_9kVcT-|g$qiT~nc8j+Gl4SAV zIZCx}f_WrQihMH7Ui(INGO&e#WD1ZL$Vmi=Pv`my)=OEOeL?nL@BOzo!^)vzCJ72e zg1(ST3rk!+vTbrq33R&9*>$KQ`(v}L6FOkK^28Duh5i`$`u7#rq^{xEmd91!UTa`c zA`76I2PD{qoK$-=ALIfmwm;=Fl%5j`E)$bBEthw*;N8d~IF|t{>^wXLbNBw{a>=IP zs@p9y7bfGNTNn7b4R%jBs**LRCjhH}0-*OEaiui0C5pKi4<9ybmRoC3GR#huycz{< d39!L#6<z$NM`c@2L7@l$TThmss<XL)>2EUahDHDY delta 564 zcmYk2O-~a+7{@!??9i697HCSLSfIQvFQrMfF_?&nM)(X9lFb6MvS!=aJTrwXUw{K# z$i#zQJ$W*wU%{IfJ-Qc-7ZMMC2Itwvq|f0ung8>DUS_^lzEw(Iu~^8M7<6Cw8G2Xx zJ2QO=f#U8PDf+Gwt{;SaSRh4GW!Wh1T$Ma2IjE(z%_x5CNTzqK&xGlp*7_8id>+NF zFQDhC?#B$w>uUCvEDS$nJLKr083IcNj&*Nn;@1HXb2t_(n*(qSXdo6xDkksWzr*-( zU|gx8sT+2ktmu8ayEczL0@>7_Sgkgrr$WG)1k8+3*Kh4Znht2{-}W(mfT^<Hr_1Zk z1j{Qfl^cmLW|L`c(D#f44!SlGbNYrh%3}?UnAG$qyQaU>8fg#z&?~aCfhq+q2cb$v zP0u{#!4|gILG0@5Tyt#ttHcr#OM2phJ2{v|(<6ibJ9+9nAwG0apF^||dx)`ZbT$8M z`l%6}N|HMn1fdH05~j4D?`)?}eS!sD16G#jUc|$=^_q(wR}h1RIs87RzvN#oF5tC| Pz=mT}(s^~gQCR&4R(pli diff --git a/server/map_handler/unit_tests/__pycache__/test_update_measurements.cpython-39-pytest-7.1.2.pyc b/server/map_handler/unit_tests/__pycache__/test_update_measurements.cpython-39-pytest-7.1.2.pyc index 0f0fc11bca8d501fc89871ef0468915c06d7aa85..99ac9992a6aa08b95b8a232a1adc866fe37baeaa 100644 GIT binary patch literal 752 zcmcH%%}N46cy_JSB_E*M;7Orm5id!KP|(c|(nS`A(fQ2Lotb53*6@Xb-XQ4MTkJJD zbne!v*_F(L5FPqp=KKHuXss3?2XBk(*|UexYtHO~@0fvmrtUt5#)x^$kG-*9;F37- zk%z?L_{c-dAE9O`eQ;rBS_y1GuRym1O~{-|7CSmk7_~qIP?Ks9Ag#e%BuZPnM->DN zX4rzUWRI3`xuP*=B&JJfH1Sy<50!*&fE^T0xq?V40QYcxE2#&Cg|XD8hD;TMQ%s!2 zo)nF(QxT@Q@ubFeX7Nq{-0R^^*!iX2zf?O~rot><o<ROnx$Q6v-rY*kuvyN^gfKNF zB&$qP9$PL=c05SdWXqk9WS!5VwdtKJ+0t;YxrMB{6=mgbS>T+D(NX<~bk$`kzE64C zjc(oWOf*-Nw4)mdSDLRN8ZC1)QJO`GR(I|5F#I7lcNFd1QItw<NuI$(MV>voYbEQf Qav>B;W9Yk+L?3y#U-HKKW&i*H literal 1282 zcmdT@Id2p(6t-t(XJ&IO3XwP(h(JMXvkD180<kD4kb)u<fo3(5<*dEQuye`wECkI+ zh)|}aOpz`3A3#mRZ*WVMzmNj)Jey;S<Og8M&)+-z{4Uek*(n6;@4-gzCr0RxVJ4Ri z%o=RD0fZrjBh<mwX~njMFp8Z{4I7OWxv|&r0Apq!V&<^gH>cyDaxU|Lt24ZXn*K5P zLYqyj=kttF#YxPm%mt5mq9ll2!BsAjt}#1X9ssk~Vao#`43|iu0`23#DsgEstF#MT z*nO*X3P*lX_{d^*;q)LBBkx&52uayT&JYcdd;|JgfrnVU1LPW%SfDr99%AMmS~pNx zV;=L1T8II=$^)%mxI?^;zd{ilR63>25TsP!)OE$BA`$KL@H<p;giow?dxSq<UwoMD zEj8sryS-rGN>l1-si?{&>86a2ENz2<AuA^hDkT@HGF$~i5U!5u!h(GD)LOPzy+MVZ zBV8IrMDR>>(>SAo>lsj!?L3TBm`LqLDOgB-i^$zHk62|&cA|8fMkJvz*L5Okj~frV z@v?d~Oq16_q(aY=UMga$2>+BtG@%MKBTqNZGpsxa-$aFpo;EL!17DtG9*vo?ug8<j zlMxbk;Py$f{w#P88OvZdrDQpHoA6g69PnVPZ;tI$upkrZ&hpcxr3(NT23!O&&B!iI zSOhpvLPbn`GN_`wWUyM<o?g64Ny216qmWe%bRab80zufZW-PG)=)W4q+<fY-ejdvY zzkcxK_&2bkW{CMhRpUh6pczAE4QUv1(-6~`F}Vv!-@meC7X>qJCJS~C_~w-M&&E;A z8Be##cz|2uS%INy3I0)p3Wo7qq`gy_xCVDR55~Q2P4v2TNpGtkQuRrgw<mI_vZ)gB UpT{Z7BmM$@Cz7Ve5A25j4}OSh^8f$< diff --git a/server/map_handler/unit_tests/test_update_measurements.py b/server/map_handler/unit_tests/test_update_measurements.py index e05ae8ed..e8942cef 100644 --- a/server/map_handler/unit_tests/test_update_measurements.py +++ b/server/map_handler/unit_tests/test_update_measurements.py @@ -1,6 +1,5 @@ from server.map_handler.update_measurements import update_measurements - def test_update_measurements_invalid_lake() -> None: test_lake_name = "test_lake" @@ -8,7 +7,6 @@ def test_update_measurements_invalid_lake() -> None: assert status_code == 404 - def test_update_measurements_valid_lake() -> None: test_lake_name = "Skumsjøen" -- GitLab