timeseries.SpaceCurve.accel — GDA Toolbox v1.0 Manual

# timeseries.SpaceCurve.accel

`SpaceCurve.` `accel`(rate)

  Change time parametrization, to represent a constant tangential acceleration (or deceleration). Locations, initial time, and arc-length are preserved.

  The first timestep is changed to have (1-rate) times the speed of the original’s first timestep. The last timestep is changed to have (1+rate) times the speed of the original’s last timestep. That is, if S is a `SpaceCurve` of constant speed, then S.accel(-0.1) will start 10% faster and end 10% slower than S.

  If speed[i] changes to speed[i]*q[i], then delta_t[i] changes to delta_t[i]*p[i], where p[i] = 1 / q[i]

  Examples

      >>> tn = np.arange(0, 5*1e9, 1e9)
      >>> s = SpaceCurve(tn=tn, px=10.0*tn/1e9) # drive straight at 10m/s
      >>> s
      SpaceCurve with 5 entries and duration 4.000000000
      >>> s.data
                  time  pos_x  pos_y  pos_z  quality
      0            0.0    0.0    0.0    0.0       -1
      1000000000   1.0   10.0    0.0    0.0       -1
      2000000000   2.0   20.0    0.0    0.0       -1
      3000000000   3.0   30.0    0.0    0.0       -1
      4000000000   4.0   40.0    0.0    0.0       -1
      >>> s.compute()
      >>> s.info['speed']
      0             10.0
      1000000000    10.0
      2000000000    10.0
      3000000000    10.0
      4000000000    10.0
      Name: speed, dtype: float64
      >>> a = s.accel(0.25)
      >>> a
      SpaceCurve with 5 entries and duration 4.147319347
      >>> a.compute()
      >>> a.info['speed']
      0              7.500000
      1333333333     8.250000
      2424242424     9.930556
      3347319347    11.607143
      4147319347    12.500000
      Name: speed, dtype: float64
      >>> a.data
                      time  pos_x  pos_y  pos_z  quality
      0           0.000000    0.0    0.0    0.0       -1
      1333333333  1.333333   10.0    0.0    0.0       -1
      2424242424  2.424242   20.0    0.0    0.0       -1
      3347319347  3.347319   30.0    0.0    0.0       -1
      4147319347  4.147319   40.0    0.0    0.0       -1
      >>> b = s.accel(-0.25)
      >>> b
      SpaceCurve with 5 entries and duration 4.147319347
      >>> b.compute()
      >>> b.info['speed']
      0             12.500000
      800000000     11.607143
      1723076923     9.930556
      2813986013     8.250000
      4147319347     7.500000
      Name: speed, dtype: float64
      >>> b.data
                      time  pos_x  pos_y  pos_z  quality
      0           0.000000    0.0    0.0    0.0       -1
      800000000   0.800000   10.0    0.0    0.0       -1
      1723076923  1.723077   20.0    0.0    0.0       -1
      2813986013  2.813986   30.0    0.0    0.0       -1
      4147319347  4.147319   40.0    0.0    0.0       -1

#### Previous topic

timeseries.SpaceCurve

#### Next topic

timeseries.SpaceCurve.arclength_param