The user can export raw acoustic backscatter data, displayed in the table of values, to csv file. Each acoustic file is exported to a csv file with the following default name : Table_ + name_of_file_aqa.

dev-brahim
brahim 2024-09-16 11:57:32 +02:00
parent c38188f96e
commit 5493f92832
1 changed files with 67 additions and 0 deletions

View File

@ -15,9 +15,13 @@ from Model.read_table_for_open import ReadTableForOpen
from View.about_window import AboutWindow
import settings as stg
import numpy as np
import pandas as pd
import sys
from os import chdir
from subprocess import check_call
import time
# from View.acoustic_data_tab import AcousticDataTab
from functools import partial
@ -179,6 +183,10 @@ class Ui_MainWindow(object):
self.actionOpen.triggered.connect(self.open)
self.actionOpen.triggered.connect(lambda: print('tott'))
# --- Connect Action export acoustic backscatter values ---
self.actionTable_of_Backscatter_values.triggered.connect(
self.export_table_of_acoustic_BS_values_to_excel_or_libreOfficeCalc_file)
# --- Connect Action DB_Browser_for_SQLite ---
self.actionDB_Browser_for_SQLite.triggered.connect(self.db_browser_for_sqlite)
@ -229,6 +237,65 @@ class Ui_MainWindow(object):
# w.show()
# sys.exit(new_app.exec_())
def export_table_of_acoustic_BS_values_to_excel_or_libreOfficeCalc_file(self):
if len(stg.BS_raw_data_reshape) != 0:
# --- Open file dialog to select the directory ---
name = QtWidgets.QFileDialog.getExistingDirectory(caption="Select Directory - Acoustic BS raw data Table")
print("name table to save ", name)
# --- Save the raw acoustic backscatter data from a Dataframe to csv file ---
t0 = time.time()
print("len(stg.BS_raw_data_reshape) ", len(stg.BS_raw_data_reshape))
if name:
for i in range(len(stg.BS_raw_data_reshape)):
header_list = []
header_list.clear()
table_data = np.array([[]])
for freq_ind, freq_value in enumerate(stg.freq_text[0]):
header_list.append("Time - " + freq_value)
header_list.append("Depth - " + freq_value)
header_list.append("BS - " + freq_value)
if freq_ind == 0:
table_data = np.vstack((np.vstack((stg.time_reshape[i][:, freq_ind],
stg.depth_reshape[i][:, freq_ind])),
stg.BS_raw_data_reshape[i][:, freq_ind]))
else:
table_data = np.vstack((table_data,
np.vstack((np.vstack(
(stg.time_reshape[i][:, freq_ind],
stg.depth_reshape[i][:, freq_ind])),
stg.BS_raw_data_reshape[i][:, freq_ind]))
))
exec("DataFrame_acoustic_" + str(i) + "= pd.DataFrame(None)")
exec("DataFrame_acoustic_" + str(i) + "= pd.DataFrame(data=table_data.transpose(), columns=header_list)")
# exec("DataFrame_acoustic_" + str(i) + ".to_csv(" +
# "excel_writer=" +
# '/home/bmoudjed/Documents/3 SSC acoustic meas project/Graphical interface project/BS_raw_data_table.xlsx' + "," +
# "sheet_name=stg.filename_BS_raw_data[i]," +
# "header=DataFrame_acoustic.columns," +
# "engine=" + "xlsxwriter" + ")")
exec("DataFrame_acoustic_" + str(i) + ".to_csv(" +
"path_or_buf=" +
" '/home/bmoudjed/Documents/3 SSC acoustic meas project/Graphical interface project/Table_" +
str(stg.filename_BS_raw_data[i][:-4]) + ".csv'" + ", " +
"sep=" + " ',' " + ", " +
"header=DataFrame_acoustic_" + str(i) + ".columns" + ")")
t1 = time.time() - t0
print("time duration export BS ", t1)
print("table of BS value Export finished")
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate