import argparse import configparser import logging import pathlib import numpy as np from scipy import interpolate from .olaflow import OFModel parser = argparse.ArgumentParser( description="Convert swash output to olaFlow input" ) 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("sws_ola") log.info("Starting sws -> olaFlow converter") config = configparser.ConfigParser() config.read("config.ini") sws_out = pathlib.Path(config.get("swash", "npz_out")) sws = np.load(sws_out.joinpath("sws.npz")) x, t = sws["x"], sws["t"] olaflow_root = pathlib.Path(config.get("olaflow", "root")) model = OFModel(olaflow_root) model.read_mesh() watl = interpolate.interp1d(x, sws["watl"][680]) alpha_water = np.where(model.z < watl(model.x), 1, 0) model.write_field("alpha.water", alpha_water)