o og@sdZddlZddlZddlZddlZddlZddlZddlmZm Z ej dZ ej dej e ddlZddZddZd d ZdS) a  Program Name: prune_stat_files.py Contact(s): Marcel Caron, Mallory Row Abstract: This script is run by all scripts in EMC_verif-global/scripts/. This prunes the MET .stat files for the specific plotting job to help decrease wall time. N)datetime timedeltaUSH_DIRccs,|}||kr|V||7}||ksdSdS)N)startendtdcurrrrF/lfs/h1/ops/prod/packages/evs.v1.0.19/ush/analyses/prune_stat_files.py dateranges r c CsBt|ttj|tj|fidt|dt| dt| dt|dt| dt| dt|dt| d t| d t|d t| d t| d t|dt| dt| dt|dt| dt| dt| dt|  dt|  d| d| f} | S)NZRUN_CASEZRUN_CASE_UPPERZRUN_CASE_LOWERZRUN_TYPEZRUN_TYPE_UPPERZRUN_TYPE_LOWER LINE_TYPEZLINE_TYPE_UPPERZLINE_TYPE_LOWERVX_MASKZ VX_MASK_UPPERZ VX_MASK_LOWERZVAR_NAMEZVAR_NAME_UPPERZVAR_NAME_LOWERMODELZ MODEL_UPPERZ MODEL_LOWER EVAL_PERIODZEVAL_PERIOD_UPPERZEVAL_PERIOD_LOWERVALIDvalid) np concatenateglobospathjoinstring_template_substitutionZ do_string_substrupperlower) met_stat_filesdata_diroutput_base_templateRUN_caseRUN_type line_typevx_maskvar_namemodel eval_periodrZmet_stat_files_outrrr expand_met_stat_filessp                  r&c Csztdtjt| D]#} g}t|d|dtddD]}t||||||| | | || }qtj||d| d| d||}tj |sNt |t |dkrUq t |d }| }Wdn1sjwYd}|dkrd| vrtd |d | d | d d | d|dtjdd| dd| d|dtjdd}n*td |d | d | d d | d|d| dd| d|d}|D] }tjd| d||dtjtjdd}|d}||}qtj|| d}zt |d}|||Wdn 1s!wYWq ty0wtdtjtdS)NzBEGIN: r)days_anomHGTzPruning z files for model z , vx_mask z , variable /z , line_type z , interp INTERPz | grep " z " | grep "z\|z " | grep " z " | grep " z "z grep -R "z" TzUTF-8)shellstdoutstderrencodingz.statwzEND: )printrrbasename__file__r rr&rexistsmakedirslenopenreadlineenviron subprocessPopenPIPESTDOUT communicatewriteOSError)rZ prune_dirZtmp_dirrZ valid_ranger%rr r!r"fcst_var_namesr# model_listr$rrZpruned_data_dirZmsfZmet_header_colsZall_grep_outputZ filter_cmdZ met_stat_filepsZ grep_outputZpruned_met_stat_fileZpmsfrrr prune_data;s          rG)__doc__rr=rresysnumpyrrrrr< SETTINGS_DIRrinsertabspathrr r&rGrrrr s