示例#1
0
def hurst_analysis2(ts, duration = None, advance = None,**kwargs):
    hurst2_results = []

    # Pick the duration of the sub-time series
    #duration = timedelta(seconds=10)
            
    # Pick how far to jump forward in time for the next sub time-series
    # Can use this to overlap with the previous time-series
    #advance = duration/2
            
    # Start the loop 
    extent = TimeRange(ts.data.index[0],
                       ts.data.index[0] + duration)
    while extent.end() <= ts.data.index[-1]:
        hurst2 = hurst_fArma([extent.start(),extent.end()],kwargs)
        
        # Store the analyzed time-series and its Hurst analysis
        hurst2_results.append( {"extent":extent,"hurst2":hurst2} )
        extent.extend(advance,advance)
示例#2
0
    def plot(self, extract=None, show_frm=None, show_spike=False, show_before_after=False):

        if extract is None:
            self.lyra.plot()
        else:
            lc = self.lyra.extract(extract)
            lc.plot()

        if show_frm is not None:
            times = self.onoff(frm_name=show_frm).times()
            for tr in times:
                plt.axvspan(tr.start(), tr.end(), facecolor='green', alpha=0.5)
        
        if show_spike:
            for tr in self.all_spike_times:
                plt.axvspan(tr.start(), tr.end(), facecolor='black', alpha=0.75)
                
        if show_before_after:
            for event in self.event_times:
                current_minimum = datetime.timedelta(days=3)
                for spike_time in self.all_spike_times:
                    event_end_to_spike_start = spike_time.start() - event.end()
                    print current_minimum
                    if event_end_to_spike_start > datetime.timedelta():
                        if event_end_to_spike_start < current_minimum:
                            current_minimum = event_end_to_spike_start
                after_flare = TimeRange(event.end(), spike_time.start())
                lc.truncate(after_flare.start(), after_flare.end()).plot(style ='c-')

            for event in self.event_times:
                current_minimum = datetime.timedelta(days=3)
                for spike_time in self.all_spike_times:
                    spike_end_to_event_start = event.start() - spike_time.end()
                    if spike_end_to_event_start > datetime.timedelta():
                        if spike_end_to_event_start < current_minimum:
                            current_minimum = event.start() - spike_time.end()
                before_flare = TimeRange(spike_time.end(),event.start())
                lc.truncate(before_flare.start(), before_flare.end()).plot(style ='r-')