from util import * import matplotlib.pyplot as plt import numpy as np import pandas as pd import plotly.graph_objects as go import csv import os def lire_un_fichier_csv(data): tableau_2D = [] tab = [] with open(data, "r") as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') for ligne in csv_reader: tableau_2D.append(ligne) for i in range(len(tableau_2D[0])): ligne = [] for j in range(len(tableau_2D)): ligne.append(float(tableau_2D[j][i])) tab.append(ligne) return tab def lire_fichier_csv(data,fichier): resultat=[] tableau=[] for i in fichier: tableau=lire_un_fichier_csv(os.path.join(data,i)) resultat.append(tableau) return resultat # Répertoire contenant les fichiers dossier = "Dataset/Shear_Wave_Rot00_CSV_Data" fichiers_selectionnes= ['Shear_x001-x101_y010_Rot00.csv', 'Shear_x001-x101_y011_Rot00.csv', 'Shear_x001-x101_y012_Rot00.csv', 'Shear_x001-x101_y013_Rot00.csv', 'Shear_x001-x101_y014_Rot00.csv', 'Shear_x001-x101_y015_Rot00.csv'] print(fichiers_selectionnes) tableau_3D=lire_fichier_csv(dossier,fichiers_selectionnes) tb = np.array(tableau_3D) Bscan_array = tb[0,:,:] # Préparation des données de coordonnées x, y = np.meshgrid(range(Bscan_array.shape[1]), range(Bscan_array.shape[0])) z = np.zeros(x.shape) # Tous les points sont au niveau z=0 # Aplatir les tableaux pour la visualisation x, y, z = x.flatten(), y.flatten(), z.flatten() amplitude = Bscan_array.flatten() # Utiliser les valeurs d'amplitude pour la couleur fig = go.Figure(data=[go.Scatter3d( x=x, y=y, z=z, mode='markers', marker=dict( size=5, color=amplitude, # La couleur varie avec l'amplitude colorscale='Viridis', # Palette de couleurs opacity=0.8, colorbar=dict(title='Amplitude') ) )]) # Mise à jour de la mise en page fig.update_layout(title='Visualisation 3D des Amplitudes avec Bscan sur z=0', scene=dict( xaxis_title='X', yaxis_title='Y', zaxis_title='Z', zaxis=dict(range=[-0.1, 0.1])), # Limite l'axe z pour mieux visualiser le plan z=0 margin=dict(l=0, r=0, b=0, t=0)) # Afficher la figure fig.show()