1
Fork 0
internship/swash/processing/layers.py

70 lines
1.5 KiB
Python
Raw Normal View History

import argparse
import configparser
import logging
import pathlib
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
import pandas as pd
parser = argparse.ArgumentParser(description="Animate swash output")
parser.add_argument("-v", "--verbose", action="count", default=0)
args = parser.parse_args()
logging.basicConfig(level=max((10, 20 - 10 * args.verbose)))
log = logging.getLogger("post")
log.info("Starting post-processing")
config = configparser.ConfigParser()
config.read("config.ini")
inp = pathlib.Path(config.get("post", "inp"))
root = pathlib.Path(config.get("swash", "out"))
bathy = pd.read_hdf(
pathlib.Path(config.get("data", "out")).joinpath("bathy.h5"), "bathy"
)
def data(var):
return np.load(inp.joinpath(f"{var}.npy"))
x = data("xp")
t = data("tsec")
watl = data("watl")
botl = data("botl")
zk = data("zk")
velk = data("velk")
wl = np.maximum(watl, -botl)
# print(x.size, -np.arange(0, 1 * bathy.hstru.size, 1)[::-1].size)
fig, ax = plt.subplots()
ax.plot(x, -botl, c="k")
# ax.fill_between(
# x, -botl, -data["botl"] + bathy.hstru, color="k", alpha=0.2
# )
lines = ax.plot(x, zk[0].T)
print(velk.shape)
velk = velk.reshape((6001, 10, 2, 1251))
vk = np.sqrt((velk[1000] ** 2).sum(axis=1))
print(vk.shape)
plt.imshow(vk)
plt.colorbar()
# def animate(i):
# for line, z in zip(lines, zk[i]):
# line.set_ydata(z)
# return lines
#
# ani = animation.FuncAnimation(
# fig, animate, frames=wl[:, 0].size, interval=20, blit=True
# )
plt.show(block=True)