This guide explains how to use the provided example script run_model.py
, which contains all parts of the simulation workflow. The script includes input generation, calling the executable, and post-processing the output. This documentation serves as a guide to understanding the run_model.py
script workflow and interpreting its outputs.
You will have the run_model.py
script available, which consists of the following steps:
This guide outlines each step to help you understand the workflow and results.
model.exe
executable in the working folderpip install numpy pandas
model.exe
is located in the same folder as your run_model.py
script.Y_out.csv
file, as it is generated by the executable.If you just want to run the run_model.py
script, follow these steps:
Configure the Script:
Set your desired variables directly within the run_model.py
script. This includes input parameters, file paths, and any other configuration options.
Open Your Terminal or Command Prompt.
Execute the Script:
Run the following command:
```bash python run_model.py
This part of the run_model.py
script generates input data, saves it to a file, and calls the executable.
# Define the input vector X_input with the desired values
X_input = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 42])
# Optionally, create a batch of N input vectors (N copies of X_input)
N = 3
X_input_batch = np.tile(X_input, (N, 1)) # Shape will be (N, 9)
input.txt
input_file_path = 'input.txt'
np.savetxt(input_file_path, X_input_batch, delimiter=',')
print(f'Input data written to {input_file_path}')
exe_path = './model.exe' # Path to the executable in the current folder
command = [exe_path, input_file_path]
print('Running simulation executable...')
result = subprocess.run(command, capture_output=True, text=True)
# Print the output from the executable
print(result.stdout)
After running the simulation, the run_model.py
script processes the generated Y_out.csv
file.
output_file_path = 'Y_out.csv'
df = pd.read_csv(output_file_path, header=None)
print(f'Simulation output data loaded from {output_file_path}')
# Extract unique sample indices (Column 7 contains sample indices)
sample_indices = df[6].unique()
num_samples = len(sample_indices)
# Drop the sample index column
df = df.drop(columns=[6])
# Convert the DataFrame to a NumPy array and reshape into the desired 3D format (num_time_steps x num_features x num_samples)
Y_out = df.to_numpy().reshape(num_samples, 60, 6).transpose(1, 2, 0)
print('Output values for the first timestep for all 6 features of sample 3:')
print(Y_out[0, :, 2])
model.exe
is in the correct folder or update the exe_path
.Y_out.csv
: This file is only generated after running the executable. Run the executable first.pip install numpy pandas
run_model.py
script contains the entire workflow of input generation, executing the simulation, and processing the output.