Files
Stage_IJL/visu/mainV2.py
2024-04-09 13:58:12 +02:00

73 lines
2.3 KiB
Python

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()