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

add: implement accuracy

parent 61cf2351
No related branches found
No related tags found
1 merge request!16Clhp map into main
...@@ -277,6 +277,10 @@ class _MapContainerWidgetState extends State<MapContainerWidget> { ...@@ -277,6 +277,10 @@ class _MapContainerWidgetState extends State<MapContainerWidget> {
'Measuring point: (${selectedMeasurement?.measurementID}, ${selectedMeasurement?.measurementID})', 'Measuring point: (${selectedMeasurement?.measurementID}, ${selectedMeasurement?.measurementID})',
style: regTextStyle, style: regTextStyle,
), ),
Text(
'Data certainty: ${selectedSubDiv?.accuracy}/4',
style: regTextStyle,
),
], ],
), ),
), ),
......
This diff is collapsed.
No preview for this file type
...@@ -50,21 +50,32 @@ def update_measurements(self, lake_name: str): ...@@ -50,21 +50,32 @@ def update_measurements(self, lake_name: str):
subdiv_id = sub_division['SubdivID'] subdiv_id = sub_division['SubdivID']
center_lat = sub_division['CenLatitude'] center_lat = sub_division['CenLatitude']
center_lng = sub_division['CenLongitude'] center_lng = sub_division['CenLongitude']
avg_thickness = sub_division['AvgThickness']
# 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))
# Ice statistics were retrieved successfully
if len(ice_stats) > 0 and len(ice_stats[0]) > 0:
accuracy = 3
else: # Failed to retrieve ice statistics
accuracy = 2
# Increase accuracy by 1 if the LiDar data and NVE data have a minimal discrepancy
if abs(avg_thickness - ice_stats[0]['Total ice (m)']) < 1.0:
accuracy = accuracy + 1
# Create new subdivision object # Create new subdivision object
sub_division = { sub_division = {
'SubdivID': subdiv_id, 'SubdivID': subdiv_id,
'GroupID': 0, 'GroupID': 0,
'MinThickness': sub_division['MinThickness'], 'MinThickness': avg_thickness,
'AvgThickness': sub_division['AvgThickness'], 'AvgThickness': sub_division['AvgThickness'],
'CenLatitude': center_lat, 'CenLatitude': center_lat,
'CenLongitude': center_lng, 'CenLongitude': center_lng,
'Accuracy': sub_division['Accuracy'], 'Accuracy': accuracy,
'Color': calculateColor(sub_division['MinThickness'], ), 'Color': calculateColor(sub_division['MinThickness'], ),
# NB color calculated based on average thickness, should be minimum 'IceStats': ice_stats,
# Fetch weather data from the NVE model
'IceStats': get_raw_dates(
ice_prognosis_raw_data(sub_div_id=subdiv_id, x=center_lat, y=center_lng))
} }
sub_div_ids.append(subdiv_id) sub_div_ids.append(subdiv_id)
...@@ -146,12 +157,12 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list): ...@@ -146,12 +157,12 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list):
# temp_date = [datetime(2023, 12, 12)] # temp_date = [datetime(2023, 12, 12)]
ice_stats = get_raw_dates(ice_prognosis_raw_data(sub_div_id=sub_div_id, x=center_lat, y=center_lng)) ice_stats = get_raw_dates(ice_prognosis_raw_data(sub_div_id=sub_div_id, x=center_lat, y=center_lng))
print("Came here: ", sub_div_id)
if len(ice_stats) > 0 and len(ice_stats[0]) > 0: if len(ice_stats) > 0 and len(ice_stats[0]) > 0:
total_ice_thickness = ice_stats[0]['Total ice (m)'] total_ice_thickness = ice_stats[0]['Total ice (m)']
accuracy = 1
else: else:
print("Total ice is none: ", sub_div_id)
total_ice_thickness = 0 total_ice_thickness = 0
accuracy = 0
# Create new subdivision object # Create new subdivision object
sub_division = { sub_division = {
...@@ -161,13 +172,12 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list): ...@@ -161,13 +172,12 @@ def fill_remaining_subdivisions(lake_name: str, processed_ids: list):
'AvgThickness': total_ice_thickness, 'AvgThickness': total_ice_thickness,
'CenLatitude': center_lat, 'CenLatitude': center_lat,
'CenLongitude': center_lng, 'CenLongitude': center_lng,
'Accuracy': None, 'Accuracy': accuracy,
# Calculate ice thickness based on total ice, temporary # Calculate ice thickness based on total ice, temporary
# 'Color': calculateColor(ice_stats[0]['Total ice (m)']), # 'Color': calculateColor(ice_stats[0]['Total ice (m)']),
'Color': calculateColor(random.randint(0, 20)), # NB placeholder 'Color': calculateColor(random.randint(0, 20)), # NB placeholder
'IceStats': ice_stats, 'IceStats': ice_stats,
} }
print("Came here 2: ", sub_div_id)
sub_divisions.append(sub_division) sub_divisions.append(sub_division)
return sub_divisions return sub_divisions
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment