Source code for komanawa.basgra_nz_py.supporting_functions.woodward_2020_params

"""
 Author: Matt Hanson
 Created: 24/11/2020 9:05 AM
 """

import pandas as pd
import os
from komanawa.basgra_nz_py.input_output_keys import plant_param_keys, site_param_keys


[docs] def get_woodward_mean_site_param(site): """ get woodward 2020 site parameters see Woodward, 2020 https://onlinelibrary.wiley.com/doi/abs/10.1111/gfs.12464 for more details :param site: one of * 'waikato': scott farm in Waikato, * 'scott': scott farm in Waikato, used for back compatibility * 'northland': Jordan Vally farm in northland, * 'lincoln': Lincoln test farm in Lincoln Canterbury :return: """ params = pd.Series(get_woodward_mean_full_params(site)) params = params.loc[list(site_param_keys)] params.to_dict() return params
[docs] def get_woodward_mean_plant_params(site): """ get woodward 2020 plant parameters see Woodward, 2020 https://onlinelibrary.wiley.com/doi/abs/10.1111/gfs.12464 for more details Note that the plant parameters are identical across all sites other than [LOG10CLVI, LOG10CRTI, TILTOTI, BASALI] :param site: one of * 'waikato': scott farm in Waikato, * 'scott': scott farm in Waikato, used for back compatibility * 'northland': Jordan Vally farm in northland, * 'lincoln': Lincoln test farm in Lincoln Canterbury :return: """ params = pd.Series(get_woodward_mean_full_params(site)) params = params.loc[list(plant_param_keys)] params.to_dict() return params
[docs] def get_woodward_mean_full_params(site): """ get woodward 2020 site parameters see Woodward, 2020 https://onlinelibrary.wiley.com/doi/abs/10.1111/gfs.12464 for more details :param site: one of * 'waikato': scott farm in Waikato, * 'scott': scott farm in Waikato, used for back compatibility * 'northland': Jordan Vally farm in northland, * 'lincoln': Lincoln test farm in Lincoln Canterbury :return: """ if site == 'scott' or site == 'waikato': col = 1 + 8 * (1) elif site == 'northland': col = 1 + 8 * (1 - 1) elif site == 'lincoln': col = 1 + 8 * (3 - 1) else: raise ValueError('unexpected site') params = pd.read_csv(os.path.join(os.path.dirname(__file__), 'Woodward_2020_BASGRA_parModes.txt'), sep='\s+', index_col=0).iloc[:, col] params.loc['IRRIGF'] = 0 params.loc['fixed_removal'] = 0 params.loc['DRATE'] = 50 # used to be set inside fortran params.loc['CO2A'] = 350 # used to be set inside fortran params.loc['poolInfilLimit'] = 0.2 # used to be set inside fortran params.loc['opt_harvfrin'] = 0 params.loc['irr_frm_paw'] = 0 params.loc['reseed_harv_delay'] = 1 params.loc['reseed_LAI'] = 0 params.loc['reseed_TILG2'] = 0 params.loc['reseed_TILG1'] = 0 params.loc['reseed_TILV'] = 0 params.loc['reseed_CLV'] = 0 params.loc['reseed_CRES'] = 0 params.loc['reseed_CST'] = 0 params.loc['reseed_CSTUB'] = 0 params.loc['pass_soil_moist'] = 0 params.loc['use_storage'] = 0 # the following storage parameters should not matter if use_storage == 0 params.loc['runoff_from_rain'] = 1 params.loc['calc_ind_store_demand'] = 0 params.loc['stor_full_refil_doy'] = 240 params.loc['abs_max_irr'] = 1000 # non-sensically high params.loc['irrigated_area'] = 100 # set to ensure that use_storage=0 cuts storage params.loc['I_h2o_store_vol'] = 0 params.loc['h2o_store_max_vol'] = 10000 params.loc['h2o_store_SA'] = 0 params.loc['runoff_area'] = 0 params.loc['runoff_frac'] = 0 params.loc['stor_refill_min'] = 0 params.loc['stor_refill_losses'] = 0 params.loc['stor_leakage'] = 0 params.loc['stor_irr_ineff'] = 0 params.loc['stor_reserve_vol'] = 0 params = params.copy().to_dict() return params