# Script to interpolate a temperature profile (profile.in) from altitudes
# defined in z2sig.def.in on a new altitude grid (z2sig.def)

import numpy as np
import pandas as pd
import sys

if sys.argv[1] in ("-h", "--help"):
    print("Must be provided:\n"
          "profile.in   : vertical profile to interpolate\n"
          "z2sig.def.in : input altitude profile\n"
          "z2sig.def    : output altitude profile\n"
    )
    exit(0)

temperature_in = pd.read_csv("profile.in", header=None).iloc[:,0]
print(len(temperature_in), temperature_in[0])
z2sig_in = pd.read_csv("z2sig.def.in", names=range(40), header=None, skiprows=1, delimiter=" +").iloc[:,0]
print(len(z2sig_in), z2sig_in[0])
z2sig_out = pd.read_csv("z2sig.def", names=range(40), header=None, skiprows=1, delimiter=" +").iloc[:,0]
print(len(z2sig_out), z2sig_out[0])

#add surface
z2sig_in = np.insert(z2sig_in,0,0)
z2sig_out = np.insert(z2sig_out,0,0)

print("Input temperature")
print(temperature_in)
print("Input altitude")
print(z2sig_in)
print("Output altitude")
print(z2sig_out)
temperature_out = np.interp(z2sig_out, z2sig_in, temperature_in)
print("Output temperature")
print(temperature_out)
np.savetxt("profile", temperature_out, fmt="%f")