1
Fork 0
internship/data/processing/subdomain.py

56 lines
1.6 KiB
Python
Raw Permalink Normal View History

import argparse
import configparser
import logging
import pathlib
2022-04-07 15:03:15 +02:00
import sys
import numpy as np
parser = argparse.ArgumentParser(description="Pre-process bathymetry")
parser.add_argument("-v", "--verbose", action="count", default=0)
2022-03-29 09:38:11 +02:00
parser.add_argument("-c", "--config", default="config.ini")
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()
2022-03-29 09:38:11 +02:00
config.read(args.config)
2022-03-29 09:47:45 +02:00
artha = np.array((config.getfloat("artha", "lon"), config.getfloat("artha", "lat")))
buoy = np.array((config.getfloat("buoy", "lon"), config.getfloat("buoy", "lat")))
log.debug(f"artha: {artha}")
log.debug(f"buoy: {buoy}")
domain = np.stack((artha, buoy))
domain.sort(axis=0)
log.debug(f"domain: {domain}")
2022-03-30 10:57:29 +02:00
margin = config.getfloat("out", "margin", fallback=0.002)
domain[0] -= margin
domain[1] += margin
log.debug(f"domain: {domain}")
2022-03-11 14:55:16 +01:00
inp_root = pathlib.Path(config.get("inp", "root"))
out_root = pathlib.Path(config.get("out", "root"))
2022-03-28 17:37:08 +02:00
out_root.mkdir(exist_ok=True)
2022-03-11 14:55:16 +01:00
bathy_inp = inp_root.joinpath(config.get("inp", "base"))
bathy_out = out_root.joinpath(config.get("out", "sub"))
2022-04-07 15:03:15 +02:00
if bathy_out.exists():
log.error(f"'{bathy_out}' already exists!")
sys.exit(1)
log.info(f"Reading bathymetry from '{bathy_inp}'")
2022-03-11 16:02:36 +01:00
raw_bathy = np.loadtxt(bathy_inp)
log.debug(f"Initial size: {raw_bathy.shape}")
bathy = raw_bathy[
2022-03-29 09:47:45 +02:00
((raw_bathy[:, :2] > domain[0]) & (raw_bathy[:, :2] < domain[1])).all(axis=1)
]
2022-03-11 16:02:36 +01:00
del raw_bathy
log.debug(f"Final size: {bathy.shape}")
log.info(f"Saving subdomain to 'bathy'")
np.save(bathy_out, bathy)
2022-04-07 15:03:15 +02:00
bathy_out.chmod(0o444)