reclassify - Image feature classification procedure

SYNOPSIS

reclassify  [ parameter=value ]  [ inputfile outputfile ]
reclassify  [ parameter=value ]  [ inputfile ... directory ]
Parameters are: input_clusters, out_varname, ref_file, similar_threshtarget_labels, target_classes, target_values_varn, target_deltas_varn,

DESCRIPTION

reclassify identifies and labels image features using image pixel cluster data generated when setting save_clusters=yes in function classify.

reclassify labels data clusters in a scene/image, thereby classifying image pixels associated with those clusters into classes. Clusters whose centers, or mean values, lie within a threshold distance of a user-specified "target feature" mean value are grouped and labeled, so that all image elements associated with targeted clusters (classes) can be tagged and masks highlighting target features can be generated. reclassify delivers an output product which consists of masks highlighting targeted image features/classes.

Classification of all image features requires running the procedure classify with parameter save_clusters=yes, which classifies image data into clusters that must satisfy cluster dimension (spacing and size) criteria and additionally saves cluster data in output variables cluster_means, cluster_stddev, cluster_min, cluster_max, cluster_datacount, cluster_index, imagedataclusters. These variables must be present in the input dataset for reclassify.

reclassify creates an output dataset with the output variable named as specified by the parameter output_classes. This variable of type byte contains a positive, nonzero integer value when the corresponding image pixel belongs to a target class, otherwise the value is set to badvalue (GP_BAD_BYTE). A valid positive integer value in the output variable is the 1-relative index to a corresponding class, for the sequence specified on the output_classes parameter field.

A ref_file is a dataset which is the output of a previous classify unsupervised classification, performed on the same or a similar multichannel image (same sensor, registration, dimensions, approx. time), and which contains trusted and reliable (reference) cluster data and labels for cross-referencing and labeling the candidate (input) cluster set. Cross-referencing is performed by utilizing covariance information to identify the most similar reference cluster for each input cluster. A similarity threshold is specified using the similar_thresh parameter, which defines the fraction of twice average standard deviations beyond which no reference and input cluster pairs will be considered. This is similar to the merge_tolerance parameter provided with the procedure classify for merging clusters. If no ref_file is specified, target_classes and target_labels must specify target class labels and the values for the classfication of input clusters.

target_classes is the parameter to specify target class labels and the sequence indexes for these target labels. Target classes are labeled by defining mean and delta values in the data variables utilized, thereby specifying neighborhoods wherein target classes are to be found. target_values_varn specify the expected values for classes corresponding to each target category. Actual class mean values will not exactly equal the target_values_varn values, so a neighborhood around these positions must also be defined with the target_deltas_varn parameter. target_deltas_varn define a tolerance range of values in each channel which the target classes are allowed to encompass. Any classes falling within these ranges of values are identified and labeled as belonging to the target class:
          target_values - target_deltas   <=   target class values   <=   target_values + target_deltas

PARAMETERS

input_clusters
OPTIONAL. input_clusters specifies the existing input variable name for the variable which contains the previously generated cluster-map. This variable also serves to established the dimensions of the reclassify output variable with the labeled data classes. The default is input_clusters=imagedataclusters.
outvar_name
Name of output byte variable. There is no default.
 
ref_file
Name of optional dataset containing reference clusters for labeling input dataset's clusters. When not specifying a reference dataset (default), target_classes, target_labels, target_values_varn, target_deltas_varn are required inputs for defining classes and labels; otherwise those target parameters are not required.
The default is ref_file="".
similar_thresh
If a reference cluster dataset is specified by ref_file, similar_thresh specifies a maximum dissimilarity tolerance when cross-labeling clusters. similar_thresh defines a fraction of twice the average standard deviations between reference cluster and input cluster pairs. Clusters dissimilar by differences greater than this fraction of twice their average standard deviations are not considered for cross-labeling.
The default is similar_thresh=10.
 
target_classes
target_classes specifies label names associated with each target category of data classes. Names are character strings, space delimited, with one name per class label. An attribute called <output_classes>_class_name is saved in the output dataset, containing this list of target class names. No default.
 
target_labels
If a reference cluster dataset is not specified by ref_file, target_labels is required to specify integer labels associated with each target category of data  classes. Values must be non-negative integer values, one value per class. Values may be repeated. target_labels values are those values used to label each class in the output variable specified by out_varname. An attribute called <out_varname>_label is saved in the output dataset, containing this list of target class labels.
The default is the zero-relative integer sequence indexing the specified target_classes.
 
target_values_varn
target_values_varn specifies expected target values for all target classes and for each of n input variables. This is facilitated by a loop over all input variables. Per input variable expected values for all targets are specified as an array of input real values.
No default.
target_deltas_varn
target_deltas_varn specifies expected target value ranges for all target classes and for each of n input variables. This is facilitated by a loop over all input variables. Per input variable expected value deltas for all targets are specified as an array of input real values.
No default.

EXAMPLES

This example labels image features for two class categories, using an image variable to guide generation of the output. Note that the cluster split-and-merge algorithm which dominates processing in procedure classify is not required in reclassify because complete cluster data is present in the input dataset. This is verified by the presence of variables cluster_means, cluster_stddev, cluster_min, cluster_max, cluster_datacount, cluster_index, imagedataclusters in a content list of the input dataset. Note also the addition of attributes var_names and *_class_names which list the image variables used for classification, and the class names associated with class labels in the output label maps.
 
% contents g8.97140.2115.class
printout : char( 3) ? [no]
Dimension Size Coord Scale Offset Variable
line 200 ? 1 0
sample 300 ? 1 0
clusterdim 390 ? 1 0
Attribute Type Units Value
projection long std_projection rectangular
et_affine double -0.333333 0 0 0.333333 100.5 150.5
satellite string12 goes-8
sensor long std_sensor gvissr
pass_date long std_date 97/05/20
start_time double std_time 21:08:56.38
time_adjust double std_time 00:00:00
: : : :
: : : :
: : : :
: : : :
: : : :
: : : :
: : : :
center_lat double std_latitude 47 0.00 N
center_lon double std_longitude 110 0.00 W
map_angle double radians 0
proj_param double std_latitude 0 0.00 N
cluster_nvars long 3
cluster_count long 130
var_names string1000 gvar_ch1 gvar_ch2 gvar_ch5
dataclusters_class_names string1000 class1 class2 class3
history byte
Variable Type Units
dataclusters long index
cluster_means double generic
cluster_stddev double generic
cluster_min double generic
cluster_max double generic
cluster_datacount long generic
cluster_index long generic
imagedataclusters long index
Variable Dimension Size
dataclusters line 200
dataclusters sample 300
cluster_means clusterdim 390
cluster_stddev clusterdim 390
cluster_min clusterdim 390
cluster_max clusterdim 390
cluster_datacount clusterdim 390
cluster_index clusterdim 390
imagedataclusters line 200
imagedataclusters sample 300
Variable BadValue ValidMin ValidMax Scale Offset
dataclusters -2.1475e+09 -2.1475e+09 2.1475e+09 1 0
cluster_means -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_stddev -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_min -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_max -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_datacount -2.1475e+09 -2.1475e+09 2.1475e+09 1 0
cluster_index -2.1475e+09 -2.1475e+09 2.1475e+09 1 0
imagedataclusters -2.1475e+09 -2.1475e+09 2.1475e+09 1 0


% reclassify
in/out files : char(255) ? g8.97140.2115.class g8.97140.2115.class
output_classes : char(255) ? dataclust2
target_classes : char(255) ? class4 class5
Initializing input data
Initializing output dataset
Initializing output variable
loading clusters info
targets for variable gvar_ch1:
target_values_var1 : real( 2) ? 20 40
target_deltas_var1 : real( 2) ? 10 10
targets for variable gvar_ch2:
target_values_var2 : real( 2) ? -5 5
target_deltas_var2 : real( 2) ? 30 30
targets for variable gvar_ch5:
target_values_var3 : real( 2) ? -5 -15
target_deltas_var3 : real( 2) ? 5 5
Total clusters counted while labeling = 130
******
g8.97140.2115.class: classification completed.


% contents g8.97140.2115.class
printout : char( 3) ? [no]
Contents of File: g8.97140.2115.class Page 1
Dimension Size Coord Scale Offset Variable
line 200 ? 1 0
sample 300 ? 1 0
clusterdim 390 ? 1 0
Attribute Type Units Value
projection long std_projection rectangular
et_affine double -0.333333 0 0 0.333333 100.5 150.5
satellite string12 goes-8
sensor long std_sensor gvissr
pass_date long std_date 97/05/20
start_time double std_time 21:08:56.38
time_adjust double std_time 00:00:00
: : : :
: : : :
: : : :
: : : :
: : : :
: : : :
: : : :
: : : :
center_lat double std_latitude 47 0.00 N
center_lon double std_longitude 110 0.00 W
map_angle double radians 0
proj_param double std_latitude 0 0.00 N
cluster_nvars long 3
cluster_count long 130
var_names string1000 gvar_ch1 gvar_ch2 gvar_ch5
dataclusters_class_names string1000 class1 class2 class3
dataclust2_class_names string1000 class4 class5
history byte
Variable Type Units
dataclusters long index
cluster_means double generic
cluster_stddev double generic
cluster_min double generic
cluster_max double generic
cluster_datacount long generic
cluster_index long generic
imagedataclusters long index
dataclust2 long index
Variable Dimension Size
dataclusters line 200
dataclusters sample 300
cluster_means clusterdim 390
cluster_stddev clusterdim 390
cluster_min clusterdim 390
cluster_max clusterdim 390
cluster_datacount clusterdim 390
cluster_index clusterdim 390
imagedataclusters line 200
imagedataclusters sample 300
dataclust2 line 200
dataclust2 sample 300
Variable BadValue ValidMin ValidMax Scale Offset
dataclusters -2.1475e+09 -2.1475e+09 2.1475e+09 1 0
cluster_means -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_stddev -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_min -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_max -3.4028e+38 -1.7977e+308 1.7977e+308 1 0
cluster_datacount -2.1475e+09 -2.1475e+09 2.1475e+09 1 0
cluster_index -2.1475e+09 -2.1475e+09 2.1475e+09 1 0
imagedataclusters -2.1475e+09 -2.1475e+09 2.1475e+09 1 0
dataclust2 -2.1475e+09 -2.1475e+09 2.1475e+09 1 0


%

SEE ALSO

classify,

NOTES


Last Update: $Date: 1999/09/10 21:09:49 $