Cleanup of plots
This commit is contained in:
parent
d17d25b8e2
commit
87e2918ffd
7 changed files with 8 additions and 208 deletions
|
@ -141,4 +141,4 @@ if plt is not None and config.getboolean("out", "plot", fallback=False):
|
||||||
fig, ax = plt.subplots()
|
fig, ax = plt.subplots()
|
||||||
ax.plot(-x, z, color="k")
|
ax.plot(-x, z, color="k")
|
||||||
ax.fill_between(-x, z+hstru, z, color="k", alpha=.2)
|
ax.fill_between(-x, z+hstru, z, color="k", alpha=.2)
|
||||||
plt.show(block=True)
|
fig.savefig(out_root.joinpath("bathy.pdf"))
|
||||||
|
|
|
@ -2,14 +2,8 @@
|
||||||
#plot=True
|
#plot=True
|
||||||
|
|
||||||
[data]
|
[data]
|
||||||
root=data
|
out=../data/out
|
||||||
hires=bathyhires.dat
|
out_nb=../data/out
|
||||||
bathy=buoyarthabathy.dat
|
|
||||||
hstru=Hstru.dat
|
|
||||||
poro=Poro.dat
|
|
||||||
psize=Psize.dat
|
|
||||||
out=out_data
|
|
||||||
out_nb=out_data_nb
|
|
||||||
|
|
||||||
[swash]
|
[swash]
|
||||||
nb=True
|
nb=True
|
||||||
|
@ -26,3 +20,6 @@ out=out_post
|
||||||
dt=0.25
|
dt=0.25
|
||||||
x0=-1250
|
x0=-1250
|
||||||
t0=180
|
t0=180
|
||||||
|
|
||||||
|
[plot]
|
||||||
|
out=out_plt
|
||||||
|
|
|
@ -6,7 +6,6 @@ import pathlib
|
||||||
import matplotlib.animation as animation
|
import matplotlib.animation as animation
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Animate swash output")
|
parser = argparse.ArgumentParser(description="Animate swash output")
|
||||||
parser.add_argument("-v", "--verbose", action="count", default=0)
|
parser.add_argument("-v", "--verbose", action="count", default=0)
|
||||||
|
@ -22,10 +21,6 @@ config.read("config.ini")
|
||||||
inp = pathlib.Path(config.get("post", "inp"))
|
inp = pathlib.Path(config.get("post", "inp"))
|
||||||
root = pathlib.Path(config.get("swash", "out"))
|
root = pathlib.Path(config.get("swash", "out"))
|
||||||
|
|
||||||
bathy = pd.read_hdf(
|
|
||||||
pathlib.Path(config.get("data", "out")).joinpath("bathy.h5"), "bathy"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def data(var):
|
def data(var):
|
||||||
return np.load(inp.joinpath(f"{var}.npy"))
|
return np.load(inp.joinpath(f"{var}.npy"))
|
||||||
|
|
|
@ -1,93 +0,0 @@
|
||||||
import argparse
|
|
||||||
import configparser
|
|
||||||
import logging
|
|
||||||
import pathlib
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
try:
|
|
||||||
import matplotlib.pyplot as plt
|
|
||||||
except ImportError:
|
|
||||||
plt = None
|
|
||||||
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Pre-process bathymetry")
|
|
||||||
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("bathy")
|
|
||||||
|
|
||||||
log.info("Starting bathymetry pre-processing")
|
|
||||||
config = configparser.ConfigParser()
|
|
||||||
config.read("config.ini")
|
|
||||||
|
|
||||||
root = pathlib.Path(config.get("data", "root"))
|
|
||||||
|
|
||||||
log.info(f"Reading input data from '{root}'")
|
|
||||||
bathy_hires = np.loadtxt(root.joinpath(config.get("data", "hires")))
|
|
||||||
bathy_lores = np.loadtxt(root.joinpath(config.get("data", "bathy")))
|
|
||||||
hstru = np.loadtxt(root.joinpath(config.get("data", "hstru")))
|
|
||||||
poro = np.loadtxt(root.joinpath(config.get("data", "poro")))
|
|
||||||
psize = np.loadtxt(root.joinpath(config.get("data", "psize")))
|
|
||||||
|
|
||||||
log.info("Generating grid")
|
|
||||||
x_hires = -np.arange(0, 0.5 * bathy_hires.size, 0.5)[::-1]
|
|
||||||
x_lores = -np.arange(0, 1 * bathy_lores.size, 1)[::-1]
|
|
||||||
x_hstru = -np.arange(0, 0.5 * hstru.size, 0.5)[::-1]
|
|
||||||
|
|
||||||
log.info("Generating output data")
|
|
||||||
bathy_hires_pd = pd.Series(bathy_hires.copy(), index=x_hires)
|
|
||||||
bathy_lores_pd = pd.Series(bathy_lores.copy(), index=x_lores)
|
|
||||||
|
|
||||||
bathy = pd.DataFrame(
|
|
||||||
index=bathy_lores_pd.index.union(bathy_hires_pd.index),
|
|
||||||
columns=("z", "hstru", "poro", "psize"),
|
|
||||||
data=0,
|
|
||||||
)
|
|
||||||
bathy.z[bathy_lores_pd.index] = bathy_lores_pd
|
|
||||||
bathy.z[bathy_hires_pd.index] = bathy_hires_pd
|
|
||||||
|
|
||||||
bathy.loc[x_hstru, ("hstru", "poro", "psize")] = np.array(
|
|
||||||
(hstru, poro, psize)
|
|
||||||
).T
|
|
||||||
|
|
||||||
bathy = bathy.reindex(bathy_lores_pd.index)
|
|
||||||
log.debug(f"Bathymetry:\n{bathy}")
|
|
||||||
log.info(
|
|
||||||
f"xmin: {bathy.index.min()}, "
|
|
||||||
f"xmax: {bathy.index.max()}, "
|
|
||||||
f"n: {bathy.index.size}"
|
|
||||||
)
|
|
||||||
|
|
||||||
if config.has_option("data", "out"):
|
|
||||||
out = pathlib.Path(config.get("data", "out"))
|
|
||||||
log.info(f"Writing output data to '{out}'")
|
|
||||||
out.mkdir(exist_ok=True)
|
|
||||||
np.savetxt(out.joinpath("bathy.dat"), bathy.z, newline=" ")
|
|
||||||
np.savetxt(out.joinpath("hstru.dat"), bathy.hstru, newline=" ")
|
|
||||||
np.savetxt(out.joinpath("poro.dat"), bathy.poro, newline=" ")
|
|
||||||
np.savetxt(out.joinpath("psize.dat"), bathy.psize, newline=" ")
|
|
||||||
|
|
||||||
bathy.to_hdf(out.joinpath("bathy.h5"), "bathy", mode="w")
|
|
||||||
|
|
||||||
if config.getboolean("proc", "plot", fallback=False):
|
|
||||||
if plt is None:
|
|
||||||
log.error("Could not import PyPlot")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
log.info("Plotting data")
|
|
||||||
|
|
||||||
fig, ax = plt.subplots()
|
|
||||||
ax.plot(x_hires, bathy_hires, label="High-res")
|
|
||||||
ax.plot(x_lores, bathy_lores, label="Low-res")
|
|
||||||
ax.plot(bathy.index, bathy.z, ls="-.", c="k", label="Combined")
|
|
||||||
ax.plot(bathy.index, bathy.z + bathy.hstru, label="Hstru")
|
|
||||||
|
|
||||||
ax.grid()
|
|
||||||
ax.legend()
|
|
||||||
plt.show(block=True)
|
|
||||||
|
|
||||||
log.info("Processing finished")
|
|
|
@ -1,94 +0,0 @@
|
||||||
import argparse
|
|
||||||
import configparser
|
|
||||||
import logging
|
|
||||||
import pathlib
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import numpy as np
|
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
try:
|
|
||||||
import matplotlib.pyplot as plt
|
|
||||||
except ImportError:
|
|
||||||
plt = None
|
|
||||||
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Pre-process bathymetry")
|
|
||||||
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("bathy")
|
|
||||||
|
|
||||||
log.info("Starting bathymetry pre-processing")
|
|
||||||
config = configparser.ConfigParser()
|
|
||||||
config.read("config.ini")
|
|
||||||
|
|
||||||
root = pathlib.Path(config.get("data", "root"))
|
|
||||||
|
|
||||||
log.info(f"Reading input data from '{root}'")
|
|
||||||
bathy_hires = np.loadtxt(root.joinpath(config.get("data", "hires")))
|
|
||||||
bathy_lores = np.loadtxt(root.joinpath(config.get("data", "bathy")))
|
|
||||||
hstru = np.loadtxt(root.joinpath(config.get("data", "hstru")))
|
|
||||||
poro = np.loadtxt(root.joinpath(config.get("data", "poro")))
|
|
||||||
psize = np.loadtxt(root.joinpath(config.get("data", "psize")))
|
|
||||||
|
|
||||||
log.info("Generating grid")
|
|
||||||
x_hires = -np.arange(0, 0.5 * bathy_hires.size, 0.5)[::-1]
|
|
||||||
x_lores = -np.arange(0, 1 * bathy_lores.size, 1)[::-1]
|
|
||||||
x_hstru = -np.arange(0, 0.5 * hstru.size, 0.5)[::-1]
|
|
||||||
|
|
||||||
log.info("Generating output data")
|
|
||||||
bathy_hires_pd = pd.Series(bathy_hires.copy(), index=x_hires)
|
|
||||||
bathy_lores_pd = pd.Series(bathy_lores.copy(), index=x_lores)
|
|
||||||
|
|
||||||
bathy = pd.DataFrame(
|
|
||||||
index=bathy_lores_pd.index.union(bathy_hires_pd.index),
|
|
||||||
columns=("z", "hstru", "poro", "psize"),
|
|
||||||
data=0,
|
|
||||||
)
|
|
||||||
bathy.z[bathy_lores_pd.index] = bathy_lores_pd
|
|
||||||
bathy.z[bathy_hires_pd.index] = bathy_hires_pd
|
|
||||||
bathy.z = np.minimum(bathy.z, -15)
|
|
||||||
|
|
||||||
# bathy.loc[x_hstru, ("hstru", "poro", "psize")] = np.array(
|
|
||||||
# (hstru, poro, psize)
|
|
||||||
# ).T
|
|
||||||
|
|
||||||
bathy = bathy.reindex(bathy_lores_pd.index)
|
|
||||||
log.debug(f"Bathymetry:\n{bathy}")
|
|
||||||
log.info(
|
|
||||||
f"xmin: {bathy.index.min()}, "
|
|
||||||
f"xmax: {bathy.index.max()}, "
|
|
||||||
f"n: {bathy.index.size}"
|
|
||||||
)
|
|
||||||
|
|
||||||
if config.has_option("data", "out_nb"):
|
|
||||||
out = pathlib.Path(config.get("data", "out_nb"))
|
|
||||||
log.info(f"Writing output data to '{out}'")
|
|
||||||
out.mkdir(exist_ok=True)
|
|
||||||
np.savetxt(out.joinpath("bathy.dat"), bathy.z, newline=" ")
|
|
||||||
np.savetxt(out.joinpath("hstru.dat"), bathy.hstru, newline=" ")
|
|
||||||
np.savetxt(out.joinpath("poro.dat"), bathy.poro, newline=" ")
|
|
||||||
np.savetxt(out.joinpath("psize.dat"), bathy.psize, newline=" ")
|
|
||||||
|
|
||||||
bathy.to_hdf(out.joinpath("bathy.h5"), "bathy", mode="w")
|
|
||||||
|
|
||||||
if config.getboolean("proc", "plot", fallback=False):
|
|
||||||
if plt is None:
|
|
||||||
log.error("Could not import PyPlot")
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
log.info("Plotting data")
|
|
||||||
|
|
||||||
fig, ax = plt.subplots()
|
|
||||||
ax.plot(x_hires, bathy_hires, label="High-res")
|
|
||||||
ax.plot(x_lores, bathy_lores, label="Low-res")
|
|
||||||
ax.plot(bathy.index, bathy.z, ls="-.", c="k", label="Combined")
|
|
||||||
ax.plot(bathy.index, bathy.z + bathy.hstru, label="Hstru")
|
|
||||||
|
|
||||||
ax.grid()
|
|
||||||
ax.legend()
|
|
||||||
plt.show(block=True)
|
|
||||||
|
|
||||||
log.info("Processing finished")
|
|
|
@ -6,7 +6,6 @@ import pathlib
|
||||||
import matplotlib.animation as animation
|
import matplotlib.animation as animation
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description="Animate swash output")
|
parser = argparse.ArgumentParser(description="Animate swash output")
|
||||||
parser.add_argument("-v", "--verbose", action="count", default=0)
|
parser.add_argument("-v", "--verbose", action="count", default=0)
|
||||||
|
@ -21,10 +20,7 @@ config.read("config.ini")
|
||||||
|
|
||||||
inp = pathlib.Path(config.get("post", "inp"))
|
inp = pathlib.Path(config.get("post", "inp"))
|
||||||
root = pathlib.Path(config.get("swash", "out"))
|
root = pathlib.Path(config.get("swash", "out"))
|
||||||
|
out = pathlib.Path(config.get("plot", "out"))
|
||||||
bathy = pd.read_hdf(
|
|
||||||
pathlib.Path(config.get("data", "out")).joinpath("bathy.h5"), "bathy"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def data(var):
|
def data(var):
|
||||||
|
@ -89,4 +85,4 @@ ani = animation.FuncAnimation(
|
||||||
fig, animate, frames=wl[:, 0].size, interval=20, blit=True
|
fig, animate, frames=wl[:, 0].size, interval=20, blit=True
|
||||||
)
|
)
|
||||||
|
|
||||||
plt.show(block=True)
|
ani.save(out.joinpath("layers.mp4", codec="h265"))
|
||||||
|
|
|
@ -164,6 +164,5 @@ out.mkdir(parents=True, exist_ok=True)
|
||||||
fig.savefig(out.joinpath("t.png"))
|
fig.savefig(out.joinpath("t.png"))
|
||||||
fig_r.savefig(out.joinpath("R.png"))
|
fig_r.savefig(out.joinpath("R.png"))
|
||||||
fig_x.savefig(out.joinpath("x.png"))
|
fig_x.savefig(out.joinpath("x.png"))
|
||||||
plt.show(block=True)
|
|
||||||
|
|
||||||
log.info("Finished post-processing")
|
log.info("Finished post-processing")
|
||||||
|
|
Loading…
Reference in a new issue