flightanalysis 0.3.3__tar.gz → 0.3.4__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 (150) hide show
  1. {flightanalysis-0.3.3/flightanalysis.egg-info → flightanalysis-0.3.4}/PKG-INFO +1 -1
  2. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/f3a_criteria.py +1 -1
  3. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/downgrade.py +17 -9
  4. flightanalysis-0.3.4/flightanalysis/scoring/visibility.py +31 -0
  5. {flightanalysis-0.3.3 → flightanalysis-0.3.4/flightanalysis.egg-info}/PKG-INFO +1 -1
  6. flightanalysis-0.3.3/flightanalysis/scoring/visibility.py +0 -21
  7. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/.github/workflows/publish_pypi.yml +0 -0
  8. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/.gitignore +0 -0
  9. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/LICENSE +0 -0
  10. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/MANIFEST.in +0 -0
  11. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/README.md +0 -0
  12. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/create_schedules.py +0 -0
  13. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/__init__.py +0 -0
  14. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/data/__init__.py +0 -0
  15. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/data/manual_F3A_F23_22_04_28_00000231.json +0 -0
  16. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/data/manual_F3A_P23_22_05_31_00000350.json +0 -0
  17. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/data/manual_F3A_P23_23_08_11_00000094.json +0 -0
  18. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/make_manoeuvre.py +0 -0
  19. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/__init__.py +0 -0
  20. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/judging.py +0 -0
  21. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/manoeuvres/__init__.py +0 -0
  22. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/manoeuvres/inter_analysis.py +0 -0
  23. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/manoeuvres/intra_analysis.py +0 -0
  24. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/manoeuvres/mans/__init__.py +0 -0
  25. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/manoeuvres/mans/extract_mans.py +0 -0
  26. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/manoeuvres/mans/tHat.json +0 -0
  27. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/examples/scoring/manoeuvres/positioning_analysis.py +0 -0
  28. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/__init__.py +0 -0
  29. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/__init__.py +0 -0
  30. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/el_analysis.py +0 -0
  31. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/manoeuvre_analysis/__init__.py +0 -0
  32. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/manoeuvre_analysis/alignment.py +0 -0
  33. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/manoeuvre_analysis/analysis.py +0 -0
  34. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/manoeuvre_analysis/basic.py +0 -0
  35. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/manoeuvre_analysis/complete.py +0 -0
  36. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/manoeuvre_analysis/scored.py +0 -0
  37. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/analysis/sch_analysis.py +0 -0
  38. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/base/ref_funcs.py +0 -0
  39. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/base/utils.py +0 -0
  40. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/IMAC_Unlimited2024_schedule.json +0 -0
  41. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/__init__.py +0 -0
  42. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/f3a_a25_schedule.json +0 -0
  43. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/f3a_f25_schedule.json +0 -0
  44. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/f3a_p23_schedule.json +0 -0
  45. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/f3a_p25_schedule.json +0 -0
  46. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/f3auk_clubman_schedule.json +0 -0
  47. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/data/f3auk_inter_schedule.json +0 -0
  48. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/__init__.py +0 -0
  49. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/__init__.py +0 -0
  50. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/elbuilders.py +0 -0
  51. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/manbuilder.py +0 -0
  52. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/AMA_Intermediate2024.py +0 -0
  53. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/__init__.py +0 -0
  54. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/f3a_a25.py +0 -0
  55. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/f3a_f25.py +0 -0
  56. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/f3a_p23.py +0 -0
  57. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/f3a_p25.py +0 -0
  58. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/f3auk_clubman.py +0 -0
  59. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/f3auk_intermediate.py +0 -0
  60. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/imac_sport2024.py +0 -0
  61. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/imac_unlim2024.py +0 -0
  62. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/builders/schedules/nsrca_inter2024.py +0 -0
  63. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/collectors.py +0 -0
  64. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/eldef.py +0 -0
  65. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/mandef.py +0 -0
  66. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/maninfo.py +0 -0
  67. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/manoption.py +0 -0
  68. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/manparm.py +0 -0
  69. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/operations/__init__.py +0 -0
  70. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/operations/funopp.py +0 -0
  71. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/operations/itemopp.py +0 -0
  72. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/operations/mathopp.py +0 -0
  73. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/operations/operation.py +0 -0
  74. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/operations/sumopp.py +0 -0
  75. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/scheddef.py +0 -0
  76. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/definition/scheduleinfo.py +0 -0
  77. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/elements/__init__.py +0 -0
  78. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/elements/element.py +0 -0
  79. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/elements/line.py +0 -0
  80. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/elements/loop.py +0 -0
  81. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/elements/snap.py +0 -0
  82. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/elements/spin.py +0 -0
  83. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/elements/stall_turn.py +0 -0
  84. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/fcjson.py +0 -0
  85. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/manoeuvre.py +0 -0
  86. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/schedule.py +0 -0
  87. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/__init__.py +0 -0
  88. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/__init__.py +0 -0
  89. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/criteria.py +0 -0
  90. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/exponential.py +0 -0
  91. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/inter/__init__.py +0 -0
  92. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/inter/combination.py +0 -0
  93. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/inter/comparison.py +0 -0
  94. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/intra/__init__.py +0 -0
  95. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/intra/bounded.py +0 -0
  96. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/intra/continuous.py +0 -0
  97. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/intra/peak.py +0 -0
  98. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/criteria/intra/single.py +0 -0
  99. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/f3a_downgrades.py +0 -0
  100. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/measurement.py +0 -0
  101. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/results.py +0 -0
  102. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/selectors.py +0 -0
  103. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scoring/smoothing.py +0 -0
  104. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scripts/collect_scores.py +0 -0
  105. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/scripts/plot_scores.py +0 -0
  106. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis/version.py +0 -0
  107. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis.egg-info/SOURCES.txt +0 -0
  108. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis.egg-info/dependency_links.txt +0 -0
  109. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis.egg-info/entry_points.txt +0 -0
  110. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis.egg-info/requires.txt +0 -0
  111. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/flightanalysis.egg-info/top_level.txt +0 -0
  112. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/pyproject.toml +0 -0
  113. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/requirements-dev.txt +0 -0
  114. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/requirements.txt +0 -0
  115. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/setup.cfg +0 -0
  116. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/EmailedBox.f3a +0 -0
  117. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/__init__.py +0 -0
  118. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/conftest.py +0 -0
  119. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/manual_F3A_P23.json +0 -0
  120. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/old_json.json +0 -0
  121. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/p23.BIN +0 -0
  122. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/p23_box.f3a +0 -0
  123. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/p23_fc.json +0 -0
  124. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/p23_flight.json +0 -0
  125. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/scored_fcj.json +0 -0
  126. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/data/unscored_fcj.json +0 -0
  127. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_criiteria.py +0 -0
  128. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_data.py +0 -0
  129. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_fcjscore.py +0 -0
  130. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_rfuncs.py +0 -0
  131. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/__init__.py +0 -0
  132. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_definition/__init__.py +0 -0
  133. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_definition/test_definition_eldef.py +0 -0
  134. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_definition/test_definition_manparm.py +0 -0
  135. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_definition/test_definition_mpopp.py +0 -0
  136. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_definition/test_schedule_definition.py +0 -0
  137. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_definition/test_schedule_definition_maninfo.py +0 -0
  138. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/__init__.py +0 -0
  139. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/loop_analysis.json +0 -0
  140. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/p23_th_e0.csv +0 -0
  141. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/p23_th_e0.json +0 -0
  142. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/p23_th_e0_template.csv +0 -0
  143. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/test_schedule_element.py +0 -0
  144. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/test_schedule_element_line.py +0 -0
  145. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/test_schedule_element_loop.py +0 -0
  146. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/test_schedule_element_snap.py +0 -0
  147. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/test_schedule_element_spin.py +0 -0
  148. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_element/test_schedule_element_stallturn.py +0 -0
  149. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/tests/test_schedule/test_measurement.py +0 -0
  150. {flightanalysis-0.3.3 → flightanalysis-0.3.4}/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.3.3
3
+ Version: 0.3.4
4
4
  Summary: A package for analysing flight data
5
5
  Author-email: Thomas David <thomasdavid0@gmail.com>
6
6
  License: GNU GPL v3
@@ -20,7 +20,7 @@ class F3AIntra:
20
20
  track = Continuous(Exponential.fit_points(np.radians([30, 90]), [1.75, 6], 6))
21
21
  roll = Continuous(Exponential.fit_points(np.radians([30, 90]), [1.25, 6], 6))
22
22
  radius = Continuous(Exponential.fit_points([1.5, 3], [0.5, 1], 1))
23
- speed = ContinuousValue(Exponential.fit_points([5, 15], [0.03, 0.09], 0.5))
23
+ speed = ContinuousValue(Exponential.fit_points([5, 15], [0.1, 0.3], 0.5))
24
24
  roll_rate = Continuous(Exponential.fit_points([1, 3], [0.02, 0.06], 0.5))
25
25
  autorotation_rate = Continuous(Exponential.fit_points([1, 3], [0.02, 0.06], 0.5))
26
26
  stallturn_speed = Limit(Exponential.fit_points([2, 4], [0.05, 0.1], 4), 4)
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
  from flightdata import Collection, State
3
- from .criteria import Bounded, Continuous, Single, Criteria
3
+ from .criteria import Bounded, Continuous, Single, Criteria, ContinuousValue
4
4
  from .measurement import Measurement
5
5
  from .visibility import visibility
6
6
  from .results import Results, Result
@@ -11,7 +11,6 @@ from flightanalysis.base.ref_funcs import RefFuncs, RefFunc
11
11
  import numpy as np
12
12
 
13
13
 
14
-
15
14
  @dataclass
16
15
  class DownGrade:
17
16
  """This is for Intra scoring, it sits within an El and defines how errors should be measured and the criteria to apply
@@ -27,7 +26,9 @@ class DownGrade:
27
26
  ] # gets the flown and template measurements
28
27
  smoothers: RefFuncs # smoothes the measurement
29
28
  selectors: RefFuncs # selects the values to downgrade
30
- criteria: (Bounded | Continuous | Single) # looks up the downgrades based on the errors
29
+ criteria: (
30
+ Bounded | Continuous | Single
31
+ ) # looks up the downgrades based on the errors
31
32
  display_name: str
32
33
 
33
34
  def rename(self, name: str):
@@ -52,9 +53,14 @@ class DownGrade:
52
53
 
53
54
  def __call__(self, fl, tp, limits=True) -> Result:
54
55
  measurement: Measurement = self.measure(fl, tp)
55
-
56
- sample = visibility(self.criteria.prepare(measurement.value), measurement.visibility, self.criteria.lookup.error_limit)
57
-
56
+
57
+ sample = visibility(
58
+ self.criteria.prepare(measurement.value),
59
+ measurement.visibility,
60
+ self.criteria.lookup.error_limit,
61
+ 'deviation' if isinstance(self.criteria, ContinuousValue) else 'value',
62
+ )
63
+
58
64
  for sm in self.smoothers:
59
65
  sample = sm(sample)
60
66
 
@@ -65,14 +71,14 @@ class DownGrade:
65
71
  fl = State(fl.data.iloc[ids])
66
72
  sample = sample[sub_ids]
67
73
  ids = ids[sub_ids]
68
-
74
+
69
75
  return Result(
70
76
  self.display_name,
71
77
  measurement,
72
78
  sample,
73
79
  ids,
74
80
  *self.criteria(sample, limits),
75
- self.criteria
81
+ self.criteria,
76
82
  )
77
83
 
78
84
 
@@ -84,7 +90,9 @@ def dg(
84
90
  selectors: RefFunc | list[RefFunc],
85
91
  criteria: Criteria,
86
92
  ):
87
- return DownGrade(name, measure, RefFuncs(smoothers), RefFuncs(selectors) , criteria, display_name)
93
+ return DownGrade(
94
+ name, measure, RefFuncs(smoothers), RefFuncs(selectors), criteria, display_name
95
+ )
88
96
 
89
97
 
90
98
  class DownGrades(Collection):
@@ -0,0 +1,31 @@
1
+ import numpy as np
2
+ import pandas as pd
3
+
4
+ def visibility(val, factor: float, limit: float, kind: str = 'value'):
5
+ """factor between 0 and 1"""
6
+
7
+ b = 1.8 - factor * 0.8
8
+ if kind == 'value':
9
+ norm = np.abs(val / limit)
10
+ return np.where(norm > 1, norm, norm**b) * limit * np.sign(val)
11
+ elif kind=='deviation':
12
+ diff = np.insert(np.diff(val), 0, 0.0, axis=0)
13
+ norm = np.abs(diff / limit)
14
+
15
+ res = np.where(norm > 1, norm, norm**b) * limit * np.sign(diff)
16
+ return res.cumsum() + val[0]
17
+ else:
18
+ raise ValueError(f'kind {kind} not recognized')
19
+
20
+
21
+
22
+
23
+ if __name__=='__main__':
24
+ import plotly.express as px
25
+
26
+
27
+ x = np.linspace(0, 20, 100)
28
+ px.line(pd.DataFrame({k: visibility(x, k, 10) for k in np.linspace(0.1,1,9)}, index=x)).show()
29
+
30
+ x = np.linspace(0, 2, 100)
31
+ px.line(pd.DataFrame({k: visibility(x, k, 1) for k in np.linspace(0.1,1,9)}, index=x)).show()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flightanalysis
3
- Version: 0.3.3
3
+ Version: 0.3.4
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,21 +0,0 @@
1
- import numpy as np
2
- import pandas as pd
3
-
4
- def visibility(val, factor: float, limit: float):
5
- """factor between 0 and 1"""
6
- norm = np.abs(val / limit)
7
- b = 2 - factor
8
- return np.where(norm > 1, norm, norm**b) * limit * np.sign(val)
9
-
10
-
11
-
12
-
13
- if __name__=='__main__':
14
- import plotly.express as px
15
-
16
-
17
- x = np.linspace(0, 20, 100)
18
- px.line(pd.DataFrame({k: visibility(x, k, 10) for k in np.linspace(0.1,1,9)}, index=x)).show()
19
-
20
- x = np.linspace(0, 2, 100)
21
- px.line(pd.DataFrame({k: visibility(x, k, 1) for k in np.linspace(0.1,1,9)}, index=x)).show()
File without changes
File without changes
File without changes