diff --git a/dynamics/Dynamic.py b/dynamics/Dynamic.py index 210ca446051e32c24b38e7fa3764839e414f498e..3049b8c2c355d6407a241cc1e1c94d8a0360db13 100644 --- a/dynamics/Dynamic.py +++ b/dynamics/Dynamic.py @@ -137,10 +137,10 @@ class TrivialDynamic(Dynamic): return 0 <= index and index <= len(self.d_steps) def get_indices_within_p(self, p_start, p_end): - return range(p_start, p_end) + return pd.RangeIndex(p_start, p_end) def get_indices_within(self, i_start, i_end): - return range(i_start, i_end) + return pd.RangeIndex(i_start, i_end) def get_index_of(self, position): return position @@ -224,7 +224,7 @@ class BackedDynamic(Dynamic): return self.step_size_p(self.indices.index(index)) def step_sizes(self): - return [self.step_size_p(position) for position in range(self.number_of_steps)] + return [self.step_size_p(position) for position in range(self.number_of_steps())] def get_sub_dynamic_p(self, positions): if any(position < 0 or len(self.indices) <= position for position in positions): @@ -481,7 +481,9 @@ def resample_from_backed(values, dynamic, source_p_start, source_p_end, target_d target_i_end_prev = target_dynamic.get_index_of(target_p_end_prev) source_p_end = dynamic.get_position_of(target_i_end_prev) target_indices = target_dynamic.get_indices_within(target_i_end_prev, target_i_end) - target_values.loc[target_indices] = values[dynamic.indices[source_p_end]] + target_values.loc[target_indices] = values[dynamic.indices[source_p_end]] + else: + source_p_end = dynamic.get_position_of(target_i_end) for source_position in range(source_p_start, source_p_end): target_indices = target_dynamic.get_indices_within(dynamic.indices[source_position], dynamic.indices[source_position + 1]) target_values.loc[target_indices] = values[dynamic.indices[source_position]]