def _passthroughRap(self, parms): """ Perform pass through of RAP data as if it were layered NOTE: Add some error status catching for return Parameters ---------- parms : Parms parameters """ # lots of hardwires here ymdh = self._issue.strftime("%Y%m%d%H") path = ymdh + "/" fname = self._valid.strftime("%Y%m%d%H%M") + ".LDASIN_DOMAIN1.nc" fnameOut = self._valid.strftime("%Y%m%d%H%M") + ".LDASIN_DOMAIN1" path += fname WhfLog.setData('RAP') WhfLog.info("LAYERING (Passthrough) %s ", path) # if not there, create the directory to put the file into fullPath = parms._layerDir + "/" fullPath += ymdh if not os.path.exists(fullPath): os.makedirs(fullPath) if not os.path.isdir(fullPath): WhfLog.error("%s is not a directory", fullPath) else: # create copy command and do it cmd = "cp " + parms._rapDir cmd += "/" + path cmd += " " + fullPath cmd += "/" cmd += fnameOut WhfLog.info(cmd) os.system(cmd) WhfLog.info("LAYERING (Passthrough) %s complete", path) WhfLog.setData('RAP/HRRR')
def forceLayer(self, parms, config, itime): """ Perform layering if state is partially ready enough Parameters ---------- parms : Parms Parameters itime : datetime Returns ------- bool True if layering was done, or had previously been done """ if (self._layered): return True self.setAvailability(parms, itime) if (self._rap0 and self._rap3): if (self._hrrr0 and self._hrrr3): self._layered = True if (self._mrms == True): WhfLog.setData('RAP/HRRR/MRMS') layer(parms, itime, self._step, "RAP_HRRR_MRMS", config) else: WhfLog.setData('RAP/HRRR') layer(parms, itime, self._step, "RAP_HRRR", config) WhfLog.setData('RAP/HRRR/MRMS') else: self._layered = True WhfLog.setData('RAP') layer(parms, itime, self._step, "RAP", config) WhfLog.setData('RAP/HRRR/MRMS') else: self._layered = True WhfLog.warning("WARNING, no layering of %s, step=-%d", itime.strftime("%Y%m%d%h"), self._step) return True
def layerIfReady(self, parms, config, itime): """ Perform layering if state is fully ready Parameters ---------- parms : Parms Parameters itime : datetime Returns ------- bool True if layering was done, or had previously been done """ if (self._layered): return True self.setAvailability(parms, itime) if (self._hrrr0 and self._rap0 and self._hrrr3 and self._rap3 and self._mrms): self._layered = True WhfLog.setData('RAP/HRRR/MRMS') layer(parms, itime, self._step, "RAP_HRRR_MRMS", config) return True return False