Mapping long thin images into higher dimensionsWritten by Paul Bourke
The following presents various ways of mapping extremely long thin images, or data, into a more compact form. This is achieved by raising the dimension of the data, embedding the 1D strip onto 2 or 3 dimensional geometry. The example used is a slitscan image recorded on a train from Geelong to Melbourne over the period of 1 hour. The image is approximately 100,000 pixels long by only 2300 pixels high, so an aspect ratio of 44:1. A scaled down version at 30,000 pixels is given below, Geelong on the left and Melbourne on the right one hour later.
The first approach is to map the image onto a vertical spiral spring surface. This maps the length of the image onto an arbitrary long circumference of the spring. Exploring the image requires a real-time 3D interaction with the textured geometry. The equations for the spring is given below where r is the radius in the x-y plane, theta ranges from 0 to the total winding angle, and dz determines the spacing between the rings.
In the following, the total winding angle is 1080 degrees, the radius is 1, and dz set so the spring lies within a unit cube.
The second approach is to retain the 2D nature of the image and spiral it on a plane. There are many possible spiral forms one could use. Most suited here is a spiral where the curves are equally separated radially, this is a feature of the Archimedean spiral and described simply by
Where r varies linearly between two ranges, the inner smaller radius and the larger outer radius. Theta determines the total angular extent. In the following the radius extends from 1 to 4 and the angle from 0 to 1800 degrees.
The last case is to wrap the long strip onto the surface a sphere. One of the benefits of this is that one can then render the result as a static equirectangular image for viewing within VR headsets or online in one of the many social media platforms that support 360 spherical panoramas.
The standard spiral on a sphere describes a ship which travels from one pole to the other pole while keeping a fixed angle with respect to the meridians. This isn't suitable since it results in a compression of the curves at the poles. For the purpose here we need a curve on a sphere where the curves stay equally spaced, the same desirable attribute for the 2D spiral. Such a curve is given in the equations and figure below. In the above example the latitude ranges from -60 to 60 degrees and the longitude from 0 to 2880 degrees.
An example with a larger number of windings.