Skip to content
Snippets Groups Projects
Commit 58998581 authored by Elias Maurer's avatar Elias Maurer
Browse files

Update 114 files

- /BioCode/copyright.txt
- /BioCode/.gitkeep
- /BioCode/A1_Programming_finale_version/.Rhistory
- /BioCode/A1_Programming_finale_version/.DS_Store
- /BioCode/A1_Programming_finale_version/executable_windows.bat
- /BioCode/A1_Programming_finale_version/executable.sh
- /BioCode/A1_Programming_finale_version/.Rapp.history
- /BioCode/A1_Programming_finale_version/.RData
- /BioCode/A1_Programming_finale_version/readme.txt
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/splitData.py
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/logging.log
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/formatting.py
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/.DS_Store
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/mainScript.py
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/graphs.py
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/main.py
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/gui.py
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/gui.cpython-312.pyc
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/gui.cpython-311.pyc
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/graphs.cpython-312.pyc
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/graphs.cpython-311.pyc
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/mainScript.cpython-312.pyc
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/mainScript.cpython-311.pyc
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/splitData.cpython-311.pyc
- /BioCode/A1_Programming_finale_version/A1_1_PythonCode/__pycache__/splitData.cpython-312.pyc
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/.DS_Store
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (9) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (16) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (1) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (7) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (3) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (2) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (18) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (15) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (6) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (3) - Copy - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (13) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (3) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (3).xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (8) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (6) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (11) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (1) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (10) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (4) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (8) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (5) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (2).xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (4) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (10) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (1).xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (9) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (4) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (5) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (11) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (1) - Copy - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (3) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (12) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (10) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (12) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (6) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (2) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (7) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (1) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (7) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (5) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (14) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (11) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (17) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (12) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (2) - Copy - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (2) - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (9) - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (8) - Copy - Copy - Copy.xls
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/excel_files/Test 031Data (8) - Copy - Copy - Copy.xls_original_data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/AgarAgar1Gruppe9,29.04.2024.014Data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/.DS_Store
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/Agarose 1% Gr 6 02.05.2024.009Data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/Tumorsphaerroide 06.05.2024.005Data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/Agarose 1% Gr 6 02.05.2024.013Data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/Agar-Agar 1% Gr 6 newlever 06.05.2024.008Data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/240418ToscanoAlginat1Prz016Data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 16.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/AgarAgar1Gruppe9,29.04.2024.014Data copy 6.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 10.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 11.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/AgarAgar1Gruppe9,29.04.2024.014Data copy 7.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 17.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 15.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/AgarAgar1Gruppe9,29.04.2024.014Data.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/AgarAgar1Gruppe9,29.04.2024.014Data copy 5.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 13.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 12.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/AgarAgar1Gruppe9,29.04.2024.014Data copy 4.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 14.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 10.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 9.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 16.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 17.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 8.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 11.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 13.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.009Data copy 8.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/AgarAgar1Gruppe9,29.04.2024.014Data copy 3.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 15.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/240418ToscanoAlginat1Prz016Data copy 14.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/AgarAgar1Gruppe9,29.04.2024.014Data copy 2.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.009Data copy 9.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.013Data copy 12.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Tumorsphaerroide 06.05.2024.005Data copy 2.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.009Data copy 19.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Agarose 1% Gr 6 02.05.2024.009Data copy 18.csv
- /BioCode/A1_Programming_finale_version/Data For Bioprogramming/original_data_for_bioprogramming/sss/Tumorsphaerroide 06.05.2024.005Data copy 3.csv
parent 359f41ef
No related branches found
No related tags found
No related merge requests found
Showing
with 339 additions and 0 deletions
File added
File added
q()
File added
File added
File added
File added
File added
File added
File added
import matplotlib.pyplot as plt
import re
class Graphs:
def __init__(self, filename, dataframe) -> None:
self.filename = filename
self.df_visualize = dataframe
print(self.df_visualize.columns)
def wildcard_for_columnname(self, columnname) -> str:
pattern = re.compile(rf'{columnname}.*')
matching_columns = [col for col in self.df_visualize.columns if pattern.match(col)]
if matching_columns:
return matching_columns[0] # Return the first match instead of a list
else:
raise ValueError(f"No match found for column: {columnname}")
def plotting(self):
# Assuming self.wildcard_for_columnname is a method that returns the appropriate column name based on a pattern
var_spannung_y_var = self.wildcard_for_columnname("Sigma")
var_dehnung_x_var = self.wildcard_for_columnname("Epsilon")
var_tip_displacement_x_var = self.wildcard_for_columnname("Tip_Displacement")
# Create a figure with 2 subplots, smaller size
fig, axs = plt.subplots(2, 1, figsize=(10, 10))
# First subplot: Spannungs-Dehnungs-Diagramm
axs[0].plot(self.df_visualize[var_dehnung_x_var], self.df_visualize[var_spannung_y_var], label='Sigma / Epsilon')
axs[0].set_title('Spannungs-Dehnungs/Compression-Diagramm /')
axs[0].set_ylabel('Sigma (Spannung/Compression)')
axs[0].set_xlabel('Epsilon (Dehnung)')
axs[0].grid()
axs[0].legend()
# Second subplot: Force-Tip_Displacement
axs[1].plot(self.df_visualize[var_tip_displacement_x_var], self.df_visualize["Force (N)"], label='Force/ Tip Displacement')
axs[1].set_title('Force-Tip_Displacement')
axs[1].set_ylabel('Force (N)')
axs[1].set_xlabel('Tip Displacement (m)')
axs[1].grid()
axs[1].legend()
# Adjust layout to prevent overlap
plt.tight_layout()
# Show the plot
plt.show()
def run(self):
self.plotting()
import tkinter as tk
from tkinter import filedialog
from mainScript import MainScript
class Gui:
def __init__(self):
self.root = tk.Tk()
self.root.title("Main Window")
self.root.geometry("400x400")
pass
def selectFileInFolder(self):
self.filename = filedialog.askopenfilename(
title="Browse File"
)
self.instanceOfMainskript = MainScript(self.filename)
self.instanceOfMainskript.run()
def close(self):
self.root.quit()
def functionWithButton(self):
# Configure grid
self.root.columnconfigure(0, weight=1)
self.root.columnconfigure(1, weight=1)
self.root.columnconfigure(2, weight=1)
self.root.rowconfigure(0, weight=1)
self.root.rowconfigure(1, weight=1)
self.root.rowconfigure(2, weight=1)
self.root.rowconfigure(3, weight=1)
button = tk.Button(self.root, text='Browse for file!', command=self.selectFileInFolder, height=2, width=20)
button.grid(column=1, row=1, pady=10)
exitButton = tk.Button(self.root, text='Exit', command=self.close, height=2, width=20)
exitButton.grid(column=1, row=2, pady=10)
def run(self):
self.functionWithButton()
self.root.mainloop()
# x,x,x,x,x
from gui import Gui
class Main:
def __init__(self):
self.gui_Instance = Gui()
def run(self):
self.gui_Instance.run()
instanceOfMain = Main()
instanceOfMain.run()
import pandas as pd # Import the pandas library for data manipulation
import numpy as np # Import the numpy library for numerical operations
import re # Import the re library for regular expressions
from graphs import Graphs # Import the Graphs class from the graphs module
from splitData import SplitColumn # Import the SplitColumn class from the splitData module
import csv
class MainScript:
def __init__(self, filename): # Initialization method
self.filename = filename # Store the filename
def createDataframe(self) -> pd.DataFrame:
with open(self.filename, 'r', encoding='unicode_escape') as file: # Open the file with the given filename
first_line = file.readline() # Read the first line to determine the delimiter
# Determine the delimiter
if ';' in first_line: # Check if the delimiter is a semicolon
delimiter = ';' # Set the delimiter to semicolon
elif ',' in first_line: # Check if the delimiter is a comma
delimiter = ',' # Set the delimiter to comma
else:
raise ValueError("Unknown delimiter in the CSV file.") # Raise an error if the delimiter is unknown
# Read the CSV file with the determined delimiter
df = pd.read_csv(self.filename, sep=delimiter, encoding='unicode_escape') # Read the CSV file into a DataFrame
return df # Return the DataFrame
def wildcard_for_columnname(self, columnname) -> str:
pattern = re.compile(rf'{columnname}.*') # Compile a regular expression pattern for the column name
matching_columns = [col for col in self.dataframe.columns if pattern.match(col)] # Find matching columns
if matching_columns:
return matching_columns[0] # Return the first matching column name
else:
raise ValueError(f"No match found for column: {columnname}") # Raise an error if no match is found
def delete_unnecessary_data(self):
print("Before delete_unnecessary_data:") # Print message before deleting data
print(self.dataframe) # Print the DataFrame
def delete_not_compress_values():
print(self.dataframe.columns) # Print the DataFrame columns
print(self.dataframe["Cycle"]) # Print the "Cycle" column
self.dataframe = self.dataframe[self.dataframe["Cycle"] == "1-Compress"] # Keep only rows where "Cycle" is "1-Compress"
def delete_negative_force_values():
force_val = self.wildcard_for_columnname("Force") # Get the force column name
self.dataframe[force_val] = pd.to_numeric(self.dataframe[force_val], errors='coerce') # Convert force values to numeric
# Keep the first row even if its force value is negative or NaN
self.dataframe = self.dataframe[(self.dataframe.index == 0) | (self.dataframe[force_val] >= 0) | self.dataframe[force_val].isna()] # Filter rows
delete_not_compress_values() # Delete non-compress values
delete_negative_force_values() # Delete negative force values
print("After delete_unnecessary_data:") # Print message after deleting data
print(self.dataframe) # Print the DataFrame
self.dataframe = self.dataframe.reset_index(drop=True) # Reset the DataFrame index
def umwandlung_der_micro_newton_values(self):
print("Before umwandlung_der_micro_newton_values:") # Print message before conversion
print(self.dataframe) # Print the DataFrame
var_force_col = self.wildcard_for_columnname("Force") # Get the force column name
var_current_size_col = self.wildcard_for_columnname("Current Size") # Get the current size column name
var_tip_displacement_col = self.wildcard_for_columnname("Tip Displacement") # Get the tip displacement column name
def umwandlung_force():
self.dataframe["Force (N)"] = self.dataframe[var_force_col] / np.power(10, 6) # Convert force values to Newtons
def umwandlung_current_size():
self.dataframe[var_current_size_col] = pd.to_numeric(self.dataframe[var_current_size_col], errors='coerce') # Convert current size values to numeric
self.dataframe["Current_Size (m)"] = self.dataframe[var_current_size_col] / np.power(10, 6) # Convert current size to meters
self.dataframe["Radius (m)"] = (self.dataframe[var_current_size_col] / 2) / np.power(10, 6) # Calculate radius in meters
def umwandlung_tip_displacement():
self.dataframe[var_tip_displacement_col] = pd.to_numeric(self.dataframe[var_tip_displacement_col], errors='coerce') # Convert tip displacement values to numeric
self.dataframe["Tip_Displacement_in_m (um / 10^6)"] = self.dataframe[var_tip_displacement_col] / np.power(10, 6) # Convert tip displacement to meters
umwandlung_force() # Perform force conversion
umwandlung_current_size() # Perform current size conversion
umwandlung_tip_displacement() # Perform tip displacement conversion
print("After umwandlung_der_micro_newton_values:") # Print message after conversion
print(self.dataframe) # Print the DataFrame
def mathematical_operations(self):
print("Before mathematical_operations:") # Print message before mathematical operations
print(self.dataframe) # Print the DataFrame
def function_calc_theta_winkel():
var_tip_displacement_col = self.wildcard_for_columnname("Tip_Displacement") # Get the tip displacement column name
var_radius_col = self.wildcard_for_columnname("Radius") # Get the radius column name
argument_for_arccos = (self.dataframe[var_radius_col] - self.dataframe[var_tip_displacement_col]) / self.dataframe[var_radius_col] # Calculate argument for arccos
self.dataframe["Theta"] = np.arccos(argument_for_arccos) # Calculate theta using arccos
print("Argument for arccos:", argument_for_arccos) # Print argument for arccos
print("Theta:", np.degrees(self.dataframe["Theta"])) # Print theta in degrees
def function_calc_alpha():
var_tip_displacement_col = self.wildcard_for_columnname("Tip Displacement") # Get the tip displacement column name
var_radius_col = self.wildcard_for_columnname("Radius") # Get the radius column name
var_theta = self.wildcard_for_columnname("Theta") # Get the theta column name
self.dataframe["Alpha"] = (self.dataframe[var_radius_col] - self.dataframe[var_tip_displacement_col]) * np.tan(self.dataframe[var_theta]) # Calculate alpha
print(self.dataframe["Alpha"]) # Print alpha
def calc_two_parts():
def function_calc_left_part():
var_radius_col = self.wildcard_for_columnname("Radius") # Get the radius column name
var_alpha_col = self.wildcard_for_columnname("Alpha") # Get the alpha column name
var_upper_part = 2 * (1 + 0.5) * np.power(self.dataframe[var_radius_col], 2) # Calculate the upper part of the left part
var_lower_part = np.power(np.power(self.dataframe[var_alpha_col], 2) + 4 * np.power(self.dataframe[var_radius_col], 2), 1.5) # Calculate the lower part of the left part
return var_upper_part / var_lower_part # Return the left part
def function_calc_right_part():
var_radius_col = self.wildcard_for_columnname("Radius") # Get the radius column name
var_alpha_col = self.wildcard_for_columnname("Alpha") # Get the alpha column name
v = 0.5 # Define the Poisson's ratio
var_upper_part = 1 - np.power(v, 2) # Calculate the upper part of the right part
var_lower_part = np.power(np.power(self.dataframe[var_alpha_col], 2) + 4 * np.power(self.dataframe[var_radius_col], 2), 0.5) # Calculate the lower part of the right part
return var_upper_part / var_lower_part # Return the right part
left_part_for_calc = function_calc_left_part() # Calculate the left part
right_part_for_calc = function_calc_right_part() # Calculate the right part
self.dataframe["function_f_a"] = left_part_for_calc + right_part_for_calc # Calculate the function f_a
print(self.dataframe["function_f_a"]) # Print the function f_a
def function_for_e_calc():
def function_calc_left_part():
var_radius_col = self.wildcard_for_columnname("Radius") # Get the radius column name
var_alpha_col = self.wildcard_for_columnname("Alpha") # Get the alpha column name
var_force_col = self.wildcard_for_columnname("Force") # Get the force column name
var_tip_displacement_col = self.wildcard_for_columnname("Tip Displacement") # Get the tip displacement column name
v = 0.5 # Define the Poisson's ratio
var_upper_part = 3 * (1 - np.power(v, 2)) * self.dataframe[var_force_col] # Calculate the upper part of the left part
var_lower_part = 4 * self.dataframe[var_tip_displacement_col] * self.dataframe[var_alpha_col] # Calculate the lower part of the left part
return var_upper_part / var_lower_part # Return the left part
def function_calc_right_part():
var_radius_col = self.wildcard_for_columnname("Radius") # Get the radius column name
var_alpha_col = self.wildcard_for_columnname("Alpha") # Get the alpha column name
var_force_col = self.wildcard_for_columnname("Force") # Get the force column name
var_tip_displacement_col = self.wildcard_for_columnname("Tip Displacement") # Get the tip displacement column name
var_f_a_col = self.wildcard_for_columnname("function_f_a") # Get the function f_a column name
var_upper_part = self.dataframe[var_f_a_col] * self.dataframe[var_force_col] # Calculate the upper part of the right part
var_lower_part = np.pi * self.dataframe[var_tip_displacement_col] # Calculate the lower part of the right part
return var_upper_part / var_lower_part # Return the right part
left_part_for_calc = function_calc_left_part() # Calculate the left part
right_part_for_calc = function_calc_right_part() # Calculate the right part
self.dataframe["E Modul"] = left_part_for_calc - right_part_for_calc # Calculate the E modulus
print(self.dataframe["E Modul"]) # Print the E modulus
function_calc_theta_winkel() # Calculate theta
function_calc_alpha() # Calculate alpha
calc_two_parts() # Calculate the two parts
function_for_e_calc() # Calculate the E modulus
print("After mathematical_operations:") # Print message after mathematical operations
print(self.dataframe) # Print the DataFrame
def e_modul_spannung_dehnung(self):
print("Before e_modul_spannung_dehnung:") # Print message before E modulus, stress, and strain calculations
print(self.dataframe) # Print the DataFrame
def calc_area():
var_radius = self.wildcard_for_columnname("Radius") # Get the radius column name
self.dataframe["Flaeche (m)"] = np.pi * np.power(self.dataframe[var_radius], 2) # Calculate the area
def calc_delta():
var_area = self.wildcard_for_columnname("Flaeche") # Get the area column name
self.dataframe["Sigma (Spannung) [N /m hoch 2]"] = self.dataframe["Force (N)"] / self.dataframe[var_area] # Calculate the stress
def calc_E():
var_current_size = self.wildcard_for_columnname("Current_Size") # Get the current size column name
print(self.dataframe) # Print the DataFrame
print(self.dataframe[var_current_size]) # Print the current size column
self.dataframe["Epsilon (Dehnung)"] = ((self.dataframe.at[0, var_current_size] - self.dataframe[var_current_size]) / self.dataframe.at[0, var_current_size]) * 100 # Calculate the strain
def calc_e_modul():
var_delta_col = self.wildcard_for_columnname("Sigma") # Get the stress column name
var_e_col = self.wildcard_for_columnname("Epsilon") # Get the strain column name
self.dataframe[var_delta_col] = pd.to_numeric(self.dataframe[var_delta_col], errors='coerce') # Convert stress values to numeric
self.dataframe[var_e_col] = pd.to_numeric(self.dataframe[var_e_col], errors='coerce') # Convert strain values to numeric
self.dataframe["E_Modul (Spannung / Dehnung)"] = self.dataframe[var_delta_col] / self.dataframe[var_e_col] # Calculate the E modulus
calc_area() # Calculate the area
calc_delta() # Calculate the stress
calc_E() # Calculate the strain
calc_e_modul() # Calculate the E modulus
print("After e_modul_spannung_dehnung:") # Print message after E modulus, stress, and strain calculations
print(self.dataframe) # Print the DataFrame
def run(self):
self.original_dataframe = self.createDataframe() # Create the original DataFrame
self.dataframe = self.original_dataframe.copy() # Make a copy of the original DataFrame
# self.split_data_instance = SplitColumn(self.original_dataframe) # Initialize SplitColumn class with the original DataFrame
# self.dataframe_for_biocalc = self.split_data_instance.run() # Run the SplitColumn instance
self.var_len_of_dataframe = len(self.dataframe) # Get the length of the DataFrame
self.delete_unnecessary_data() # Delete unnecessary data
self.umwandlung_der_micro_newton_values() # Convert micro newton values
self.mathematical_operations() # Perform mathematical operations
self.e_modul_spannung_dehnung() # Calculate E modulus, stress, and strain
self.dataframe.to_csv(self.filename, index=False) # Save the processed DataFrame to CSV
new_filename = self.filename + '_original_data.csv'
print(self.filename)
self.original_dataframe.to_csv(new_filename, index=False)
self.graphs_instance = Graphs(self.filename, self.dataframe) # Initialize Graphs class with filename and DataFrame
self.graphs_instance.run() # Run the Graphs instance to generate graphs
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment