def animate(self, t): interval = self.interval B = TemporalEventTrapezium(interval[t], interval[t] + self.event_b_length_total, interval[t] + self.event_b_length_beginning, interval[t] + self.event_b_length_middle) plt.figure() B.plot().show() a_b = (self.event_a * B).to_list() b_c = (B * self.event_c).to_list() self.line_b.set_data(B, B.membership_function) artists = [] for rect, h in zip(self.rects_a_b, a_b): rect.set_height(h) artists.append(rect) for rect, h in zip(self.rects_b_c, b_c): rect.set_height(h) artists.append(rect) artists.append(self.line_a) artists.append(self.line_b) artists.append(self.line_c) return artists
def animate(self, t): interval = self.interval B = TemporalEventTrapezium(interval[t], interval[t] + self.event_b_length_total, interval[t] + self.event_b_length_beginning, interval[t] + self.event_b_length_middle) plt.figure() B.plot().show() a_b = (self.event_a * B).to_list() b_c = (B * self.event_c).to_list() self.line_b.set_data(B, B.membership_function) artists = [] for rect, h in zip(self.rects_a_b, a_b): rect.set_height(h) artists.append(rect) for rect, h in zip(self.rects_b_c, b_c): rect.set_height(h) artists.append(rect) artists.append(self.line_a) artists.append(self.line_b) artists.append(self.line_c) return artists
from spatiotemporal.temporal_events.trapezium import TemporalEventTrapezium from spatiotemporal.temporal_events.relation_formulas import FormulaCreator from spatiotemporal.temporal_events.composition.non_linear_least_squares import DecompositionFitter import matplotlib.pyplot as plt all_relations = "pmoFDseSdfOMP" a = TemporalEventTrapezium(1, 12, 4, 8) b = TemporalEventTrapezium(9, 17, 13, 15) # compute relations between events temporal_relations = a * b print("Relations: {0}".format(temporal_relations.to_list())) # print degree for every relation for relation in all_relations: print(relation, temporal_relations[relation]) # plot events a.plot(show_distributions=True).ylim(ymin=-0.1, ymax=1.1) b.plot(show_distributions=True).figure() plt.show() # from the 13 relations, learns parameters for all combinations of the # before, same, and after relationships between the beginning and # ending distributions of the two intervals formula = FormulaCreator(DecompositionFitter(temporal_relations)) # from these relationships, computes the 13 relations again relations_estimate = formula.calculate_relations() print("Estimated relations: {0}".format(relations_estimate.to_list()))
from spatiotemporal.temporal_events.trapezium import TemporalEventTrapezium from spatiotemporal.temporal_events.relation_formulas import FormulaCreator from spatiotemporal.temporal_events.composition.non_linear_least_squares import DecompositionFitter import matplotlib.pyplot as plt all_relations = "pmoFDseSdfOMP" a = TemporalEventTrapezium(1, 12, 4, 8) b = TemporalEventTrapezium(9, 17, 13, 15) # compute relations between events temporal_relations = a * b print("Relations: {0}".format(temporal_relations.to_list())) # print degree for every relation for relation in all_relations: print(relation, temporal_relations[relation]) # plot events a.plot(show_distributions=True).ylim(ymin=-0.1, ymax=1.1) b.plot(show_distributions=True).figure() plt.show() # from the 13 relations, learns parameters for all combinations of the # before, same, and after relationships between the beginning and # ending distributions of the two intervals formula = FormulaCreator(DecompositionFitter(temporal_relations)) # from these relationships, computes the 13 relations again relations_estimate = formula.calculate_relations() print("Estimated relations: {0}".format(relations_estimate.to_list()))
# f = CombinationFormulaGeometricMeanTrapezium() # rf = RelationFormulaGeometricMean() # a, b_beg, b_end = uniform(5, 2), uniform(1, 3), uniform(8, 4) # [a_h], b_end_h = f.unpack(rf.compare(a, b_beg), rf.compare(a, b_end)) # # print a_h.args, b_end_h.args # print rf.compare(a, b_beg), rf.compare(a, b_end) # print rf.compare(a_h, uniform_reference), rf.compare(a_h, b_end_h) # # quit() A = TemporalEventTrapezium(2, 7, 5, 6) B = TemporalEventTrapezium(1, 6, 3, 4) C = TemporalEventTrapezium(0, 9, 7, 8) f = CombinationFormulaGeometricMeanTrapezium() rf = RelationFormulaGeometricMean() # print rf.compare(f.unpack((1, 0, 0))[0], uniform(0, 1)) A_, B_beg, B_end, C_ = A.distribution_beginning, B.distribution_beginning, B.distribution_ending, C.distribution_beginning # A, B, C = C.distribution_beginning, B.distribution_beginning, A.distribution_beginning print f.combine(rf.compare(A_, B_beg), rf.compare(A_, B_end), rf.compare(B_beg, C_), rf.compare(B_end, C_)) print rf.compare(A_, C_) plt = A.plot() B.plot(plt) C.plot(plt) plt.show()