diff --git a/server/data_processing/__pycache__/area_processing.cpython-39.pyc b/server/data_processing/__pycache__/area_processing.cpython-39.pyc
index 36bd3436993a5dbf223824d0c9b30cbeb8de4ca5..e770151519aca70814292d4f5cc66264b00083d0 100644
Binary files a/server/data_processing/__pycache__/area_processing.cpython-39.pyc and b/server/data_processing/__pycache__/area_processing.cpython-39.pyc differ
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 9a3706cc4096a71462648ad5967fbd3abd35f8e1..3edb3e6aec41636e85a32723ec41ee26bef38aba 100644
Binary files a/server/data_processing/__pycache__/process_lidar_data.cpython-39.pyc and b/server/data_processing/__pycache__/process_lidar_data.cpython-39.pyc differ
diff --git a/server/data_processing/area_processing.py b/server/data_processing/area_processing.py
index 43e289ee01d5794c6af26982fcee4c20a1308448..81446eda9a0e8829cb02e33a87476e9bb51ae3d5 100644
--- a/server/data_processing/area_processing.py
+++ b/server/data_processing/area_processing.py
@@ -1,4 +1,8 @@
 from math import pi, cos
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+import seaborn as sns
 
 EARTH = 6378.137  # Radius of the earth in kilometer
 METER = (1 / ((2 * pi / 360) * EARTH)) / 1000  # 1 meter in degree
@@ -34,6 +38,7 @@ def define_gridareas(lat, lng, area_offset, grid_size):
     #a = dimension + subId + groupId soon to be implemented
     #print(a)
     grided_area = [] # container for an area turned into a grid of areas
+    #points = []
 
     # find the main area's corner positions
     main_area = calculate_corners(lat, lng, area_offset)
@@ -47,8 +52,6 @@ def define_gridareas(lat, lng, area_offset, grid_size):
 
     group_id = 0
     i=0
-    j=0
-
     # find the center coordinates of each area in grid to find the corner areas
     for y in (range(grid_size)):
         relative_size_lng = y / grid_size
@@ -68,8 +71,20 @@ def define_gridareas(lat, lng, area_offset, grid_size):
             # use the center of sub areas to find the corner of each subarea
             corners = calculate_corners(lat_pos, lng_pos, subarea_offset)
             grided_area.append((sub_id, group_id + i%2, corners))
+            #points.append(corners[0])
+            #points.append(corners[1])
+            #points.append(corners[2])
+            #points.append(corners[0])
+
+    #lng = [-point[0] for point in points]
+    #lat = [point[1] for point in points]
+    #plt.figure()
+    #plt.scatter(lng, lat, marker='D')
+    #plt.xlabel("Longitude")
+    #plt.ylabel("Latitude")
+    #plt.show()
 
     return grided_area
 
-#print(define_gridareas(-60,10,1500,4))
-print(define_gridareas(3435693.5,6299200.0, 20000000000,4))
\ No newline at end of file
+#print(define_gridareas(-60,10,10000,4))
+#print(define_gridareas(3435693.5,6299200.0, 400000,4))
\ No newline at end of file
diff --git a/server/data_processing/process_lidar_data.py b/server/data_processing/process_lidar_data.py
index 6345fe111402ee8e51229e16630a5d819f5912d7..43209e790f54433400d02ae8656e02a30f2d35d1 100644
--- a/server/data_processing/process_lidar_data.py
+++ b/server/data_processing/process_lidar_data.py
@@ -29,9 +29,9 @@ with laspy.open(lazData_path[0]) as fh:
 # check if lidar points is within range of the area selected
 def inArea(position, areaRange):
     x, y, _ = position
-    print(areaRange[0][0], " > ", x, " > ", areaRange[1][0], ") and (", areaRange[0][1], " < ", y, " < ", areaRange[1][1])
     if (areaRange[0][0] > x > areaRange[1][0]) and (areaRange[0][1] < y < areaRange[1][1]):
-        print("inside area")
+        #print(areaRange[0][0]," > ",x," > ",areaRange[1][0],") and (",areaRange[0][1]," < ",y," < ",areaRange[1][1])
+        #print("inside area", position)
         return True
     else:
         return False
@@ -97,9 +97,10 @@ def calculate_area_data(center):
     #areazone = ((((-3200175 / area[0][0]) - ( - 3671212 / area[2][0]))),
     #                ((7898422 / area[0][1]) - (area[2][1] / 4699978)))
 
-    #area = calculate_corners(center[0],center[1], 1500)
+    area = calculate_corners(center[0],center[1], 1500)
+    print("area", area)
 
-    areazone = calculate_corners(3435693.5,7550000.0, 20000000000)
+    #areazone = calculate_corners(3496480.06669129,7681517.961979784, 400000)
     #print(area[0]," area ", area[2])
 
     #start_point = areazone[0]
@@ -117,14 +118,27 @@ def calculate_area_data(center):
 
     # add two files together temporary test data(soon to be removed)
     ice_points = list(zip(iceOver.X,iceOver.Y,iceOver.Z)) + list(zip(iceUnder.X,iceUnder.Y,iceUnder.Z))
+    max_point = max(ice_points)
+    min_point = min(ice_points)
     # area height in all the subsections
     #grid_area_heights = define_gridareas(-3435693.5,6299200.0, 20000000000,4)
-    grid_area_heights = define_gridareas(3435693.5,7550000.0, 20000000000,4)
-
-    print("",grid_area_heights)
+    #grid_area_heights = define_gridareas(3496480.06669129,7681517.961979784, 400000,4)
+    grid_area_heights = define_gridareas(60,10, 1500,4)
 
     # find the heights of each sub-area => area-heights
     for sub_area in grid_area_heights:
+        start = min(sub_area[2])
+        end = max(sub_area[2])
+
+        #test data
+        areazone = [(((min_point[0] - max_point[0]) * ((start[0]-center[0])/(area[1][0]-area[3][0]))) + (min_point[0] - max_point[0])/2 + max_point[0],
+                     (((min_point[1] - max_point[1]) * ((start[1]-center[1])/(area[1][1]-area[3][1]))) + (min_point[1] - max_point[1])/2 + min_point[1])),
+                    ((((min_point[0] - max_point[0]) * ((end[0]-center[0])/(area[1][0]-area[3][0]))) + (min_point[0] - max_point[0])/2 + max_point[0],
+                     (((min_point[1] - max_point[1]) * ((end[1]-center[1])/(area[1][1]-area[3][1])))) + (min_point[1] - max_point[1])/2 + min_point[1]))]
+        #print("areazone", areazone)
+
+        points_in_area = list(filter(lambda point_position: inArea(point_position, areazone), ice_points))
+        area_heights.append((sub_area[0],sub_area[1],find_height(points_in_area)))
 
         #main_vector = tuple(x - y for x, y in zip(area[2], area[0]))
         #sub_vector = tuple(x - y for x, y in zip(sub_area[2][2], sub_area[2][0]))
@@ -148,17 +162,15 @@ def calculate_area_data(center):
         #            tuple(x + y for x, y in zip(zone_limit[1], start_point)))
 
         #print("zone_limit",zone_limit)
-        print(type(ice_points[0]))
-        ice_points = list(filter(lambda point_position: inArea(point_position, ((int(-sub_area[2][0][0]),int(sub_area[2][0][1])),(int(-sub_area[2][2][0]),int(sub_area[2][2][1])))), ice_points))
+        #ice_points = list(filter(lambda point_position: inArea((float(point_position[0]),float(point_position[1]),(float(point_position[2]))), (((-sub_area[2][0][0]), (sub_area[2][0][1])), ((-sub_area[2][2][0]), (sub_area[2][2][1])))), ice_points))
         #ice_points = list(filter(lambda point_position: inArea(point_position, (((-areazone[0][0]),areazone[0][1]),(-areazone[2][0],areazone[2][1]))), ice_points))
         #ice_points = list(filter(lambda point_position: inArea(point_position, (((-3200000,7400000),(-3671212,7898422)))), ice_points))
-        print("ice",ice_points)
-        area_heights.append((sub_area[0],sub_area[1],find_height(ice_points)))
 
-    return area_heights
+        #print("ice",ice_points)
+        #area_heights.append((sub_area[0],sub_area[1],find_height(ice_points)))
 
-print(-3>-4)
-print(calculate_area_data((60.0,10.0)))
+    return area_heights
+#print(calculate_area_data((60.0,10.0)))
 
 
 
diff --git a/server/map/__pycache__/input_new_data.cpython-39.pyc b/server/map/__pycache__/input_new_data.cpython-39.pyc
index 4881eedf5ef43ca958dd3f3bc08a3990387c89ae..895a95e645fe34909fee7a3eabf48363211cab2d 100644
Binary files a/server/map/__pycache__/input_new_data.cpython-39.pyc and b/server/map/__pycache__/input_new_data.cpython-39.pyc differ
diff --git a/server/map/input_new_data.py b/server/map/input_new_data.py
index d52d93bac86442ecd7831831b234a271f7782a7f..600cd974cfc058863b1f418d7f12c3346f32c8b6 100644
--- a/server/map/input_new_data.py
+++ b/server/map/input_new_data.py
@@ -38,28 +38,31 @@ def input_new_Lidar_data(self, cursor, sensorId, bodyOfWater):
         print("area")
         print(areas_data)
         if(areas_data):
+            print("areas data",areas_data)
             for area in areas_data:
-                #if(len(area[2]) != 0):
-                average = sum(area[2])/len(area[2])
-                #else:
-                    #average = 0
-
+                if(len(area[2]) != 0):
+                    average = sum(area[2])/len(area[2])
+                    minimum_thickness = min(area[2])
+                else:
+                    average = 0
+                    minimum_thickness = 0
                 total_measurement_average += average
                 cursor.execute('''
                 INSERT INTO SubDivision(MeasurementID, SubDivisionID, GroupID, MinimumThickness, AverageThickness, CenterLatitude, CenterLongitude, Accuracy) VALUES
                     (?,?,?,?,?,?,?,?);
-                ''',(measurement_id, area[0], area[1], float(min(area[2])), float(average), float(latitude), float(longitude), float(1)))
+                ''',(measurement_id, area[0], area[1], float(minimum_thickness), float(average), float(latitude), float(longitude), float(1)))
 
             total_measurement_average = total_measurement_average / len(areas_data)
+
+            print("meas id ", measurement_id)
             # input the newly generated measurement_id and whole average thickness (soon to be implemented)
             cursor.execute('''
                 UPDATE Measurement
-                SET measurementID = ? AND WholeAverageThickness = ?
+                SET measurementID = ?, WholeAverageThickness = ?
                 WHERE MeasurementID IS NULL AND WholeAverageThickness = 0;
-            ''', (int(measurement_id), total_measurement_average),)
+            ''', (int(measurement_id), total_measurement_average), )
         else:
             print('No data found')
-        print("uwu3")
 
         # send the changes to the database
         cursor.connection.commit()
@@ -70,4 +73,4 @@ def input_new_Lidar_data(self, cursor, sensorId, bodyOfWater):
     except Exception as e:
         print("An error occurred", e)
         # rollback in case of error
-        cursor.connection.rollback()
\ No newline at end of file
+        cursor.connection.rollback()
diff --git a/server/sql_db/icedb b/server/sql_db/icedb
index 2b47b60d052434b9a32c5fa7d5bb044f59cf1974..e322b979e3371bb38f7a256e1b9416ae3b4a7659 100644
Binary files a/server/sql_db/icedb and b/server/sql_db/icedb differ