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

53 lines
1.4 KiB
Python

import pathlib
import configparser
import logging
import sys
import numpy as np
import pandas as pd
try:
import matplotlib.pyplot as plt
except ImportError:
plt = None
logging.basicConfig(level="INFO")
log = logging.getLogger("bathy")
config = configparser.ConfigParser()
config.read("config.ini")
root = pathlib.Path(config.get("data", "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")))
x_hires = np.arange(-0.5 * bathy_hires.size, 0, 0.5)
x_lores = np.arange(-1 * bathy_lores.size, 0, 1)
x_hstru = np.arange(-0.5 * hstru.size, 0, 0.5)
bathy_hires_pd = pd.Series(bathy_hires.copy(), index=x_hires)
bathy_lores_pd = pd.Series(bathy_lores.copy(), index=x_lores)
bathy = bathy_lores_pd.reindex(
bathy_lores_pd.index.union(bathy_hires_pd.index)
)
bathy[bathy_hires_pd.index] = bathy_hires_pd
if config.getboolean("proc", "plot", fallback=False):
if plt is None:
log.error("Could not import PyPlot")
sys.exit(1)
fig, ax = plt.subplots()
ax.plot(x_hires, bathy_hires, label="High-res")
ax.plot(x_lores, bathy_lores, label="Low-res")
ax.plot(x_hstru, bathy[x_hstru]+hstru, label="H stru")
ax.plot(bathy.index, bathy, ls="-.", c="k", label="Combined")
ax.grid()
ax.legend()
plt.show(block=True)