From 33af06844c54d0fd38de1400a68a2f7f634f6ddd Mon Sep 17 00:00:00 2001
From: Hoa Ben The Nguyen <hbnguye@stud.ntnu.no>
Date: Thu, 29 Feb 2024 10:22:16 +0100
Subject: [PATCH] add: file structure, moved update feature to nrew file

---
 .../__pycache__/get_weather.cpython-39.pyc    | Bin 2013 -> 2017 bytes
 .../process_lidar_data.cpython-39.pyc         | Bin 0 -> 2792 bytes
 server/data_processing/process_lidar_data.py  |  19 ++++----
 server/main.py                                |   7 +--
 .../__pycache__/get_markers.cpython-39.pyc    | Bin 2796 -> 2796 bytes
 .../__pycache__/input_new_data.cpython-39.pyc | Bin 0 -> 1591 bytes
 server/map/get_markers.py                     |  38 ----------------
 server/map/input_new_data.py                  |  42 ++++++++++++++++++
 8 files changed, 57 insertions(+), 49 deletions(-)
 create mode 100644 server/data_processing/__pycache__/process_lidar_data.cpython-39.pyc
 create mode 100644 server/map/__pycache__/input_new_data.cpython-39.pyc
 create mode 100644 server/map/input_new_data.py

diff --git a/server/APIs/__pycache__/get_weather.cpython-39.pyc b/server/APIs/__pycache__/get_weather.cpython-39.pyc
index 2c0c82d7bea273f0a93159170f91de5e995623bb..f8858872de717cd7d93b420283a1654752615aec 100644
GIT binary patch
delta 88
zcmcc1|B#<Ik(ZZ?0SHR&Tu=SDk@qAkW7Op9tT!3WCvRj+V=R~~!JZ<>%*4p`pM{Bw
enTwH!k%PI&a&jlTqNpWMSCKg?VKI3>yBq*LI~6$q

delta 110
zcmaFJf0v&(k(ZZ?0SM|BUrD{ck@qAk<E_cpS#L60Oy0<r#+Wl%f<1+oMSziunTwH!
tk%PI&YH}~TqOlcFN09|8VF~2k;;_lhPbtkwwPOVGiaCG;P!|ZY001`W7pVXM

diff --git a/server/data_processing/__pycache__/process_lidar_data.cpython-39.pyc b/server/data_processing/__pycache__/process_lidar_data.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..4b9c5e0857452a784de0ace8ed0f1d69d5075580
GIT binary patch
literal 2792
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

literal 0
HcmV?d00001

diff --git a/server/data_processing/process_lidar_data.py b/server/data_processing/process_lidar_data.py
index a0fdea41..4db12e3d 100644
--- a/server/data_processing/process_lidar_data.py
+++ b/server/data_processing/process_lidar_data.py
@@ -22,14 +22,6 @@ with laspy.open(lazData_path[0]) as fh:
     for r, c in zip(bins, counts):
         print('    {}:{}'.format(r, c))
 
-# Limit the data to specific areas
-# should be within this range (10.616913,60.742712) - (10.825653,60.940206)
-# this is only temporary data for coordinates in arctic
-areas = [
-    [(-3671212, 7898422), (-3200175, 4699978)],
-    [(-3671212, 7898422), (-3200175, 4699978)]
-]
-
 def inArea(position, areaRange):
     x, y, _ = position
     if (areaRange[0][0] < x < areaRange[1][0]) and (areaRange[0][1] > y > areaRange[1][1]):
@@ -61,6 +53,17 @@ def find_height(points):
 
 # areas
 def height_in_area(area):
+    # Limit the data to specific areas
+    
+    # this is only temporary data for coordinates in arctic
+    # areas = [
+    #     [(-3671212, 7898422), (-3200175, 4699978)],
+    #     [(60.815356, 10.672022), (60.774878, 10.768867)],
+    # ]
+
+    # NB: is only for the test data should be removed after
+    area = (area[0] * ((-3671212/60.815356) - (-3200175/60.774878)), area[1] * ((7898422/10.672022) - (4699978/10.768867)))
+
     # Refactor data format
     iceOver = laspy.read(lazData_path[0])
     iceUnder = laspy.read(lazData_path[1])
diff --git a/server/main.py b/server/main.py
index eac3faf1..7e79ca5e 100644
--- a/server/main.py
+++ b/server/main.py
@@ -1,7 +1,8 @@
 from flask import Flask
 from http.server import HTTPServer, BaseHTTPRequestHandler
 from consts import SSL_CERT_PATH, SSL_KEY_PATH, HOST, PORT
-from map.get_markers import get_all_markers, input_new_Lidar_data
+from map.get_markers import get_all_markers
+from map.input_new_data import input_new_Lidar_data
 from APIs.get_weather import get_weather
 import ssl
 import keyboard
@@ -45,8 +46,8 @@ class IceHTTP(BaseHTTPRequestHandler):
         if self.path == '/get_weather_data':
             get_weather(self)
 
-        elif self.path == '/get_new_lidar_data':
-            input_new_Lidar_data(self,self.cursor, 1, 'Mjøsa')
+        elif self.path == '/new_lidar_data':
+            input_new_Lidar_data(self,self.cursor, 1, 'Mjøsa') # hardcoded body of water must change later
 
 # Terminate server on key press q
 def on_key_press(server, event, cursor, conn):
diff --git a/server/map/__pycache__/get_markers.cpython-39.pyc b/server/map/__pycache__/get_markers.cpython-39.pyc
index 0ed1ba09ccad9e2350e9200179cbb2e084247f85..9e45cfc2c9ce435036ce31556ab2be3352754967 100644
GIT binary patch
delta 30
kcmaDO`bLyDk(ZZ?0SJ2T+)cII$ZN^P$U51bYY8I@0Ea6G3;+NC

delta 30
kcmaDO`bLyDk(ZZ?0SM$zTu-&$$ZN^P$Tr!XYY8JO0Dg7{i2wiq

diff --git a/server/map/__pycache__/input_new_data.cpython-39.pyc b/server/map/__pycache__/input_new_data.cpython-39.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..02a1dd5649b14c230e1c373aece6024d454c0a50
GIT binary patch
literal 1591
zcmah~&1>UE6ra(TWyLlvZ1>X39BnWmEEKk%TQ_!#!Exx?+fd<RWNB>AMjE*zDcKmQ
zmn{7wdWw(zcY0a`d+KTXClnU?Ms{MQDRc(C`FL;M`@N4DIrX}Qp#AmcEq!eu^ru{u
zn*xik;fvZpJmg^?*>Y5T9AFz`IahrpP;C|Fny0@;w&vjxY8mg~1RAz*ZhB5kV-`@D
zH<pwwmhqJFsUxW4YEo#|8Zg%2JBBZM17!VMif_PXs>Jw4*`QRNs~ZKQ6u(q6t>7se
zzyLFCgEBqU#jmN}ML!KPBQ+*kR>{n)npv@)R#J1WT;uE@HqwJ@99Ja$7-h9Wi<)X_
zHML?>?xr;<?P+sU+WPq^SgYPx8-!7O;OW<3?+o#$8j5RIe_)i=F<KMg7-{`_i>-Q7
zm(pkGM~F^V|E12Y?RbQaU<YDT8LlrZQfmF-sP}wK`or-lIiXIJ2pUixH_3?dC=~r}
zn~WiVJC@fbXAn~HP3T<>9f&LWp)+{V8<BfDrTXTxHuTo#cMRtfjL_Xmii~=L-tm|m
zgE=Y&PR!!OqwU*u$QQefQ8MeY3l_1Ex5;-ROjiBwJw@L>KRqEOse8=JB^9*nTE9!a
zB+p1^*d@*XvE6#;mjn*2KP1f^{%(IX?hp5l?17iGGjQ!5tgV_o{kIRL$gST#I9bkG
z$?;|>gEDg^mR#;)*Cr>7vmgn^OXi+)8bxi=xuC*X(9%u`{C}sV<GP7(+^gFfcmPs5
zw=Dx%3fo?C>(=*oP#4HHqr{!MlzQtAJDgA<LP0`lK~S&N$Sd>}brYx)`7Go{61zOS
zw5z@o#Ui|9UT)55>@FSO7pjy{qa?^xpYmJ{7|$&?<ea)Ol#p$>VGyu5*H?n^IIs3z
zxpY-<OcDD2%yG}bpcYYoo*MuFZULa%-UiP;m_g~E&Wl@+H-i0*nKI9=ufm8)Ra1C)
zoLmKHw(0LG8_?dChOI}*tlzaOi)}UAmF?pc<rQa}h#b@3k$42I{Qdp$XOkBZ713lF
zI@2eUQ%<{rUC_zsTn@8Pc$1X~7f(JtI@(X*0BD*7&T7K=Dv76@UKXehS6BI?{nmha
zjwl#97>k-f5LOgJt-aR_L$NBRqG1!)pnrf3_3?W{x0IUFz?LE&gKSIBwU<%Ii^SNi
zt=U8A{uDsDP+W{J4tLY3e`l>oQ=y^ovP3=tt-1L{5PFGEzmmlf!T$jj7?ghi6!o^l

literal 0
HcmV?d00001

diff --git a/server/map/get_markers.py b/server/map/get_markers.py
index 9fa5dd1a..e1e82312 100644
--- a/server/map/get_markers.py
+++ b/server/map/get_markers.py
@@ -1,6 +1,4 @@
 import json
-from datetime import datetime
-from server.data_processing.process_lidar_data import height_in_area
 
 # get_markers requests all marker data or valid markers, converts the data to json, and writes
 # the data to the response object
@@ -103,39 +101,3 @@ def get_all_markers(self, cursor, valid: bool):
     # Write marker data to response object
     self.wfile.write(marker_data.encode('utf-8'))
 
-def input_new_Lidar_data(self, cursor, sensorId, bodyOfWater):
-    try:
-
-        cursor.execute('''
-            INSERT INTO Measurement( SensorID, TimeMeasured, WaterBodyName) VALUES 
-                (?,?,?);
-        ''',( sensorId, datetime.utcnow(), bodyOfWater))
-
-        # auto generate new measurement id
-        measurement_id = cursor.lastrowid
-
-        cursor.execute('''
-            SELECT DISTINCT CenterLatitude, CenterLongitude 
-            FROM SubDivision
-            where MeasurementID = ?;
-        ''')
-        position_data = cursor.fetchall()
-
-        if(position_data):
-            for row in position_data:
-                latitude, longitude = row
-                heights = height_in_area((latitude,longitude))
-                average = sum(heights)/len(heights)
-                cursor.execute('''
-                INSERT INTO SubDivision(MeasurementID, SubDivisionID, GroupID, MinimumThickness, AverageThickness, CenterLatitude, CenterLongitude, Accuracy) VALUES
-                    (?,?,?,?,?,?,?,?);
-                ''',(measurement_id, 1, 1, min(heights), average, latitude, longitude, 1))
-
-        cursor.connection.commit()
-
-        print("suc_ceed")
-
-    except Exception as e:
-        print("An error occurred", e)
-        # rollback in case of error
-        cursor.connection.rollback()
\ No newline at end of file
diff --git a/server/map/input_new_data.py b/server/map/input_new_data.py
new file mode 100644
index 00000000..87276f92
--- /dev/null
+++ b/server/map/input_new_data.py
@@ -0,0 +1,42 @@
+import json
+from datetime import datetime
+from server.data_processing.process_lidar_data import height_in_area
+
+def input_new_Lidar_data(self, cursor, sensorId, bodyOfWater):
+    try:
+
+        cursor.execute('''
+            INSERT INTO Measurement( SensorID, TimeMeasured, WaterBodyName) VALUES 
+                (?,?,?);
+        ''',( sensorId, datetime.utcnow(), bodyOfWater))
+
+        # auto generate new measurement id
+        measurement_id = cursor.lastrowid
+
+        cursor.execute('''
+            SELECT CenterLatitude, CenterLongitude, SubDivision, GroupID
+            FROM SubDivision
+            where MeasurementID = ? AND (CenterLatitude, CenterLongitude) 
+                       IN (SELECT DISTINCT CenterLongitude, CenterLatitiude
+                            FROM SubDivision);
+        ''')
+        position_data = cursor.fetchall()
+
+        if(position_data):
+            for row in position_data:
+                latitude, longitude, subID, groupID = row
+                heights = height_in_area((latitude,longitude))
+                average = sum(heights)/len(heights)
+                cursor.execute('''
+                INSERT INTO SubDivision(MeasurementID, SubDivisionID, GroupID, MinimumThickness, AverageThickness, CenterLatitude, CenterLongitude, Accuracy) VALUES
+                    (?,?,?,?,?,?,?,?);
+                ''',(measurement_id, subID, groupID, min(heights), average, latitude, longitude, 1))
+
+        cursor.connection.commit()
+
+        print("suc_ceed")
+
+    except Exception as e:
+        print("An error occurred", e)
+        # rollback in case of error
+        cursor.connection.rollback()
\ No newline at end of file
-- 
GitLab