\(\require{physics}\)
import numpy as np
import matplotlib.pyplot as plt
import math
import glob
def convert(items):
return [math.floor(float(items[0]))]+list(map(float, items[1:]))
def read_file(fname):
print("Reading: ",fname)
f = open(fname)
num = fname[-10:-4]
return num, np.array([list(convert(line.rstrip().split())) for line in f.readlines()])
files = sorted(glob.glob("*.txt"))
num, init_data = read_file(files[0])
init_data=init_data.transpose()
for file in files:
fig = plt.figure(figsize=(8,3))
num, raw_data=read_file(file)
plt.gca().set_xlim(0,6)
plt.gca().set_ylim(0, 0.3)
data_org = np.array(raw_data).transpose()
data_1 = np.array(raw_data[0:1440]).transpose()
data_2 = np.array(raw_data[1440:]).transpose()
plt.scatter(data_1[1], data_1[3], s=1, c="r")
plt.scatter(data_2[1], data_2[3], s=1, c="b")
plt.title("2nd-mode internal wave "+num)
out_name = "fig_"+num+".png"
plt.savefig(out_name)
print("--- Wrote: ", out_name)
sum_dist = 0
total_num =0
distx=[]
distz=[]
for n in range(len(data_org[0])):
distx.append(np.sqrt((init_data[1][n]-data_org[1][n])**2))
distz.append(np.sqrt((init_data[3][n]-data_org[3][n])**2))
print(np.max(distx))
print(np.max(distz))