| 156 | return events[valid_events] |
| 157 | |
| 158 | def linear_y(self, events, linear): |
| 159 | events = copy.deepcopy(events) |
| 160 | H = self.resolution[0] |
| 161 | y_min, y_max = events[:, 1].min().item(), events[:, 1].max().item() |
| 162 | y_mid = (y_max + y_min) / 2 |
| 163 | if linear > 0: |
| 164 | linear_h = int(linear * (H - y_mid)) |
| 165 | else: |
| 166 | linear_h = int(linear * y_mid) |
| 167 | events[:, 1] = events[:, 1] + linear_h |
| 168 | valid_events = (events[:, 1] >= 0) & (events[:, 1] < H) |
| 169 | return events[valid_events] |
| 170 | |
| 171 | def drop_by_time(self, events, ratio): |
| 172 | events = copy.deepcopy(events) |