2022-03-02 11:13:06 +01:00
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 )
2022-03-02 11:24:09 +01:00
x_hstru = np . arange ( - 0.5 * hstru . size , 0 , 0.5 )
2022-03-02 11:13:06 +01:00
bathy_hires_pd = pd . Series ( bathy_hires . copy ( ) , index = x_hires )
bathy_lores_pd = pd . Series ( bathy_lores . copy ( ) , index = x_lores )
2022-03-02 11:47:57 +01:00
bathy = pd . DataFrame (
index = bathy_lores_pd . index . union ( bathy_hires_pd . index ) ,
columns = ( " z " , " hstru " ) ,
2022-03-02 11:24:09 +01:00
)
2022-03-02 11:47:57 +01:00
bathy . z [ bathy_lores_pd . index ] = bathy_lores_pd
bathy . z [ bathy_hires_pd . index ] = bathy_hires_pd
bathy . hstru = 0
bathy . loc [ x_hstru , " hstru " ] = hstru
if config . has_section ( " out " ) :
out = pathlib . Path ( config . get ( " out " , " root " ) )
np . savetxt ( out . joinpath ( " bathy.dat " ) , bathy . z , newline = " " )
np . savetxt ( out . joinpath ( " hstru.dat " ) , bathy . hstru , newline = " " )
2022-03-02 11:13:06 +01:00
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 " )
2022-03-02 11:47:57 +01:00
ax . plot ( bathy . index , bathy . z , ls = " -. " , c = " k " , label = " Combined " )
ax . plot ( bathy . index , bathy . hstru , label = " H stru " )
2022-03-02 11:13:06 +01:00
ax . grid ( )
ax . legend ( )
plt . show ( block = True )