mirror of
https://gitea.psi.ch/APOG/acsmnode.git
synced 2025-06-25 16:55:44 +02:00
Added filter to flags dropdown menu, now only invalid flags are displayed.
This commit is contained in:
@ -28,7 +28,6 @@ import dima.src.hdf5_ops as hdf5_ops
|
|||||||
#filereader_registry.file_extensions.append('.json')
|
#filereader_registry.file_extensions.append('.json')
|
||||||
#filereader_registry.file_readers.update({'ACSM_TOFWARE_flags_json' : lambda x: flag_reader.read_jsonflag_as_dict(x)})
|
#filereader_registry.file_readers.update({'ACSM_TOFWARE_flags_json' : lambda x: flag_reader.read_jsonflag_as_dict(x)})
|
||||||
|
|
||||||
|
|
||||||
# Initialize Dash app with Bootstrap theme
|
# Initialize Dash app with Bootstrap theme
|
||||||
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
|
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.BOOTSTRAP])
|
||||||
|
|
||||||
@ -60,7 +59,7 @@ app.layout = dbc.Container([
|
|||||||
}),
|
}),
|
||||||
dcc.Dropdown(
|
dcc.Dropdown(
|
||||||
id='flag-options',
|
id='flag-options',
|
||||||
options=data_flagging_utils.dropdown_menu_options,
|
options= data_flagging_utils.filter_flags_by_label(data_flagging_utils.flags_dict,'I'), # displays only flags to invalidate
|
||||||
)],
|
)],
|
||||||
width=12
|
width=12
|
||||||
),
|
),
|
||||||
@ -309,6 +308,6 @@ def commit_flag(n_clicks,flag_value,selected_Data, data):
|
|||||||
#data = [json_flagsobject[key] for key in json_flagsobject.keys()]
|
#data = [json_flagsobject[key] for key in json_flagsobject.keys()]
|
||||||
|
|
||||||
return data
|
return data
|
||||||
if __name__ == '__main__':
|
|
||||||
app.run_server(debug=True)
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
app.run_server(debug=True, use_reloader=False)
|
@ -26,8 +26,6 @@ flags_dict = {
|
|||||||
"999" : {"flag_label": 'I', "flag_description": "Missing measurement, unspecified reason"}
|
"999" : {"flag_label": 'I', "flag_description": "Missing measurement, unspecified reason"}
|
||||||
}
|
}
|
||||||
|
|
||||||
dropdown_menu_options = [{'label': flags_dict[key]['flag_description'], 'value': key} for key in flags_dict.keys()]
|
|
||||||
|
|
||||||
def save_file(name, content):
|
def save_file(name, content):
|
||||||
# Decode the content and save the file
|
# Decode the content and save the file
|
||||||
content_type, content_string = content.split(',')
|
content_type, content_string = content.split(',')
|
||||||
@ -37,6 +35,23 @@ def save_file(name, content):
|
|||||||
f.write(decoded)
|
f.write(decoded)
|
||||||
return file_path
|
return file_path
|
||||||
|
|
||||||
|
def filter_flags_by_label(flags_dict, label):
|
||||||
|
"""
|
||||||
|
Filters the flags dictionary by the specified label.
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
-----------
|
||||||
|
flags_dict (dict): The dictionary containing flags.
|
||||||
|
label (str): The label to filter by ('I' or 'V').
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
--------
|
||||||
|
list: A list of dictionaries with 'label' and 'value' for the specified label.
|
||||||
|
"""
|
||||||
|
return [{'label': value['flag_description'], 'value': code}
|
||||||
|
for code, value in flags_dict.items() if value['flag_label'] == label]
|
||||||
|
|
||||||
|
|
||||||
def create_loaded_file_figure(file_path, instfolder):
|
def create_loaded_file_figure(file_path, instfolder):
|
||||||
|
|
||||||
DataOpsAPI = h5de.HDF5DataOpsManager(file_path)
|
DataOpsAPI = h5de.HDF5DataOpsManager(file_path)
|
||||||
@ -165,7 +180,12 @@ class FlaggingAppDataManager():
|
|||||||
flag_obj = file_obj[f'{instFolder}_flags'][flag]['data_table']
|
flag_obj = file_obj[f'{instFolder}_flags'][flag]['data_table']
|
||||||
|
|
||||||
# Replace values indicated by flag NaN if flag label refers to invalidated data.
|
# Replace values indicated by flag NaN if flag label refers to invalidated data.
|
||||||
if flag_obj['flag_label'][0].decode() == 'I':
|
if not flag_obj['flag_code'][0].decode() is 'None':
|
||||||
|
flag_label = ''
|
||||||
|
else:
|
||||||
|
flag_label = flag_obj['flag_label'][0].decode()
|
||||||
|
|
||||||
|
if flag_label == 'I':
|
||||||
t1 = pd.to_datetime(flag_obj['startdate'][0].decode(), format=flag_datetime_format)
|
t1 = pd.to_datetime(flag_obj['startdate'][0].decode(), format=flag_datetime_format)
|
||||||
t2 = pd.to_datetime(flag_obj['enddate'][0].decode(), format=flag_datetime_format)
|
t2 = pd.to_datetime(flag_obj['enddate'][0].decode(), format=flag_datetime_format)
|
||||||
|
|
||||||
@ -201,7 +221,7 @@ class FlaggingAppDataManager():
|
|||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self._data_ops_obj.unload_file_obj()
|
self._data_ops_obj.unload_file_obj()
|
||||||
print(f"An unexpected error occurred: {e}."
|
print(f"An unexpected error occurred: {e}"
|
||||||
"The file object has been properly closed.")
|
"The file object has been properly closed.")
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user