✨ feat(data_processing.py): add function to calculate morphological indicators from discrete data The variable name teta_diffs was changed to theta_diffs to improve semantics. A new function was added to calculate morphological indicators from discrete data. The function calculates Tortuosity, Volume, Surface, Mean radius, Standard deviation of radius, Sigma r tot, MI_l, and MI_p. 🔥 refactor(input.py): remove unused result_file_path parameter from ScannedObject constructor and from_xyz_file method ✨ feat(input.py): add encoding parameter to open method in from_obj_file and from_xyz_file methods The result_file_path parameter was not being used in the ScannedObject constructor and from_xyz_file method, so it was removed to simplify the code. The encoding parameter was added to the open method in the from_obj_file and from_xyz_file methods to ensure that the files are opened with the correct encoding. 🐛 fix(output.py): add utf-8 encoding when writing to output file ✨ feat(output.py): remove unused import and function argument, improve code readability The fix adds the utf-8 encoding when writing to the output file to avoid encoding issues. The feat removes the unused import and function argument to improve code readability. The function format_data now only takes the necessary arguments and the unused import is removed. 🐛 fix(main_window.py): fix typo in function name ✨ feat(main_window.py): add persistence to pre-processed data The fix corrects a typo in the function name get_true_theta_from_x_y. The feat adds persistence to the pre-processed data by storing the raw data, discrete data, and advanced data in the main window. This avoids re-computation of the data when switching between tabs. 🎨 style(MainWindow.ui): add export_advanced_metrics button to the UI 🎨 style(UI_MainWindow.py): add export_advanced_metrics button to the UI 🎨 style(ressources_rc.py): update the resource file 🐛 fix(data_extraction.py): fix typo in function name get_mean_teta to get_mean_theta The changes add a new button to the UI named "export_advanced_metrics" which allows the user to export variables. The resource file is updated to reflect the changes. The typo in the function name get_mean_teta is fixed to get_mean_theta.
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
"""
|
|
Created on Fri Apr 21 2023
|
|
@name: visplot_render.py
|
|
@desc: A module to render a 2D data using vispy
|
|
@auth: Djalim Simaila
|
|
@e-mail: djalim.simaila@inrae.fr
|
|
"""
|
|
import vispy.plot as vp
|
|
import numpy as np
|
|
|
|
def render2D(values:list,title:str,xlabel="",ylabel="",show:bool=True)->vp.Fig|None:
|
|
"""
|
|
Render a 2D plot using vispy
|
|
|
|
:param values: A list with the values
|
|
:param title: Title of the plot
|
|
:param xlabel: Label of the x axis
|
|
:param ylabel: Label of the y axis
|
|
:param show: If True, show the plot in its own window, else return the canvas
|
|
"""
|
|
fig = vp.Fig(size=(600, 500), show=False)
|
|
plotwidget = fig[0, 0]
|
|
fig.title = title
|
|
plotwidget.plot(values,
|
|
marker_size=0,
|
|
width=2,
|
|
title=title,
|
|
xlabel=xlabel,
|
|
ylabel=ylabel)
|
|
if show:
|
|
fig.show(run=True)
|
|
else:
|
|
return fig
|
|
|
|
def cross_section(x_values:list, y_values:list,title:str,xlabel="",ylabel="",show:bool=True)->vp.Fig|None:
|
|
"""
|
|
Render a 2D cross section using vispy
|
|
|
|
:param x: A list with the x values
|
|
:param y: A list with the y values
|
|
:param title: Title of the plot
|
|
:param xlabel: Label of the x axis
|
|
:param ylabel: Label of the y axis
|
|
:param show: If True, show the plot in its own window, else return the canvas
|
|
"""
|
|
color = (0.3, 0.5, 0.8,.8)
|
|
fig = vp.Fig(show=False)
|
|
line = fig[0:4, 0:4].plot(np.column_stack((x_values,y_values)),
|
|
symbol='disc',
|
|
width=0,
|
|
face_color=color,
|
|
edge_color=None,
|
|
marker_size=8,
|
|
title=title,
|
|
xlabel=xlabel,
|
|
ylabel=ylabel)
|
|
line.set_gl_state(depth_test=False)
|
|
if show:
|
|
fig.show(run=True)
|
|
else:
|
|
return fig |