diff --git a/server/APIs/__pycache__/get_weather.cpython-39.pyc b/server/APIs/__pycache__/get_weather.cpython-39.pyc index f8858872de717cd7d93b420283a1654752615aec..6a4217c61d5d10230214c9f68adf82ae4e7d0ed4 100644 Binary files a/server/APIs/__pycache__/get_weather.cpython-39.pyc and b/server/APIs/__pycache__/get_weather.cpython-39.pyc differ diff --git a/server/__pycache__/consts.cpython-39.pyc b/server/__pycache__/consts.cpython-39.pyc index ff162bfb6d8c2b2d4564d94fc8fb72b874a69df4..eeb75f82b9a15f779acada9e282ada5a3919fb91 100644 Binary files a/server/__pycache__/consts.cpython-39.pyc and b/server/__pycache__/consts.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 ed6b00f7f03e667fd4b21e59cb7f512854ed06c6..47edf95b89a3f2a16363fcc7430b1e02bc70d60d 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 new file mode 100644 index 0000000000000000000000000000000000000000..b88f1c1ccf62aea4e4c9f49163bd62854e8613be --- /dev/null +++ b/server/data_processing/area_processing.py @@ -0,0 +1,51 @@ +from math import pi, cos + +EARTH = 6378.137 # Radius of the earth in kilometer +METER = (1 / ((2 * pi / 360) * EARTH)) / 1000 # 1 meter in degree + +def calculate_corners(lat, lng, area_offset): + """Calculate corners of polygon based on a center coordinate + + Arguments: + lat -- center latitude + lng -- center longitude + """ + # From https://stackoverflow.com/questions/7477003/calculating-new-longitude-latitude-from-old-n-meters + # Formulas: + lat_pos = lat + (area_offset * METER) + lng_pos = lng + (area_offset * METER) / cos(lat * (pi / 180)) + + lat_neg = lat - (area_offset * METER) + lng_neg = lng - (area_offset * METER) / cos(lat * (pi / 180)) + + return [ + (lat_neg, lng_pos), # top left + (lat_pos, lng_pos), # top right + (lat_pos, lng_neg), # bottom right + (lat_neg, lng_neg) # bottom left + ] + '''return [(60.7798, 10.7062), # NB: temporary hardcoded values + (60.7553, 10.7433), + (60.7718, 10.7975), + (60.7966, 10.7405)]''' + +def define_gridareas(lat, lng, area_offset, grid_size): + return_value = [] + main_area = calculate_corners(lat, lng, area_offset) + area_size = (main_area[0][0] - main_area[2][0], main_area[0][1] - main_area[2][1]) + dist_to_subcenter = (area_size[0]/(grid_size*2), area_size[1]/(grid_size*2)) + subarea_offset = area_offset/grid_size + print(area_size) + print(dist_to_subcenter) + for y in range(grid_size-1): + relative_size_lng = y / grid_size + for x in range(grid_size-1): + relative_size_lat = x / grid_size + lat_pos = main_area[0][0] + relative_size_lat * area_size[0] - dist_to_subcenter[0] + lng_pos = main_area[0][1] + relative_size_lng * area_size[1] - dist_to_subcenter[1] + return_value.append(calculate_corners(lat_pos, lng_pos,subarea_offset)) + + return return_value + +print(calculate_corners(60,10,1500)) +print(define_gridareas(60,10,1500,4)) \ No newline at end of file diff --git a/server/main.py b/server/main.py index 90c4048f8c59ea441269c4301db6572ff0f6d90d..021581b66bad5d2d02f87f82d89824754cd1358a 100644 --- a/server/main.py +++ b/server/main.py @@ -2,6 +2,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 +from map.input_new_data import input_new_Lidar_data +#from map.get_relation import get_relation from APIs.get_weather import get_weather import ssl import keyboard diff --git a/server/map/__pycache__/get_markers.cpython-39.pyc b/server/map/__pycache__/get_markers.cpython-39.pyc index cc7f240b40c18edd6be1771b577755de32cccab0..c1b95c053be539be6996efc2239388bcdada2a33 100644 Binary files a/server/map/__pycache__/get_markers.cpython-39.pyc and b/server/map/__pycache__/get_markers.cpython-39.pyc differ diff --git a/server/map/__pycache__/get_relation.cpython-39.pyc b/server/map/__pycache__/get_relation.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a9aa82b5f430dc0f6cbd1672148de6d7fae5e6d8 Binary files /dev/null and b/server/map/__pycache__/get_relation.cpython-39.pyc differ diff --git a/server/map/__pycache__/input_new_data.cpython-39.pyc b/server/map/__pycache__/input_new_data.cpython-39.pyc index 673649fd0412e6fd0fa2c004c01e4a38123e7fda..0bd02d71bf69b6ab2b4ebf9ed26a4e027128f49a 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/get_markers.py b/server/map/get_markers.py index bf7e9e11c1d529040274e69ecc974726bcd88e14..24e856537ccaaee7885831d60742f38a8832d98d 100644 --- a/server/map/get_markers.py +++ b/server/map/get_markers.py @@ -1,6 +1,4 @@ import json -from math import pi, cos - # get_markers requests all marker data or valid markers, converts the data to json, and writes # the data to the response object @@ -91,37 +89,3 @@ def get_all_markers(self, cursor, valid: bool, waterBodyName): # Write marker data to response object self.wfile.write(marker_data.encode('utf-8')) - - -EARTH = 6378.137 # Radius of the earth in kilometer -METER = (1 / ((2 * pi / 360) * EARTH)) / 1000 # 1 meter in degree -OFFSET = 20 # Offset in meters - - -def calculate_corners(lat, lng): - """Calculate corners of polygon based on a center coordinate - - Arguments: - lat -- center latitude - lng -- center longitude - """ - # From https://stackoverflow.com/questions/7477003/calculating-new-longitude-latitude-from-old-n-meters - # Formulas: - ''' - lat_pos = lat + (OFFSET * METER) - lng_pos = lng + (OFFSET * METER) / cos(lat * (pi / 180)) - - lat_neg = lat - (OFFSET * METER) - lng_neg = lng - (OFFSET * METER) / cos(lat * (pi / 180)) - - return [ - (lat_neg, lng_pos), - (lat_pos, lng_pos), - (lat_pos, lng_neg), - (lat_neg, lng_neg) - ] ''' - - return [(60.7798, 10.7062), # NB: temporary hardcoded values - (60.7553, 10.7433), - (60.7718, 10.7975), - (60.7966, 10.7405)] diff --git a/server/map/input_new_data.py b/server/map/input_new_data.py index ae0965bb208d57055e4aa42e64f05877b12baf04..b032150f3f3dc5db87bcf16d1aaca995503680c3 100644 --- a/server/map/input_new_data.py +++ b/server/map/input_new_data.py @@ -8,7 +8,7 @@ def input_new_Lidar_data(self, cursor, sensorId, bodyOfWater): cursor.execute(''' INSERT INTO Measurement( SensorID, TimeMeasured, WaterBodyName, WholeAverageThickness) VALUES (?,?,?,?); - ''', ( sensorId, datetime.utcnow().replace(microsecond=0), bodyOfWater,0)) + ''', ( sensorId, datetime.utcnow().replace(microsecond=0), bodyOfWater, 0)) # auto generate new measurement id measurement_id = cursor.lastrowid