flightdata 0.2.19__tar.gz → 0.2.21__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 (87) hide show
  1. {flightdata-0.2.19/flightdata.egg-info → flightdata-0.2.21}/PKG-INFO +3 -3
  2. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/bindata.py +19 -12
  3. {flightdata-0.2.19 → flightdata-0.2.21/flightdata.egg-info}/PKG-INFO +3 -3
  4. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata.egg-info/requires.txt +2 -2
  5. {flightdata-0.2.19 → flightdata-0.2.21}/requirements-dev.txt +1 -1
  6. {flightdata-0.2.19 → flightdata-0.2.21}/requirements.txt +1 -1
  7. {flightdata-0.2.19 → flightdata-0.2.21}/.github/workflows/publish_pypi.yml +0 -0
  8. {flightdata-0.2.19 → flightdata-0.2.21}/.gitignore +0 -0
  9. {flightdata-0.2.19 → flightdata-0.2.21}/.vscode/launch.json +0 -0
  10. {flightdata-0.2.19 → flightdata-0.2.21}/.vscode/settings.json +0 -0
  11. {flightdata-0.2.19 → flightdata-0.2.21}/LICENSE +0 -0
  12. {flightdata-0.2.19 → flightdata-0.2.21}/README.md +0 -0
  13. {flightdata-0.2.19 → flightdata-0.2.21}/examples/__init__.py +0 -0
  14. {flightdata-0.2.19 → flightdata-0.2.21}/examples/data/__init__.py +0 -0
  15. {flightdata-0.2.19 → flightdata-0.2.21}/examples/data/manual_F3A_F23_22_04_28_00000231.json +0 -0
  16. {flightdata-0.2.19 → flightdata-0.2.21}/examples/data/manual_F3A_P23_22_05_31_00000350.json +0 -0
  17. {flightdata-0.2.19 → flightdata-0.2.21}/examples/data/manual_F3A_P23_23_08_11_00000094.json +0 -0
  18. {flightdata-0.2.19 → flightdata-0.2.21}/examples/flight_dynamics/00000150.json +0 -0
  19. {flightdata-0.2.19 → flightdata-0.2.21}/examples/flight_dynamics/__init__.py +0 -0
  20. {flightdata-0.2.19 → flightdata-0.2.21}/examples/flight_dynamics/box.f3a +0 -0
  21. {flightdata-0.2.19 → flightdata-0.2.21}/examples/flight_dynamics/param_id.py +0 -0
  22. {flightdata-0.2.19 → flightdata-0.2.21}/examples/state_analysis/__init__.py +0 -0
  23. {flightdata-0.2.19 → flightdata-0.2.21}/examples/state_analysis/axes.py +0 -0
  24. {flightdata-0.2.19 → flightdata-0.2.21}/examples/state_analysis/state_fill_plot.py +0 -0
  25. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/__init__.py +0 -0
  26. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/base/__init__.py +0 -0
  27. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/base/collection.py +0 -0
  28. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/base/constructs.py +0 -0
  29. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/base/labeling.py +0 -0
  30. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/base/numpy_encoder.py +0 -0
  31. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/base/table.py +0 -0
  32. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/coefficients.py +0 -0
  33. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/environment/__init__.py +0 -0
  34. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/environment/environment.py +0 -0
  35. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/environment/wind.py +0 -0
  36. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/flight/__init__.py +0 -0
  37. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/flight/ardupilot.py +0 -0
  38. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/flight/fields.py +0 -0
  39. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/flight/flight.py +0 -0
  40. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/flight/parameters.py +0 -0
  41. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/flow.py +0 -0
  42. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/model/__init__.py +0 -0
  43. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/model/aerodynamic.py +0 -0
  44. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/model/thrust.py +0 -0
  45. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/origin.py +0 -0
  46. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/scripts/collect_logs.py +0 -0
  47. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/scripts/flightline.py +0 -0
  48. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata/state.py +0 -0
  49. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata.egg-info/SOURCES.txt +0 -0
  50. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata.egg-info/dependency_links.txt +0 -0
  51. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata.egg-info/entry_points.txt +0 -0
  52. {flightdata-0.2.19 → flightdata-0.2.21}/flightdata.egg-info/top_level.txt +0 -0
  53. {flightdata-0.2.19 → flightdata-0.2.21}/pyproject.toml +0 -0
  54. {flightdata-0.2.19 → flightdata-0.2.21}/setup.cfg +0 -0
  55. {flightdata-0.2.19 → flightdata-0.2.21}/test/EmailedBox.f3a +0 -0
  56. {flightdata-0.2.19 → flightdata-0.2.21}/test/__init__.py +0 -0
  57. {flightdata-0.2.19 → flightdata-0.2.21}/test/base/__init__.py +0 -0
  58. {flightdata-0.2.19 → flightdata-0.2.21}/test/base/test_base_constructs.py +0 -0
  59. {flightdata-0.2.19 → flightdata-0.2.21}/test/base/test_table.py +0 -0
  60. {flightdata-0.2.19 → flightdata-0.2.21}/test/conftest.py +0 -0
  61. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/bin_parser_GPS.csv +0 -0
  62. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/bin_parser_POS.csv +0 -0
  63. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/make_inputs.py +0 -0
  64. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/manual_F3A_P23.json +0 -0
  65. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/p23.BIN +0 -0
  66. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/p23.json +0 -0
  67. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/p23_box.f3a +0 -0
  68. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/p23_fc.json +0 -0
  69. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/p23_flight.json +0 -0
  70. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/vtol_hover.bin +0 -0
  71. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/vtol_hover.json +0 -0
  72. {flightdata-0.2.19 → flightdata-0.2.21}/test/data/web_bin_parse.json +0 -0
  73. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_bindata.py +0 -0
  74. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_environment/__init__.py +0 -0
  75. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_environment/test_environment.py +0 -0
  76. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_environment/test_environment_wind.py +0 -0
  77. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_fields.py +0 -0
  78. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_flight.py +0 -0
  79. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_model/__init__.py +0 -0
  80. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_model/test_model_coefficients.py +0 -0
  81. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_model/test_model_flow.py +0 -0
  82. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_origin.py +0 -0
  83. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_state/__init__.py +0 -0
  84. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_state/test_state.py +0 -0
  85. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_state/test_state_builders.py +0 -0
  86. {flightdata-0.2.19 → flightdata-0.2.21}/test/test_state/test_state_conversions.py +0 -0
  87. {flightdata-0.2.19 → flightdata-0.2.21}/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.19
3
+ Version: 0.2.21
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
@@ -11,13 +11,13 @@ License-File: LICENSE
11
11
  Requires-Dist: numpy
12
12
  Requires-Dist: pandas
13
13
  Requires-Dist: simplejson
14
- Requires-Dist: pfc-geometry>=0.2.11
14
+ Requires-Dist: pfc-geometry>=0.2.12
15
15
  Requires-Dist: json_stream
16
16
  Provides-Extra: dev
17
17
  Requires-Dist: numpy; extra == "dev"
18
18
  Requires-Dist: pandas; extra == "dev"
19
19
  Requires-Dist: simplejson; extra == "dev"
20
- Requires-Dist: pfc-geometry>=0.2.11; extra == "dev"
20
+ Requires-Dist: pfc-geometry>=0.2.12; extra == "dev"
21
21
  Requires-Dist: ardupilot-log-reader>=0.3.3; extra == "dev"
22
22
  Requires-Dist: pytest; extra == "dev"
23
23
 
@@ -2,10 +2,10 @@ from __future__ import annotations
2
2
  from dataclasses import dataclass
3
3
  import numpy as np
4
4
  import pandas as pd
5
- from datetime import datetime
6
5
  import logging
7
6
 
8
- logger = logging.getLogger(__name__)
7
+ logger = logging.getLogger(__name__)
8
+
9
9
 
10
10
  @dataclass
11
11
  class BinData:
@@ -36,11 +36,10 @@ class BinData:
36
36
  @staticmethod
37
37
  def parse_json(bindata: dict[str, dict[str, list]]) -> BinData:
38
38
  # dfs = {k: pd.DataFrame(v) for k,v in bindata.items()}
39
-
39
+
40
40
  dfs: dict[str, pd.DataFrame] = {}
41
41
  groups = {}
42
42
  for k, v in bindata.items():
43
-
44
43
  if k == "PARM":
45
44
  new_df = pd.DataFrame(
46
45
  [
@@ -50,17 +49,23 @@ class BinData:
50
49
  ],
51
50
  index=["time_boot_s", "Name", "Value"],
52
51
  ).T
53
- if 'Default' in v:
52
+ if "Default" in v:
54
53
  new_df["Default"] = v["Default"]
55
-
56
-
54
+ elif k == "MSG":
55
+ new_df = pd.DataFrame(
56
+ [
57
+ pd.Series(v["time_boot_s"]).reset_index(drop=True),
58
+ pd.Series(v["Message"]),
59
+ ],
60
+ index=["time_boot_s", "Message"],
61
+ ).T
57
62
  else:
58
63
  try:
59
- new_df = pd.DataFrame(v)
64
+ new_df = pd.DataFrame(v)
60
65
  except Exception as ex:
61
66
  logger.info(f"Error parsing {k}: {ex}")
62
67
  new_df = None
63
-
68
+
64
69
  if new_df is not None:
65
70
  if "[" not in k:
66
71
  dfs[k] = new_df
@@ -69,7 +74,7 @@ class BinData:
69
74
  if nk not in groups:
70
75
  groups[nk] = []
71
76
  groups[nk].append(new_df)
72
-
77
+
73
78
  for k, v in groups.items():
74
79
  dfs[k] = pd.concat(v).sort_values("time_boot_s")
75
80
 
@@ -77,10 +82,12 @@ class BinData:
77
82
  start_time = (
78
83
  BinData._gpsTimeToTime(dfs["GPS"].GWk.iloc[0], dfs["GPS"].GMS.iloc[0])
79
84
  - dfs["GPS"].time_boot_s.iloc[0]
80
- )
85
+ )
86
+ else:
87
+ start_time = 0
81
88
 
82
89
  def process_df(df: pd.DataFrame) -> pd.DataFrame:
83
- df.insert(0, "TimeUS", np.floor(df.time_boot_s * 1e6)) # ms
90
+ df.insert(0, "TimeUS", np.floor(df.time_boot_s * 1e6)) # ms
84
91
  df.insert(0, "timestamp", start_time + df.time_boot_s)
85
92
 
86
93
  return df.drop(columns="time_boot_s")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flightdata
3
- Version: 0.2.19
3
+ Version: 0.2.21
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
@@ -11,13 +11,13 @@ License-File: LICENSE
11
11
  Requires-Dist: numpy
12
12
  Requires-Dist: pandas
13
13
  Requires-Dist: simplejson
14
- Requires-Dist: pfc-geometry>=0.2.11
14
+ Requires-Dist: pfc-geometry>=0.2.12
15
15
  Requires-Dist: json_stream
16
16
  Provides-Extra: dev
17
17
  Requires-Dist: numpy; extra == "dev"
18
18
  Requires-Dist: pandas; extra == "dev"
19
19
  Requires-Dist: simplejson; extra == "dev"
20
- Requires-Dist: pfc-geometry>=0.2.11; extra == "dev"
20
+ Requires-Dist: pfc-geometry>=0.2.12; extra == "dev"
21
21
  Requires-Dist: ardupilot-log-reader>=0.3.3; extra == "dev"
22
22
  Requires-Dist: pytest; extra == "dev"
23
23
 
@@ -1,13 +1,13 @@
1
1
  numpy
2
2
  pandas
3
3
  simplejson
4
- pfc-geometry>=0.2.11
4
+ pfc-geometry>=0.2.12
5
5
  json_stream
6
6
 
7
7
  [dev]
8
8
  numpy
9
9
  pandas
10
10
  simplejson
11
- pfc-geometry>=0.2.11
11
+ pfc-geometry>=0.2.12
12
12
  ardupilot-log-reader>=0.3.3
13
13
  pytest
@@ -1,6 +1,6 @@
1
1
  numpy
2
2
  pandas
3
3
  simplejson
4
- pfc-geometry>=0.2.11
4
+ pfc-geometry>=0.2.12
5
5
  ardupilot-log-reader>=0.3.3
6
6
  pytest
@@ -1,5 +1,5 @@
1
1
  numpy
2
2
  pandas
3
3
  simplejson
4
- pfc-geometry>=0.2.11
4
+ pfc-geometry>=0.2.12
5
5
  json_stream
File without changes
File without changes
File without changes
File without changes
File without changes