Venus cloud tracking -- July 31, 2006


<- Previous page

9. Making vector fields

Using FITSFlow

FITSFlow is a Macintosh GUI program for calculating vector flow fields between pairs of FITS images. To learn more about FITSFlow, or to download a copy of the program, see:

I will not discuss the basic operation of FITSFlow, nor the algorithms for calculating vector flows between images, here. It is assumed that you have a basic understanding of these operations. Nevertheless, it should be fairly easy to follow the analysis below.

Creating vector movies from enhanced composite images

To create vector flow fields between all 7 composite images shown before, first the first and second images are loaded into FITSFlow. The first image is displayed dimmed so as to allow the vectors to be seen more easily:


(Click for full-size)

Next, the inital iteration of the flow calculation is performed (see the FITSFlow web page for details). In this case, the parameters are set to the following:

Grid = 10,  gird x and y spacing are 10 pixels.

Domain = 32, the search template is 32x32 pixels, about the size of
   the cloud features in each image.

Range = 52, the search region is 10 pixels larger on each side of the
   domain, so as to include the expected magnitude of the flow.

Neighborhood = 31, the local region of flow vectors that affects a
   particular point is chosen to include a radius of the 3 nearest grid
   points.

Sigma = 25, this value was chosen so that the flow would converge
   after about 20 iterations.

Length = 3, each vector is displayed multiplied by 3.

Iterations = 20, a total of 20 iterations, after the first, are performed
   on the flow field.

Threshold = 2.5, after all calculations, those vectors more than 2.5
   standard deviations from their neighborhood mean are replaced by that
   mean for display purposes.

This calculation finds the maximum likely displacement of each 32x32 region between the two images using the parametric correlation surface:


(Click for full-size)

Next, 19 iterations of adjusting this flow field are performed by iteratively computing the vector correlation coefficients of candidates within the surrounding neighborhoods:


(Click for full-size)

Finally, a display postprocessing step is used to replace all grid vectors which deviate from their neighborhood means by more than 2.5 standard deviations by those means:


(Click for full-size)

This same procedure was used to calculate the vector flows between the remaining 6 composite images. Each flow image was then saved as a TIFF file and assembled into a QuickTime movie as discussed previously. Here is a movie of the flow calculated between each pair of images. As before, each composite image is 20 minutes apart, so that the movie spans a total of 120 minutes:


(Click for movie)

Adjusting the vector average and scale

The movie shown above has several problems, including the following:

1. All images are not displayed on the same vector scale.

2. Each of the images has a different mean value of the total dx and dy shifts for all vectors. In particular, the value of dx is unusually large for the field between images 2492 and 2897, where the mean vector is (-6.31, 0.14). All vectors within this field also have unusually large magnitudes, making this image of the movie stand out among the others.

It is assumed that the variation between (avx, avy) values among images is due to alignment problems. If one views a movie of the composite images without vectors (such as movie03 above), it is clear that the overall cloud motion is from right to left at a fairly constant rate. Therefore, it is assumed that variations in this mean rate are due to alignment errors between composite images, which can be compensated for in the subsequent vector calculations.

Here is a table of the maximum magitude, and mean dx and dy values for each vector flow:

Image1    Max     Avx     Avy
------    ---     ---     ---

1230      26.83   -3.47   -0.40
1763      29.55   -4.35   -0.49
2124      27.00   -1.86    0.65
2492      26.83   -6.31    0.14
2897      24.74   -3.82    0.59
3205      33.94   -3.30   -0.67

The average of these (avx, avy) values is (-3.85, -0.03). This seems to be a reasonable result, although I would have expected the average y value to be slightly positive, given the orientation of the planet. With a vector scale factor of 3x, and an image enlargement of 2x, this means an average X displacement of -3.85 / 6 = -0.64 pixels within a 20 minute period, at the plate scale of the raw images.

If we assume that the average rate of cloud motion is (-3.85, -0.03) pixels (at 6x) every 20 minutes, then the previous images of the vector flow movie can be adjusted to become this rate. The appropriate compensating offset vectors for each image can be input into FITSFlow in order to make the (avx, avy) vectors equal to any desired value. In addition, the vector magnitude scale can be fixed at a constant amount (e.g. 25) across all images, and all vectors clipped to this amount for display purposes.

If this is done, and all calculations reperformed, the following movie is obtained:


(Click for movie)

If, in addition, one performs the flow analysis between just the first and the last images (120 minutes apart), now using a range size of 96 rather than 52 to capture the accumulated motion, 40 iterations, and a sigma of 50 to slow the convergence, the following field is obtained:


(Click for full-size)

This field has an average flow of (-5.57, 0.17) at a scale facter of 0.75 * 2 = 1.5, or a total flow in the X direction of -3.71 pixels at the original plate scale. -3.71 / -0.64 = 5.80, or about 6x the flow for an individual 20 minute interval, which checks out.

Issues for discussion

  1. Is this result accurate? The first question is whether what we are seeing is what is actually happening, just in terms of image geometry. Verification of the output of FITSFlow, and a sensitivity analysis of the effect of changes to the various parameters of the calculation should be the next priority of this project, using some of the techniques we discussed earlier this month. Nevertheless, the fact that the average flow (both numerically and visually from the individual vectors and corresponding images) is in the right direction and has the expected magnitude, and the fact that the individual short-time flows add up to the long-time flow, suggest that we are seeing at least part of what is really happening.

  2. What is flowing? Although FITSFlow is detecting motion of features in the images, the following question arises: is this flow occurring in the atmosphere of Venus, or in the atmosphere of the Earth? Put another way, is FITSFlow detecting non-average flows in the clouds of Venus, or is it just detecting random image distortions due to varying seeing conditions between the raw images?

  3. Short-time flow magnitude. While the average flow for a 120 minute period was about 6 pixels, the average flow for a 20 minute period was less than a pixel in the raw images. Currently FITSFlow only detects integer motion of domains, and only displays the resulting vectors as a multiple of a pixel (i.e. all vectors are quantized), although in this case it is detecting 0.5 pixel flows due to the 2x composite enlargement and unsmoothing. Nevertheless, it is clear that to accurately characterize and quantify these flows on this timescale, subpixel calculations are required (or, better yet, higher resolution raw images are necessary).


İSky Coyote 2006