-
2Fc       s1     d  k  Z   d  k Z  d  k i Z  d  k Z  d  k Z  d  k Z  d k l	 Z	  d e
 d  Z V e
 d  Z q e
 d  Z  e
 d  Z  d   Z  e
 d  Z  e
 d	  Z  d
   Z  d   Z  d a  d d d g Z  d d d d d g Z  d   Z  e
 d  Z d  S(   N(   s   dataUtils   usc    s     d }
  d | }  d t i   d |  }  | t j o@  t	 i
 d |  d |  d d  d	 d
 d d d d
  } n  t |  d j o%   t i i d | f  ! |
 Sn $ | t |  d \ } } % t i | d  \ } } & | d } ' t i i d | f  ) h  } * t i i |  o + t | | |  n - t i i d | f  1 | i d  o. 2 | d }	 3 t i i d | |	 f  n: 6 d }	 7 d | f } 8 | d 7} 9 t i i |  ; | i d  o. < | d } = t i i d | | f  n: @ d
 } A d | f } B | d 7} C t i i |  E d }
 F |	 d j  o  G t i i d  H d }
 n J t i i d  L d } M | d j  o  N t i i d   O d } n Q t i i d!  S |
 | f Sd" S(#   sc  Checks for significant radar returns (precip) in a given image
       list. If a list isn't provided, it will look up the latest images
       on disk. If a list IS provided, then we ignore the ProductName and
       ConfigSet. This method assumes that the imageList passed in only
       contains valid images and is already sorted from OLDEST to NEWEST.i    s(   /twc/data/volatile/images/radar/%s.cuts/s   Config.s   .s   dataPaths   prefixs   suffixs
   *[0-9].tifs   startTimeNdxi   s
   endTimeNdxi   s	   sortIndexs/   checkRadarPrecip: no valid images found for %s.i   s   .tifs   .data.indexs/   checkRadarPrecip: examining radar index file %ss-   checkRadarPrecip: missing radar index file %ss   loopRainDensitys)   checkRadarPrecip: %s loopRainDensity = %di   sE   checkRadarPrecip: Error reading loopRainDensity from index file: %s. s.   Assuming loopRainDensity > 5 (echoes present).s   maxPrecipTypes'   checkRadarPrecip: %s maxPrecipType = %dsC   checkRadarPrecip: Error reading maxPrecipType from index file: %s. s3   Assuming maxPrecipType = 3 (winter colors present).s3   checkRadarPrecip: no rain, so radarReturns set to 0sP   checkRadarPrecip: rain echoes found (loopRainDensity > 5), radarReturns set to 1i   s7   checkRadarPrecip: either 'no precip' or 'rain' detecteds/   checkRadarPrecip: mixed precip or snow detectedN("   s   radarReturnss   locations	   imageRoots   dsms   getConfigVersions   RadarProductNames   productStrings	   imageLists   Nones   dataUtils   getValidFileLists   lens	   twccommons   Logs   warnings	   issuetimes   newestImageDataFileNames   strings   splits   fnames   ftypes	   statsFiles   infos   nsRains   oss   paths   isfiles   execfiles   errors   has_keys   loopRainDensitys   msgs   maxPrecipTypes   winterColors(   s   RadarProductNames   locations	   imageLists	   imageRoots   maxPrecipTypes   nsRains   winterColorss	   statsFiles   productStrings   loopRainDensitys   radarReturnss   ftypes   fnames   msgs   newestImageDataFileNames	   issuetime(    (    s   __init__.pys   checkRadarPrecip sZ   				!	!			c    s-  V W d } Y |  t j o= Z t i d  } [ | t j o \ | Sn ] | i }  n _ g  } ` xc |  D` ]X } a t i	 d | f  } b | t j o) c t i |  } d | i | i  n ql Wi x7 | Di ], } j | t j o k t i |  } n q Wm t i i d | f  n | Sd  S(   Ni    s   Local_CurrentConditionss   obs.%ss   checkCurrentConditionsPrecip=%d(   s	   hasPrecips   obsStationss   Nones   dsms   defaultedConfigGets   obs
   obsStations   obsLists   stns   defaultedGets   obss	   twccommons   DefaultedDatas   obxs   appends   skyConditions   skyCodes
   wxDataUtils   skyConditionHasPrecips   Logs   info(   s   obsStationss   skyCodes   obsLists   stns   obs	   hasPrecips   obxs   obs(    (    s   __init__.pys   checkCurrentConditionsPrecipV s&   		
 	
 	c    sw   q r d } t |  t j o= u t i d  } v | t j o w | Sn x | i }  n | t i i d  ~ | Sd  S(   Ni    s   Local_TextForecasts(   NO PRECIP FOR YOU! (checkTextForecast=0)(	   s	   hasPrecips   coopIds   Nones   dsms   defaultedConfigGets   fcsts	   twccommons   Logs   info(   s   coopIds   fcsts	   hasPrecip(    (    s   __init__.pys   checkTextForecastPrecipq s   	c    sS     t  t d |  d | }  t | |  }  |  | _  | | _  | Sd  S(   Ns   packages   packageInst(   s   _fmtAttribKeyss   _pkgKeyTemplatess   packages   packageInsts   keyss   _getAttribLists   defaults   attrs(   s   packages   packageInsts   defaults   keyss   attrs(    (    s   __init__.pys   getPkgAttribs s
   c  
  s}     t  t  d |  d |  d | d | }  t | |  }  |  | _  | | _  | | _  | | _  | Sd  S(   Ns   packages   packageInsts   products   productInst(
   s   _fmtAttribKeyss   _prodKeyTemplatess   packages   packageInsts   products   productInsts   keyss   _getAttribLists
   pkgAttribss   attrs(   s   packages   packageInsts   products   productInsts
   pkgAttribss   attrss   keys(    (    s   __init__.pys   getProdAttribs s   	c    sB     t  t }  t | |  i  }  t | |  }  | Sd  S(   N(	   s   _pkgKeyTemplatess   _prodKeyTemplatess   keyss   _fmtAttribKeyss   paramss   __dict__s   _getAttribLists   defaults   attrs(   s   paramss   defaults   keyss   attrs(    (    s   __init__.pys
   getAttribs s   c    s#    h  }  t i   }  | | d < | o  | i i | i  n  | | _  | | _
  | | _  | | _  |  d | d }
  t |
 d  }  | i   }  | i    t i i | | t | d g    }  t |  \ }	 }  | i |   | i    |	 Sd  S(   Ns   paramss   /s   .rss   rs   shareDir(   s   nss   twcs   Datas   paramss   extraParamss   __dict__s   updates   pkgNames   packages   pkgInsts   packageInsts   prods   products   prodInsts   productInsts   srcDirs   srcNames   opens   fs   reads   pages   closes   psps   evalRenderScripts   getattrs   tmpFiles   dstDirs   dstNames   write(   s   srcDirs   dstDirs   pkgNames   pkgInsts   prods   prodInsts   extraParamss   nss   fs   dstNames   srcNames   paramss   page(    (    s   __init__.pys   buildPresentationScript s$   	
'c    sI      d |  t f }  t | d  }  t d 7a  | | f Sd  S(   Ns	   %s/%d.rscs   wi   (   s   dirs   _IDs   fnames   opens   f(   s   dirs   fnames   f(    (    s   __init__.pys   tmpFile s
   c    sL      t  |  d  }  t i   }  | i d |   | i   d  S(   Ns   ws   %d
(   s   opens   pidFileNames   fs   oss   getpids   pids   writes   close(   s   pidFileNames   fs   pid(    (    s   __init__.pys   writePid s
   i    s   defaults   %(package)ss   %(package)s.%(packageInst)ss   %(product)ss   %(product)s.%(productInst)ss   %(package)s.%(product)ss'   %(package)s.%(packageInst)s.%(product)ss7   %(package)s.%(packageInst)s.%(product)s.%(productInst)sc    se     g  }  xH |  D ]= }  y  | i | |  Wn  t j
 o
  n Xq W | Sd  S(   N(   s   skeyss   keyss   keys   appends   kws   KeyError(   s   keyss   kws   keys   skeys(    (    s   __init__.pys   _fmtAttribKeys s   	
 	c    sj     g  }  xA |  D ]6 }  y  | i t i |   Wn   n Xq W t i | |  Sd  S(   N(	   s
   attribLists   keyss   keys   appends   dsms	   configGets	   twccommons   mergeStructss   default(   s   keyss   defaults   keys
   attribList(    (    s   __init__.pys   _getAttribList s   	
 	(   s   oss   twcs   twc.dsmarshals	   dsmarshals   dsms   twc.psps	   twccommons   strings   wxscans   dataUtils   Nones   checkRadarPrecips   checkCurrentConditionsPrecips   checkTextForecastPrecips   getPkgAttribss   getProdAttribss
   getAttribss   buildPresentationScripts   tmpFiles   writePids   _IDs   _pkgKeyTemplatess   _prodKeyTemplatess   _fmtAttribKeyss   _getAttribList(   s   getProdAttribss   strings   _prodKeyTemplatess   writePids
   getAttribss   dataUtils   checkTextForecastPrecips   twcs   tmpFiles   checkCurrentConditionsPrecips   checkRadarPrecips   _getAttribLists   _pkgKeyTemplatess   _fmtAttribKeyss   dsms   getPkgAttribss   buildPresentationScripts	   twccommons   os(    (    s   __init__.pys   ? s(   K

			