flightanalysis 0.2.12__tar.gz → 0.2.13__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 (143) hide show
  1. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/PKG-INFO +1 -1
  2. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/f3a_criteria_maker.py +22 -5
  3. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/temp.py +4 -4
  4. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/IMAC_Unlimited2024_schedule.json +209 -209
  5. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/f3a_a25_schedule.json +166 -166
  6. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/f3a_f25_schedule.json +276 -276
  7. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/f3a_p23_schedule.json +304 -279
  8. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/f3a_p25_schedule.json +278 -278
  9. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/f3auk_clubman_schedule.json +118 -118
  10. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/f3auk_inter_schedule.json +111 -111
  11. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/builders/elbuilders.py +2 -15
  12. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/collectors.py +6 -2
  13. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/manparm.py +7 -8
  14. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/operations/operation.py +9 -1
  15. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/f3a_criteria.py +4 -5
  16. flightanalysis-0.2.13/flightanalysis/scoring/criteria/inter/comparison.py +20 -0
  17. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/measurement.py +18 -9
  18. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis.egg-info/PKG-INFO +1 -1
  19. flightanalysis-0.2.12/flightanalysis/scoring/criteria/inter/comparison.py +0 -18
  20. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/.github/workflows/publish_pypi.yml +0 -0
  21. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/.gitignore +0 -0
  22. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/LICENSE +0 -0
  23. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/MANIFEST.in +0 -0
  24. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/README.md +0 -0
  25. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/__init__.py +0 -0
  26. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/data/__init__.py +0 -0
  27. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/data/manual_F3A_F23_22_04_28_00000231.json +0 -0
  28. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/data/manual_F3A_P23_22_05_31_00000350.json +0 -0
  29. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/data/manual_F3A_P23_23_08_11_00000094.json +0 -0
  30. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/__init__.py +0 -0
  31. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/judging.py +0 -0
  32. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/manoeuvres/__init__.py +0 -0
  33. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/manoeuvres/inter_analysis.py +0 -0
  34. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/manoeuvres/intra_analysis.py +0 -0
  35. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/manoeuvres/mans/__init__.py +0 -0
  36. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/manoeuvres/mans/extract_mans.py +0 -0
  37. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/manoeuvres/mans/tHat.json +0 -0
  38. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/examples/scoring/manoeuvres/positioning_analysis.py +0 -0
  39. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/__init__.py +0 -0
  40. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/__init__.py +0 -0
  41. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/el_analysis.py +0 -0
  42. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/manoeuvre_analysis/__init__.py +0 -0
  43. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/manoeuvre_analysis/alignment.py +0 -0
  44. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/manoeuvre_analysis/analysis.py +0 -0
  45. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/manoeuvre_analysis/basic.py +0 -0
  46. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/manoeuvre_analysis/complete.py +0 -0
  47. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/manoeuvre_analysis/scored.py +0 -0
  48. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/analysis/sch_analysis.py +0 -0
  49. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/data/__init__.py +0 -0
  50. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/__init__.py +0 -0
  51. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/builders/__init__.py +0 -0
  52. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/builders/lines.py +0 -0
  53. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/builders/manbuilder.py +0 -0
  54. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/eldef.py +0 -0
  55. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/mandef.py +0 -0
  56. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/maninfo.py +0 -0
  57. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/manoption.py +0 -0
  58. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/operations/__init__.py +0 -0
  59. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/operations/funopp.py +0 -0
  60. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/operations/itemopp.py +0 -0
  61. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/operations/mathopp.py +0 -0
  62. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/scheddef.py +0 -0
  63. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/definition/scheduleinfo.py +0 -0
  64. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/__init__.py +0 -0
  65. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/autorotation.py +0 -0
  66. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/element.py +0 -0
  67. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/line.py +0 -0
  68. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/loop.py +0 -0
  69. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/nose_drop.py +0 -0
  70. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/pitch_break.py +0 -0
  71. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/recovery.py +0 -0
  72. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/elements/stall_turn.py +0 -0
  73. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/manoeuvre.py +0 -0
  74. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/schedule.py +0 -0
  75. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/__init__.py +0 -0
  76. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/__init__.py +0 -0
  77. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/criteria.py +0 -0
  78. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/exponential.py +0 -0
  79. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/inter/__init__.py +0 -0
  80. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/inter/combination.py +0 -0
  81. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/intra/__init__.py +0 -0
  82. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/intra/bounded.py +0 -0
  83. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/intra/continuous.py +0 -0
  84. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/criteria/intra/single.py +0 -0
  85. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/downgrade.py +0 -0
  86. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scoring/results.py +0 -0
  87. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scripts/batch_analyse.py +0 -0
  88. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scripts/collect_scores.py +0 -0
  89. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis/scripts/plot_scores.py +0 -0
  90. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis.egg-info/SOURCES.txt +0 -0
  91. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis.egg-info/dependency_links.txt +0 -0
  92. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis.egg-info/entry_points.txt +0 -0
  93. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis.egg-info/requires.txt +0 -0
  94. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/flightanalysis.egg-info/top_level.txt +0 -0
  95. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/pyproject.toml +0 -0
  96. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/requirements-dev.txt +0 -0
  97. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/requirements.txt +0 -0
  98. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/AMA_Intermediate2024.py +0 -0
  99. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/__init__.py +0 -0
  100. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/create_all.py +0 -0
  101. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/f3a_a25.py +0 -0
  102. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/f3a_f25.py +0 -0
  103. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/f3a_p23.py +0 -0
  104. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/f3a_p25.py +0 -0
  105. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/f3auk_Intermediate.py +0 -0
  106. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/f3auk_clubman.py +0 -0
  107. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/imac_sport2024.py +0 -0
  108. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/imac_unlim2024.py +0 -0
  109. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/make_manoeuvre.py +0 -0
  110. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/scripts/nsrca_inter2024.py +0 -0
  111. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/setup.cfg +0 -0
  112. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/EmailedBox.f3a +0 -0
  113. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/__init__.py +0 -0
  114. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/conftest.py +0 -0
  115. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/data/manual_F3A_P23.json +0 -0
  116. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/data/p23.BIN +0 -0
  117. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/data/p23_box.f3a +0 -0
  118. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/data/p23_fc.json +0 -0
  119. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/data/p23_flight.json +0 -0
  120. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_criiteria.py +0 -0
  121. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_data.py +0 -0
  122. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/__init__.py +0 -0
  123. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_definition/__init__.py +0 -0
  124. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_definition/test_definition_eldef.py +0 -0
  125. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_definition/test_definition_manparm.py +0 -0
  126. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_definition/test_definition_mpopp.py +0 -0
  127. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_definition/test_schedule_definition.py +0 -0
  128. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_definition/test_schedule_definition_maninfo.py +0 -0
  129. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/__init__.py +0 -0
  130. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/loop_analysis.json +0 -0
  131. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/p23_th_e0.csv +0 -0
  132. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/p23_th_e0.json +0 -0
  133. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/p23_th_e0_template.csv +0 -0
  134. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_schedule_element.py +0 -0
  135. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_schedule_element_line.py +0 -0
  136. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_schedule_element_loop.py +0 -0
  137. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_schedule_element_nose_drop.py +0 -0
  138. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_schedule_element_pitch_break.py +0 -0
  139. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_schedule_element_recovery.py +0 -0
  140. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_schedule_element_stallturn.py +0 -0
  141. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_element/test_split_optimiser.py +0 -0
  142. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_measurement.py +0 -0
  143. {flightanalysis-0.2.12 → flightanalysis-0.2.13}/tests/test_schedule/test_schedule_manoeuvre.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flightanalysis
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: A package for analysing flight data
5
5
  Author-email: Thomas David <thomasdavid0@gmail.com>
6
6
  License: GNU GPL v3
@@ -1,6 +1,6 @@
1
1
  from flightanalysis.scoring.criteria import Single, Exponential, ContAbs, ContRat, InsideBound, MaxBound, Comparison, free, OutsideBound
2
2
  import numpy as np
3
-
3
+ from itertools import chain
4
4
 
5
5
  f3a=dict(
6
6
  single=dict(
@@ -21,14 +21,14 @@ f3a=dict(
21
21
  pitch_break_length=InsideBound(Exponential.fit_points([1, 2], [0.7,3.5]), [-2,2]),
22
22
  nose_drop_amount=OutsideBound(Exponential(20,1), [-np.radians(15), np.radians(15)]),
23
23
  recovery_length=MaxBound(Exponential.fit_points([1, 2], [0.7,3.5]), 2),
24
- box=InsideBound(Exponential(10/np.radians(15), 1), [-np.radians(60), np.radians(60)]), # 10 points if the entire manoeuvre is 15 degrees outside the box
24
+ box=InsideBound(Exponential(10/np.radians(7.5), 1), [-np.radians(60), np.radians(60)]), # 10 points if the entire manoeuvre is 7.5 degrees outside the box
25
25
  depth=MaxBound(Exponential.fit_points([20, 40], [0.5, 1]), 170)
26
26
  ),
27
27
  inter=dict(
28
- radius=Comparison(Exponential.fit_points([1,5], [1, 2], 2)),
28
+ radius=Comparison(Exponential.fit_points([1,2], [1.5, 3])),
29
29
  speed=Comparison(Exponential.fit_points([1,5], [0.25, 1.0])),
30
- roll_rate=Comparison(Exponential.fit_points([1,5], [0.25, 1.5],2)),
31
- length=Comparison(Exponential.fit_points([1,5], [1, 3], 3)),
30
+ roll_rate=Comparison(Exponential.fit_points([1,5], [0.25, 1.5])),
31
+ length=Comparison(Exponential.fit_points([1,2], [1.5, 3])),
32
32
  free=Comparison(free),
33
33
  )
34
34
  )
@@ -47,7 +47,24 @@ def plot_lookup(lu, v0=0, v1=10):
47
47
  x = np.linspace(v0, v1, 30)
48
48
  px.line(x=x,y=lu(x)).show()
49
49
 
50
+ def plot_all(crits):
51
+ from plotly.subplots import make_subplots
52
+ import plotly.graph_objects as go
53
+ criteria = [cr for crit in crits.values() for cr in crit.values()]
54
+ names = [cr for crit in crits.values() for cr in crit.keys()]
55
+
56
+ nplots = sum([len(cr) for cr in crits.values()])
57
+ ncols=5
58
+ fig = make_subplots(int(np.ceil(nplots / ncols)), ncols, subplot_titles=names)
59
+
60
+ for i, crit in enumerate(criteria):
61
+ row, col = 1 + i // ncols, 1 + i % ncols
62
+ x = np.linspace(0, 10, 30)
63
+ fig.add_trace(go.Scatter(x=x, y=crit.lookup(x), showlegend=False), row=row, col=col)
64
+ fig.show()
65
+
50
66
  if __name__ == "__main__":
51
67
  #plot_lookup(f3a['intra']['recovery_length'].lookup,-10,10)
52
68
 
69
+ # plot_all(f3a)
53
70
  dump_criteria_to_py(f3a)
@@ -14,11 +14,11 @@ class F3AIntra:
14
14
  pitch_break_length=InsideBound(Exponential(0.7,2.321928094887362, None ), [-2, 2])
15
15
  nose_drop_amount=OutsideBound(Exponential(20,1, None ), [-0.2617993877991494, 0.2617993877991494])
16
16
  recovery_length=MaxBound(Exponential(0.7,2.321928094887362, None ), 2)
17
- box=InsideBound(Exponential(38.197186342054884,1, None ), [-1.0471975511965976, 1.0471975511965976])
17
+ box=InsideBound(Exponential(76.39437268410977,1, None ), [-1.0471975511965976, 1.0471975511965976])
18
18
  depth=MaxBound(Exponential(0.02500000000000001,0.9999999999999999, None ), 170)
19
19
  class F3AInter:
20
- radius=Comparison(Exponential(1.0,0.4306765580733931, 2 ))
20
+ radius=Comparison(Exponential(1.5,1.0, None ))
21
21
  speed=Comparison(Exponential(0.25,0.8613531161467862, None ))
22
- roll_rate=Comparison(Exponential(0.25,1.1132827525593783, 2 ))
23
- length=Comparison(Exponential(1.0,0.6826061944859854, 3 ))
22
+ roll_rate=Comparison(Exponential(0.25,1.1132827525593783, None ))
23
+ length=Comparison(Exponential(1.5,1.0, None ))
24
24
  free=Comparison(Exponential(0,1, None ))