flightdata 0.2.13__tar.gz → 0.2.14__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. {flightdata-0.2.13/flightdata.egg-info → flightdata-0.2.14}/PKG-INFO +1 -1
  2. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/base/table.py +14 -9
  3. {flightdata-0.2.13 → flightdata-0.2.14/flightdata.egg-info}/PKG-INFO +1 -1
  4. {flightdata-0.2.13 → flightdata-0.2.14}/test/base/test_table.py +6 -0
  5. {flightdata-0.2.13 → flightdata-0.2.14}/.github/workflows/publish_pypi.yml +0 -0
  6. {flightdata-0.2.13 → flightdata-0.2.14}/.gitignore +0 -0
  7. {flightdata-0.2.13 → flightdata-0.2.14}/.vscode/launch.json +0 -0
  8. {flightdata-0.2.13 → flightdata-0.2.14}/.vscode/settings.json +0 -0
  9. {flightdata-0.2.13 → flightdata-0.2.14}/LICENSE +0 -0
  10. {flightdata-0.2.13 → flightdata-0.2.14}/README.md +0 -0
  11. {flightdata-0.2.13 → flightdata-0.2.14}/examples/__init__.py +0 -0
  12. {flightdata-0.2.13 → flightdata-0.2.14}/examples/axis_rates.ipynb +0 -0
  13. {flightdata-0.2.13 → flightdata-0.2.14}/examples/data/__init__.py +0 -0
  14. {flightdata-0.2.13 → flightdata-0.2.14}/examples/data/manual_F3A_F23_22_04_28_00000231.json +0 -0
  15. {flightdata-0.2.13 → flightdata-0.2.14}/examples/data/manual_F3A_P23_22_05_31_00000350.json +0 -0
  16. {flightdata-0.2.13 → flightdata-0.2.14}/examples/data/manual_F3A_P23_23_08_11_00000094.json +0 -0
  17. {flightdata-0.2.13 → flightdata-0.2.14}/examples/flight_data.py +0 -0
  18. {flightdata-0.2.13 → flightdata-0.2.14}/examples/flight_dynamics/00000150.json +0 -0
  19. {flightdata-0.2.13 → flightdata-0.2.14}/examples/flight_dynamics/__init__.py +0 -0
  20. {flightdata-0.2.13 → flightdata-0.2.14}/examples/flight_dynamics/box.f3a +0 -0
  21. {flightdata-0.2.13 → flightdata-0.2.14}/examples/flight_dynamics/param_id.py +0 -0
  22. {flightdata-0.2.13 → flightdata-0.2.14}/examples/state_analysis/__init__.py +0 -0
  23. {flightdata-0.2.13 → flightdata-0.2.14}/examples/state_analysis/axes.py +0 -0
  24. {flightdata-0.2.13 → flightdata-0.2.14}/examples/state_analysis/state_fill_plot.py +0 -0
  25. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/__init__.py +0 -0
  26. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/base/__init__.py +0 -0
  27. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/base/collection.py +0 -0
  28. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/base/constructs.py +0 -0
  29. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/base/labeling.py +0 -0
  30. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/base/numpy_encoder.py +0 -0
  31. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/coefficients.py +0 -0
  32. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/environment/__init__.py +0 -0
  33. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/environment/environment.py +0 -0
  34. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/environment/wind.py +0 -0
  35. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/flight/__init__.py +0 -0
  36. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/flight/ardupilot.py +0 -0
  37. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/flight/fields.py +0 -0
  38. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/flight/flight.py +0 -0
  39. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/flight/parameters.py +0 -0
  40. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/flow.py +0 -0
  41. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/model/__init__.py +0 -0
  42. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/model/aerodynamic.py +0 -0
  43. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/model/thrust.py +0 -0
  44. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/origin.py +0 -0
  45. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/scripts/collect_logs.py +0 -0
  46. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/scripts/flightline.py +0 -0
  47. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata/state.py +0 -0
  48. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata.egg-info/SOURCES.txt +0 -0
  49. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata.egg-info/dependency_links.txt +0 -0
  50. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata.egg-info/entry_points.txt +0 -0
  51. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata.egg-info/requires.txt +0 -0
  52. {flightdata-0.2.13 → flightdata-0.2.14}/flightdata.egg-info/top_level.txt +0 -0
  53. {flightdata-0.2.13 → flightdata-0.2.14}/pyproject.toml +0 -0
  54. {flightdata-0.2.13 → flightdata-0.2.14}/requirements-dev.txt +0 -0
  55. {flightdata-0.2.13 → flightdata-0.2.14}/requirements.txt +0 -0
  56. {flightdata-0.2.13 → flightdata-0.2.14}/setup.cfg +0 -0
  57. {flightdata-0.2.13 → flightdata-0.2.14}/test/EmailedBox.f3a +0 -0
  58. {flightdata-0.2.13 → flightdata-0.2.14}/test/__init__.py +0 -0
  59. {flightdata-0.2.13 → flightdata-0.2.14}/test/base/__init__.py +0 -0
  60. {flightdata-0.2.13 → flightdata-0.2.14}/test/base/test_base_constructs.py +0 -0
  61. {flightdata-0.2.13 → flightdata-0.2.14}/test/conftest.py +0 -0
  62. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/make_inputs.py +0 -0
  63. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/manual_F3A_P23.json +0 -0
  64. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/p23.BIN +0 -0
  65. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/p23.json +0 -0
  66. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/p23_box.f3a +0 -0
  67. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/p23_fc.json +0 -0
  68. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/p23_flight.json +0 -0
  69. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/vtol_hover.bin +0 -0
  70. {flightdata-0.2.13 → flightdata-0.2.14}/test/data/vtol_hover.json +0 -0
  71. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_environment/__init__.py +0 -0
  72. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_environment/test_environment.py +0 -0
  73. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_environment/test_environment_wind.py +0 -0
  74. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_fields.py +0 -0
  75. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_flight.py +0 -0
  76. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_model/__init__.py +0 -0
  77. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_model/test_model_coefficients.py +0 -0
  78. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_model/test_model_flow.py +0 -0
  79. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_origin.py +0 -0
  80. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_state/__init__.py +0 -0
  81. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_state/test_state.py +0 -0
  82. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_state/test_state_builders.py +0 -0
  83. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_state/test_state_conversions.py +0 -0
  84. {flightdata-0.2.13 → flightdata-0.2.14}/test/test_state/test_state_measurements.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flightdata
3
- Version: 0.2.13
3
+ Version: 0.2.14
4
4
  Summary: Module for handling UAV flight log data
5
5
  Author-email: Thomas David <thomasdavid0@gmail.com>
6
6
  License: GNU GPL v3
@@ -135,19 +135,24 @@ class Table:
135
135
  axis=0,
136
136
  ignore_index=True
137
137
  ).set_index("t", drop=False))
138
-
138
+
139
+ def zero_index(self):
140
+ data = self.data.copy()
141
+ return self.__class__(data.set_index(data.index - data.index[0]))
142
+
139
143
  @classmethod
140
- def stack(Cls, sections: list, overlap: int=1) -> Self:
144
+ def stack(Cls, sts: list, overlap: int=1) -> Self:
141
145
  """Stack a list of Tables on top of each other.
142
- The overlap is the number of rows to overlap between each section
146
+ The overlap is the number of rows to overlap between each st
143
147
  """
144
- # first build list of index offsets, to be added to each dataframe
148
+ t0 = sts[0].data.index[0]
149
+ sts = [st.zero_index() for st in sts]
145
150
  if overlap > 0:
146
- offsets = np.cumsum([0] + [sec.data.index[-overlap] for sec in sections[:-1]])
147
- dfs = [section.data.iloc[:-overlap] for section in sections[:-1]] + [sections[-1].data]
151
+ offsets = np.cumsum([0] + [s0.data.index[-overlap] for s0 in sts[:-1]])
152
+ dfs = [st.data.iloc[:-overlap] for st in sts[:-1]] + [sts[-1].data]
148
153
  elif overlap == 0:
149
- offsets = np.cumsum([0] + [sec.duration + sec.dt[-1] for sec in sections[:-1]])
150
- dfs = [section.data for section in sections]
154
+ offsets = np.cumsum([0] + [sec.duration + sec.dt[-1] for sec in sts[:-1]])
155
+ dfs = [st.data for st in sts]
151
156
  else:
152
157
  raise AttributeError("Overlap must be >= 0")
153
158
 
@@ -155,7 +160,7 @@ class Table:
155
160
  df.index = np.array(df.index) - df.index[0] + offset
156
161
  combo = pd.concat(dfs)
157
162
  combo.index.name = "t"
158
-
163
+ combo.index = combo.index + t0
159
164
  combo["t"] = combo.index
160
165
 
161
166
  return Cls(combo)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flightdata
3
- Version: 0.2.13
3
+ Version: 0.2.14
4
4
  Summary: Module for handling UAV flight log data
5
5
  Author-email: Thomas David <thomasdavid0@gmail.com>
6
6
  License: GNU GPL v3
@@ -74,6 +74,12 @@ def test_stack(tab_full):
74
74
  assert len(tfn) == 2 * len(tab_full) - 1
75
75
 
76
76
 
77
+ tfn = Table.stack([tfn.label(manoeuvre='m1'),tfn.label(manoeuvre='m2')])
78
+ assert tfn.data.index.is_monotonic_increasing
79
+ tfn2 = Table.stack(list(tfn.split_labels().values()))
80
+ assert tfn.duration == tfn2.duration
81
+
82
+
77
83
  def test_shift_multi(tab_full):
78
84
  tabs = Table.stack([tab_full.label(element='e0'), tab_full.label(element='e1')], overlap=1).split_labels()
79
85
  tb1, tb2 = Table.shift_multi(2, tabs['e0'], tabs['e1'])
File without changes
File without changes
File without changes
File without changes
File without changes