From 7934c1c14ff49405a56a01bb6f83c091d645c875 Mon Sep 17 00:00:00 2001 From: sbiri <sbiri@noc.ac.uk> Date: Thu, 11 Mar 2021 10:40:31 +0000 Subject: [PATCH] Update AirSeaFluxCode.py, get_init.py, hum_subs.py files --- AirSeaFluxCode.py | 15 ++++++++------- get_init.py | 11 +++++++++-- hum_subs.py | 6 +----- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/AirSeaFluxCode.py b/AirSeaFluxCode.py index 835127c..377ad34 100644 --- a/AirSeaFluxCode.py +++ b/AirSeaFluxCode.py @@ -136,14 +136,15 @@ def AirSeaFluxCode(spd, T, SST, lat=None, hum=None, P=None, hin=18, hout=10, format='%(asctime)s %(message)s',level=logging.INFO) logging.captureWarnings(True) # check input values and set defaults where appropriate - lat, P, Rl, Rs, cskin, skin, wl, gust, tol, L = get_init(spd, T, SST, lat, - P, Rl, Rs, cskin, - skin, wl, gust, L, - tol, meth, qmeth) + lat, hum, P, Rl, Rs, cskin, skin, wl, gust, tol, L = get_init(spd, T, SST, + lat, hum, P, + Rl, Rs, + cskin, skin, + wl, gust, L, + tol, meth, + qmeth) flag = np.ones(spd.shape, dtype="object")*"n" - flag = np.where(np.isnan(spd+T+SST+lat+hum[1]+P+Rs) & (flag == "n"), - "m", np.where(np.isnan(spd+T+SST+lat+hum[1]+P+Rs) & - (flag != "n"), flag+[","]+["m"], flag)) + flag = np.where(np.isnan(spd+T+SST+lat+hum[1]+P+Rs), "m", flag) ref_ht = 10 # reference height h_in = get_heights(hin, len(spd)) # heights of input measurements/fields h_out = get_heights(hout, 1) # desired height of output variables diff --git a/get_init.py b/get_init.py index 47ddf53..8f2b49f 100644 --- a/get_init.py +++ b/get_init.py @@ -1,7 +1,7 @@ import numpy as np import sys -def get_init(spd, T, SST, lat, P, Rl, Rs, cskin, skin, wl, gust, L, tol, meth, +def get_init(spd, T, SST, lat, hum, P, Rl, Rs, cskin, skin, wl, gust, L, tol, meth, qmeth): """ Checks initial input values and sets defaults if needed @@ -17,6 +17,8 @@ def get_init(spd, T, SST, lat, P, Rl, Rs, cskin, skin, wl, gust, L, tol, meth, sea surface temperature in K lat : float latitude (deg), default 45deg + hum : float + relative humidity, if None is set to 80% P : float air pressure (hPa), default 1013hPa Rl : float @@ -100,6 +102,11 @@ def get_init(spd, T, SST, lat, P, Rl, Rs, cskin, skin, wl, gust, L, tol, meth, lat = 45*np.ones(spd.shape) elif ((np.all(lat != None)) and (np.size(lat) == 1)): lat = np.ones(spd.shape)*np.copy(lat) + if (hum == None): + RH = np.ones(SST.shape)*80 + hum = ['rh', RH] + else: + hum = hum if ((np.all(P == None)) or np.all(np.isnan(P))): P = np.ones(spd.shape)*1013 elif (((np.all(P != None)) or np.all(~np.isnan(P))) and np.size(P) == 1): @@ -149,4 +156,4 @@ def get_init(spd, T, SST, lat, P, Rl, Rs, cskin, skin, wl, gust, L, tol, meth, tol = ['flux', 1e-3, 0.1, 0.1] elif (tol[0] not in ['flux', 'ref', 'all']): sys.exit("unknown tolerance input") - return lat, P, Rl, Rs, cskin, skin, wl, gust, tol, L + return lat, hum, P, Rl, Rs, cskin, skin, wl, gust, tol, L diff --git a/hum_subs.py b/hum_subs.py index 385b786..98591c1 100644 --- a/hum_subs.py +++ b/hum_subs.py @@ -372,11 +372,7 @@ def get_hum(hum, T, sst, P, qmeth): specific humidity over sea surface """ - if (hum == None): - RH = np.ones(sst.shape)*80 - qsea = qsat_sea(sst, P, qmeth)/1000 # surface water q (kg/kg) - qair = qsat_air(T, P, RH, qmeth)/1000 # q of air (kg/kg) - elif (hum[0] not in ['rh', 'q', 'Td']): + if (hum[0] not in ['rh', 'q', 'Td']): sys.exit("unknown humidity input") qair, qsea = np.nan, np.nan elif (hum[0] == 'rh'): -- GitLab