def getHrsInDayTime(self, start, end): "Split up given time range by PTCS day and night time hours." dur = TimeAgent.dtDiffHrs(start, end) startDate = date(start.year, start.month, start.day) #rise, set = self.sun.getRiseSet(date1) # cast a wide net: compute the rise and set times for any days # that might be covered by the given time range days = (end - start).days + 2 dayTimes = [] for day in range(days): dt = startDate + timedelta(days = day) dayTimes.append(self.sun.getPTCSRiseSet(dt)) # where does our given time range intersect with day time? ints = AnalogSet.intersects([dayTimes, [(start, end)]]) if len(ints) > 0: # some day time day = 0.0 for intersection in ints: td = intersection[1] - intersection[0] day += TimeAgent.timedelta2frachours(td) # the rest must be night time night = abs(dur - day) else: # our range is all night time. day = 0.0 night = dur return (day, night)
def getHrsInGC(self, start, end): "Split up given time range by Galactic Center overlap." dur = TimeAgent.dtDiffHrs(start, end) # convert local time range to LST range lstStart = sla.Absolute2RelativeLST(start) lstEnd = sla.Absolute2RelativeLST(end) # be simplistic about the overalp if lstEnd < lstStart: lstEnd += 24.0 gcHrs, nonGcHrs = self.findOverlap((lstStart, lstEnd), self.gcHrs, dur) return (gcHrs, nonGcHrs)