root/MGET/Branches/Jason/PythonPackage/dist/TracOnlineDocumentation/Documentation/ArcGISReference/CoastWatchAVHRR.FindFrontsAsBinaryRaster.html @ 376

Revision 376, 79.4 KB (checked in by jjr8, 4 years ago)

Fixed/implemented:

* #332: SIR file conversion tools should use WGS-72 datum for Lambert projections, and NSIDC's datum for polar stereographic projections
* Bugs in the previous revision related to pre-install scripts.

If this passes additional testing, it will be merged with the Trunk and released as MGET 0.7a12.

Line 
1<?xml version="1.0" encoding="utf-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="81help.css?format=raw" /><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Cayula-Cornillon Fronts in CoastWatch Image as Binary Raster</title></head><body><table style="margin-top:-1em; margin-bottom:0; padding:0; margin-left:-1em"><tr><td style="background:white"><img width="875" height="70" alt="ArcToolbox banner" src="AHBanner_ArcToolbox.gif?format=raw" /></td></tr></table><h1>Cayula-Cornillon Fronts in CoastWatch Image as Binary Raster</h1><p></p><p>Finds fronts in a CoastWatch POES AVHRR image using the Cayula-Cornillon (1992) single-image edge detection algorithm and outputs them to a binary raster.</p><br /><p><h2><img width="11" height="11" border="0" src="sm_arrow_down.gif?format=raw" /> Command line syntax</h2></p><div Class="expand" id="id103137">CoastWatchAVHRRFindFrontsAsBinaryRaster_GeoEco &lt;imageFile&gt; &lt;variable&gt; &lt;outputFrontsFile&gt; {cloudMaskFile} {cloudVariable} {sunZenithFile} {sunZenithVariable} {useDayCloudTest1} {useDayCloudTest2} {useDayCloudTest3} {useDayCloudTest4} {useDayCloudTest5} {useDayCloudTest6} {useDayCloudTest7} {maskWhenDayCloudMaskExceeds} {useNightCloudTest1} {useNightCloudTest2} {useNightCloudTest3} {useNightCloudTest4} {useNightCloudTest5} {useNightCloudTest6} {useNightCloudTest7} {maskWhenNightCloudMaskExceeds} {minCloudyNeighbors} {medianFilterWindowSize} {histogramWindowSize} {histogramWindowStride} {minPropNonMaskedCells} {minPopProp} {minPopMeanDifference} {minTheta} {minSinglePopCohesion} {minGlobalPopCohesion} {threads} {outputMaskFile} {outputFilteredImageFile} {outputCandidateCountsFile} {outputFrontCountsFile} {outputWindowStatusCodesFile} {outputWindowStatusValuesFile} <br /><br /><b>Parameters</b><br /><table width="100%" border="0" cellpadding="5"><tbody><tr><th width="40%"><b>Expression</b></th><th width="60%"><b>Explanation</b></th></tr><tr><td class="info">&lt;imageFile&gt;</td><td class="info" align="left"><p>CoastWatch POES AVHRR CWF or HDF file in which fronts should be
4detected.</p><p>Only CoastWatch POES AVHRR files are supported. An error will be raise
5for other CoastWatch files, such as those for the GOES satellite
6series.</p><p>If you provide a compressed file in a supported compression format, it
7will be automatically decompressed. If it is an archive (e.g. .zip or
8.tar), it must contain exactly one file, which must not be in a
9subdirectory.</p></td></tr><tr><td class="info">&lt;variable&gt;</td><td class="info" align="left"><p>Name of the CoastWatch variable to in which fronts should be
10detected. At the time of this writing, the CoastWatch program was
11known to have published files with these variables:</p><dl><dt></dt><dd><pre>avhrr_ch1
12avhrr_ch2
13avhrr_ch3
14avhrr_ch3a
15avhrr_ch4
16avhrr_ch5
17cloud
18cloudx
19graphics
20sst
21rel_azimuth
22sat_zenith
23sun_zenith</pre></dd></dl><p>Almost all users will want to detect fronts in the sst variable, but
24you may specify one of the others, if appropriate for your project.
25Please see the CoastWatch documentation for more information about the
26variables.</p></td></tr><tr><td class="info">&lt;outputFrontsFile&gt;</td><td class="info" align="left"><p>Output binary raster that shows the fronts detected in the input
27image.</p><p>The file will have the same dimensions as the input image and contain
288-bit signed integers with three possible values:</p><ul><li><p>-128 - the pixel was never a candidate for containing a front,
29either because it was masked or because because it did not appear in
30any histogram windows that had sufficiently large numbers of
31non-masked pixels to proceed with the histogramming step of the
32Cayula-Cornillon algorithm.</p></li></ul><ul><li><p>0 - The pixel was a candidate for containing a front -- it was not
33masked and it appeared in at least one histogram window with a
34sufficient number of non-masked pixels to proceed with the
35histogramming step -- but it was never marked as a front pixel in
36any of the histogram windows it appeared in.</p></li></ul><ul><li><p>1 - The pixel was a candidate for containing a front and it was marked
37as a front pixel in at least one of the histogram windows it
38appeared in.</p></li></ul></td></tr><tr><td class="info">{cloudMaskFile}</td><td class="info" align="left"><p>CoastWatch POES AVHRR CWF or HDF file that contains the CoastWatch
39cloud mask.</p><p>A value need only be provided for this parameter when the cloud mask
40is not stored in the input CoastWatch file. This will usually be the
41case for CWF files, because they usually do not contain more than one
42CoastWatch variable per file. HDF files usually contain all of the
43variables, so you can usually omit this parameter for HDF files.</p><p>If you provide a compressed file in a supported compression format, it
44will be automatically decompressed. If it is an archive (e.g. .zip or
45.tar), it must contain exactly one file, which must not be in a
46subdirectory.</p></td></tr><tr><td class="info">{cloudVariable}</td><td class="info" align="left"><p>Name of the CoastWatch variable to extract from the cloud mask
47file and use as the cloud mask (e.g. "cloud").</p><p>The current implementation of this tool was designed to operate on the
488-bit CLAVR cloud mask represented by the "cloud" variable in
49CoastWatch files. It was not designed to operate on the "cloudx"
50variable, which is a new experimental CLAVR-x cloud mask available in
51recent CoastWatch HDF files. Nonetheless, if you wish to operate on
52the cloudx variable, you can specify it instead of cloud, and pick
53mask options appropriate for it instead.</p></td></tr><tr><td class="info">{sunZenithFile}</td><td class="info" align="left"><p>CoastWatch POES AVHRR CWF or HDF file that contains the solar
54zenith image, typically represented by the sun_zenith variable.</p><p>A value need only be provided for this parameter when the solar zenith
55is not stored in the input CoastWatch file. This will usually be the
56case for CWF files, because they usually do not contain more than one
57CoastWatch variable per file. HDF files usually contain all of the
58variables, so you can usually omit this parameter for HDF files.</p><p>If you provide a compressed file in a supported compression format, it
59will be automatically decompressed. If it is an archive (e.g. .zip or
60.tar), it must contain exactly one file, which must not be in a
61subdirectory.</p><p>According to CoastWatch researcher Peter Hollemans, when an image's
62scene time is "day", all pixels of the cloud mask use daytime cloud
63tests, and when it is "night", all pixels use nighttime cloud tests.
64When the scene time is "day/night", the decision of which tests to use
65is based on the solar zenith for that pixel.</p><p>According to Peter, for CoastWatch HDF files, pixels with a solar
66zenith &gt; 80 degrees use the nighttime cloud tests, and &lt;= 80 use the
67daytime cloud tests. This tool implements that logic. If you specify
68that cloud masking should be performed for a day/night image but no
69solar zenith image is available, this tool will assume that nighttime
70cloud tests were used for every pixel and a warning will be issued.
71For some reason, CoastWatch occasionally produces day/night images
72with no sun_zenith or other variables that are present in day images.
73My recollection is that Peter said it is safe to assume for these
74images that all pixels are nighttime.</p><p>The solar zenith image is ignored for scene times other than
75"day/night" (e.g. "day" or "night").</p><p>After some investigation, I find that the cloud mask pixels near the
7680 degree solar zenith line are problematic, for two reasons:</p><ul><li><p>According to Peter, the solar zenith &lt;= 80 cutoff line is not going
77to line up perfectly with the switch from daytime to nighttime cloud
78tests because the solar zenith angles are rounded to the nearest
790.01 when written to the HDF file so a few pixels with values of say
8080.003 will get rounded to 80 even though they underwent processing
81with the nighttime cloud tests. Peter said, "I guess that's the flaw
82with storing angle data in HDF as scaled integers (that decision was
83mainly due to file size concerns)."</p></li></ul><ul><li><p>The switch between daytime tests and nighttime tests does not
84manifest as a clean transition in the cloud mask pixels. The daytime
85pixels do not seem to cleanly abut the nighttime pixels. Rather, a
86strip of pixels with strange values raggedly separates the two.
87Peter said: "The apparent unclean transition between day and night
88tests is related to neighborhood functions.  The uniformity tests
89use a 2x2 box of data values to the right and below a given value in
90the array to check for a condition being true, and the results of
91the uniformity test flag all pixels in the 2x2 box with the test
92results, regardless of whether all those pixels are day or
93nighttime.  Both day and nighttime have uniformity tests, so the
94results of uniformity tests at the day/night boundary are mixed. The
95mixing is generally acceptable because the results are intended to
96be used for SST masking not cloud type evaluation and the mixing
97only occurs in cloudy conditions, not clear SST conditions."</p></li></ul><p>Peter said he did not know what was done for CoastWatch day/night CWF
98files. I examined a few of these from the North East region, and it
99appeared that they also switched from daytime to nighttime cloud tests
100in the middle of the image. But the NOAA distribution site
101(<a href="http://www.class.noaa.gov">http://www.class.noaa.gov</a>) only appeared to have CWFs containing the
102sun_zenith variable for dates after late 1999.</p><p>Peter mentioned that the cwangles program from the CoastWatch
103Utilities could compute the solar zenith, but the values would only be
104approximate beacuse the program assumed that all pixels were obtained
105by the sensor at the same moment in time. I tried this approach but
106the 80 degree solar zenith line did not line up with the line where
107the cloud tests appeared to switch. Because of this, I do not believe
108that day/night CWF files will be useable for users who want to use
109some cloud tests and ignore others.</p></td></tr><tr><td class="info">{sunZenithVariable}</td><td class="info" align="left"><p>Name of the CoastWatch variable to extract from the solar zenith
110file and use as the solar zenith image (e.g. "sun_zenith").</p></td></tr><tr><td class="info">{useDayCloudTest1}</td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Reflective Gross
111Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
112cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
113test is used for both CWF and HDF files, but for HDF files, the
114CLAVR-x thresholds are used instead of than of the CLAVR-1 thresholds.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
115how pixels are classified as daytime or nighttime, please see the
116documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
117value of 0 for a bit indicates that the cloud test passed, while 1
118indicates it failed. For more details about the cloud tests, please see the
119CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useDayCloudTest2}</td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Reflectance
120Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
121this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
122test is used for both CWF and HDF files, but for HDF files, the
123CLAVR-x thresholds are used instead of than of the CLAVR-1 thresholds.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
124how pixels are classified as daytime or nighttime, please see the
125documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
126value of 0 for a bit indicates that the cloud test passed, while 1
127indicates it failed. For more details about the cloud tests, please see the
128CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useDayCloudTest3}</td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Reflectance Ratio
129Cloud Test (bit 3 of the cloud mask) will be masked. If False, this
130cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
131test is used for both CWF and HDF files, but for HDF files, the
132CLAVR-x thresholds are used instead of than of the CLAVR-1 thresholds.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
133how pixels are classified as daytime or nighttime, please see the
134documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
135value of 0 for a bit indicates that the cloud test passed, while 1
136indicates it failed. For more details about the cloud tests, please see the
137CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useDayCloudTest4}</td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Channel 3 Albedo
138Test (bit 4 of the cloud mask) will be masked. If False, this cloud
139test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
140how pixels are classified as daytime or nighttime, please see the
141documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
142value of 0 for a bit indicates that the cloud test passed, while 1
143indicates it failed. For more details about the cloud tests, please see the
144CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useDayCloudTest5}</td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Thermal Uniformity
145Test (bit 5 of the cloud mask) will be masked. If False, this cloud
146test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
147how pixels are classified as daytime or nighttime, please see the
148documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
149value of 0 for a bit indicates that the cloud test passed, while 1
150indicates it failed. For more details about the cloud tests, please see the
151CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useDayCloudTest6}</td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Four Minus Five
152Test (bit 6 of the cloud mask) will be masked. If False, this cloud
153test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
154how pixels are classified as daytime or nighttime, please see the
155documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
156value of 0 for a bit indicates that the cloud test passed, while 1
157indicates it failed. For more details about the cloud tests, please see the
158CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useDayCloudTest7}</td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Thermal Gross
159Cloud Test (bit 7 of the cloud mask) will be masked. If False, this
160cloud test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
161how pixels are classified as daytime or nighttime, please see the
162documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
163value of 0 for a bit indicates that the cloud test passed, while 1
164indicates it failed. For more details about the cloud tests, please see the
165CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{maskWhenDayCloudMaskExceeds}</td><td class="info" align="left"><p>If a value is provided, daytime pixels with a cloud mask value
166greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
167success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
168mask values are NOT intended to be interpreted as range, like a
169spectrum, where 0 represents "very clear" and 255 represents "very
170cloudy". Nevertheless, some users of this tool determined that for
171their study the best tradeoff between minimizing SST error and
172minimizing the number of pixels masked by clouds was obtained by
173masking all pixels where the cloud mask exceeded a certain value. This
174option was implemented specifically for those users and is not
175recommended for general use. If you do use this option, be sure to
176study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
177bits specified by the previous parameters, all of these parameters
178will be effective. In other words, a cloudy pixel can be masked by
179failing a specific cloud test, or by exceeding the minimum cloud mask
180value, or both. .</p><p>This parameter is ignored for nighttime pixels. For a discussion of
181how pixels are classified as daytime or nighttime, please see the
182documentation for the cloud mask file parameter. For more information
183about the cloud tests, please see the CoastWatch and CLAVR
184documentation.</p></td></tr><tr><td class="info">{useNightCloudTest1}</td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Thermal Gross
185Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
186cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
187pixels are classified as daytime or nighttime, please see the
188documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
189value of 0 for a bit indicates that the cloud test passed, while 1
190indicates it failed. For more details about the cloud tests, please
191see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useNightCloudTest2}</td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Thermal
192Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
193this cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
194pixels are classified as daytime or nighttime, please see the
195documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
196value of 0 for a bit indicates that the cloud test passed, while 1
197indicates it failed. For more details about the cloud tests, please
198see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useNightCloudTest3}</td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Uniform Low
199Stratus Test (bit 3 of the cloud mask) will be masked. If False, this
200cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
201pixels are classified as daytime or nighttime, please see the
202documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
203value of 0 for a bit indicates that the cloud test passed, while 1
204indicates it failed. For more details about the cloud tests, please
205see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useNightCloudTest4}</td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Four Minus Five
206Test (bit 4 of the cloud mask) will be masked. If False, this cloud
207test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
208pixels are classified as daytime or nighttime, please see the
209documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
210value of 0 for a bit indicates that the cloud test passed, while 1
211indicates it failed. For more details about the cloud tests, please
212see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useNightCloudTest5}</td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Cirrus Test (bit
2135 of the cloud mask) will be masked. If False, this cloud test will be
214ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
215pixels are classified as daytime or nighttime, please see the
216documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
217value of 0 for a bit indicates that the cloud test passed, while 1
218indicates it failed. For more details about the cloud tests, please
219see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useNightCloudTest6}</td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-x Channel 3B
220Albedo Test (bit 6 of the cloud mask) will be masked. If False, this
221cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
222used for CoastWatch CWF files and thus bit 6 will always be 0,
223indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
224pixels are classified as daytime or nighttime, please see the
225documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
226value of 0 for a bit indicates that the cloud test passed, while 1
227indicates it failed. For more details about the cloud tests, please
228see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{useNightCloudTest7}</td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-x Channel 3B
229Albedo Uniformity Test (bit 7 of the cloud mask) will be masked. If
230False, this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
231used for CoastWatch CWF files and thus bit 7 will always be 0,
232indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
233pixels are classified as daytime or nighttime, please see the
234documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
235value of 0 for a bit indicates that the cloud test passed, while 1
236indicates it failed. For more details about the cloud tests, please
237see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">{maskWhenNightCloudMaskExceeds}</td><td class="info" align="left"><p>If a value is provided, nighttime pixels with a cloud mask value
238greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
239success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
240mask values are NOT intended to be interpreted as range, like a
241spectrum, where 0 represents "very clear" and 255 represents "very
242cloudy". Nevertheless, some users of this tool determined that for
243their study the best tradeoff between minimizing SST error and
244minimizing the number of pixels masked by clouds was obtained by
245masking all pixels where the cloud mask exceeded a certain value. This
246option was implemented specifically for those users and is not
247recommended for general use. If you do use this option, be sure to
248study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
249bits specified by the previous parameters, all of these parameters
250will be effective. In other words, a cloudy pixel can be masked by
251failing a specific cloud test, or by exceeding the minimum cloud mask
252value, or both. .</p><p>This parameter is ignored for daytime pixels. For a discussion of
253how pixels are classified as daytime or nighttime, please see the
254documentation for the cloud mask file parameter. For more information
255about the cloud tests, please see the CoastWatch and CLAVR
256documentation.</p></td></tr><tr><td class="info">{minCloudyNeighbors}</td><td class="info" align="left"><p>Minimum number of neighbors that a cloudy pixel must have in order
257for that pixel to be masked.</p><p>You can use this option to ignore isolated cloudy pixels that are not
258clumped together. For example, if you specify the value 1, cloudy
259pixels will be ignored and not used in the masking process unless at
260least one of their eight neighbors is also cloudy.</p><p>If a neighbor is not cloudy but it is masked for some other reason
261(e.g. it is land), it does not count as being cloudy.</p><p>This option is ignored when cloud masking is not performed.</p></td></tr><tr><td class="info">{medianFilterWindowSize}</td><td class="info" align="left"><p>Window size, in pixels, of the median filter to apply to the input
262image prior to running the histogram analysis step of the
263Cayula-Cornillon algorithm. If not provided, median filtering will not
264be performed.</p><p>If you provide a value, it must be an odd integer greater than or
265equal to 3. The filter window is square and advances across the image
2661 pixel at a time. The center pixel, if it is not masked, is replaced
267with the median value of the non-masked pixels in the surrounding
268window. All masks are applied before the median filter is executed.</p><p>Median filtering is a traditional first step for certain classes of
269edge detection algorithms. The original Cayula-Cornillon paper used a
270window size of 3.</p></td></tr><tr><td class="info">{histogramWindowSize}</td><td class="info" align="left"><p>Size of the histogram window to use for the Cayula-Cornillon
271algorithm.</p><p>The window is square. The original paper used a window size of 32.
272Although the algorithm is claimed to obtain similar results regardless
273of window size, I have noticed that some fronts may only be detected
274by using a smaller window size such as 16. I highly recommend you read
275the paper carefully before experimenting with different window
276sizes.</p></td></tr><tr><td class="info">{histogramWindowStride}</td><td class="info" align="left"><p>Number of pixels to move the histogram window after each iteration
277of the Cayula-Cornillon algorithm.</p><p>The original paper used a 32x32 window and a stride of 16, to minimize
278the CPU time required to execute the algorithm. Cutting the stride in
279half increases the CPU time by a factor of about four. For example, a
280stride of 1 requires about 256 times more CPU time than a stride of
28116.</p><p>In my experience, smaller stride values identify more fronts, and the
282resulting fronts are longer and thicker. If you have a powerful
283computer, want to find more fronts, and are comfortable deviating from
284the published method, you can use a smaller value. If you do this, you
285may want to apply a thinning algorithm after running this tool, to
286reduce the widths of the resulting fronts.</p></td></tr><tr><td class="info">{minPropNonMaskedCells}</td><td class="info" align="left"><p>Minimum proportion of pixels in a histogram window that must not
287be masked for the algorithm to proceed with histogram analysis on that
288window.</p><p>For example, if the value 0.75 is used and the histogram window is
28920x20, at least 300 out of the 400 pixels must not be masked for
290analysis to proceed on that window. If more than 100 pixels are
291masked, the algorithm discards the current window, advances to next
292one, and starts over.</p><p>The Fortran code I obtained from Dave Ullman used the value 0.65.</p></td></tr><tr><td class="info">{minPopProp}</td><td class="info" align="left"><p>Minimum proportional size of the smaller population.</p><p>If the histogram algorithm determines that the values of the
293non-masked pixels in the window have a bimodal distribution, it then
294selects the value that optimally separates them into two populations.
295As described on page 73 of the 1992 paper, if the proportion of
296non-masked pixels allocated to the smaller population is smaller than
2970.25, the subsequent statistical tests will not be accurate. In this
298case, and the algorithm discards the current window, advances to next
299one, and starts over.</p><p>I do not recommend selecting a value other than 0.25 unless you
300understand the statistical analysis presented in the 1992 paper.</p></td></tr><tr><td class="info">{minPopMeanDifference}</td><td class="info" align="left"><p>Minimum difference in population means.</p><p>After the histogram algorithm separates the non-masked pixels into two
301populations, it computes the means of the two populations. If the
302means differ by less than this parameter value, the algorithm discards
303the current window, advances to next one, and starts over.</p><p>The original intent of this parameter is obscure. The Fortran code I
304obtained from Dave Ullman used the value 3 and contained the
305explanation "a temperature difference of less than three digital
306counts between the 2 populations is likely to be a result of the
307discrete nature of the data."</p><p>You can use this parameter to eliminate weak fronts by selecting a
308value that corresponds to a desired minimum mean temperature
309difference. For example, the NOAA NODC 4km AVHRR Pathfinder Project
310(<a href="http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/">http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/</a>) publishes SST
311data as 16-bit unsigned integers where each integer represents 0.075
312degrees. To eliminate fronts where the mean temperature difference is
313less than 0.5 degrees, set this parameter to 0.5 / 0.075 =
3146.666667.</p></td></tr><tr><td class="info">{minTheta}</td><td class="info" align="left"><p>Minimum criterion function, theta(Topt), as described on pages
31571-72 of the 1992 paper.</p><p>The criterion function is used to determine whether the histogram
316window contains a bimodal distribution. Cayula and Cornillon performed
317an extensive analysis to determine that the value 0.76 produced
318optimal results for the SST data they worked with. Selecting a smaller
319value will allow windows with more homogenous, less bimodal
320distributions to be considered by the algorithm. If the window yields
321a value less than this parameter, the algorithm discards the current
322window, advances to next one, and starts over.</p><p>I do not recommend selecting a value other than 0.76 unless you
323understand the statistics presented in the original paper.</p></td></tr><tr><td class="info">{minSinglePopCohesion}</td><td class="info" align="left"><p>Minimum cohesion of a single population.</p><p>If the histogram window is found to have a sufficiently bimodal
324distribution of values, the cohesion algorithm is executed to check
325whether the pixels of the two populations are sufficiently spatially
326separated. High values indicate that they are separated, suggesting
327that two distinct populations (e.g. water masses) are present in the
328window. Low values indicate the populations are all mixed up, like a
329checkerboard, and suggest that the pattern results from clouds, noise
330or other random processes.</p><p>The first part of the cohesion algorithm checks the cohesion of each
331population by itself (equations 19 and 20 in the 1992 paper). As
332described in Appendix B of the 1992 paper, the optimal cohesion
333coefficients depend on the size of the histogram window. Cayula and
334Cornillon used the value 0.90 for a 32x32 window, which was
335calculated:</p><dl><dt></dt><dd><pre>C = 1.0 - 0.02 - 1/winsize - 2*P(error) = 0.98 - 1/32 - 2(0.025) = 0.90</pre></dd></dl><p>For a 16x16 window, the equation evaluates to 0.8675.</p></td></tr><tr><td class="info">{minGlobalPopCohesion}</td><td class="info" align="left"><p>Minimum cohesion of both populations.</p><p>The second part of the cohesion algorithm checks the cohesion of both
336populations together (equation 21 in the 1992 paper). As described in
337Appendix B of the 1992 paper, the optimal cohesion coefficients depend
338on the size of the histogram window. Cayula and Cornillon used the
339value 0.92 for a 32x32 window, which was calculated:</p><dl><dt></dt><dd><pre>C = 1.0 - 1/winsize - 2*P(error) = 1.0 - 1/32 - 2(0.025) = 0.92</pre></dd></dl><p>For a 16x16 window, the equation evaluates to 0.8875.</p></td></tr><tr><td class="info">{threads}</td><td class="info" align="left"><p>Number of threads to start for parallel processing.</p><p>The histogram and cohesion algorithms are CPU intensive but are
340designed to run in parallel on machines that have multiple processors.
341To maximize utilization of your machine's processors and shorten the
342time required to execute the algorithms, set the number of threads to
343the number of processors you wish to utilize. Do not set the number of
344threads to more than the number of processors you have; this will
345reduce performance.</p><p>For this option to have any effect, your version of Python must
346include the threading module. Most recent versions of Python include
347this module.</p></td></tr><tr><td class="info">{outputMaskFile}</td><td class="info" align="left"><p>Output binary raster that shows the pixels of the input image that
348were masked prior to executing the Cayula-Cornillon algorithm.</p><p>The file will have the same dimensions as the input image and contain
3498-bit unsigned integers. The value 1 indicates that the corresponding
350pixel of the input image was masked; 0 indicates the pixel was not
351masked.</p></td></tr><tr><td class="info">{outputFilteredImageFile}</td><td class="info" align="left"><p>Output binary raster that shows the median-filtered input image.</p><p>The file will have the same data type and dimensions as the input
352image. Non-masked pixels will have the median value of the non-masked
353pixels in the surrounding window (the center pixel is included in the
354median selection). Masked pixels will be marked with the smallest
355possible value for the pixel data type. For example, if the pixel data
356type is 16-bit signed integer, the masked pixels will be marked with
357the value -32768.</p></td></tr><tr><td class="info">{outputCandidateCountsFile}</td><td class="info" align="left"><p>Output binary raster that indicates how many times the
358corresponding pixel of the input image was a candidate for containing
359a front, i.e. the number of times it appeared in a histogram window
360that had a sufficiently large number of non-masked pixels to proceed
361to the histogram algorithm.</p><p>The file will contain 16-bit signed integers and have the same
362dimensions as the input image. If the histogram window stride is less
363than the window size, successive histogram windows will overlap, and
364many pixels will have candidate counts greater than 1. Masked pixels
365can never be candidates for containing a front and will have the value
366-32768.</p></td></tr><tr><td class="info">{outputFrontCountsFile}</td><td class="info" align="left"><p>Output binary raster that indicates how many times a front was
367detected at the corresponding pixel of the input image.</p><p>The file will contain 16-bit signed integers and have the same
368dimensions as the input image. The value will range from 0 (the input
369image pixel never contained a front) to the candidate count value for
370the pixel (it always contained a front in every histogram window that
371contained it). Masked pixels can never be candidates for containing a
372front and will have the value -32768.</p></td></tr><tr><td class="info">{outputWindowStatusCodesFile}</td><td class="info" align="left"><p>Output binary raster that indicates the result of the algorithm
373for the histogram window centered on the pixel. You can use this image
374to diagnose why the algorithm did not find fronts in a particular
375region of your image.</p><p>The file will contain 8-bit signed integers and have the same
376dimensions as the input image. The pixel values will be one of these
377code numbers:</p><ul><li><p>Code 0 - The algorithm was not executed for the window because the
378histogram window stride was greater than 1, causing the algorithm to
379skip over this window.</p></li></ul><ul><li><p>Code 1 - The proportion of the window's pixels that had data was
380found to be too small. This typically occurs when the window occurs
381in a region where many of the pixels are masked due to land, clouds,
382or insufficient satellite coverage.</p></li></ul><ul><li><p>Code 2 - After the histogram algorithm optimally separated the
383window's pixels into two populations, the proportion of pixels
384allocated to the smaller population was found to be too small. This
385can occur when a front occurs in the window, but the window is not
386centered on the front, causing it to contain a disproportionate
387number of pixels from one population. This is usually not a problem.
388As long as the histogram window stride is sufficiently small, the
389histogram window will eventually pass over the front and proceed to
390the next step of the algorithm.</p></li></ul><ul><li><p>Code 3 - After the histogram algorithm optimally separated the
391window's pixels into two populations, the difference between the
392mean values of the two populations was found to be too small. This
393typically happens when the window does not contain a front or when
394the gradient along the front is small (i.e. it is a weak front).</p></li></ul><ul><li><p>Code 4 - After the histogram algorithm optimally separated the
395window's pixels into two populations, the criterion function that
396was calculated was found to be too small (the criterion function is
397theta(Topt) described on pages 71-72 of the 1992 paper). This means
398that the two populations are not sufficiently bimodal to indicate
399that a front exists in the window.</p></li></ul><ul><li><p>Code 5 - The window was found to have two populations that were
400sufficiently proportional, different in their means, and bimodal,
401but the cohesion of one or the other population was insufficient (as
402described by equations 19 and 20 in the 1992 paper). This indicates
403that the cells of the two populations are spatially intermixed like
404a checkerboard, rather than being spatially separate, as occurs when
405a front is present.</p></li></ul><ul><li><p>Code 6 - The window was found to have two populations that were
406sufficiently proportional, different in their means, and bimodal,
407and each population was found to be sufficiently cohesive, but the
408cohesion of the two populations together was insufficient (as
409described by equation 21 of the 1992 paper). As with code 5, this
410indicates that the cells of the two populations are spatially
411intermixed like a checkerboard, rather than being spatially
412separate, as occurs when a front is present.</p></li></ul><ul><li><p>Code 7 - The window passed all of the algorithm's tests and was
413classified as containing a front.</p></li></ul><p>When the width and height of histogram window is an even number, the
414center pixel is the one to the lower right of the exact center of the
415window, which falls at the intersection of four pixels. For example,
416in a 6x6 window, the center pixel is the fourth from the left and
417fourth from the top.</p></td></tr><tr><td class="info">{outputWindowStatusValuesFile}</td><td class="info" align="left"><p>Output binary raster to be used in conjunction with the window
418status codes when diagnosing the results of the algorithm.</p><p>The file will contain 32-bit floating point numbers and have the same
419dimensions as the input image. The value of each pixel depends on the
420window status code for that pixel:</p><ul><li><p>Codes 0, 1, 7 - The pixel value is always 0.0.</p></li></ul><ul><li><p>Code 2 - The pixel value is the proportion of the window's pixels
421that were allocated to the smaller population.</p></li></ul><ul><li><p>Code 3 - The pixel value is the difference in the mean values of
422the window's two populations.</p></li></ul><ul><li><p>Code 4 - The pixel value is the criterion function that was
423calculated for the window.</p></li></ul><ul><li><p>Code 5 - The pixel value is the cohesion of the window's population
424that was found to be insufficiently cohesive. If both populations
425were insufficiently cohesive, it is the cohesion of the "cold"
426population.</p></li></ul><ul><li><p>Code 6 - The pixel value is the cohesion of the window's two
427populations together.</p></li></ul><p>By examining the pixel values, you can determine how to adjust the
428algorithm's parameters to cause more or fewer windows to pass the
429algorithm's tests, increasing or decreasing the number of fronts
430identified in the image. You should only adjust the parameters if you
431feel comfortable deviating from their published values.</p></td></tr></tbody></table></div><p><h2><img width="11" height="11" border="0" src="sm_arrow_down.gif?format=raw" /> Scripting syntax</h2></p><div Class="expand" id="TEST">CoastWatchAVHRRFindFrontsAsBinaryRaster_GeoEco (imageFile, variable, outputFrontsFile, cloudMaskFile, cloudVariable, sunZenithFile, sunZenithVariable, useDayCloudTest1, useDayCloudTest2, useDayCloudTest3, useDayCloudTest4, useDayCloudTest5, useDayCloudTest6, useDayCloudTest7, maskWhenDayCloudMaskExceeds, useNightCloudTest1, useNightCloudTest2, useNightCloudTest3, useNightCloudTest4, useNightCloudTest5, useNightCloudTest6, useNightCloudTest7, maskWhenNightCloudMaskExceeds, minCloudyNeighbors, medianFilterWindowSize, histogramWindowSize, histogramWindowStride, minPropNonMaskedCells, minPopProp, minPopMeanDifference, minTheta, minSinglePopCohesion, minGlobalPopCohesion, threads, outputMaskFile, outputFilteredImageFile, outputCandidateCountsFile, outputFrontCountsFile, outputWindowStatusCodesFile, outputWindowStatusValuesFile) <br /><br /><b>Parameters</b><br /><table width="100%" border="0" cellpadding="5"><tbody><tr><th width="40%"><b>Expression</b></th><th width="60%"><b>Explanation</b></th></tr><tr><td class="info">CoastWatch file (Required) </td><td class="info" align="left"><p>CoastWatch POES AVHRR CWF or HDF file in which fronts should be
432detected.</p><p>Only CoastWatch POES AVHRR files are supported. An error will be raise
433for other CoastWatch files, such as those for the GOES satellite
434series.</p><p>If you provide a compressed file in a supported compression format, it
435will be automatically decompressed. If it is an archive (e.g. .zip or
436.tar), it must contain exactly one file, which must not be in a
437subdirectory.</p></td></tr><tr><td class="info">Variable (Required) </td><td class="info" align="left"><p>Name of the CoastWatch variable to in which fronts should be
438detected. At the time of this writing, the CoastWatch program was
439known to have published files with these variables:</p><dl><dt></dt><dd><pre>avhrr_ch1
440avhrr_ch2
441avhrr_ch3
442avhrr_ch3a
443avhrr_ch4
444avhrr_ch5
445cloud
446cloudx
447graphics
448sst
449rel_azimuth
450sat_zenith
451sun_zenith</pre></dd></dl><p>Almost all users will want to detect fronts in the sst variable, but
452you may specify one of the others, if appropriate for your project.
453Please see the CoastWatch documentation for more information about the
454variables.</p></td></tr><tr><td class="info">Output fronts image (Required) </td><td class="info" align="left"><p>Output binary raster that shows the fronts detected in the input
455image.</p><p>The file will have the same dimensions as the input image and contain
4568-bit signed integers with three possible values:</p><ul><li><p>-128 - the pixel was never a candidate for containing a front,
457either because it was masked or because because it did not appear in
458any histogram windows that had sufficiently large numbers of
459non-masked pixels to proceed with the histogramming step of the
460Cayula-Cornillon algorithm.</p></li></ul><ul><li><p>0 - The pixel was a candidate for containing a front -- it was not
461masked and it appeared in at least one histogram window with a
462sufficient number of non-masked pixels to proceed with the
463histogramming step -- but it was never marked as a front pixel in
464any of the histogram windows it appeared in.</p></li></ul><ul><li><p>1 - The pixel was a candidate for containing a front and it was marked
465as a front pixel in at least one of the histogram windows it
466appeared in.</p></li></ul></td></tr><tr><td class="info">CoastWatch cloud mask file (Optional) </td><td class="info" align="left"><p>CoastWatch POES AVHRR CWF or HDF file that contains the CoastWatch
467cloud mask.</p><p>A value need only be provided for this parameter when the cloud mask
468is not stored in the input CoastWatch file. This will usually be the
469case for CWF files, because they usually do not contain more than one
470CoastWatch variable per file. HDF files usually contain all of the
471variables, so you can usually omit this parameter for HDF files.</p><p>If you provide a compressed file in a supported compression format, it
472will be automatically decompressed. If it is an archive (e.g. .zip or
473.tar), it must contain exactly one file, which must not be in a
474subdirectory.</p></td></tr><tr><td class="info">Cloud mask variable (Optional) </td><td class="info" align="left"><p>Name of the CoastWatch variable to extract from the cloud mask
475file and use as the cloud mask (e.g. "cloud").</p><p>The current implementation of this tool was designed to operate on the
4768-bit CLAVR cloud mask represented by the "cloud" variable in
477CoastWatch files. It was not designed to operate on the "cloudx"
478variable, which is a new experimental CLAVR-x cloud mask available in
479recent CoastWatch HDF files. Nonetheless, if you wish to operate on
480the cloudx variable, you can specify it instead of cloud, and pick
481mask options appropriate for it instead.</p></td></tr><tr><td class="info">CoastWatch solar zenith file (Optional) </td><td class="info" align="left"><p>CoastWatch POES AVHRR CWF or HDF file that contains the solar
482zenith image, typically represented by the sun_zenith variable.</p><p>A value need only be provided for this parameter when the solar zenith
483is not stored in the input CoastWatch file. This will usually be the
484case for CWF files, because they usually do not contain more than one
485CoastWatch variable per file. HDF files usually contain all of the
486variables, so you can usually omit this parameter for HDF files.</p><p>If you provide a compressed file in a supported compression format, it
487will be automatically decompressed. If it is an archive (e.g. .zip or
488.tar), it must contain exactly one file, which must not be in a
489subdirectory.</p><p>According to CoastWatch researcher Peter Hollemans, when an image's
490scene time is "day", all pixels of the cloud mask use daytime cloud
491tests, and when it is "night", all pixels use nighttime cloud tests.
492When the scene time is "day/night", the decision of which tests to use
493is based on the solar zenith for that pixel.</p><p>According to Peter, for CoastWatch HDF files, pixels with a solar
494zenith &gt; 80 degrees use the nighttime cloud tests, and &lt;= 80 use the
495daytime cloud tests. This tool implements that logic. If you specify
496that cloud masking should be performed for a day/night image but no
497solar zenith image is available, this tool will assume that nighttime
498cloud tests were used for every pixel and a warning will be issued.
499For some reason, CoastWatch occasionally produces day/night images
500with no sun_zenith or other variables that are present in day images.
501My recollection is that Peter said it is safe to assume for these
502images that all pixels are nighttime.</p><p>The solar zenith image is ignored for scene times other than
503"day/night" (e.g. "day" or "night").</p><p>After some investigation, I find that the cloud mask pixels near the
50480 degree solar zenith line are problematic, for two reasons:</p><ul><li><p>According to Peter, the solar zenith &lt;= 80 cutoff line is not going
505to line up perfectly with the switch from daytime to nighttime cloud
506tests because the solar zenith angles are rounded to the nearest
5070.01 when written to the HDF file so a few pixels with values of say
50880.003 will get rounded to 80 even though they underwent processing
509with the nighttime cloud tests. Peter said, "I guess that's the flaw
510with storing angle data in HDF as scaled integers (that decision was
511mainly due to file size concerns)."</p></li></ul><ul><li><p>The switch between daytime tests and nighttime tests does not
512manifest as a clean transition in the cloud mask pixels. The daytime
513pixels do not seem to cleanly abut the nighttime pixels. Rather, a
514strip of pixels with strange values raggedly separates the two.
515Peter said: "The apparent unclean transition between day and night
516tests is related to neighborhood functions.  The uniformity tests
517use a 2x2 box of data values to the right and below a given value in
518the array to check for a condition being true, and the results of
519the uniformity test flag all pixels in the 2x2 box with the test
520results, regardless of whether all those pixels are day or
521nighttime.  Both day and nighttime have uniformity tests, so the
522results of uniformity tests at the day/night boundary are mixed. The
523mixing is generally acceptable because the results are intended to
524be used for SST masking not cloud type evaluation and the mixing
525only occurs in cloudy conditions, not clear SST conditions."</p></li></ul><p>Peter said he did not know what was done for CoastWatch day/night CWF
526files. I examined a few of these from the North East region, and it
527appeared that they also switched from daytime to nighttime cloud tests
528in the middle of the image. But the NOAA distribution site
529(<a href="http://www.class.noaa.gov">http://www.class.noaa.gov</a>) only appeared to have CWFs containing the
530sun_zenith variable for dates after late 1999.</p><p>Peter mentioned that the cwangles program from the CoastWatch
531Utilities could compute the solar zenith, but the values would only be
532approximate beacuse the program assumed that all pixels were obtained
533by the sensor at the same moment in time. I tried this approach but
534the 80 degree solar zenith line did not line up with the line where
535the cloud tests appeared to switch. Because of this, I do not believe
536that day/night CWF files will be useable for users who want to use
537some cloud tests and ignore others.</p></td></tr><tr><td class="info">Solar zenith variable (Optional) </td><td class="info" align="left"><p>Name of the CoastWatch variable to extract from the solar zenith
538file and use as the solar zenith image (e.g. "sun_zenith").</p></td></tr><tr><td class="info">Use daytime Reflective Gross Cloud Test (bit 1) (Optional) </td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Reflective Gross
539Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
540cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
541test is used for both CWF and HDF files, but for HDF files, the
542CLAVR-x thresholds are used instead of than of the CLAVR-1 thresholds.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
543how pixels are classified as daytime or nighttime, please see the
544documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
545value of 0 for a bit indicates that the cloud test passed, while 1
546indicates it failed. For more details about the cloud tests, please see the
547CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use daytime Reflectance Uniformity Test (bit 2) (Optional) </td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Reflectance
548Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
549this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
550test is used for both CWF and HDF files, but for HDF files, the
551CLAVR-x thresholds are used instead of than of the CLAVR-1 thresholds.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
552how pixels are classified as daytime or nighttime, please see the
553documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
554value of 0 for a bit indicates that the cloud test passed, while 1
555indicates it failed. For more details about the cloud tests, please see the
556CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use daytime Reflectance Ratio Cloud Test (bit 3) (Optional) </td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Reflectance Ratio
557Cloud Test (bit 3 of the cloud mask) will be masked. If False, this
558cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
559test is used for both CWF and HDF files, but for HDF files, the
560CLAVR-x thresholds are used instead of than of the CLAVR-1 thresholds.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
561how pixels are classified as daytime or nighttime, please see the
562documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
563value of 0 for a bit indicates that the cloud test passed, while 1
564indicates it failed. For more details about the cloud tests, please see the
565CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use daytime Channel 3 Albedo Test (bit 4) (Optional) </td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Channel 3 Albedo
566Test (bit 4 of the cloud mask) will be masked. If False, this cloud
567test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
568how pixels are classified as daytime or nighttime, please see the
569documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
570value of 0 for a bit indicates that the cloud test passed, while 1
571indicates it failed. For more details about the cloud tests, please see the
572CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use daytime Thermal Uniformity Test (bit 5) (Optional) </td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Thermal Uniformity
573Test (bit 5 of the cloud mask) will be masked. If False, this cloud
574test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
575how pixels are classified as daytime or nighttime, please see the
576documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
577value of 0 for a bit indicates that the cloud test passed, while 1
578indicates it failed. For more details about the cloud tests, please see the
579CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use daytime Four Minus Five Test (bit 6) (Optional) </td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Four Minus Five
580Test (bit 6 of the cloud mask) will be masked. If False, this cloud
581test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
582how pixels are classified as daytime or nighttime, please see the
583documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
584value of 0 for a bit indicates that the cloud test passed, while 1
585indicates it failed. For more details about the cloud tests, please see the
586CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use daytime Thermal Gross Cloud Test (bit 7) (Optional) </td><td class="info" align="left"><p>If True, daytime pixels that failed the CLAVR-1 Thermal Gross
587Cloud Test (bit 7 of the cloud mask) will be masked. If False, this
588cloud test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
589how pixels are classified as daytime or nighttime, please see the
590documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
591value of 0 for a bit indicates that the cloud test passed, while 1
592indicates it failed. For more details about the cloud tests, please see the
593CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Mask when daytime cloud mask exceeds value (Optional) </td><td class="info" align="left"><p>If a value is provided, daytime pixels with a cloud mask value
594greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
595success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
596mask values are NOT intended to be interpreted as range, like a
597spectrum, where 0 represents "very clear" and 255 represents "very
598cloudy". Nevertheless, some users of this tool determined that for
599their study the best tradeoff between minimizing SST error and
600minimizing the number of pixels masked by clouds was obtained by
601masking all pixels where the cloud mask exceeded a certain value. This
602option was implemented specifically for those users and is not
603recommended for general use. If you do use this option, be sure to
604study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
605bits specified by the previous parameters, all of these parameters
606will be effective. In other words, a cloudy pixel can be masked by
607failing a specific cloud test, or by exceeding the minimum cloud mask
608value, or both. .</p><p>This parameter is ignored for nighttime pixels. For a discussion of
609how pixels are classified as daytime or nighttime, please see the
610documentation for the cloud mask file parameter. For more information
611about the cloud tests, please see the CoastWatch and CLAVR
612documentation.</p></td></tr><tr><td class="info">Use nighttime Thermal Gross Cloud Test (bit 1) (Optional) </td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Thermal Gross
613Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
614cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
615pixels are classified as daytime or nighttime, please see the
616documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
617value of 0 for a bit indicates that the cloud test passed, while 1
618indicates it failed. For more details about the cloud tests, please
619see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use nighttime Thermal Uniformity Test (bit 2) (Optional) </td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Thermal
620Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
621this cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
622pixels are classified as daytime or nighttime, please see the
623documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
624value of 0 for a bit indicates that the cloud test passed, while 1
625indicates it failed. For more details about the cloud tests, please
626see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use nighttime Uniform Low Stratus Test (bit 3) (Optional) </td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Uniform Low
627Stratus Test (bit 3 of the cloud mask) will be masked. If False, this
628cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
629pixels are classified as daytime or nighttime, please see the
630documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
631value of 0 for a bit indicates that the cloud test passed, while 1
632indicates it failed. For more details about the cloud tests, please
633see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use nighttime Four Minus Five Test (bit 4) (Optional) </td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Four Minus Five
634Test (bit 4 of the cloud mask) will be masked. If False, this cloud
635test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
636pixels are classified as daytime or nighttime, please see the
637documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
638value of 0 for a bit indicates that the cloud test passed, while 1
639indicates it failed. For more details about the cloud tests, please
640see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use nighttime Cirrus Test (bit 5) (Optional) </td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-1 Cirrus Test (bit
6415 of the cloud mask) will be masked. If False, this cloud test will be
642ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
643pixels are classified as daytime or nighttime, please see the
644documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
645value of 0 for a bit indicates that the cloud test passed, while 1
646indicates it failed. For more details about the cloud tests, please
647see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use nighttime Channel 3B Albedo Test (bit 6) (Optional) </td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-x Channel 3B
648Albedo Test (bit 6 of the cloud mask) will be masked. If False, this
649cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
650used for CoastWatch CWF files and thus bit 6 will always be 0,
651indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
652pixels are classified as daytime or nighttime, please see the
653documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
654value of 0 for a bit indicates that the cloud test passed, while 1
655indicates it failed. For more details about the cloud tests, please
656see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Use nighttime Channel 3B Albedo Uniformity Test (bit 7) (Optional) </td><td class="info" align="left"><p>If True, nighttime pixels that failed the CLAVR-x Channel 3B
657Albedo Uniformity Test (bit 7 of the cloud mask) will be masked. If
658False, this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
659used for CoastWatch CWF files and thus bit 7 will always be 0,
660indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
661pixels are classified as daytime or nighttime, please see the
662documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
663value of 0 for a bit indicates that the cloud test passed, while 1
664indicates it failed. For more details about the cloud tests, please
665see the CoastWatch and CLAVR documentation.</p></td></tr><tr><td class="info">Mask when nighttime cloud mask exceeds value (Optional) </td><td class="info" align="left"><p>If a value is provided, nighttime pixels with a cloud mask value
666greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
667success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
668mask values are NOT intended to be interpreted as range, like a
669spectrum, where 0 represents "very clear" and 255 represents "very
670cloudy". Nevertheless, some users of this tool determined that for
671their study the best tradeoff between minimizing SST error and
672minimizing the number of pixels masked by clouds was obtained by
673masking all pixels where the cloud mask exceeded a certain value. This
674option was implemented specifically for those users and is not
675recommended for general use. If you do use this option, be sure to
676study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
677bits specified by the previous parameters, all of these parameters
678will be effective. In other words, a cloudy pixel can be masked by
679failing a specific cloud test, or by exceeding the minimum cloud mask
680value, or both. .</p><p>This parameter is ignored for daytime pixels. For a discussion of
681how pixels are classified as daytime or nighttime, please see the
682documentation for the cloud mask file parameter. For more information
683about the cloud tests, please see the CoastWatch and CLAVR
684documentation.</p></td></tr><tr><td class="info">Minimum number of cloudy neighbors (Optional) </td><td class="info" align="left"><p>Minimum number of neighbors that a cloudy pixel must have in order
685for that pixel to be masked.</p><p>You can use this option to ignore isolated cloudy pixels that are not
686clumped together. For example, if you specify the value 1, cloudy
687pixels will be ignored and not used in the masking process unless at
688least one of their eight neighbors is also cloudy.</p><p>If a neighbor is not cloudy but it is masked for some other reason
689(e.g. it is land), it does not count as being cloudy.</p><p>This option is ignored when cloud masking is not performed.</p></td></tr><tr><td class="info">Median filter window size (Optional) </td><td class="info" align="left"><p>Window size, in pixels, of the median filter to apply to the input
690image prior to running the histogram analysis step of the
691Cayula-Cornillon algorithm. If not provided, median filtering will not
692be performed.</p><p>If you provide a value, it must be an odd integer greater than or
693equal to 3. The filter window is square and advances across the image
6941 pixel at a time. The center pixel, if it is not masked, is replaced
695with the median value of the non-masked pixels in the surrounding
696window. All masks are applied before the median filter is executed.</p><p>Median filtering is a traditional first step for certain classes of
697edge detection algorithms. The original Cayula-Cornillon paper used a
698window size of 3.</p></td></tr><tr><td class="info">Histogram window size (Optional) </td><td class="info" align="left"><p>Size of the histogram window to use for the Cayula-Cornillon
699algorithm.</p><p>The window is square. The original paper used a window size of 32.
700Although the algorithm is claimed to obtain similar results regardless
701of window size, I have noticed that some fronts may only be detected
702by using a smaller window size such as 16. I highly recommend you read
703the paper carefully before experimenting with different window
704sizes.</p></td></tr><tr><td class="info">Histogram window stride (Optional) </td><td class="info" align="left"><p>Number of pixels to move the histogram window after each iteration
705of the Cayula-Cornillon algorithm.</p><p>The original paper used a 32x32 window and a stride of 16, to minimize
706the CPU time required to execute the algorithm. Cutting the stride in
707half increases the CPU time by a factor of about four. For example, a
708stride of 1 requires about 256 times more CPU time than a stride of
70916.</p><p>In my experience, smaller stride values identify more fronts, and the
710resulting fronts are longer and thicker. If you have a powerful
711computer, want to find more fronts, and are comfortable deviating from
712the published method, you can use a smaller value. If you do this, you
713may want to apply a thinning algorithm after running this tool, to
714reduce the widths of the resulting fronts.</p></td></tr><tr><td class="info">Minimum proportion of non-masked pixels (Optional) </td><td class="info" align="left"><p>Minimum proportion of pixels in a histogram window that must not
715be masked for the algorithm to proceed with histogram analysis on that
716window.</p><p>For example, if the value 0.75 is used and the histogram window is
71720x20, at least 300 out of the 400 pixels must not be masked for
718analysis to proceed on that window. If more than 100 pixels are
719masked, the algorithm discards the current window, advances to next
720one, and starts over.</p><p>The Fortran code I obtained from Dave Ullman used the value 0.65.</p></td></tr><tr><td class="info">Minimum proportion of smaller population (Optional) </td><td class="info" align="left"><p>Minimum proportional size of the smaller population.</p><p>If the histogram algorithm determines that the values of the
721non-masked pixels in the window have a bimodal distribution, it then
722selects the value that optimally separates them into two populations.
723As described on page 73 of the 1992 paper, if the proportion of
724non-masked pixels allocated to the smaller population is smaller than
7250.25, the subsequent statistical tests will not be accurate. In this
726case, and the algorithm discards the current window, advances to next
727one, and starts over.</p><p>I do not recommend selecting a value other than 0.25 unless you
728understand the statistical analysis presented in the 1992 paper.</p></td></tr><tr><td class="info">Minimum population mean difference (Optional) </td><td class="info" align="left"><p>Minimum difference in population means.</p><p>After the histogram algorithm separates the non-masked pixels into two
729populations, it computes the means of the two populations. If the
730means differ by less than this parameter value, the algorithm discards
731the current window, advances to next one, and starts over.</p><p>The original intent of this parameter is obscure. The Fortran code I
732obtained from Dave Ullman used the value 3 and contained the
733explanation "a temperature difference of less than three digital
734counts between the 2 populations is likely to be a result of the
735discrete nature of the data."</p><p>You can use this parameter to eliminate weak fronts by selecting a
736value that corresponds to a desired minimum mean temperature
737difference. For example, the NOAA NODC 4km AVHRR Pathfinder Project
738(<a href="http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/">http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/</a>) publishes SST
739data as 16-bit unsigned integers where each integer represents 0.075
740degrees. To eliminate fronts where the mean temperature difference is
741less than 0.5 degrees, set this parameter to 0.5 / 0.075 =
7426.666667.</p></td></tr><tr><td class="info">Minimum value for criterion function (Optional) </td><td class="info" align="left"><p>Minimum criterion function, theta(Topt), as described on pages
74371-72 of the 1992 paper.</p><p>The criterion function is used to determine whether the histogram
744window contains a bimodal distribution. Cayula and Cornillon performed
745an extensive analysis to determine that the value 0.76 produced
746optimal results for the SST data they worked with. Selecting a smaller
747value will allow windows with more homogenous, less bimodal
748distributions to be considered by the algorithm. If the window yields
749a value less than this parameter, the algorithm discards the current
750window, advances to next one, and starts over.</p><p>I do not recommend selecting a value other than 0.76 unless you
751understand the statistics presented in the original paper.</p></td></tr><tr><td class="info">Minimum single-population cohesion (Optional) </td><td class="info" align="left"><p>Minimum cohesion of a single population.</p><p>If the histogram window is found to have a sufficiently bimodal
752distribution of values, the cohesion algorithm is executed to check
753whether the pixels of the two populations are sufficiently spatially
754separated. High values indicate that they are separated, suggesting
755that two distinct populations (e.g. water masses) are present in the
756window. Low values indicate the populations are all mixed up, like a
757checkerboard, and suggest that the pattern results from clouds, noise
758or other random processes.</p><p>The first part of the cohesion algorithm checks the cohesion of each
759population by itself (equations 19 and 20 in the 1992 paper). As
760described in Appendix B of the 1992 paper, the optimal cohesion
761coefficients depend on the size of the histogram window. Cayula and
762Cornillon used the value 0.90 for a 32x32 window, which was
763calculated:</p><dl><dt></dt><dd><pre>C = 1.0 - 0.02 - 1/winsize - 2*P(error) = 0.98 - 1/32 - 2(0.025) = 0.90</pre></dd></dl><p>For a 16x16 window, the equation evaluates to 0.8675.</p></td></tr><tr><td class="info">Minimum global-population cohesion (Optional) </td><td class="info" align="left"><p>Minimum cohesion of both populations.</p><p>The second part of the cohesion algorithm checks the cohesion of both
764populations together (equation 21 in the 1992 paper). As described in
765Appendix B of the 1992 paper, the optimal cohesion coefficients depend
766on the size of the histogram window. Cayula and Cornillon used the
767value 0.92 for a 32x32 window, which was calculated:</p><dl><dt></dt><dd><pre>C = 1.0 - 1/winsize - 2*P(error) = 1.0 - 1/32 - 2(0.025) = 0.92</pre></dd></dl><p>For a 16x16 window, the equation evaluates to 0.8875.</p></td></tr><tr><td class="info">Processing threads (Optional) </td><td class="info" align="left"><p>Number of threads to start for parallel processing.</p><p>The histogram and cohesion algorithms are CPU intensive but are
768designed to run in parallel on machines that have multiple processors.
769To maximize utilization of your machine's processors and shorten the
770time required to execute the algorithms, set the number of threads to
771the number of processors you wish to utilize. Do not set the number of
772threads to more than the number of processors you have; this will
773reduce performance.</p><p>For this option to have any effect, your version of Python must
774include the threading module. Most recent versions of Python include
775this module.</p></td></tr><tr><td class="info">Output mask image (Optional) </td><td class="info" align="left"><p>Output binary raster that shows the pixels of the input image that
776were masked prior to executing the Cayula-Cornillon algorithm.</p><p>The file will have the same dimensions as the input image and contain
7778-bit unsigned integers. The value 1 indicates that the corresponding
778pixel of the input image was masked; 0 indicates the pixel was not
779masked.</p></td></tr><tr><td class="info">Output median filtered image (Optional) </td><td class="info" align="left"><p>Output binary raster that shows the median-filtered input image.</p><p>The file will have the same data type and dimensions as the input
780image. Non-masked pixels will have the median value of the non-masked
781pixels in the surrounding window (the center pixel is included in the
782median selection). Masked pixels will be marked with the smallest
783possible value for the pixel data type. For example, if the pixel data
784type is 16-bit signed integer, the masked pixels will be marked with
785the value -32768.</p></td></tr><tr><td class="info">Output candidate count image (Optional) </td><td class="info" align="left"><p>Output binary raster that indicates how many times the
786corresponding pixel of the input image was a candidate for containing
787a front, i.e. the number of times it appeared in a histogram window
788that had a sufficiently large number of non-masked pixels to proceed
789to the histogram algorithm.</p><p>The file will contain 16-bit signed integers and have the same
790dimensions as the input image. If the histogram window stride is less
791than the window size, successive histogram windows will overlap, and
792many pixels will have candidate counts greater than 1. Masked pixels
793can never be candidates for containing a front and will have the value
794-32768.</p></td></tr><tr><td class="info">Output front count image (Optional) </td><td class="info" align="left"><p>Output binary raster that indicates how many times a front was
795detected at the corresponding pixel of the input image.</p><p>The file will contain 16-bit signed integers and have the same
796dimensions as the input image. The value will range from 0 (the input
797image pixel never contained a front) to the candidate count value for
798the pixel (it always contained a front in every histogram window that
799contained it). Masked pixels can never be candidates for containing a
800front and will have the value -32768.</p></td></tr><tr><td class="info">Output window status codes image (Optional) </td><td class="info" align="left"><p>Output binary raster that indicates the result of the algorithm
801for the histogram window centered on the pixel. You can use this image
802to diagnose why the algorithm did not find fronts in a particular
803region of your image.</p><p>The file will contain 8-bit signed integers and have the same
804dimensions as the input image. The pixel values will be one of these
805code numbers:</p><ul><li><p>Code 0 - The algorithm was not executed for the window because the
806histogram window stride was greater than 1, causing the algorithm to
807skip over this window.</p></li></ul><ul><li><p>Code 1 - The proportion of the window's pixels that had data was
808found to be too small. This typically occurs when the window occurs
809in a region where many of the pixels are masked due to land, clouds,
810or insufficient satellite coverage.</p></li></ul><ul><li><p>Code 2 - After the histogram algorithm optimally separated the
811window's pixels into two populations, the proportion of pixels
812allocated to the smaller population was found to be too small. This
813can occur when a front occurs in the window, but the window is not
814centered on the front, causing it to contain a disproportionate
815number of pixels from one population. This is usually not a problem.
816As long as the histogram window stride is sufficiently small, the
817histogram window will eventually pass over the front and proceed to
818the next step of the algorithm.</p></li></ul><ul><li><p>Code 3 - After the histogram algorithm optimally separated the
819window's pixels into two populations, the difference between the
820mean values of the two populations was found to be too small. This
821typically happens when the window does not contain a front or when
822the gradient along the front is small (i.e. it is a weak front).</p></li></ul><ul><li><p>Code 4 - After the histogram algorithm optimally separated the
823window's pixels into two populations, the criterion function that
824was calculated was found to be too small (the criterion function is
825theta(Topt) described on pages 71-72 of the 1992 paper). This means
826that the two populations are not sufficiently bimodal to indicate
827that a front exists in the window.</p></li></ul><ul><li><p>Code 5 - The window was found to have two populations that were
828sufficiently proportional, different in their means, and bimodal,
829but the cohesion of one or the other population was insufficient (as
830described by equations 19 and 20 in the 1992 paper). This indicates
831that the cells of the two populations are spatially intermixed like
832a checkerboard, rather than being spatially separate, as occurs when
833a front is present.</p></li></ul><ul><li><p>Code 6 - The window was found to have two populations that were
834sufficiently proportional, different in their means, and bimodal,
835and each population was found to be sufficiently cohesive, but the
836cohesion of the two populations together was insufficient (as
837described by equation 21 of the 1992 paper). As with code 5, this
838indicates that the cells of the two populations are spatially
839intermixed like a checkerboard, rather than being spatially
840separate, as occurs when a front is present.</p></li></ul><ul><li><p>Code 7 - The window passed all of the algorithm's tests and was
841classified as containing a front.</p></li></ul><p>When the width and height of histogram window is an even number, the
842center pixel is the one to the lower right of the exact center of the
843window, which falls at the intersection of four pixels. For example,
844in a 6x6 window, the center pixel is the fourth from the left and
845fourth from the top.</p></td></tr><tr><td class="info">Output window status values image (Optional) </td><td class="info" align="left"><p>Output binary raster to be used in conjunction with the window
846status codes when diagnosing the results of the algorithm.</p><p>The file will contain 32-bit floating point numbers and have the same
847dimensions as the input image. The value of each pixel depends on the
848window status code for that pixel:</p><ul><li><p>Codes 0, 1, 7 - The pixel value is always 0.0.</p></li></ul><ul><li><p>Code 2 - The pixel value is the proportion of the window's pixels
849that were allocated to the smaller population.</p></li></ul><ul><li><p>Code 3 - The pixel value is the difference in the mean values of
850the window's two populations.</p></li></ul><ul><li><p>Code 4 - The pixel value is the criterion function that was
851calculated for the window.</p></li></ul><ul><li><p>Code 5 - The pixel value is the cohesion of the window's population
852that was found to be insufficiently cohesive. If both populations
853were insufficiently cohesive, it is the cohesion of the "cold"
854population.</p></li></ul><ul><li><p>Code 6 - The pixel value is the cohesion of the window's two
855populations together.</p></li></ul><p>By examining the pixel values, you can determine how to adjust the
856algorithm's parameters to cause more or fewer windows to pass the
857algorithm's tests, increasing or decreasing the number of fronts
858identified in the image. You should only adjust the parameters if you
859feel comfortable deviating from their published values.</p></td></tr></tbody></table></div></body></html>
Note: See TracBrowser for help on using the browser.