Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
plot circular data (e.g. vehicle trajectories of a ringroad)

Subject: plot circular data (e.g. vehicle trajectories of a ringroad)

From: Thomas Schreiter

Date: 6 Aug, 2010 13:07:05

Message: 1 of 5

Hi,

I have a 2D data set of vehicle trajectories, containing the position of every vehicle at every time step. This position refers to a location of a ringroad. A ringroad of 1000m length has a jump in its location numbering: After meter 999 you reach "the beginning" of the ringroad at meter 0 again, much like in a car race at the start-finish line.)

Plotting these trajectories with the plot command leads to an ugly plot:
  (1.) The plot show large jumps near the start-finish line, caused by the linear interpolation of the plot function. Instead, I'd like to interpolate in a _circular_ manner.
  (2.) It is not possible to pan the plot in the spatial dimension near the start-finish line.

Is there an easy solution to this problem?

Subject: plot circular data (e.g. vehicle trajectories of a ringroad)

From: Joseph

Date: 6 Aug, 2010 13:44:04

Message: 2 of 5

I'm not sure I totally get this question but why not just wrap the data? In other words, add 1000m to your value ever time you get to the 999 -> 0 jump.



"Thomas Schreiter" <t.schreiter@tudelft.nl> wrote in message <i3h1dp$s9o$1@fred.mathworks.com>...
> Hi,
>
> I have a 2D data set of vehicle trajectories, containing the position of every vehicle at every time step. This position refers to a location of a ringroad. A ringroad of 1000m length has a jump in its location numbering: After meter 999 you reach "the beginning" of the ringroad at meter 0 again, much like in a car race at the start-finish line.)
>
> Plotting these trajectories with the plot command leads to an ugly plot:
> (1.) The plot show large jumps near the start-finish line, caused by the linear interpolation of the plot function. Instead, I'd like to interpolate in a _circular_ manner.
> (2.) It is not possible to pan the plot in the spatial dimension near the start-finish line.
>
> Is there an easy solution to this problem?

Subject: plot circular data (e.g. vehicle trajectories of a ringroad)

From: Thomas Schreiter

Date: 6 Aug, 2010 14:04:06

Message: 3 of 5

Hi, Joseph.

The data are well formatted. The problem is the visualization. For example, let X denote the position of one vehicle over time traveling with constant speed, say X = [ 100 300 500 700 900 100 300 500 ]. Plot(X) connects the points (5,900) and (6,100). But this line does not reflect the trajectory of the vehicle!

Subject: plot circular data (e.g. vehicle trajectories of a ringroad)

From: Sean

Date: 6 Aug, 2010 14:43:06

Message: 4 of 5

"Thomas Schreiter" <t.schreiter@tudelft.nl> wrote in message <i3h4om$5td$1@fred.mathworks.com>...
> Hi, Joseph.
>
> The data are well formatted. The problem is the visualization. For example, let X denote the position of one vehicle over time traveling with constant speed, say X = [ 100 300 500 700 900 100 300 500 ]. Plot(X) connects the points (5,900) and (6,100). But this line does not reflect the trajectory of the vehicle!

This may (or may just as easily not) be what you're looking for:
doc feather

Subject: plot circular data (e.g. vehicle trajectories of a ringroad)

From: Roger Stafford

Date: 6 Aug, 2010 20:00:36

Message: 5 of 5

> "Thomas Schreiter" <t.schreiter@tudelft.nl> wrote in message <i3h1dp$s9o$1@fred.mathworks.com>...
> > Hi,
> >
> > I have a 2D data set of vehicle trajectories, containing the position of every vehicle at every time step. This position refers to a location of a ringroad. A ringroad of 1000m length has a jump in its location numbering: After meter 999 you reach "the beginning" of the ringroad at meter 0 again, much like in a car race at the start-finish line.)
> >
> > Plotting these trajectories with the plot command leads to an ugly plot:
> > (1.) The plot show large jumps near the start-finish line, caused by the linear interpolation of the plot function. Instead, I'd like to interpolate in a _circular_ manner.
> > (2.) It is not possible to pan the plot in the spatial dimension near the start-finish line.
> >
> > Is there an easy solution to this problem?

"Joseph " <don'twannapostit@nopers.com> wrote in message <i3h3j4$jah$1@fred.mathworks.com>...
> I'm not sure I totally get this question but why not just wrap the data? In other words, add 1000m to your value ever time you get to the 999 -> 0 jump.
- - - - - - - - -
  You can use matlab's 'unwrap' function to carry out Joseph's idea if you rescale your 1000 meter values to 2*pi. Let P be an array in which each column gives the successive positions of a corresponding vehicle.

 Q = 1000/(2*pi)*unwrap((2*pi/1000)*P);

Then use Q for your plotting.

  This works provided no vehicle travels more than 500 meters between subsequent time points. Otherwise you would need something a little more sophisticated than 'unwrap' involving probable velocities and accelerations.

  It is assumed here that the vehicles are recorded at the same number of points. If the numbers of points are different you would have to do an 'unwrap' for each vehicle separately.

Roger Stafford

Tags for this Thread

No tags are associated with this thread.

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us