general improvement
This commit is contained in:
parent
f220783aca
commit
fb884b82ba
35
main.py
35
main.py
@ -3,8 +3,9 @@ from utils.files import output
|
|||||||
from utils.files.input import ScannedObject
|
from utils.files.input import ScannedObject
|
||||||
from utils.math.position_manipulation import verticalise
|
from utils.math.position_manipulation import verticalise
|
||||||
from utils.graph3D.visplot_render import render3D
|
from utils.graph3D.visplot_render import render3D
|
||||||
|
import time
|
||||||
|
|
||||||
def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
|
def get_raw_data(obj:ScannedObject, ndigits:int, delta_z:int = 1)->dict:
|
||||||
"""
|
"""
|
||||||
Calculates data from the given object
|
Calculates data from the given object
|
||||||
|
|
||||||
@ -23,7 +24,7 @@ def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
|
|||||||
data = {}
|
data = {}
|
||||||
for colone in colones:
|
for colone in colones:
|
||||||
data[colone] = []
|
data[colone] = []
|
||||||
for discrete_values in obj.get_discrete_vertices():
|
for discrete_values in obj.get_discrete_vertices(delta_z):
|
||||||
mean_x ,mean_y, mean_z = data_extraction.get_x_y_z_mean(discrete_values)
|
mean_x ,mean_y, mean_z = data_extraction.get_x_y_z_mean(discrete_values)
|
||||||
for x,y,z in discrete_values:
|
for x,y,z in discrete_values:
|
||||||
data["X (en mm)"].append(round(x, ndigits))
|
data["X (en mm)"].append(round(x, ndigits))
|
||||||
@ -35,7 +36,7 @@ def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
|
|||||||
data["Yi-Ymoy"].append(round(y-mean_y, ndigits))
|
data["Yi-Ymoy"].append(round(y-mean_y, ndigits))
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
|
def get_discrete_data(obj:ScannedObject, ndigits:int,delta_z:int= 1)->dict:
|
||||||
"""
|
"""
|
||||||
Calculates data from the given object
|
Calculates data from the given object
|
||||||
|
|
||||||
@ -52,7 +53,7 @@ def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
|
|||||||
data = {}
|
data = {}
|
||||||
for colone in colones:
|
for colone in colones:
|
||||||
data[colone] = []
|
data[colone] = []
|
||||||
for discrete_values in obj.get_discrete_vertices():
|
for discrete_values in obj.get_discrete_vertices(delta_z):
|
||||||
x,y,z = data_extraction.get_x_y_z_mean(discrete_values)
|
x,y,z = data_extraction.get_x_y_z_mean(discrete_values)
|
||||||
data["X moy (en mm)"].append(round(x, ndigits))
|
data["X moy (en mm)"].append(round(x, ndigits))
|
||||||
data["Y moy (en mm)"].append(round(y, ndigits))
|
data["Y moy (en mm)"].append(round(y, ndigits))
|
||||||
@ -66,12 +67,26 @@ def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
|
|||||||
|
|
||||||
def main():
|
def main():
|
||||||
# Create an object from the given file
|
# Create an object from the given file
|
||||||
|
total_time = time.time()
|
||||||
|
print("Loading file...")
|
||||||
|
t = time.time()
|
||||||
obj = ScannedObject.from_obj_file("datasets/Barette/1 - BARETTE.obj")
|
obj = ScannedObject.from_obj_file("datasets/Barette/1 - BARETTE.obj")
|
||||||
|
print("File loaded in {} seconds".format(time.time()-t))
|
||||||
|
t = time.time()
|
||||||
|
print("Verticalising object...")
|
||||||
verticalise(obj)
|
verticalise(obj)
|
||||||
|
print("Object verticalised in {} seconds".format(time.time()-t))
|
||||||
|
t = time.time()
|
||||||
|
print("Normalising object...")
|
||||||
obj.normalise()
|
obj.normalise()
|
||||||
|
print("Object normalised in {} seconds".format(time.time()-t))
|
||||||
|
|
||||||
# Calculate raw data and save it in a file
|
# Calculate raw data and save it in a file
|
||||||
data = get_raw_data(obj, 6)
|
t = time.time()
|
||||||
|
data = get_raw_data(obj, 6,2)
|
||||||
|
print("Raw data calculated in {} seconds".format(time.time()-t))
|
||||||
|
t = time.time()
|
||||||
|
print("Saving data...")
|
||||||
output.save_output_file('analyse_brute.txt',
|
output.save_output_file('analyse_brute.txt',
|
||||||
output.format_data(data,
|
output.format_data(data,
|
||||||
'\t',
|
'\t',
|
||||||
@ -82,9 +97,15 @@ def main():
|
|||||||
"rayon (en mm)",
|
"rayon (en mm)",
|
||||||
"Xi-Xmoy",
|
"Xi-Xmoy",
|
||||||
"Yi-Ymoy"] ))
|
"Yi-Ymoy"] ))
|
||||||
|
print("Data saved in {} seconds".format(time.time()-t))
|
||||||
|
|
||||||
# Calculate discrete data and save it in a file
|
# Calculate discrete data and save it in a file
|
||||||
data = get_discrete_data(obj, 6)
|
t = time.time()
|
||||||
|
print("Calculating discrete data...")
|
||||||
|
data = get_discrete_data(obj, 6,2)
|
||||||
|
print("Discrete data calculated in {} seconds".format(time.time()-t))
|
||||||
|
t = time.time()
|
||||||
|
print("Saving data...")
|
||||||
output.save_output_file('analyse_rayon.txt',
|
output.save_output_file('analyse_rayon.txt',
|
||||||
output.format_data(data,
|
output.format_data(data,
|
||||||
'\t',
|
'\t',
|
||||||
@ -94,6 +115,8 @@ def main():
|
|||||||
"Delta z(en mm)",
|
"Delta z(en mm)",
|
||||||
"Rayon moyen (en mm)",
|
"Rayon moyen (en mm)",
|
||||||
"Rayon ecart type (en mm)"] ))
|
"Rayon ecart type (en mm)"] ))
|
||||||
|
print("Data saved in {} seconds".format(time.time()-t))
|
||||||
|
print("Total time : {} seconds".format(time.time()-total_time))
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
@ -32,7 +32,7 @@ def format_data(data:dict, separator:str, selected_columns:list = None) -> str:
|
|||||||
output += '\n'
|
output += '\n'
|
||||||
for i in range(len(data[selected_columns[0]])):
|
for i in range(len(data[selected_columns[0]])):
|
||||||
for column in selected_columns:
|
for column in selected_columns:
|
||||||
output += str(data[column][i]).ljust(len(column)) + separator
|
output += str(data[column][i]).ljust(len(column) if len(column) > 6 else 7 ) + separator
|
||||||
output += '\n'
|
output += '\n'
|
||||||
return output
|
return output
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
import vispy.plot as vp
|
import vispy.plot as vp
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def render2D(values:list):
|
def render2D(values:list):
|
||||||
fig = vp.Fig(size=(600, 500), show=False)
|
fig = vp.Fig(size=(600, 500), show=False)
|
||||||
plotwidget = fig[0, 0]
|
plotwidget = fig[0, 0]
|
||||||
@ -11,7 +9,6 @@ def render2D(values:list):
|
|||||||
plotwidget.colorbar(position="top", cmap="autumn")
|
plotwidget.colorbar(position="top", cmap="autumn")
|
||||||
fig.show(run=True)
|
fig.show(run=True)
|
||||||
|
|
||||||
|
|
||||||
def cross_section(x:list,y:list):
|
def cross_section(x:list,y:list):
|
||||||
color = (0.3, 0.5, 0.8)
|
color = (0.3, 0.5, 0.8)
|
||||||
fig = vp.Fig(show=False)
|
fig = vp.Fig(show=False)
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
from vispy import app, scene
|
from vispy import app, scene
|
||||||
from vispy.scene.visuals import Mesh
|
from vispy.scene.visuals import Mesh
|
||||||
from vispy.scene import transforms
|
|
||||||
from vispy.visuals.filters import ShadingFilter, WireframeFilter
|
from vispy.visuals.filters import ShadingFilter, WireframeFilter
|
||||||
from utils.files.input import ScannedObject
|
from utils.files.input import ScannedObject
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user