73 lines
2.3 KiB
Python
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()
|