查找具有零距离方差和记录的瓦特的条目
Find entries with zero distance variance and recorded watts
我是一名自行车手和一名程序员。在骑行过程中,我使用基于 phone 的 gps 跟踪器和功率计将数据记录到 xml 文件。骑行后,我使用功率计软件合并数据,然后上传到网站。在网站上,生成的数据显示的 WR 瓦特数据非常不准确(它是加权平均值,也称为归一化功率,根据定义高于平均功率但低于我记录的最大瓦特数。请参阅 http://ridewithgps.com/trips/4834566 (导出 TCX 历史记录以获取我所指的文件)。/<Watts>\d{4,}
returns 没有结果。
Calories: 1809
Max Watts: 676
Avg. Watts: 213 (170 with 0s)
WR Power 23487
Work 1681 kJ
Max Speed: 26.2 mph
Avg. Speed: 16.6 mph
这是 tcx 历史文件中的两个示例读数。
<Trackpoint>
<Time>2015-05-30T11:35:50Z</Time>
<Position>
<LatitudeDegrees>41.96306</LatitudeDegrees>
<LongitudeDegrees>-87.645939</LongitudeDegrees>
</Position>
<AltitudeMeters>177.7</AltitudeMeters>
<DistanceMeters>71.5</DistanceMeters>
<Cadence>67</Cadence>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Watts>104</Watts>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-05-30T11:35:51Z</Time>
<Position>
<LatitudeDegrees>41.963076</LatitudeDegrees>
<LongitudeDegrees>-87.646094</LongitudeDegrees>
</Position>
<AltitudeMeters>178.0</AltitudeMeters>
<DistanceMeters>75.7</DistanceMeters>
<Cadence>67</Cadence>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Watts>156</Watts>
</TPX>
</Extensions>
</Trackpoint>
我已经检查了 <Watts>\d*</Watts>
的每个条目,其中相应的节奏为零(如果我不踩踏板,瓦特应该为零)。
:g/<Cadence>0/.,+3s/<Watts>[1-9]\d*/<Watts>0/c
但这并没有解决问题。我的下一步是找到跟踪点之间的距离不变并且包含大于零的瓦数的条目。这个returns E65: 非法反向引用
:g/<DistanceMeters>\(\d*\)/+1,+15s/<DistanceMeters>/
澄清:
我正在寻找瓦数必须为零和不为零的位置。这些将是我不踩踏板的地方(Cadence = 0)以及我不移动的地方(相同的连续距离节点)。我已经更正了节奏 = 0 的瓦数,但不知道如何找到 N 不变的连续 <DistanceMeters>N</DistanceMeters>
个节点。
只要有足够的决心,就可以做到:
:%s/\m<DistanceMeters>\([0-9.]\+\)<\/DistanceMeters>\n\(.*\n\)\{1,15}\s\+<DistanceMeters><\/DistanceMeters>\n\(.*\n\)\{3}\s\+<Watts>\zs[1-9]\d*\ze<\/Watts>/0/gc
但是,您到底为什么要在 Vim 中这样做?
我是一名自行车手和一名程序员。在骑行过程中,我使用基于 phone 的 gps 跟踪器和功率计将数据记录到 xml 文件。骑行后,我使用功率计软件合并数据,然后上传到网站。在网站上,生成的数据显示的 WR 瓦特数据非常不准确(它是加权平均值,也称为归一化功率,根据定义高于平均功率但低于我记录的最大瓦特数。请参阅 http://ridewithgps.com/trips/4834566 (导出 TCX 历史记录以获取我所指的文件)。/<Watts>\d{4,}
returns 没有结果。
Calories: 1809
Max Watts: 676
Avg. Watts: 213 (170 with 0s)
WR Power 23487
Work 1681 kJ
Max Speed: 26.2 mph
Avg. Speed: 16.6 mph
这是 tcx 历史文件中的两个示例读数。
<Trackpoint>
<Time>2015-05-30T11:35:50Z</Time>
<Position>
<LatitudeDegrees>41.96306</LatitudeDegrees>
<LongitudeDegrees>-87.645939</LongitudeDegrees>
</Position>
<AltitudeMeters>177.7</AltitudeMeters>
<DistanceMeters>71.5</DistanceMeters>
<Cadence>67</Cadence>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Watts>104</Watts>
</TPX>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2015-05-30T11:35:51Z</Time>
<Position>
<LatitudeDegrees>41.963076</LatitudeDegrees>
<LongitudeDegrees>-87.646094</LongitudeDegrees>
</Position>
<AltitudeMeters>178.0</AltitudeMeters>
<DistanceMeters>75.7</DistanceMeters>
<Cadence>67</Cadence>
<Extensions>
<TPX xmlns="http://www.garmin.com/xmlschemas/ActivityExtension/v2">
<Watts>156</Watts>
</TPX>
</Extensions>
</Trackpoint>
我已经检查了 <Watts>\d*</Watts>
的每个条目,其中相应的节奏为零(如果我不踩踏板,瓦特应该为零)。
:g/<Cadence>0/.,+3s/<Watts>[1-9]\d*/<Watts>0/c
但这并没有解决问题。我的下一步是找到跟踪点之间的距离不变并且包含大于零的瓦数的条目。这个returns E65: 非法反向引用
:g/<DistanceMeters>\(\d*\)/+1,+15s/<DistanceMeters>/
澄清:
我正在寻找瓦数必须为零和不为零的位置。这些将是我不踩踏板的地方(Cadence = 0)以及我不移动的地方(相同的连续距离节点)。我已经更正了节奏 = 0 的瓦数,但不知道如何找到 N 不变的连续 <DistanceMeters>N</DistanceMeters>
个节点。
只要有足够的决心,就可以做到:
:%s/\m<DistanceMeters>\([0-9.]\+\)<\/DistanceMeters>\n\(.*\n\)\{1,15}\s\+<DistanceMeters><\/DistanceMeters>\n\(.*\n\)\{3}\s\+<Watts>\zs[1-9]\d*\ze<\/Watts>/0/gc
但是,您到底为什么要在 Vim 中这样做?