Skip to content

Commit 1866b01

Browse files
author
FelixAbrahamsson
committed
improve: remove adjust, shift rows to adjust frame index
1 parent 6e36746 commit 1866b01

File tree

7 files changed

+55
-100
lines changed

7 files changed

+55
-100
lines changed

README.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ Usage
1919
positions = (
2020
kmm.Positions.from_path(kmm_path)
2121
.sync_frame_index(header)
22-
.adjust(kmm.PositionAdjustment.WIRE_CAMERA, header)
2322
.geodetic()
2423
)
2524

kmm/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from kmm.functional_base import FunctionalBase
22
from kmm.car_direction import CarDirection
3-
from kmm.position_adjustment import PositionAdjustment
43
from kmm import positions
54
from kmm import header
65
from kmm.positions.positions import Positions

kmm/position_adjustment.py

Lines changed: 0 additions & 6 deletions
This file was deleted.

kmm/positions/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from kmm.positions.read_kmm import read_kmm
22
from kmm.positions.read_kmm2 import read_kmm2
33
from kmm.positions.geodetic import geodetic
4-
from kmm.positions.wire_camera_positions import wire_camera_positions
4+
from kmm.positions.sync_frame_index import sync_frame_index
55
from kmm.positions.positions import Positions

kmm/positions/positions.py

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ def from_path(path: Path):
3232
def read_sync_adjust(
3333
kmm_path: Path,
3434
header_path: Path,
35-
adjustment: kmm.PositionAdjustment = kmm.PositionAdjustment.WIRE_CAMERA,
3635
):
3736
"""
3837
Loads positions from .kmm or .kmm2 file + .hdr file, then performs
@@ -42,28 +41,11 @@ def read_sync_adjust(
4241
return (
4342
Positions.from_path(kmm_path)
4443
.sync_frame_index(header)
45-
.adjust(adjustment, header)
4644
.geodetic()
4745
)
4846

4947
def sync_frame_index(self, header):
50-
return self.replace(
51-
dataframe=self.dataframe.assign(
52-
frame_index=(
53-
(
54-
self.dataframe["centimeter"]
55-
+ header.position
56-
- header.sync
57-
) / 10
58-
).astype(int)
59-
)
60-
)
61-
62-
def adjust(self, adjustment: kmm.PositionAdjustment, header):
63-
if adjustment == kmm.PositionAdjustment.WIRE_CAMERA:
64-
return kmm.positions.wire_camera_positions(self, header.car_direction)
65-
else:
66-
raise ValueError(f"Unknown adjustment option {adjustment}")
48+
return kmm.positions.sync_frame_index(self, header)
6749

6850
def geodetic(self):
6951
return kmm.positions.geodetic(self)

kmm/positions/sync_frame_index.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import numpy as np
2+
from pydantic import validate_arguments
3+
4+
from kmm import CarDirection
5+
from kmm.positions.positions import Positions
6+
from kmm.header.header import Header
7+
8+
9+
@validate_arguments(config=dict(arbitrary_types_allowed=True))
10+
def sync_frame_index(positions: Positions, header: Header):
11+
12+
frame_index = (
13+
(
14+
positions.dataframe["centimeter"].values
15+
+ header.position
16+
- header.sync
17+
) / 10
18+
).astype(int)
19+
pad = np.zeros(8)
20+
pad.fill(np.nan)
21+
22+
if header.car_direction == CarDirection.A:
23+
frame_index = np.concatenate([pad, frame_index[8:]])
24+
elif header.car_direction == CarDirection.B:
25+
frame_index = np.concatenate([frame_index[:-8], pad])
26+
else:
27+
raise ValueError(header.car_direction)
28+
29+
return positions.replace(
30+
dataframe=positions.dataframe.assign(frame_index=frame_index)
31+
)
32+
33+
34+
def test_sync_frame_index_kmm():
35+
from kmm import Header
36+
37+
positions = Positions.from_path("tests/ascending_B.kmm")
38+
header = Header.from_path("tests/ascending_B.hdr")
39+
assert (
40+
sync_frame_index(positions, header)
41+
.dataframe["frame_index"].iloc[0] == 659
42+
)
43+
44+
45+
def test_sync_frame_index_kmm2():
46+
from kmm import Header
47+
48+
positions = Positions.from_path("tests/ascending_B.kmm2")
49+
header = Header.from_path("tests/ascending_B.hdr")
50+
assert (
51+
sync_frame_index(positions, header)
52+
.dataframe["frame_index"].iloc[0] == -808
53+
)

kmm/positions/wire_camera_positions.py

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)