4 from matplotlib
import pyplot
as plt
6 import numpy.fft
as fft
11 from yaml
import CLoader
as Loader, CDumper
as Dumper
13 from yaml
import Loader, Dumper
16 results_path = os.path.dirname(os.path.realpath(__file__)) +
"/../../../results/" 17 results_folder =
"/results/" 18 numeric_method =
"_midpoint_" 23 selected = 'pad_position.csv'
25 data = np.loadtxt(results_path + run_name + results_folder + shared_names + numeric_method + selected, delimiter =
',')
31 stream = open(results_path + run_name +
"/doc/yaml/parameters.yaml",
'r') 32 run_parameters = yaml.load(stream, Loader = Loader) 40 stop = parameters[
"Parameters"][
"max_time"]
42 x_values = np.linspace(start = start, stop = stop, num = number_data_points)
48 for run_name
in run_list:
50 shared_names = parameters[
"Parameters"][
"file_name"]
51 data =
loadFile(run_name, shared_names)
54 plt.plot(x, data, label = parameters[
"Parameters"][
"dt"], linewidth = 0.5, marker =
'x')
55 plt.legend(title =
'dt')
61 half_point = int(0.5*len(data))
62 data = data[half_point:]
63 spectrum = fft.fft(data)
65 frequency = fft.fftfreq(len(spectrum))
67 threshold = 0.5 * max(abs(spectrum))
68 mask = abs(spectrum) > threshold
69 peaks = frequency[mask]
72 return {
'Spectrum' : spectrum,
'Frequency' : frequency}
78 plt.plot(fft_results[
'Frequency'], fft_results[
'Spectrum'])
82 if(len(sys.argv) > 2):
83 run_name = sys.argv[1:]
85 elif(len(sys.argv) == 2):
88 print(
"This will probably not work, have you remembered to give input to the command?")
91 if __name__ ==
"__main__":
def plot_fft_frequencies(data)
def x_values_for_run(number_data_points, parameters)
def loadFile(run_name, shared_names, selected='pad_position.csv')