diff --git a/ews/coordinator/processor_epidemiology.py b/ews/coordinator/processor_epidemiology.py index a3303968f770909e1a2a85a88d2f7e11dc86cd05..2499a855342b61a0c7f3ac2f783d344a4b8822d8 100644 --- a/ews/coordinator/processor_epidemiology.py +++ b/ews/coordinator/processor_epidemiology.py @@ -486,12 +486,12 @@ class ProcessorEpidemiology(ProcessorBase): if is_continue is True: # This will be used in the epi model and not the data preparation continue_start_date = reference_date+datetime.timedelta(hours=3) - config_epi['StartTime'] = continue_start_date.strftime('%Y-%m-%d-%H%M') - config_epi['StartTimeShort'] = continue_start_date.strftime('%Y%m%d%H%M') + config_epi['ContinueStartTime'] = continue_start_date.strftime('%Y-%m-%d-%H%M') def print_item(item): logger.debug(f"Item {item}") logger.debug(json.dumps(item,indent=2)) + def iterate(items): for item in items.items(): if hasattr(item,'items'): @@ -508,16 +508,17 @@ class ProcessorEpidemiology(ProcessorBase): logger.debug(json.dumps(config_epi,indent=2)) # write the complete configuration file to job directory - with open(f"{case_specific_path}/{config_filename}.json",'w') as write_file: + run_config_fn = f"{case_specific_path}/{config_filename}.json" + + with open(run_config_fn,'w') as write_file: json.dump(config_epi,write_file,indent=4) # run epi model logger.info('About to run the epi model.') - try: - model.run_epi_model(f"{case_specific_path}/{config_filename}.json") + model.run_epi_model(run_config_fn) except: logger.exception('Unexpected error in EpiModel') raise @@ -641,7 +642,11 @@ class ProcessorEpidemiology(ProcessorBase): # initalise necessary variables from config - start_date, end_date = calc_epi_date_range(config['StartString'],config['CalculationSpanDays']) + reference_date_str = config['StartString'] + reference_date = datetime.datetime.strptime(reference_date_str,'%Y%m%d') + + start_date, end_date = calc_epi_date_range(reference_date_str,config['CalculationSpanDays']) + start_string = start_date.strftime('%Y%m%d') end_string = end_date.strftime('%Y%m%d') @@ -668,7 +673,7 @@ class ProcessorEpidemiology(ProcessorBase): # TODO get deposition_dir from config['Deposition']['PathTemplate'] dep_regionname = 'Ethiopia' #SouthAsia - deposition_dir = f"{config['WorkspacePath']}DEPOSITION_{start_string}/WR_NAME_{dep_regionname}_{start_string}/" + deposition_dir = f"{config['WorkspacePath']}DEPOSITION_{reference_date_str}/WR_NAME_{dep_regionname}_{reference_date_str}/" # TODO: handle multiple diseases and regions in Processor as a loop, or in the config deposition_disease_name = [disease_latin_name_dict[disease]+'_DEPOSITION' for disease in diseases][0] @@ -713,7 +718,7 @@ class ProcessorEpidemiology(ProcessorBase): run_params_file_arg=seasonsofar_run_config, epi_input_csv_arg=epi_seasonsofar_fn, disease_type_arg=disease_short+'_seasontodate', - issue_date_arg=start_string, + issue_date_arg=reference_date_str, output_dir_arg=ews_plot_dir, wheat_sources_dir_arg=deposition_dir, wheat_source_disease_name_arg=deposition_disease_name, @@ -734,7 +739,7 @@ class ProcessorEpidemiology(ProcessorBase): epi_input_csv_arg=epi_seasonincforecast_fn, # for seasonplusforecast #epi_input_csv_arg=epi_filename+'_weekahead.csv', # for weekahead disease_type_arg=disease_short+'_seasonincforecast', - issue_date_arg=start_string, + issue_date_arg=reference_date_str, output_dir_arg=ews_plot_dir, wheat_sources_dir_arg=deposition_dir, wheat_source_disease_name_arg=deposition_disease_name,