1#! /usr/bin/env python
2
3from __future__ import print_function
4import openturns as ot
5
6
7dim = 2
8
9# We create an empty series
10ts1 = ot.TimeSeries(0, dim)
11ts1.setName('Ts1')
12
13# We populate the empty ts
14for p in range(3):
15    pt = ot.Point(dim)
16    for i in range(dim):
17        pt[i] = 10. * (p + 1) + i
18    ts1.add(pt)
19
20print('ts1=', ts1)
21print('len=', len(ts1))
22
23# We get the second element of the ts
24secondElement = ts1[1]
25print('second element=', secondElement)
26
27# We set the third element to a valid new element
28newPoint = ot.Point(dim + 1)
29for i in range(dim):
30    newPoint[i + 1] = 1000. * (i + 1)
31ts1[2] = newPoint
32print('ts1=', ts1)
33
34# We get the values of the second element of the ts
35values1 = ts1.getValueAtIndex(1)
36print('values of the second element=', values1)
37
38# We set new values for the second element of the ts
39newValues = values1 * 2.
40ts1.setValueAtIndex(1, newValues)
41values2 = ts1.getValueAtIndex(1)
42print('ts1=', ts1)
43print('modified values of the second element=',
44      values2, ' should be ', newValues)
45
46# We get the values of the second element of the ts
47tree = ot.KDTree(ts1.getMesh().getVertices())
48values3 = ts1.getValueAtIndex(tree.query([-1.0]))
49print('values at t=-1.0 =', values3)
50values4 = ts1.getValueAtIndex(tree.query([1.45]))
51print('values at t=1.45 =', values4)
52values5 = ts1.getValueAtIndex(tree.query([1.54]))
53print('values at t=1.54 =', values5)
54values6 = ts1.getValueAtIndex(tree.query([14.5]))
55print('values at t=14.5 =', values6)
56
57# We set new values for the third element of the ts
58ts1.setValueAtIndex(tree.query([1.54]), values6 * -1.0)
59print('ts1=', ts1)
60
61ts2 = ot.TimeSeries(10, dim)
62print('ts2=', ts2)
63
64# ts2[5] = point2
65# print 'ts2=', ts2
66
67try:
68    # We get the tenth element of the ts
69    # THIS SHOULD NORMALLY FAIL
70    tenthElement = ts1.at(9)
71except:
72    print('Expected failure')
73
74tg1 = ot.RegularGrid(0.0, 0.1, 11)
75ts3 = ot.TimeSeries(tg1, dim)
76print('ts3=', ts3)
77
78tg2 = ot.RegularGrid(0.0, 0.2, 6)
79ts4 = ot.TimeSeries(tg2, dim)
80print('ts4=', ts4)
81
82# We append a sample to a time series
83ts5 = ot.TimeSeries(3, dim)
84ns1 = ot.Sample(3, [99.9] * dim)
85print('ts5=', ts5)
86ts5.add(ns1)
87print('ts5=', ts5)
88
89# We retrieve the values of the time series as a sample
90ns2 = ts5.getValues()
91print('ns2=', ns2)
92
93# We build a time series from a time grid and a sample
94ns3 = ts4.getValues()
95ts6 = ot.TimeSeries(tg2, ns3)
96print('ts6=', ts6)
97