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)
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-')