flightdata 0.2.27__tar.gz → 0.3.0__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 (106) hide show
  1. {flightdata-0.2.27 → flightdata-0.3.0}/PKG-INFO +4 -3
  2. flightdata-0.3.0/examples/interpolation/slice_linear_interpolation.py +53 -0
  3. flightdata-0.3.0/examples/interpolation/st.json +1 -0
  4. flightdata-0.3.0/examples/interpolation/temp.py +18 -0
  5. {flightdata-0.2.27 → flightdata-0.3.0}/pyproject.toml +4 -3
  6. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/__init__.py +1 -1
  7. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/base/collection.py +32 -3
  8. flightdata-0.3.0/src/flightdata/base/table/__init__.py +6 -0
  9. {flightdata-0.2.27/src/flightdata/base → flightdata-0.3.0/src/flightdata/base/table}/constructs.py +4 -3
  10. flightdata-0.3.0/src/flightdata/base/table/label.py +95 -0
  11. flightdata-0.3.0/src/flightdata/base/table/labelgroup.py +358 -0
  12. flightdata-0.3.0/src/flightdata/base/table/labelgroups.py +131 -0
  13. flightdata-0.3.0/src/flightdata/base/table/slicer.py +30 -0
  14. flightdata-0.3.0/src/flightdata/base/table/table.py +504 -0
  15. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/coefficients.py +5 -2
  16. flightdata-0.3.0/src/flightdata/environment/environment.py +79 -0
  17. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/environment/wind.py +38 -45
  18. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/flight/flight.py +5 -5
  19. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/flow.py +12 -3
  20. flightdata-0.3.0/src/flightdata/state/__init__.py +2 -0
  21. flightdata-0.3.0/src/flightdata/state/alignment.py +78 -0
  22. flightdata-0.3.0/src/flightdata/state/kinematics.py +18 -0
  23. {flightdata-0.2.27/src/flightdata → flightdata-0.3.0/src/flightdata/state}/state.py +185 -136
  24. flightdata-0.3.0/src/flightdata/state_maker.py +22 -0
  25. {flightdata-0.2.27 → flightdata-0.3.0}/test/base/test_base_constructs.py +2 -5
  26. flightdata-0.3.0/test/base/test_labels.py +206 -0
  27. flightdata-0.3.0/test/base/test_table.py +257 -0
  28. {flightdata-0.2.27 → flightdata-0.3.0}/test/conftest.py +2 -1
  29. flightdata-0.3.0/test/data/old_state.json +200 -0
  30. flightdata-0.3.0/test/test_dtw.py +20 -0
  31. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_environment/test_environment.py +2 -2
  32. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_environment/test_environment_wind.py +2 -4
  33. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_flight.py +2 -1
  34. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_model/test_model_coefficients.py +1 -1
  35. flightdata-0.3.0/test/test_model/test_model_flow.py +45 -0
  36. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_origin.py +1 -1
  37. flightdata-0.3.0/test/test_state/test_state.py +85 -0
  38. flightdata-0.3.0/test/test_state/test_state_builders.py +132 -0
  39. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_state/test_state_conversions.py +9 -10
  40. flightdata-0.3.0/test/test_state/test_state_measurements.py +19 -0
  41. {flightdata-0.2.27 → flightdata-0.3.0}/uv.lock +108 -5
  42. flightdata-0.2.27/src/flightdata/base/table.py +0 -473
  43. flightdata-0.2.27/src/flightdata/environment/environment.py +0 -56
  44. flightdata-0.2.27/test/base/test_table.py +0 -142
  45. flightdata-0.2.27/test/test_model/test_model_flow.py +0 -45
  46. flightdata-0.2.27/test/test_state/test_state.py +0 -65
  47. flightdata-0.2.27/test/test_state/test_state_builders.py +0 -101
  48. flightdata-0.2.27/test/test_state/test_state_measurements.py +0 -12
  49. {flightdata-0.2.27 → flightdata-0.3.0}/.github/workflows/publish_pypi.yml +0 -0
  50. {flightdata-0.2.27 → flightdata-0.3.0}/.gitignore +0 -0
  51. {flightdata-0.2.27 → flightdata-0.3.0}/.vscode/launch.json +0 -0
  52. {flightdata-0.2.27 → flightdata-0.3.0}/.vscode/settings.json +0 -0
  53. {flightdata-0.2.27 → flightdata-0.3.0}/LICENSE +0 -0
  54. {flightdata-0.2.27 → flightdata-0.3.0}/README.md +0 -0
  55. {flightdata-0.2.27 → flightdata-0.3.0}/examples/__init__.py +0 -0
  56. {flightdata-0.2.27 → flightdata-0.3.0}/examples/data/__init__.py +0 -0
  57. {flightdata-0.2.27 → flightdata-0.3.0}/examples/data/manual_F3A_F23_22_04_28_00000231.json +0 -0
  58. {flightdata-0.2.27 → flightdata-0.3.0}/examples/data/manual_F3A_P23_22_05_31_00000350.json +0 -0
  59. {flightdata-0.2.27 → flightdata-0.3.0}/examples/data/manual_F3A_P23_23_08_11_00000094.json +0 -0
  60. {flightdata-0.2.27 → flightdata-0.3.0}/examples/flight_dynamics/00000150.json +0 -0
  61. {flightdata-0.2.27 → flightdata-0.3.0}/examples/flight_dynamics/__init__.py +0 -0
  62. {flightdata-0.2.27 → flightdata-0.3.0}/examples/flight_dynamics/box.f3a +0 -0
  63. {flightdata-0.2.27 → flightdata-0.3.0}/examples/flight_dynamics/param_id.py +0 -0
  64. {flightdata-0.2.27 → flightdata-0.3.0}/examples/state_analysis/__init__.py +0 -0
  65. {flightdata-0.2.27 → flightdata-0.3.0}/examples/state_analysis/axes.py +0 -0
  66. {flightdata-0.2.27 → flightdata-0.3.0}/examples/state_analysis/state_fill_plot.py +0 -0
  67. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/base/__init__.py +0 -0
  68. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/base/labeling.py +0 -0
  69. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/base/numpy_encoder.py +0 -0
  70. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/bindata.py +0 -0
  71. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/environment/__init__.py +0 -0
  72. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/flight/__init__.py +0 -0
  73. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/flight/ardupilot.py +0 -0
  74. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/flight/fields.py +0 -0
  75. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/flight/parameters.py +0 -0
  76. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/model/__init__.py +0 -0
  77. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/model/aerodynamic.py +0 -0
  78. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/model/thrust.py +0 -0
  79. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/origin.py +0 -0
  80. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/py.typed +0 -0
  81. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/scripts/collect_logs.py +0 -0
  82. {flightdata-0.2.27 → flightdata-0.3.0}/src/flightdata/scripts/flightline.py +0 -0
  83. {flightdata-0.2.27 → flightdata-0.3.0}/test/EmailedBox.f3a +0 -0
  84. {flightdata-0.2.27 → flightdata-0.3.0}/test/__init__.py +0 -0
  85. {flightdata-0.2.27 → flightdata-0.3.0}/test/base/__init__.py +0 -0
  86. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/bin_parser_GPS.csv +0 -0
  87. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/bin_parser_POS.csv +0 -0
  88. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/make_inputs.py +0 -0
  89. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/manual_F3A_P23.json +0 -0
  90. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/p23.BIN +0 -0
  91. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/p23.json +0 -0
  92. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/p23_box.f3a +0 -0
  93. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/p23_fc.json +0 -0
  94. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/p23_flight.json +0 -0
  95. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/script_tests/c6_on_0001.BIN +0 -0
  96. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/script_tests/center_0003.bin +0 -0
  97. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/script_tests/pilot_0004.BIN +0 -0
  98. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/vtol_hover.bin +0 -0
  99. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/vtol_hover.json +0 -0
  100. {flightdata-0.2.27 → flightdata-0.3.0}/test/data/web_bin_parse.json +0 -0
  101. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_bindata.py +0 -0
  102. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_environment/__init__.py +0 -0
  103. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_fields.py +0 -0
  104. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_model/__init__.py +0 -0
  105. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_scripts.py +0 -0
  106. {flightdata-0.2.27 → flightdata-0.3.0}/test/test_state/__init__.py +0 -0
@@ -1,15 +1,16 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flightdata
3
- Version: 0.2.27
3
+ Version: 0.3.0
4
4
  Summary: Python tools for handling flight data
5
5
  Author-email: Thomas David <thomasdavid0@gmail.com>
6
6
  License-File: LICENSE
7
7
  Requires-Python: >=3.12
8
8
  Requires-Dist: numpy>=2.1.3
9
9
  Requires-Dist: pandas>=2.2.3
10
- Requires-Dist: pfc-geometry>=0.2.13
10
+ Requires-Dist: pfc-geometry>=0.2.15
11
+ Requires-Dist: pfcschemas>=0.1.10
11
12
  Provides-Extra: dataflash
12
- Requires-Dist: ardupilot-log-reader>=0.3.5; extra == 'dataflash'
13
+ Requires-Dist: ardupilot-log-reader; extra == 'dataflash'
13
14
  Description-Content-Type: text/markdown
14
15
 
15
16
  ## FlightData
@@ -0,0 +1,53 @@
1
+ from flightdata import State
2
+ import geometry as g
3
+ from plotting import plotsec
4
+ import numpy as np
5
+ import plotly.graph_objects as go
6
+
7
+ st = (
8
+ State.from_transform(g.Transformation(), vel=g.PX(30), rvel=g.PY(10))
9
+ .extrapolate(0.2)
10
+ .superimpose_roll(np.radians(180))
11
+ )
12
+ # st = State.from_dict(load(Path("examples/interpolation/st.json").open()))[425:429]
13
+
14
+ pass
15
+
16
+ plotsec(
17
+ dict(base=st, new=st[0.025:0.175].move(g.Transformation(g.PY(1)))),
18
+ nmodels=20,
19
+ scale=0.2,
20
+ ).show()
21
+
22
+ st = (
23
+ State.from_transform(g.Transformation(), vel=g.PX(30), rvel=g.PY(10))
24
+ .extrapolate(0.2)
25
+ )
26
+
27
+ st1s = []
28
+ st2s = []
29
+ for t in np.linspace(st.t[0], st.t[-1], 20):
30
+ st1s.append(st.interpolate(t))
31
+ st2s.append(st.interpolate_kinematic(t))
32
+ st1 = State.concatenate(st1s).move(g.Transformation(g.PY(0.5)))
33
+ st2 = State.concatenate(st2s).move(g.Transformation(g.PY(1.0)))
34
+ fig = plotsec(
35
+ dict(
36
+ original=st,
37
+ linear=st1,
38
+ kinematic=st2,
39
+ ),
40
+ nmodels=20,
41
+ scale=0.1,
42
+ )
43
+
44
+ fig.show()
45
+
46
+
47
+ st3 = State.from_constructs(st2.time, st2.pos, st2.att)
48
+
49
+ accfig = go.Figure()
50
+ for k, v in dict(base=st, linear=st1, kinematic=st2, derived=st3).items():
51
+ accfig.add_trace(go.Scatter(x=v.t, y=v.dw, name=k, mode="lines"))
52
+ # px.scatter(st.data).show()
53
+ accfig.show()