def _handler(self, request, response): response.update_status("starting ...", 0) # build esgf search constraints constraints = dict( model=request.inputs['model'][0].data, experiment=request.inputs['experiment'][0].data, time_frequency='mon', cmor_table='Amon', ensemble=request.inputs['ensemble'][0].data, ) # generate recipe response.update_status("generate recipe ...", 10) recipe_file, config_file = runner.generate_recipe( workdir=self.workdir, diag='py_demo', constraints=constraints, start_year=request.inputs['start_year'][0].data, end_year=request.inputs['end_year'][0].data, output_format='png', ) # run diag response.update_status("running diag ...", 20) logfile, plot_dir, work_dir = runner.run(recipe_file, config_file) # recipe output response.outputs['recipe'].output_format = FORMATS.TEXT response.outputs['recipe'].file = recipe_file # log output response.outputs['log'].output_format = FORMATS.TEXT response.outputs['log'].file = logfile # result plot response.update_status("collect output plot ...", 90) response.outputs['output'].output_format = Format('application/png') response.outputs['output'].file = runner.get_output( plot_dir, path_filter=os.path.join('diagnostic1', 'script1'), name_filter="CMIP5*", output_format="png") response.outputs['data'].output_format = FORMATS.NETCDF response.outputs['data'].file = runner.get_output( work_dir, path_filter=os.path.join('diagnostic1', 'script1'), name_filter="CMIP5*", output_format="nc") response.update_status("done.", 100) return response
def get_outputs(self, result, response): # result plot response.update_status("collecting output ...", 80) response.outputs['plot'].output_format = Format('application/png') response.outputs['plot'].file = runner.get_output( result['plot_dir'], path_filter=os.path.join('diagnostic1', 'script1'), name_filter="CMIP5*", output_format="png") response.outputs['data'].output_format = FORMATS.NETCDF response.outputs['data'].file = runner.get_output( result['plot_dir'], path_filter=os.path.join('diagnostic1', 'script1'), name_filter="CMIP5*", output_format="nc")
def get_outputs(self, result, response): # result plot response.update_status("collecting output ...", 80) response.outputs['data'].output_format = Format('application/png') response.outputs['data'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('diagnostic1', 'script1'), name_filter="CMIP5*", output_format="nc") response.outputs['xlsx_data'].output_format = Format( 'application/vnd.ms-excel') response.outputs['xlsx_data'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('diagnostic1', 'script1'), name_filter="CMIP5*", output_format="xlsx")
def get_outputs(self, result, response): for plot in self.plotlist: key = '{}_plot'.format(plot.lower()) response.outputs[key].output_format = Format('application/png') response.outputs[key].file = runner.get_output( result['plot_dir'], path_filter=os.path.join('dry_days', 'consecutive_dry_days'), name_filter="*{}".format(plot), output_format="png") response.outputs['data_drymax'].output_format = FORMATS.NETCDF response.outputs['data_drymax'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('dry_days', 'consecutive_dry_days'), name_filter="*drymax", output_format="nc") response.outputs['data_dryfreq'].output_format = FORMATS.NETCDF response.outputs['data_dryfreq'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('dry_days', 'consecutive_dry_days'), name_filter="*dryfreq", output_format="nc")
def get_outputs(self, result, response): # result plot response.update_status("collecting output ...", 80) response.outputs['plot'].output_format = Format('application/eps') response.outputs['plot'].file = runner.get_output( result['plot_dir'], path_filter=os.path.join('EnsClus', 'main'), name_filter="anomalies*", output_format="png") response.outputs['ens_extreme'].output_format = FORMATS.NETCDF response.outputs['ens_extreme'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('EnsClus', 'main'), name_filter="ens_extreme*", output_format="nc") response.outputs['ens_climatologies'].output_format = FORMATS.NETCDF response.outputs['ens_climatologies'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('EnsClus', 'main'), name_filter="ens_anomalies*", output_format="nc") response.outputs['ens_anomalies'].output_format = FORMATS.NETCDF response.outputs['ens_anomalies'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('EnsClus', 'main'), name_filter="ens_anomalies*", output_format="nc") response.outputs['statistics'].output_format = FORMATS.TEXT response.outputs['statistics'].file = runner.get_output( result['work_dir'], path_filter=os.path.join('EnsClus', 'main'), name_filter="statistics*", output_format="txt")
def _handler(self, request, response): response.update_status("starting ...", 0) # build esgf search constraints constraints = dict( model=request.inputs['model'][0].data, experiment=request.inputs['experiment'][0].data, time_frequency='mon', cmor_table='Amon', ensemble=request.inputs['ensemble'][0].data, ) # generate namelist response.update_status("generate namelist ...", 10) recipe_file, config_file = runner.generate_recipe( diag='perfmetrics', constraints=constraints, start_year=request.inputs['start_year'][0].data, end_year=request.inputs['end_year'][0].data, output_format='pdf', workdir=self.workdir, ) # run diag response.update_status("running diag ...", 20) logfile, output_dir = runner.run(recipe_file, config_file) # namelist output response.outputs['namelist'].output_format = FORMATS.TEXT response.outputs['namelist'].file = recipe_file # log output response.outputs['log'].output_format = FORMATS.TEXT response.outputs['log'].file = logfile # result plot response.update_status("collect output plot ...", 90) response.outputs['output'].output_format = Format('application/pdf') response.outputs['output'].file = runner.get_output( output_dir, path_filter=os.path.join('ta850', 'cycle'), name_filter="ta_cycle_monthlyclim__Glob", output_format="pdf") response.update_status("done.", 100) return response