-í
ÁB±Oc       sÁ      d  k  Z   d  k Z  d  k Z  d  k Z  d  k i Z  d  k i Z  d  k i	 Z
  d e i i f d „  ƒ  YZ v d e i i f d „  ƒ  YZ û d e i i f d „  ƒ  YZ d  S(   Ns   AnimatedMapc      s&    d  Z    d „  Z : d „  Z RS(   s  This class supports maps that "animate" (i.e. - support multiple data
       layer images that 'move' over the map). Although this class still
       works (and is still used) for maps that only have one data image to
       display -- you just won't see any 'movement'c    sÀ     t  i i i |  | ƒ  d |  _  d |  _  d |  _ ! t	 i
 d } " | d } # |  i d d t i ƒ  |  i ƒ  f + d | . d g  1 d	 d 2 d
 d 6 d d 7 d d ƒ d  S(   Niÿÿÿÿi    s
   TWCPERSDIRs   /data/volatile/imagess   productStrings   Config.%s.%ss	   imageRoots	   imageLists   imageFrequencys	   maxImagess   imageDurations   lastImageDuration(   s   twcs   productss   Products   __init__s   selfs   paramss   _maxAllowedImageGaps   _ignoreImageExpirations   _ignoreTimeGapss   oss   environs
   TWCPERSDIRs	   imageRoots
   updateDatas   dsms   getConfigVersions   getName(   s   selfs   paramss	   imageRoots
   TWCPERSDIR(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   __init__ s   %					c    sü  : ; t  i |  i ƒ  ƒ } < |  i ƒ  } ? d | _ B d | _ E d | i	 f } H t i i | ƒ d j o4 I t  i i d | i	 f ƒ J d | _ K d  Sn N t i d | i O d | i	 P d d	 Q d
 d d d d d ƒ | _ T |  i d j o t | i ƒ d j o: Y t i |  i ƒ  | i | i [ |  i |  i ƒ | _ n ^ | i d | i !| _ a t | i ƒ d j o c d | _ n e t  i i d | i	 f ƒ m | i i ƒ  p | i | _ q | i | _ r | i | _ s | i | _ d  S(   Ni   s   Temporarily Unavailables   /twc/data/map.cuts/%s.map.tifi    s/   no map cut found for %s. Can't display product.s   dataPaths   prefixs   suffixs
   *[0-9].tifs   startTimeNdxi   s
   endTimeNdxi   s	   sortIndexs1   no valid images found for %s. No data to display.(    s	   twccommons   DefaultedDatas   selfs	   getParamss   paramss   getDatas   datas   noDataAvailables   noDataAvailableTexts   productStrings   mapCuts   oss   paths   existss   Logs   warnings   dataUtils   getValidFileLists   imageDirs	   imageLists   _maxAllowedImageGaps   lens   checkImageListForGapss   getNames   imageFrequencys   _ignoreTimeGapss	   maxImagess   reverses   vectors
   textStrings	   tiffImages   labeledTiffImage(   s   selfs   paramss   mapCuts   data(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys	   _loadData: s2   	)(   s   __doc__s   __init__s	   _loadData(    (    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   AnimatedMap s   	)s   ObservationMapc      s)   v x d „  Z  ƒ d „  Z ž d „  Z RS(   Nc    sI   x y t  i i i |  | ƒ { |  i d d t i ƒ  |  i	 ƒ  f ƒ d  S(   Ns   productStrings   Config.%s.%s(
   s   twcs   productss   Products   __init__s   selfs   paramss
   updateDatas   dsms   getConfigVersions   getName(   s   selfs   params(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   __init__x s   c    sí   ƒ † t  } ‰ d | f } Š t i | t  ƒ } Œ | t  j	 o¡  t i | ƒ }  | d j o ‘ | i
 } nl ’ | d j o[ “ t i | i ” d d ƒ } – | d j o — t  } n ™ t i d | i d ƒ } n n › | Sd  S(   Ns   obs.%ss   temps   skyConditions   Observationi    s   /icons/map/%ss   mv(   s   Nones   values
   obsStations   obsKeys   dsms   defaultedGets   observations	   twccommons   DefaultedDatas   dataTypes   temps
   wxDataUtils   formatSkyConditions   skyConditions   twcs   findRsrcs   iconFile(   s   selfs
   obsStations   dataTypes   observations   values   obsKey(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   _getObservationDataƒ s   	$c    ss  ž Ÿ t  i |  i ƒ  ƒ }   |  i ƒ  } ¢ d | _ ¥ d | _ ¨ d | i	 f } « t i i | ƒ d j o4 ¬ t  i i d | i	 f ƒ ­ d | _ ® d  Sn ° y_² d } ³ d } ¶ g  } º | i oï ¼ xå | i D¼ ]× \ } } ¿ | d } Á g  } Â d }	 Ã xw | DÃ ]l }
 Ä |
 d } Å |
 d } È |  i | | ƒ } É | t j o Ê | d 7} n Ë | i | | f ƒ qWÍ | t  | ƒ 7} Î | i | t! | ƒ f ƒ qà Wn Ð | | _ Ó g  } × | i# oÙ Ù xÏ | i# DÙ ]Á \ } } Ü g  } Ý xw | DÝ ]l }
 Þ |
 d } ß |
 d } â |  i | d ƒ } ã | t j o ä | d 7} n å | i | | f ƒ qWç | t  | ƒ 7} è | i | t! | ƒ f ƒ qñWn ê | | _# ë t  i i d | | f ƒ í | | j o î d | _ n Wn) ð ñ t  i i% d	 ƒ ò d | _ n Xõ | i& | _& ö | i' | _' ÷ | i( | _( ø | i) | _) d  S(
   Ni    s	   No Reports   /twc/data/map.cuts/%s.map.tifs/   no map cut found for %s. Can't display product.i   i   s   skyConditions   MISSING %s, MAX, %ss   ObservationMap loadData error:(*   s	   twccommons   DefaultedDatas   selfs	   getParamss   paramss   getDatas   datas   noDataAvailables   noDataAvailableTexts   productStrings   mapCuts   oss   paths   existss   Logs   warnings   maxDataCounts   missingDataCounts	   obsValuess   obsValues
   propertiess   elementss   dataTypes   updatedElementss	   dataCounts   items
   obsStations   positions   _getObservationDatas   values   Nones   appends   lens   tuples   obsIconss   obsIcons   iconFiles   logCurrentExceptions   vectors	   tiffImages   labeledTiffImages
   textString(   s   selfs   elementss
   obsStations	   obsValuess   updatedElementss   maxDataCounts   iconFiles   mapCuts   missingDataCounts	   dataCounts   items   datas   values
   propertiess   dataTypes   paramss   positions   obsIcons(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys	   _loadDataž sp   			 		
 	$	 	
 	$(   s   __init__s   _getObservationDatas	   _loadData(    (    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   ObservationMapv s   s   ForecastMapc      s)   û ý d „  Z  d „  Z d „  Z RS(   Nc    sI   ý þ t  i i i |  | ƒ  |  i d d t i ƒ  |  i	 ƒ  f ƒ d  S(   Ns   productStrings   Config.%s.%s(
   s   twcs   productss   Products   __init__s   selfs   paramss
   updateDatas   dsms   getConfigVersions   getName(   s   selfs   params(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   __init__ý s   c 	   sÄ   	t  } d | | | | f } t i | ƒ } | t  j	 or | } | d j p | d j p
 | d j o; t
 i t | ƒ d ƒ i } t i d | d ƒ } n n | Sd  S(   Ns   %s.%s.%d.%ss   skyConditions   daySkyConditions   eveningSkyConditions   Forecasts   /icons/map/%ss   mv(   s   Nones   values   recTypes   coopIds
   timePeriods   dataTypes   fcstKeys   dsms   defaultedGets   fcstDatas
   wxDataUtils   formatSkyConditions   ints   iconFiles   twcs   findRsrc(	   s   selfs   coopIds
   timePeriods   recTypes   dataTypes   fcstDatas   values   iconFiles   fcstKey(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   _getDailyForecastDatas   		*!c    sH  t  i |  i ƒ  ƒ } %t  i ƒ  } 'd | _ *g  } +g  }
 .| i
 oõ /xë | i
 D/]Ý \ }	 } 2| t j o t |	 ƒ d j o 3|	 d } n 5g  } 6xr | D6]g } 7| d } 8| d } ;|  i | | | | ƒ } =|
 i | t j ƒ >| i | | f ƒ q¸ W@| i |	 t | ƒ f ƒ qb Wn B| | _
 Eg  } Fg  } I| i oÎ JxÄ | i DJ]¶ \ }	 } Lg  } Mx | DM]t } N| d } O| d } R|  i | | | | ƒ } S| i | t j o
 | d j ƒ T| i | | f ƒ q¤WV| i |	 t | ƒ f ƒ q‚Wn X| | _ ]|
 o | o ^t d „  |
 | ƒ | _  nA _|
 o `|
 | _  n' a| o b| | _  n dt | _  h| i  o t! d „  | i  d ƒ o id | _ n kd | _ n| i" | _" o| i# | _# p| i$ | _$ q| i% | _% s| Sd  S(   Ni   i   i    s	   BlankIconc    s   ^|  p | S(   N(   s   as   b(   s   as   b(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   <lambda>^s    c    s   h|  p | S(   N(   s   as   b(   s   as   b(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   <lambda>hs    (&   s	   twccommons   DefaultedDatas   selfs	   getParamss   paramss   Datas   timePeriodDatas   noDataAvailables   fdatas   validValueLists	   fcstValues
   propertiess   elementss
   valueFields   Nones   lens   updatedElementss   items   stations   positions   _getDailyForecastDatas
   timePeriods   recTypes   values   appends   tuples   idatas   validIconLists   fcstIcons	   iconFields   iconFiles   maps   validLocLists   reduces   vectors	   tiffImages   labeledTiffImages
   textString(   s   selfs
   timePeriods   recTypes
   valueFields	   iconFields   elementss   updatedElementss   iconFiles   stations
   propertiess   validValueLists   idatas   timePeriodDatas   values   validIconLists   items   paramss   positions   fdata(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   _loadDataTimePeriodsd   		 #	
 	$		 	
 	#$

&(   s   __init__s   _getDailyForecastDatas   _loadDataTimePeriod(    (    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   ForecastMapû s   (   s   oss   twcs   twc.productss	   twccommons   domestic.dataUtils   dataUtils   twcWx.dataUtils
   wxDataUtils   twc.dsmarshals	   dsmarshals   dsms   productss   Products   AnimatedMaps   ObservationMaps   ForecastMap(	   s   ForecastMaps   twcs   ObservationMaps   dsms	   twccommons
   wxDataUtils   dataUtils   AnimatedMaps   os(    (    s'   /twc/products/pm/Local/lib/prodLocal.pys   ? s   k…