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&#0
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