Skip to content
Snippets Groups Projects
Commit c9a93347 authored by Sara Savanovic Djordjevic's avatar Sara Savanovic Djordjevic
Browse files

fix: minor bug in subdivision sorting, app

parent badd78b7
No related branches found
No related tags found
1 merge request!19Clhp map, license agreement
...@@ -10,7 +10,7 @@ const String serverURI = "https://127.0.0.1:$port/"; ...@@ -10,7 +10,7 @@ const String serverURI = "https://127.0.0.1:$port/";
const String mapEndpoint = "update_map"; const String mapEndpoint = "update_map";
// Map variables // Map variables
String selectedLake = 'Mjøsa'; // NB should be initialised to last selected lake String selectedLake = 'Skumsjøen';
Uint8List selectedRelation = Uint8List(0); // Initialised in init_state.dart Uint8List selectedRelation = Uint8List(0); // Initialised in init_state.dart
List<Measurement> selectedMeasurements = []; List<Measurement> selectedMeasurements = [];
List<SubDiv> selectedSubdivisions = []; List<SubDiv> selectedSubdivisions = [];
......
...@@ -51,7 +51,11 @@ Future<void> initialiseState(bool fetchSearchOptions) async { ...@@ -51,7 +51,11 @@ Future<void> initialiseState(bool fetchSearchOptions) async {
} }
// Sort the list of SubDiv objects based on each subdivision id // Sort the list of SubDiv objects based on each subdivision id
selectedSubdivisions.sort((a, b) => a.sub_div_id.compareTo(b.sub_div_id)); selectedSubdivisions.sort((a, b) => int.parse(a.sub_div_id).compareTo(int.parse(b.sub_div_id)));
for (SubDiv subdivision in selectedSubdivisions) {
print("SubdivID: ${subdivision.sub_div_id}");
}
serverConnection = fetchResult.connected; serverConnection = fetchResult.connected;
setLastLake(); // Update persistent value for latest fetched lake setLastLake(); // Update persistent value for latest fetched lake
......
...@@ -64,11 +64,10 @@ class _MapContainerWidgetState extends State<MapContainerWidget> { ...@@ -64,11 +64,10 @@ class _MapContainerWidgetState extends State<MapContainerWidget> {
void handleSelection(int index) { void handleSelection(int index) {
String indexString = index.toString(); String indexString = index.toString();
setState(() { setState(() {
selectedSubDiv = widget.subdivisions[index];
for (Measurement measurement in widget.measurements) { for (Measurement measurement in widget.measurements) {
for (SubDiv subdivision in measurement.subDivs) { for (SubDiv subdivision in measurement.subDivs) {
if (subdivision.sub_div_id == indexString) { if (subdivision.sub_div_id == indexString) {
selectedSubDiv = subdivision;
selectedMeasurement = measurement; selectedMeasurement = measurement;
break; break;
} }
......
...@@ -3225,3 +3225,87 @@ ...@@ -3225,3 +3225,87 @@
13:21: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3. 13:21: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
13:21: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575. 13:21: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
13:21: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375. 13:21: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-10 06:00:00 tm. Adding avg value -11.049999999999969.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-17 06:00:00 tm. Adding avg value -15.449999999999989.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sdfsw. Adding avg value 15.025000000000002.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sdfsw. Adding avg value 9.662500000000001.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-01-18 06:00:00 sd. Adding avg value 35.3.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-17 06:00:00 sd. Adding avg value 67.575.
18:02: weatherelement.py -> patch_novalue_in_weather_element_list: Value missing on UTM33 X266707 Y6749365 2024-02-18 06:00:00 sd. Adding avg value 66.6375.
File deleted
No preview for this file type
No preview for this file type
[ [
"Mjøsa", "Mjøsa",
"Skumsjøen" "Skumsjøen",
"skumsjøen"
] ]
\ No newline at end of file
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -3,7 +3,8 @@ import json ...@@ -3,7 +3,8 @@ import json
import random import random
from datetime import datetime from datetime import datetime
from server.consts import LAKE_RELATIONS_PATH, STATS_OUTPUT_PATH from server.consts import LAKE_RELATIONS_PATH
from server.ModelFromNVE.icemodellingscripts.getIceThicknessLakes import get_raw_dates, ice_prognosis_raw_data
def update_measurements_handler(self, lake_name: str): def update_measurements_handler(self, lake_name: str):
...@@ -13,7 +14,7 @@ def update_measurements_handler(self, lake_name: str): ...@@ -13,7 +14,7 @@ def update_measurements_handler(self, lake_name: str):
self.send_header("Content-type", "application/json") self.send_header("Content-type", "application/json")
self.end_headers() self.end_headers()
self.wfile.write(measurement_data) self.wfile.write(measurement_data.encode('utf-8'))
def update_measurements(lake_name: str) -> (int, str): def update_measurements(lake_name: str) -> (int, str):
...@@ -22,8 +23,6 @@ def update_measurements(lake_name: str) -> (int, str): ...@@ -22,8 +23,6 @@ def update_measurements(lake_name: str) -> (int, str):
Parameters: Parameters:
lake_name (str): The name of the requested lake lake_name (str): The name of the requested lake
Returns:
(int, str): A HTTP status code and the updated data
""" """
try: try:
# Return immediately if an invalid lake name was provided # Return immediately if an invalid lake name was provided
...@@ -32,24 +31,18 @@ def update_measurements(lake_name: str) -> (int, str): ...@@ -32,24 +31,18 @@ def update_measurements(lake_name: str) -> (int, str):
return 404, f"{lake_name} does not exists in the system" return 404, f"{lake_name} does not exists in the system"
# Define file path to lidar data file # Define file path to lidar data file
lidar_data_path = os.path.join(LAKE_RELATIONS_PATH, lake_name + '_lidar_data.json') file_path = os.path.join(LAKE_RELATIONS_PATH, lake_name + '_lidar_data.json')
# Lists to store processed data # Lists to store processed data
sub_div_ids = [] sub_div_ids = []
measurements = [] measurements = []
# Some lakes may not have any recent lidar data, so must check if the file exists # Some lakes may not have any recent lidar data, so must check if the file exists
if os.path.exists(lidar_data_path): if os.path.exists(file_path):
# Read the newest lidar data from JSON file # Read the newest lidar data from JSON file
with open(lidar_data_path, 'r') as file: with open(file_path, 'r') as file:
lidar_data = json.load(file) lidar_data = json.load(file)
all_ice_stats = []
if os.path.exists(STATS_OUTPUT_PATH + lake_name + "_sub_div.json"):
# Tro to read ice stats from NVE model for current lake
with open(STATS_OUTPUT_PATH + lake_name + "_sub_div.json", 'r') as file:
all_ice_stats = json.load(file)
# Iterate over all fetched rows # Iterate over all fetched rows
for measurement in lidar_data: for measurement in lidar_data:
processed_subdivs = [] processed_subdivs = []
...@@ -75,18 +68,19 @@ def update_measurements(lake_name: str) -> (int, str): ...@@ -75,18 +68,19 @@ def update_measurements(lake_name: str) -> (int, str):
center_lng = round(sub_division['CenLongitude'], 4) center_lng = round(sub_division['CenLongitude'], 4)
avg_thickness = sub_division['AvgThickness'] avg_thickness = sub_division['AvgThickness']
# Initialise list for the current ice stats # Read from json file
ice_stats = [] # lakName_sub_div.json
# Add center coord txt file
# Retrieve ice statistics for current subdivision
ice_stats = get_raw_dates(ice_prognosis_raw_data(sub_div_id=subdiv_id, x=center_lat, y=center_lng))
print("Fails here?")
# Ice statistics were retrieved successfully # Ice statistics were retrieved successfully
if len(all_ice_stats) >= subdiv_id is not None or all_ice_stats[subdiv_id] != "Null": if len(ice_stats) > 0 and len(ice_stats[0]) > 0:
ice_stats = all_ice_stats[subdiv_id]
accuracy = 3 accuracy = 3
print("Fails here, later?")
# Increase accuracy by 1 if the LiDar data and NVE data have a minimal discrepancy # Increase accuracy by 1 if the LiDar data and NVE data have a minimal discrepancy
if abs(avg_thickness - all_ice_stats[subdiv_id][3]['Black ice (m)']) < 1.0: if abs(avg_thickness - ice_stats[0]['Total ice (m)']) < 1.0:
accuracy = 4 accuracy = 4
else: # Failed to retrieve ice statistics, initialise empty ice stats object else: # Failed to retrieve ice statistics, initialise empty ice stats object
ice_stats = { ice_stats = {
...@@ -123,7 +117,7 @@ def update_measurements(lake_name: str) -> (int, str): ...@@ -123,7 +117,7 @@ def update_measurements(lake_name: str) -> (int, str):
measurements.append(new_measurement) measurements.append(new_measurement)
# Populate remaining non-processed subdivisions and create "invalid" or "proxy" measurement to store them # Populate remaining non-processed subdivisions and create "invalid" or "proxy" measurement to store them
remaining_sub_divs = fill_remaining_subdivisions(lake_name, sub_div_ids, all_ice_stats) remaining_sub_divs = fill_remaining_subdivisions(lake_name, sub_div_ids)
proxy = { proxy = {
'MeasurementID': -1, 'MeasurementID': -1,
'TimeMeasured': str(datetime.now()), 'TimeMeasured': str(datetime.now()),
...@@ -141,22 +135,21 @@ def update_measurements(lake_name: str) -> (int, str): ...@@ -141,22 +135,21 @@ def update_measurements(lake_name: str) -> (int, str):
# Convert list of dictionaries to JSON # Convert list of dictionaries to JSON
response_data = json.dumps(measurements, indent=4) response_data = json.dumps(measurements, indent=4)
# Set headers
# Return data
return 200, response_data return 200, response_data
except Exception as e: except Exception as e:
print(f"Error in updating measurements: {e}")
return 500, f"Error in updating measurements: {e}".encode('utf-8') return 500, f"Error in updating measurements: {e}".encode('utf-8')
def fill_remaining_subdivisions(lake_name: str, processed_ids: list, all_ice_stats): def fill_remaining_subdivisions(lake_name: str, processed_ids: list):
""" """
Returns a list of subdivision dictionaries for subdivisions without measurements. Returns a list of subdivision dictionaries for subdivisions without measurements.
Parameters: Parameters:
lake_name (str): The name of the requested file/lake lake_name (str): The name of the requested file/lake
processed_ids (list): List of ids (int) of all subdivisions that have already been processed processed_ids (list): List of ids (int) of all subdivisions that have already been processed
Returns: Returns:
sub_divisions (list): A list of subdivision dictionaries sub_divisions (list): A list of subdivision dictionaries
""" """
...@@ -177,11 +170,10 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list, all_ice_sta ...@@ -177,11 +170,10 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list, all_ice_sta
center_lng = round(sub_div['properties']['sub_div_center'][1], 4) center_lng = round(sub_div['properties']['sub_div_center'][1], 4)
# Fetch weather data for each subdivision from the NVE model # Fetch weather data for each subdivision from the NVE model
ice_stats = [] ice_stats = get_raw_dates(ice_prognosis_raw_data(sub_div_id=sub_div_id, x=center_lat, y=center_lng))
if len(all_ice_stats) >= sub_div_id and all_ice_stats[sub_div_id] != "Null": if len(ice_stats) > 0 and len(ice_stats[0]) > 0:
ice_stats = all_ice_stats[sub_div_id] total_ice_thickness = ice_stats[0]['Total ice (m)']
total_ice_thickness = ice_stats[0]['Black ice (m)']
accuracy = 1 accuracy = 1
else: # Initialise empty ice stats else: # Initialise empty ice stats
ice_stats = { ice_stats = {
...@@ -207,7 +199,9 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list, all_ice_sta ...@@ -207,7 +199,9 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list, all_ice_sta
'CenLatitude': center_lat, 'CenLatitude': center_lat,
'CenLongitude': center_lng, 'CenLongitude': center_lng,
'Accuracy': accuracy, 'Accuracy': accuracy,
'Color': calculateColor(total_ice_thickness), # Calculate ice thickness based on total ice, temporary
# 'Color': calculateColor(ice_stats[0]['Total ice (m)']),
'Color': calculateColor(ice_stats[0]['Black ice (m)']),
'IceStats': ice_stats, 'IceStats': ice_stats,
} }
sub_divisions.append(sub_division) sub_divisions.append(sub_division)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment