general improvement
This commit is contained in:
		
							parent
							
								
									f220783aca
								
							
						
					
					
						commit
						fb884b82ba
					
				
							
								
								
									
										37
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								main.py
									
									
									
									
									
								
							@ -3,8 +3,9 @@ from utils.files import output
 | 
			
		||||
from utils.files.input import ScannedObject
 | 
			
		||||
from utils.math.position_manipulation import verticalise
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
@ -23,7 +24,7 @@ def get_raw_data(obj:ScannedObject, ndigits:int)->dict:
 | 
			
		||||
    data = {}
 | 
			
		||||
    for colone in colones:
 | 
			
		||||
        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)
 | 
			
		||||
        for x,y,z in discrete_values:
 | 
			
		||||
            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))
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
@ -52,7 +53,7 @@ def get_discrete_data(obj:ScannedObject, ndigits:int)->dict:
 | 
			
		||||
    data = {}
 | 
			
		||||
    for colone in colones:
 | 
			
		||||
        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)
 | 
			
		||||
        data["X moy (en mm)"].append(round(x, 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():
 | 
			
		||||
    # 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")
 | 
			
		||||
    print("File loaded in {} seconds".format(time.time()-t))
 | 
			
		||||
    t = time.time()
 | 
			
		||||
    print("Verticalising object...")
 | 
			
		||||
    verticalise(obj)
 | 
			
		||||
    print("Object verticalised in {} seconds".format(time.time()-t))
 | 
			
		||||
    t = time.time() 
 | 
			
		||||
    print("Normalising object...")
 | 
			
		||||
    obj.normalise()
 | 
			
		||||
    print("Object normalised in {} seconds".format(time.time()-t))
 | 
			
		||||
 | 
			
		||||
    # 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.format_data(data,
 | 
			
		||||
                                                '\t',
 | 
			
		||||
@ -82,9 +97,15 @@ def main():
 | 
			
		||||
                                                "rayon (en mm)",
 | 
			
		||||
                                                "Xi-Xmoy",
 | 
			
		||||
                                                "Yi-Ymoy"] ))
 | 
			
		||||
 | 
			
		||||
    print("Data saved in {} seconds".format(time.time()-t))
 | 
			
		||||
    
 | 
			
		||||
    # 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.format_data(data,
 | 
			
		||||
                                                '\t',
 | 
			
		||||
@ -94,6 +115,8 @@ def main():
 | 
			
		||||
                                                "Delta z(en mm)",
 | 
			
		||||
                                                "Rayon moyen (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__':
 | 
			
		||||
    main()
 | 
			
		||||
@ -32,7 +32,7 @@ def format_data(data:dict, separator:str, selected_columns:list = None) -> str:
 | 
			
		||||
    output += '\n'
 | 
			
		||||
    for i in range(len(data[selected_columns[0]])):
 | 
			
		||||
        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'
 | 
			
		||||
    return output
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -1,8 +1,6 @@
 | 
			
		||||
import vispy.plot as vp
 | 
			
		||||
import numpy as np
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def render2D(values:list):
 | 
			
		||||
    fig = vp.Fig(size=(600, 500), show=False)
 | 
			
		||||
    plotwidget = fig[0, 0]
 | 
			
		||||
@ -11,7 +9,6 @@ def render2D(values:list):
 | 
			
		||||
    plotwidget.colorbar(position="top", cmap="autumn")
 | 
			
		||||
    fig.show(run=True)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def cross_section(x:list,y:list):
 | 
			
		||||
    color = (0.3, 0.5, 0.8)
 | 
			
		||||
    fig = vp.Fig(show=False)
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,6 @@
 | 
			
		||||
import numpy as np
 | 
			
		||||
from vispy import app, scene
 | 
			
		||||
from vispy.scene.visuals import Mesh
 | 
			
		||||
from vispy.scene import transforms
 | 
			
		||||
from vispy.visuals.filters import ShadingFilter, WireframeFilter
 | 
			
		||||
from utils.files.input import ScannedObject
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user