import pytiers as pyt
from pytiers import parameters, by
pt = pyt.read_tier('Demo.PitchTier')
pt[:10]
[Point[1](time=0.6916666666666658, value=251.1239495891874), Point[2](time=0.7016666666666658, value=252.44049383098044), Point[3](time=0.7116666666666658, value=252.9173724758031), Point[4](time=0.7216666666666658, value=252.43241443363095), Point[5](time=0.7316666666666657, value=252.0881696843589), Point[6](time=0.7416666666666657, value=252.27266855152342), Point[7](time=0.7516666666666657, value=253.24763154144037), Point[8](time=0.7616666666666657, value=253.52590107673126), Point[9](time=0.7716666666666657, value=251.51992392003504), Point[10](time=0.7816666666666657, value=248.1101529518708)]
pt.get_point(1, by=by.TIME, strict=False)
Point[32](time=1.0016666666666656, value=241.0621128930537)
pt.get_point(30, by=by.INDEX)
Point[30](time=0.9816666666666657, value=245.41827910799626)
pt.get_points((25, 30), by=by.INDEX)
[Point[25](time=0.9316666666666658, value=267.4230299089029), Point[26](time=0.9416666666666658, value=266.60008314559127), Point[27](time=0.9516666666666658, value=264.84054480946844), Point[28](time=0.9616666666666658, value=261.9267821109761), Point[29](time=0.9716666666666658, value=255.23190926027488), Point[30](time=0.9816666666666657, value=245.41827910799626)]
p1 = pt.get_point(25, by=by.INDEX)
p2 = pt.get_point(30, by=by.INDEX)
pt.get_points((p1.point_index, p2.point_index), by=by.INDEX)
[Point[25](time=0.9316666666666658, value=267.4230299089029), Point[26](time=0.9416666666666658, value=266.60008314559127), Point[27](time=0.9516666666666658, value=264.84054480946844), Point[28](time=0.9616666666666658, value=261.9267821109761), Point[29](time=0.9716666666666658, value=255.23190926027488), Point[30](time=0.9816666666666657, value=245.41827910799626)]
pt.get_points((1, 1.2), by=by.TIME)
[Point[32](time=1.0016666666666656, value=241.0621128930537), Point[33](time=1.0716666666666657, value=212.33672284905182), Point[34](time=1.0816666666666657, value=200.67829192385588), Point[35](time=1.0916666666666657, value=194.16760800689113), Point[36](time=1.1016666666666657, value=191.06725871396833), Point[37](time=1.1116666666666657, value=188.3035543677083), Point[38](time=1.1216666666666657, value=183.4968842869545), Point[39](time=1.1316666666666657, value=167.80906300947834), Point[40](time=1.1416666666666657, value=162.70691449134793)]
pt.add_point(pyt.Point(time=1.11, value=200))
pt.get_points((1, 1.2), by=by.TIME)
[Point[32](time=1.0016666666666656, value=241.0621128930537), Point[33](time=1.0716666666666657, value=212.33672284905182), Point[34](time=1.0816666666666657, value=200.67829192385588), Point[35](time=1.0916666666666657, value=194.16760800689113), Point[36](time=1.1016666666666657, value=191.06725871396833), Point[37](time=1.11, value=200), Point[38](time=1.1116666666666657, value=188.3035543677083), Point[39](time=1.1216666666666657, value=183.4968842869545), Point[40](time=1.1316666666666657, value=167.80906300947834), Point[41](time=1.1416666666666657, value=162.70691449134793)]
pt.to_dataframe()
index | time | value | |
---|---|---|---|
0 | 1 | 0.691667 | 251.123950 |
0 | 2 | 0.701667 | 252.440494 |
0 | 3 | 0.711667 | 252.917372 |
0 | 4 | 0.721667 | 252.432414 |
0 | 5 | 0.731667 | 252.088170 |
... | ... | ... | ... |
0 | 5489 | 102.041667 | 108.972834 |
0 | 5490 | 102.051667 | 109.298668 |
0 | 5491 | 102.061667 | 104.503082 |
0 | 5492 | 102.121667 | 367.698449 |
0 | 5493 | 102.131667 | 366.882131 |
5493 rows × 3 columns
pt.to_plot()
<AxesSubplot:xlabel='time', ylabel='value'>
You can also use Plotly.
parameters['to_plot.package'] = 'plotly'
pt.to_plot()
pt.write_to_file('path_to_file')
dt = pyt.read_tier('Demo.DurationTier')
dt
DurationTier(name=Demo, start_time=0.0, end_time=103.25333333333333, duration=103.25333333333333, points=[Point[1](time=15.922818410128954, value=1.928128544596358), Point[2](time=47.466551184790944, value=0.7290640131233914), Point[3](time=73.8901418279136, value=2.0710939310412115)])