From f91d7207b6e53dd901be62008787c02fbd65f165 Mon Sep 17 00:00:00 2001 From: Sara <sarasdj@stud.ntnu.no> Date: Wed, 20 Mar 2024 17:08:58 +0100 Subject: [PATCH] add: test tile data --- .../process_lidar_data.cpython-311.pyc | Bin 7193 -> 6319 bytes server/data_processing/process_lidar_data.py | 12 ----- .../__pycache__/get_markers.cpython-311.pyc | Bin 3745 -> 4769 bytes server/map/get_markers.py | 49 +++++++++++++++++- 4 files changed, 47 insertions(+), 14 deletions(-) diff --git a/server/data_processing/__pycache__/process_lidar_data.cpython-311.pyc b/server/data_processing/__pycache__/process_lidar_data.cpython-311.pyc index 29a63e52c3216522dfbadd87d89f7e180e850df4..4cceb079b85cd33d853adb8d5d15072b4530def9 100644 GIT binary patch delta 447 zcmbPfvEEQ)IWI340}!aN|4vQiXJB{?;=lkKl<`@QaiT^ZODgvQp2=m5%Hh1JyjgrO zMJa6AOdxg?KNCYLW0n9+9H>SR&gPedF&R?W*KjNY>R1id1rm+{vZ92dgePxd(ii7! zVTck*;R2GPDcnF(EQK+cL6c|lFQ!T2FF{&DG#PL47NwSy7Ujh!=a=S{6mK?TNo8ad z+B}D~m5EVqvJ%G`M#ahRIaUJ6nVcsWH76%=ZD!P(EXKWyQEKx=?#1kkp_@yE?HCzN zH*XPn!OSQ=d9FknSCK8y@LS9|iN%w>C7mWOkksH#0E#dIaj`q&<ja!9!pw{Tj0>D@ zaPjo3cd2)3_GmUZPyQyQAOC?JB=dm*L4E|YzaWVq%VM&B{P=+>2o>R(d{)|8(2>E3 Rk@*lKixVsRAr3|$2>|d2WP1Pr delta 1291 zcmZ`%OK1~O6rGp6{6Ed7ZThk8)Y>%B#I$OyMym9yc45VeU{GY5dBLPMk(ty*ill-< z6v5VU5hX}aQAEK-cH+W~;6h|ZMl7=uy3v&tT@>8-=H){p^)hqkzI)EOpU1o!xPQR+ z%w{uF*dFQrpkXIPt*M8q87slBkD3)<GOMAGmDM9l!d4|D?A7S0hN52Jw`_nSTtgkV zp^9$FHP&$*TW}eis}wfXk@47N+p@5^j{DyskfrEadC=4ARwqa9rvUGR-?CNOS}@j# z+=(XPt+hG(Z#N7yR|Twfj$B5>gC!u*Qq5ydYc2NFLW;G$wAa@=hxL)RNISX6hAqaK z*oN9rd%b9!I=_PmJ0hJ#=qPqo+im`$4%Aszs+;Hmb-UL@35_7+abBk)H0#2?n{{Kq zodq+Lzfp*QyV;CwGJXlsXAsB7Q^|0~dNLJHrs=WNLNXoB*k_^)MkkqQI>qtfjA1$! z;}HhjgvQe`E;UadLkx?!aK^bg$uems{9V1U(|(}XIFw%Ck{6<CT|VPG%He>ePwpb! zP7#nku`oZ2IGT;~X)ZpykR}6}Xl#pD!;4o-S`7lAvlQ3f(14x758Ve46yE5cV;?iT z2ZKV$SOWWnHREgGEj=_nHUOqH>O2g<Na>pEn-=s4iRRcbMR%FQ8!GyXWNO85rM$Xg zxvb7oo>0;8>f(w%MfT-}@fwQu62o&o9B~2c1f_Y@bwterP61IxA4_rbOj>C7_$_gq zR{t|Ts1c?;e6|7jilbklX=x%C%I_&0l-mOm49YMl!r&@N@6K;8_~o{c1p8&!FT#G3 z7R_z>(Zcb<v;+e(42UpLX8V^<-8(Bc^-9nyL$3(Eq_$}8D!QJu%H8`VI3&X%5e}`I zt#|rv4fNgg-}Wz!mBl^RrmjydO;s9n<oP^b-1{VaKU>I3FeJl}2t&eWPbgbq?33W2 z3<pIxxax2(YnR9KUdhodJG$2?pz{%T6Xrl}VAW{L>2h;l?DQu)U33;lB)eC(dnIF^ zZ0r-sv#wPo9r!-hsjB;_M!##v8sOi=A<2!6jT*Qa+aW|-4mrmgCY;)LPB_tIc-I23 F{|k!AG*<us diff --git a/server/data_processing/process_lidar_data.py b/server/data_processing/process_lidar_data.py index 46162b5a..ee70948b 100644 --- a/server/data_processing/process_lidar_data.py +++ b/server/data_processing/process_lidar_data.py @@ -10,21 +10,9 @@ lazData_path = ["server/example_lidar_data/ot_N_000005_1.laz", "server/example_l # Info about data with laspy.open(lazData_path[0]) as fh: - # Print metadata properties - print("File Version:", fh.header.version) - print("Point Count:", fh.header.point_count) - print("Scale Factors:", fh.header.scale) - print("Offset:", fh.header.offset) - - print('Points from Header:', fh.header.point_count) las = fh.read() - print(las) - print('Points from data:', len(las.points)) ground_pts = las.classification == 2 bins, counts = np.unique(las.return_number[ground_pts], return_counts=True) - print('Ground Point Return Number distribution:') - for r, c in zip(bins, counts): - print(' {}:{}'.format(r, c)) # check if lidar points is within range of the area selected def inArea(position, areaRange): diff --git a/server/map/__pycache__/get_markers.cpython-311.pyc b/server/map/__pycache__/get_markers.cpython-311.pyc index 9afbb6c07ee725a0171dfda4a7e56e20c3fe698a..52efde446f4acf064a28ea6968ca718795092912 100644 GIT binary patch delta 1802 zcmZ`(S!f$a7@pbHwUSo16j`>U)nNzM^pHacbq~8~3pQ;GJ<?*;#mJepD_cjsyN-id zMJA-+hfriTP(fXg!Ep`kL)}2z_r5f5QZQs$F!Uu4e%sRHp@p_Hk{3&EGduIm|Nryt z_s`C;JJFp%*Ox472e|ym{KY>X+;WAh6WIF<Ab?;2WJymIU=d~^?8K-ng=2JqD$-dR z$4s|D)`ZNwd4WQf+or4q!FRy0^_YlG4@1p{auP4)i#)ciLav1JCFvSXMo)?p_r(8o z&rA{@l>UI#MNnZ-pkkLC1`7bhBJ&;vz*o3+%4^`m?<x+=b@uQm6#Ne_S79aAcn^Rj zt6?MRtZKz2Ri8u+^$N?bb*xiy%XZ|JU9uaULt)e>;qNet?An8P%D8n3vTxfe9@*LG zUIAke$es>+)QCVpq}TCuD)u|`vP1G3BLGPLQ+vs-Y*6X9Q3U6Aqkc4ieA~3_ME-3{ z#Va#U$mZ>x8w7X0m(HDv%I1bsk*MeFGSmJ{pVY7HQ-jt1E{d;L0#VED-4T3J^pu67 zy)1lcVikWWB*jlTOCH0PeaQ87ymz57dn5&<B;iy$#553Ml|WA#P7ZtyzM%du*$h6s zmB7tF$=2!D;2O9=&ww>3gNDyY-QA<aSslzIOFrDqYTGD@QoZxV`vw{T<v05Lc+j9X zLWb4d%l<~!lAn&CbSJ&?DHT#aHd*1|{TrrL`c)!#OisaZjDQ=%B5t@0Oq>{;Vd� zk@UnmBk`id;k%f7SNX+y3x*ZRHacX+7jlu;EaYC6i<)({lwT+dMU56EK_Ev|qf6yA z<(^G|K_$$fs+Y*j75SXFD)2?VB#9a$uFj+U^|?IKU|wUfH;3K4m@k(^4K8VHF<+XK zKFVKPF7cwMvAOGuU9O|^cAKs_x`Z_onJf<Fgk@fsYdg@wi(~<m1G8UgFw?&Guw%nb zT*i~#06Mkut^Ea9)ngzUZ`%6QKxmVB><!gc>dCEvy8}8%GNWzSd_^6IZC-gCjMOvr z`K{TzvpVpw@ix@p5jV8!+F$u5+2Sr9au;jtnZOThi+jDs>K2fAN{w@BIzwt|NKKzt zxztfLI<kMI6&*W_j_F<|?$ZH=nnMo(Z|spL{m_$ce9-b_4n3KsC!>1$>ThkiYD|s6 zddbugm%2B(`{vH{?sSX0aL8RyqX{+2{mdoQ<kM;_sas9`SdoAoB%aZOj((R8Fl@e| zM*tgp<V^b?I!Oj+=FpjGw(IXU<t0bh(#%|Lxi8<p>Y!j~^3voO_-V{Om82h-0#i}? zLDW2zREo}nL>RAVq4R_KyGjFrT=<S3_=orwWt<(3yieAh{Mb0*Dn?<%fKQZLY`tm~ zE|CC{5uPPrB0x4wGcOd%IjQr)42fn55RpG^FBZ#awZOkD%wm_Qiy{V{h7hX2vC)21 p5N-BW6|fuaM+K2)yQVrFM%}g!A>Q>aT&L|YQs<SMuDFTh{ud4LfgAt; delta 730 zcmZ8e&1(}u6o0cbTa(>Qb`vL?CRUBw3L#0A9=s@`Hcb&hEP}MTc2cm!ly0{~Flmbv z?=lAqA|#i3&>l+uhI+PAP`r5d77#BL)OlUEM&Iz>o8SAMH{G%B>G<nd%m76<^dB|H zejXn#=M;JY0tBf;6@<14RU&9jThIjCWK}B2eaP!yG3o9+MfHa)r4fHK*lzcbIKCNr z09txyNZw?ZSv%_6@(CM@*#pj~++msZ#9xcx+XUc^;(!Q<RNH8{{>jh+uy`~#;#O3| z-@4nH%1|7TiY{CL-wiRqD0pYura#yv-7;UoD=p|%3`2uvb7}=`bIoi-0^KA{cueP@ zNm|gc<g%Vh4gWu+^2E@S&WP;4;}B53xZ1#Z2d|6AukSd@$XUziBrx;Dsi3A@(%gs| z1k|oadUu9aDZ{5rYCI)L`OKJ*UyNm9$r)3~oaHjyy_~dWlauPAD_(h^R<QwnZMwH( zT_xG?BjE7&eDotPeBgzBUOM2VeS7@C9`B`Xjkr_!sUqwZjS8oGS9ryy?`*xo<t1nL z9PY3leDu$C3SQ<I^IwRWB#C^sj7{;wa^5W^y^EokmF2{iU|tCgINoRau;B;(3fiVo zV9sIW+M^}0TCZLAZYzkzRxqMZ2_c`r+&DV@$UQ<P`Y<3DG=pTf=H*)QEW>KQ0gdi~ Avj6}9 diff --git a/server/map/get_markers.py b/server/map/get_markers.py index 00ead05e..15c4b233 100644 --- a/server/map/get_markers.py +++ b/server/map/get_markers.py @@ -1,4 +1,7 @@ import json +from datetime import datetime +import random +from random import randint # get_markers requests all marker data or valid markers, converts the data to json, and writes # the data to the response object @@ -62,8 +65,50 @@ def get_all_markers(self, cursor, waterBodyName): 'Subdivisions': [sub_division], # Array of sub_division objects } + ########################### TEST DATA ########################################### + # Temporary test data + test_measurements = [] + subdiv_id = 17 + + for i in range(3, 10): + sub_divisions = [] + + for j in range(0, 30): + min_thickness = random.uniform(0, 10) + avg_thickness = random.uniform(0, 15) + min_thickness + + subdivision = { + 'SubdivID': subdiv_id, + 'GroupID': 1, + 'MinThickness': min_thickness, + 'AvgThickness': avg_thickness, + 'CenLatitude': 7.0, + 'CenLongitude': 8.0, + 'Accuracy': 1.0, + 'Color': calculateColor(min_thickness) + } + + sub_divisions.append(subdivision) + subdiv_id += 1 + + measurement = { + 'MeasurementID': i, + 'TimeMeasured': str(datetime.now()), + 'CenterLat': 10.0, + 'CenterLon': 8.0, + 'Sensor': { + 'SensorID': 1, + 'SensorType': "test data", + 'Active': True + }, + 'Subdivisions': sub_divisions + } + + test_measurements.append(measurement) + ########################### TEST DATA ########################################### + # Convert dictionary values to list of measurements - data = list(measurement_data.values()) + data = list(measurement_data.values()) + test_measurements if len(rows) == 0 or len(data) == 0: # Return 500 and empty list if no data is found print(f"No data which meets the condition found") @@ -85,7 +130,7 @@ def get_all_markers(self, cursor, waterBodyName): self.wfile.write(marker_data.encode('utf-8')) -def calculateColor(thickness: int): # NB not final colors nor ranges +def calculateColor(thickness: float): # NB not final colors nor ranges if 0 < thickness <= 4: return 0xFFff0000 # Red elif 4 < thickness <= 6: -- GitLab