cloudvec [ parameter=value ] [ inputfile_1 inputfile_2 inputfile_3 outputfile ]
cloudvec2 [ parameter=value ] [ inputfile_1 inputfile_2 inputfile_3 outputfile ]Parameters are: variables, box_size, max_offset, grid_space, check_range, feature_range, percent_within, min_strength, min_distance, max_wind_speed,min_vec_space, valid_length, valid_angle, valid_QI, knot_units, occlude_levels, levels_only,scale_factor.
cloudvec correlates neighborhoods from the reference image (inputfile_2) with slightly larger corresponding neighborhoods in the search images (inputfile_1) and (inputfile_3) and saves mutually validated average velocity vectors in the outfile. Vectors are relevent to the motion of features in the reference (inputfile_2) input image relative to the two search images (inputfile_1, inputfile_3).
cloudvec2 differs from cloudvec in that the reference image is set to inputfile_1 for the first pair of input datasets, to inputfile_2 for the second pair of input datasets, always generating vectors for features tracked forward in time, while cloudvec maintains inputfile_2 as the reference file throughout processing, to emphasize tracking individual features forwards and backwards in time. This difference permits cloudvec2 to reuse the second input-dataset-pair's validation vectors, for subsequent processing. cloudvec2 always checks inputfile_1 for the presence of reuseable input vectors, stored as variables vec_reuse_north and vec_reuse_east, inherited from an earlier cloudvec2 processing involving the first pair of input datasets (the preceding time-interval). With reuseability of vectors, processing time is cut in half, gaining significant performance and time to increase vector coverage. To take advantage of this reusability, inputfile_1 must contain variables vec_reuse_north and vec_reuse_east, i.e. it should essentially be the output dataset generated by cloudvec2 from the vector-generation of the previous time-interval processing. cloudvec2 writes out vec_reuse_north and vec_reuse_east variables containing vectors for the second pair of input datasets (images).
The correlation neighborhoods are specified by the box_size and max_offset parameters. The reference neighborhood is the inner box; the search neighborhood is the outer box:
<- box size width + 2*max sample offset -> +------------------------------------------+ ^ | | | | <-- box size width --> | | | +----------------------+ | | | | ^ | | | | | | | | box size height + | | | | | 2*max line offset | | box size height | | | | | | | | | | | | | | | | | v | | | | +----------------------+ | | | | v | | +------------------------------------------+The cloud motion vectors which comprise the cloudvec output product are described by values in the output variables:
These values indicate that the (latvalues, lonvalues) point of
the reference image (and its neighborhood) was moving in a direction
described by the vector [vec_east, vec_north] (knots
or m/s). Values provided by the level array are the average data
values for the specified position, for example the average temperature
if an IR brightness temperature channel is used for the cross-correlations.
level
values permit screening of vectors which result from feature occlusion
rather than feature motion, for example when moving high level clouds occlude
low level clouds. This screening is enabled with the occlude_levels
parameter, but requires that multiple-level masked cloud-height input
data is used for the cross-correlations. The correlation strength values
in Corr-strength are computed as variable:
(peak corr - base corr)/sqrt(corr variance) -2.
cloudvec ignores offset vectors where corr-strength is
less than the user-specified parameter min_strength.
Also, cloudvec can optionally ignore reference neighborhoods
containing less than a specified percentage of feature data.
Note that output variables vec_north, vec_east, corr-strength, level
are
saved as 2-dimensional variables if more than one input variable was
specified for vector generation. To access vectors for any of the individual
input variables, it is necessary to burst
these 2-dimensional variables first.
If only one input variable is specified, vec_north, vec_east, corr-strength,
level are saved as 1-dimensional output variables.
Two optional parameters max_wind_speed and min_vec_space, are provided, which permit automated determination of box_size, max_offset, and grid_space parameter defaults, based upon expected coverage of the output vectors. max_wind_speed determines the desired largest detectable speed, in knots, thereby determining the largest required offset for feature searching. min_vec_space determines the desired minimum separation distance, in km, between all adjacent vectors, thereby determining the density of output vectors.
If valid_QI=0.0 (default) is selected,
validation of output vectors is parametrized by length and orientation
thresholds specified by the parameters valid_length,
valid_angle.
These specify tolerances for deviation of corresponding vectors derived
from the successive image pairs. Vectors whose differences exceed the specified
length and orientation (angle) thresholds fail the validation test, and
are excluded from the output. These tests are the difference tests:
| length1 - length2 | <= valid_length ,
| angle1 - angle2 | <= valid_angle .
If valid_QI>0.0 is selected, validation of output vectors is parametrized by the quality indicator (QI) threshold specified with the parameter valid_QI.This value specifies tolerances for the QI corresponding to vectors composited from the successive image pairs. Vectors whose QI do not exceed the specified QI threshold fail the validation test, and are excluded from the output. This test is defined using three separate tests, for directional quality, speed quality, and vector quality, always included in the output dataset as variables dir_quality, speed_quality, vec_quality, along with the final QI_quality:
dir_quality = 1. - (
tanh( | angle1 - angle2 | / ( 10.+ 20.*exp(-( length1
+ length2 )/20.)) ) )^2 ,
speed_quality = 1. - ( tanh( | length1 - length2 | /
( 0.1*( length1 + length2 ) + 1.0 ) ) )^2 ,
vec_quality = 1. - ( tanh( |
length1 - length2 | / ( 0.1*( sqrt(length1^2 + length2^2) )
+ 1.0 ) ) )^2 ,
QI_quality = (vec_quality + dir_quality + speed_quality) / 3. .
These quality tests are adpated from (disregarding spatial and forecast tests) :
Validated output vectors are comprised of time-weight averaged validated vector pairs.
knot_units
Allows for output vectors' speed units selection from knots and meters
per second (m/s).
knot_units=no disables knot output units and selects the alternative m/s.
The default is knot_units=yes.
scale_factor
Scale factor for rescaling output vector magnitudes, to enhance displaying
of vectors. The default is scale_factor=1.0.
% cloudvec in/out files : char(255) ? g8.97140.0102.test g8.97140.0132.test g8.97140.0202.test g8.97140.xxxx.test variable : char(255) ? ch1_cloud box_size : int ( 2) ? [32 32] max_offset : int ( 2) ? [16 16] grid_space : int ( 2) ? [32 32]
check_range : char( 3) ? [no]
min_strength : real ? [2] 0
min_distance : real ? [0]
valid_length : real ? [20] 60
valid_angle : real ? [30] 50
valid_QI : real ? [0]
knot_units : char( 3) ? [yes]
occlude_levels : char( 3) ? [no] Reference box: 32 x 32 Searching box: 64 x 64 Maximum offset: 16.00 16.00 Nominal offset: 16.00 16.00 g8.97140.0102.test: loading ch1_cloud [300 x 200]... g8.97140.0132.test: loading ch1_cloud [300 x 200]... Reference boxes with line offset 16 Reference boxes with line offset 48 Reference boxes with line offset 80 Reference boxes with line offset 112 Reference boxes with line offset 144 g8.97140.0202.test: loading ch1_cloud [300 x 200]... Reference boxes with line offset 16 Reference boxes with line offset 48 Reference boxes with line offset 80 Reference boxes with line offset 112 Reference boxes with line offset 144 g8.97140.xxxx.test: saving 1 points ...
%
Last Update: $Date: 2000/11/20 19:02:03 $