Updated mat file conversion: layered, layered vectors...
This commit is contained in:
parent
fd555e413e
commit
65c8ac67cd
2 changed files with 152 additions and 44 deletions
|
|
@ -9,6 +9,8 @@ from multiprocessing.pool import ThreadPool
|
|||
import numpy as np
|
||||
import scipy.io as sio
|
||||
|
||||
from .read_mat import ReadSwash
|
||||
|
||||
parser = argparse.ArgumentParser(description="Convert swash output to numpy")
|
||||
parser.add_argument("-v", "--verbose", action="count", default=0)
|
||||
parser.add_argument("-c", "--config", default="config.ini")
|
||||
|
|
@ -26,48 +28,16 @@ inp = pathlib.Path(config.get("post", "inp"))
|
|||
inp.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
log.info(f"Reading swash output from '{sws_out}'")
|
||||
raw_tsec = sio.loadmat(sws_out.joinpath("tsec.mat"))
|
||||
i = np.fromiter(
|
||||
(k[5:] for k in raw_tsec.keys() if re.compile(r"^Tsec_").match(k)), dtype="U10"
|
||||
)
|
||||
t = np.fromiter((raw_tsec[f"Tsec_{k}"][0, 0] * 10**3 for k in i), dtype=np.uintc)
|
||||
np.save(inp.joinpath("t"), t)
|
||||
del raw_tsec
|
||||
raw_xp = sio.loadmat(sws_out.joinpath("xp.mat"), variable_names="Xp")
|
||||
x = raw_xp["Xp"][0]
|
||||
np.save(inp.joinpath("x"), x)
|
||||
del raw_xp
|
||||
|
||||
raw_botl = sio.loadmat(sws_out.joinpath("botl.mat"), variable_names="Botlev")
|
||||
botl = raw_botl["Botlev"][0]
|
||||
np.save(inp.joinpath("botl"), botl)
|
||||
del raw_botl, botl
|
||||
|
||||
raw_watl = sio.loadmat(sws_out.joinpath("watl.mat"))
|
||||
watl = np.asarray(
|
||||
[raw_watl[i0][0] for i0 in np.char.add("Watlev_", i)], dtype=np.single
|
||||
)
|
||||
np.save(inp.joinpath("watl"), watl)
|
||||
del raw_watl, watl
|
||||
|
||||
raw_vel = sio.loadmat(sws_out.joinpath("vel.mat"))
|
||||
vel_x = np.asarray([raw_vel[i0][0] for i0 in np.char.add("vel_x_", i)], dtype=np.single)
|
||||
np.save(inp.joinpath("vel_x"), vel_x)
|
||||
del raw_vel, vel_x
|
||||
|
||||
raw_zk = sio.loadmat(sws_out.joinpath("zk.mat"))
|
||||
n_zk = (len(raw_zk.keys()) - 3) // t.size
|
||||
zk = np.asarray(
|
||||
[
|
||||
raw_zk[i0][0]
|
||||
for i0 in np.char.add(
|
||||
np.char.replace("zki_", "i", np.arange(n_zk).astype("U1"), count=1)[
|
||||
None, :
|
||||
],
|
||||
i[:, None],
|
||||
).reshape(-1)
|
||||
],
|
||||
dtype=np.single,
|
||||
).reshape((t.size, n_zk, x.size))
|
||||
np.save(inp.joinpath("zk"), zk)
|
||||
del raw_zk, zk
|
||||
swr = ReadSwash(sws_out, inp)
|
||||
swr.save("t")
|
||||
swr.save("x")
|
||||
swr.save("c", "botl", "Botlev")
|
||||
swr.save("s", "watl", "Watlev")
|
||||
swr.save("s", "press", "Press")
|
||||
swr.save("v", "vel", "vel")
|
||||
swr.save("sk", "zk", "zk")
|
||||
swr.save("sk", "nhprsk", "Nprs_k")
|
||||
swr.save("sk", "pressk", "Pres_k")
|
||||
swr.save("sk", "vz", "w")
|
||||
swr.save("vk", "velk", "vel_k")
|
||||
|
|
|
|||
Reference in a new issue