def perform_read(model_name, var_name, dest_dict, read_routine):
"""
Retrieve data from read_routine and formats it into dest_disc
:param model_name: String. The name of the model.
:param var_name: String. The name of the variable.
:param dest_dict: Dictionary. Where data will be stored
:param read_routine: lambda. Lambda that wrap the read routine to use it as an argument for this function.
:return:
Perform the given read_routine and updates the data of dest_dict.
"""
if model_name not in dest_dict:
new_data = read_routine((model_name, var_name))
if new_data is not None:
f_data, f_lat, f_lon, d_time, c_ModelFile, c_TimeFreq, c_Units = new_data
else:
logging.warning('No data for model %s and variable %s', model_name, var_name)
return # Solo para detener la ejecucion.
t_temp = {'f_Lat': f_lat,
'f_Lon': f_lon,
'd_Time': np.array(d_time),
'f_Time': date2num(d_time),
'c_TimeFreq': c_TimeFreq}
dest_dict[model_name] = dict(t_temp)
dest_dict[model_name]['t_Units'] = dict()
else:
# TODO: Handle if new_data is None, same as above
f_data, _, _, _, _, _, c_Units = read_routine((model_name, var_name))
dest_dict[model_name][var_name] = f_data
dest_dict[model_name]['t_Units'][var_name] = c_Units
评论列表
文章目录