| 1 | # Script to interpolate a temperature profile (profile.in) from altitudes |
|---|
| 2 | # defined in z2sig.def.in on a new altitude grid (z2sig.def) |
|---|
| 3 | |
|---|
| 4 | import numpy as np |
|---|
| 5 | import pandas as pd |
|---|
| 6 | import sys |
|---|
| 7 | |
|---|
| 8 | if sys.argv[1] in ("-h", "--help"): |
|---|
| 9 | print("Must be provided:\n" |
|---|
| 10 | "profile.in : vertical profile to interpolate\n" |
|---|
| 11 | "z2sig.def.in : input altitude profile\n" |
|---|
| 12 | "z2sig.def : output altitude profile\n" |
|---|
| 13 | ) |
|---|
| 14 | exit(0) |
|---|
| 15 | |
|---|
| 16 | temperature_in = pd.read_csv("profile.in", header=None).iloc[:,0] |
|---|
| 17 | print(len(temperature_in), temperature_in[0]) |
|---|
| 18 | z2sig_in = pd.read_csv("z2sig.def.in", names=range(40), header=None, skiprows=1, delimiter=" +").iloc[:,0] |
|---|
| 19 | print(len(z2sig_in), z2sig_in[0]) |
|---|
| 20 | z2sig_out = pd.read_csv("z2sig.def", names=range(40), header=None, skiprows=1, delimiter=" +").iloc[:,0] |
|---|
| 21 | print(len(z2sig_out), z2sig_out[0]) |
|---|
| 22 | |
|---|
| 23 | #add surface |
|---|
| 24 | z2sig_in = np.insert(z2sig_in,0,0) |
|---|
| 25 | z2sig_out = np.insert(z2sig_out,0,0) |
|---|
| 26 | |
|---|
| 27 | print("Input temperature") |
|---|
| 28 | print(temperature_in) |
|---|
| 29 | print("Input altitude") |
|---|
| 30 | print(z2sig_in) |
|---|
| 31 | print("Output altitude") |
|---|
| 32 | print(z2sig_out) |
|---|
| 33 | temperature_out = np.interp(z2sig_out, z2sig_in, temperature_in) |
|---|
| 34 | print("Output temperature") |
|---|
| 35 | print(temperature_out) |
|---|
| 36 | np.savetxt("profile", temperature_out, fmt="%f") |
|---|