11
11
# @ }
12
12
---
13
13
_target_ : rbyte.Dataset
14
- _convert_ : all
15
14
_recursive_ : false
15
+ _convert_ : all
16
16
inputs :
17
17
# @ for input_id in inputs:
18
18
(@=input_id@) :
19
19
sources :
20
20
# @ for camera, topic in camera_topics.items():
21
21
(@=camera@) :
22
- index_column : mcap/ (@=topic@)/_idx_
22
+ index_column : (@=topic@)/_idx_
23
23
source :
24
24
_target_ : rbyte.io.McapTensorSource
25
25
path : " ${data_dir}/(@=input_id@).mcap"
@@ -33,66 +33,85 @@ inputs:
33
33
fastupsample : true
34
34
# @ end
35
35
36
- table_builder :
37
- _target_ : rbyte.io.TableBuilder
38
- _convert_ : all
39
- readers :
40
- mcap :
41
- path : " ${data_dir}/(@=input_id@).mcap"
42
- reader :
43
- _target_ : rbyte.io.McapTableReader
44
- _recursive_ : false
45
- decoder_factories :
46
- - rbyte.utils.mcap.ProtobufDecoderFactory
47
- - rbyte.utils.mcap.JsonDecoderFactory
36
+ samples :
37
+ pipeline :
38
+ _target_ : pipefunc.Pipeline
39
+ validate_type_annotations : false
40
+ functions :
41
+ - _target_ : pipefunc.PipeFunc
42
+ bound :
43
+ path : ${data_dir}/(@=input_id@).mcap
44
+ output_name : data
45
+ func :
46
+ _target_ : rbyte.io.McapDataFrameBuilder
47
+ decoder_factories :
48
+ - rbyte.utils._mcap.ProtobufDecoderFactory
49
+ - rbyte.utils._mcap.JsonDecoderFactory
50
+ fields :
51
+ # @ for topic in camera_topics.values():
52
+ (@=topic@) :
53
+ log_time :
54
+ _target_ : polars.Datetime
55
+ time_unit : ns
56
+ # @ end
48
57
49
- fields :
50
- # @ for topic in camera_topics.values():
51
- (@=topic@) :
52
- _idx_ :
53
- log_time :
54
- _target_ : polars.Datetime
55
- time_unit : ns
56
- # @ end
58
+ /odom :
59
+ log_time :
60
+ _target_ : polars.Datetime
61
+ time_unit : ns
62
+ vel.x :
57
63
58
- /odom :
59
- log_time :
60
- _target_ : polars.Datetime
61
- time_unit : ns
62
- vel.x :
64
+ - _target_ : pipefunc.PipeFunc
65
+ renames :
66
+ input : data
67
+ output_name : data_indexed
68
+ func :
69
+ _target_ : rbyte.io.DataFrameIndexer
70
+ name : _idx_
63
71
64
- merger :
65
- _target_ : rbyte.io.TableAligner
66
- separator : " /"
67
- merge :
68
- mcap :
69
- # @ topic = camera_topics.values()[0]
70
- (@=topic@) :
71
- key : log_time
72
+ - _target_ : pipefunc.PipeFunc
73
+ renames :
74
+ input : data_indexed
75
+ output_name : data_aligned
76
+ func :
77
+ _target_ : rbyte.io.DataFrameAligner
78
+ separator : /
79
+ fields :
80
+ # @ topic = camera_topics.values()[0]
81
+ (@=topic@) :
82
+ key : log_time
72
83
73
- # @ for topic in camera_topics.values()[1:]:
74
- (@=topic@) :
75
- key : log_time
76
- columns :
77
- _idx_ :
78
- method : asof
79
- tolerance : 40ms
80
- strategy : nearest
81
- # @ end
84
+ # @ for topic in camera_topics.values()[1:]:
85
+ (@=topic@) :
86
+ key : log_time
87
+ columns :
88
+ _idx_ :
89
+ method : asof
90
+ tolerance : 40ms
91
+ strategy : nearest
92
+ # @ end
82
93
83
- /odom :
84
- key : log_time
85
- columns :
86
- vel.x :
87
- method : interp
94
+ /odom :
95
+ key : log_time
96
+ columns :
97
+ vel.x :
98
+ method : interp
88
99
89
- filter : |
90
- `mcap//odom/vel.x` >= 8
100
+ - _target_ : pipefunc.PipeFunc
101
+ renames :
102
+ input : data_aligned
103
+ output_name : data_filtered
104
+ func :
105
+ _target_ : rbyte.io.DataFrameFilter
106
+ predicate : |
107
+ `/odom/vel.x` >= 8
91
108
92
- cache :
109
+ - _target_ : pipefunc.PipeFunc
110
+ renames :
111
+ input : data_filtered
112
+ output_name : samples
113
+ func :
114
+ _target_ : rbyte.RollingWindowSampleBuilder
115
+ index_column : (@=camera_topics.values()[0]@)/_idx_
116
+ period : 1i
93
117
# @ end
94
-
95
- sample_builder :
96
- _target_ : rbyte.RollingWindowSampleBuilder
97
- index_column : mcap/(@=camera_topics.values()[0]@)/_idx_
98
- period : 1i
0 commit comments