U g@@s"ddlZddlZGdddZdS)Nc@seZdZddZddZdS) statusMetacCsg|_g|_g|_g|_g|_g|_g|_g|_g|_g|_ g|_ g|_ g|_ g|_ g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_g|_ d|_!d|_"d|_#d|_$d|_%d|_&d|_'g|_(d|_)d|_*g|_+d|_,g|_-g|_.dS)NF)/hostownererrMsg statusMsg configPath ncepWcosslogFileoutDirtmpDirlogDirst4DirmrmsDirhrrrDirrapDir hrrrWghtPath rapWghtPath mrmsWghtPathhrapNwmWghtPath numHoursBack accDurationgeoFile landMetaFile rqiThresh rqiStepMindRealdInitZdEnddCurrdBegAccdEndAcc nLoopStepslockPathrfcMsk haveRfcMsk haveAccDataemcAccOk useRqiMsk haveHourlyMPEflatLine useMrmsGc hrrrFcstHruseHrrruseRapthreshMMZ logHandle rfcsMskOutrfcsExcludeHrly)selfr1A/lfs/h1/ops/prod/packages/nwm.v3.0.13/ush/mpe_refine/statusMod.py__init__s^zstatusMeta.__init__cCsnt}z||jWnd|j|_YnXzt|dd|_t|dd|_ t|dd|_ t|dd|_ t|dd|_ t|dd|_ t|dd |_t|dd |_t|dd |_t|dd |_t|dd |_t|dd|_t|dd|_t|dd|_t|dd|_t|dd|_t|dd|_|jd|_t|jddkrtdt|jD]}|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|d kr|j|d!kr|j|d"krd#|j|d$|_tqt|dd%|_|jd|_t|jddkrtdt|jD]}|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|dkr|j|d kr|j|d!kr|j|d"krd&|j|d$|_tqt|d'd(|_t|d'd)|_ t|d'd*|_!t|d'd+|_"t|d'd,|_#Wn*t|jdkrDd-|j|_YnXzt$%|WnYnXd.S)/z Function to read in run options from the Python configuration file. This gets called once at the beginning when the workflow is initialized. z/ERROR: Unable to open/read configuration file: Z logisticsrr r r Z stageIVDirrrrZ geo1kmPathZ landMetaPathZhrrrHrapWghtPathrrrZ numHoursProcrZrfcsExcludeHourly rZCBRFCZCNRFCZNERFCZNWRFCZABRFCZSERFCZWGRFCZ WGRFC_specialZNCRFCZLMRFCZMARFCZOHRFCZMBRFCz"ERROR: Invalid rfcsExcludeHourly: z Found in MPE.configZ rfcsMaskOutzERROR: Invalid rfcsMaskOut: Z mpe_paramsrZrqiStepMinutesZrfcGridr*Z thresholdMMz4ERROR: Unable to pull data from configuration file: N)& configparser ConfigParserreadrrintgetrstrr r r r rrrrrrrrrrrr/splitlenrange Exceptionr.floatrrr"r*r-ioModZcheckStaticMeta)r0parserZ rfcCheckTmpr1r1r2 readConfigAs                              zstatusMeta.readConfigN)__name__ __module__ __qualname__r3rBr1r1r1r2rs2r)r5r@rr1r1r1r2 s