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

Revision 376, 131.0 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>Find CoastWatch Images and Find Cayula-Cornillon Fronts as ArcGIS Rasters</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>Find CoastWatch Images and Find Cayula-Cornillon Fronts as ArcGIS Rasters</h1><p></p><p>Uses the Cayula-Cornillon (1992) single-image edge detection algorithm to find fronts in the CoastWatch POES AVHRR images found in a directory, and outputs the fronts as ArcGIS rasters.</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="id103150">CoastWatchAVHRRFindCoastWatchFilesAndFindFrontsAsArcGISRasters_GeoEco &lt;inputDirectory&gt; &lt;outputWorkspace&gt; {wildcard} {searchTree} {minSize} {maxSize} {minDateCreated} {maxDateCreated} {minDateModified} {maxDateModified} {variables;variables...} {regionCodes;regionCodes...} {satellites;satellites...} {minImageDate} {maxImageDate} {minDayOfYear} {maxDayOfYear} {sceneTimes;sceneTimes...} {cloudVariable} {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} {projectedCoordinateSystem} {geographicTransformation} {NEAREST | BILINEAR | CUBIC} {projectedCellSize} {registrationPoint} {clippingRectangle} {buildPyramids} {outputFrontsRasterPythonExpression} {outputMaskRasterPythonExpression} {outputFilteredImageRasterPythonExpression} {outputCandidateCountsRasterPythonExpression} {outputFrontCountsRasterPythonExpression} {outputWindowStatusCodesRasterPythonExpression} {outputWindowStatusValuesRasterPythonExpression} {modulesToImport;modulesToImport...} {skipExisting} <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;inputDirectory&gt;</td><td class="info" align="left"><p>Directory to search.</p></td></tr><tr><td class="info">&lt;outputWorkspace&gt;</td><td class="info" align="left"><p>Workspace to receive the ArcGIS rasters.</p></td></tr><tr><td class="info">{wildcard}</td><td class="info" align="left"><p>UNIX-style "glob" wildcard expression specifying the CoastWatch
4files to find.</p><p>The glob syntax supports the following patterns:</p><ul><li><p>? - matches any single character</p></li></ul><ul><li><p>* - matches zero or more characters</p></li></ul><ul><li><p>[seq] - matches any single character in <i>seq</i></p></li></ul><ul><li><p>[!seq] - matches any single character not in <i>seq</i></p></li></ul><p><i>seq</i> is one or more characters, such as abc. You may specify
5character ranges using a dash. For example, a-z0-9 specifies all of
6the characters in the English alphabet and the decimal digits 0
7through 9.</p><p>You may specify subdirectories in the glob expression. For example,
8the expression CoastWatch*/2006* will find all files beginning with
92006 that are contained in directories beginning with CoastWatch.</p><p>The operating system determines whether / or \ is used as the
10directory separator. On Windows, both will work. On most flavors of
11UNIX, / must be used.</p><p>The operating system determines if matching is case sensitive. On
12Windows, matching is case-insensitive. On most flavors of UNIX,
13matching is case-sensitive.</p><p>It is ok if your expression matches files that are not CoastWatch
14files. For example, the expression *.hdf might match some
15non-CoastWatch HDF files. These files will be ignored.</p></td></tr><tr><td class="info">{searchTree}</td><td class="info" align="left"><p>If True, subdirectories will be searched.</p></td></tr><tr><td class="info">{minSize}</td><td class="info" align="left"><p>Minimum size, in bytes, of files to find. If provided, only files
16that are this size or larger will be found.</p></td></tr><tr><td class="info">{maxSize}</td><td class="info" align="left"><p>Maximum size, in bytes, of files to find. If provided, only files
17that are this size or smaller will be found.</p></td></tr><tr><td class="info">{minDateCreated}</td><td class="info" align="left"><p>Minimum creation date, in the local time zone, of the files to
18find, as reported by the operating system. If provided, only files
19that were created on or after this date will be found. You may provide
20a date with or without a time. If you do not provide a time, it is
21assumed to be midnight.</p></td></tr><tr><td class="info">{maxDateCreated}</td><td class="info" align="left"><p>Maximum creation date, in the local time zone, of the files to
22find, as reported by the operating system. If provided, only files
23that were created on or before this date will be found. You may
24provide a date with or without a time. If you do not provide a time,
25it is assumed to be midnight.</p></td></tr><tr><td class="info">{minDateModified}</td><td class="info" align="left"><p>Minimum modification date, in the local time zone, of the files to
26find, as reported by the operating system. If provided, only files
27that were modified on or after this date will be found. You may
28provide a date with or without a time. If you do not provide a time,
29it is assumed to be midnight.</p></td></tr><tr><td class="info">{maxDateModified}</td><td class="info" align="left"><p>Maximum modification date, in the local time zone, of the files to
30find, as reported by the operating system. If provided, only files
31that were modified on or before this date will be found. You may
32provide a date with or without a time. If you do not provide a time,
33it is assumed to be midnight.</p></td></tr><tr><td class="info">{variables;variables...}</td><td class="info" align="left"><p>CoastWatch variables to find in the files that are found. Each
34variable corresponds to an image in the file. If any variables are
35provided, only the images for those variables will be found in the
36files. If none are provided, all images in the files will be found.</p><p>At the time of this writing, the CoastWatch program was known to have
37published files with these variables:</p><dl><dt></dt><dd><pre>avhrr_ch1
38avhrr_ch2
39avhrr_ch3
40avhrr_ch3a
41avhrr_ch4
42avhrr_ch5
43cloud
44cloudx
45graphics
46sst
47rel_azimuth
48sat_zenith
49sun_zenith</pre></dd></dl><p>Please see the CoastWatch documentation for more information about
50these variables. In general, most users are interested in the "sst"
51variable, which is the estimated sea surface temperature, and the
52"cloud" variable, which is a bit mask indicating which cloud tests
53failed for that pixel. A value of 0 for the cloud variable indicates
54that all cloud tests passed and CoastWatch has high confidence in the
55validity of the SST value for that pixel.</p></td></tr><tr><td class="info">{regionCodes;regionCodes...}</td><td class="info" align="left"><p>CoastWatch region codes for the files to find. If any regions are
56provided, only files matching those regions will be found. If none are
57provided, all files will be found.</p><p>This function finds the region codes by examining the CoastWatch
58metadata inside the files, not be examining the file name. Thus it
59will work properly with older CoastWatch files that do not include the
60region in the file name.</p><p>Because the CoastWatch metadata does not include the region code
61explicitly, it must be inferred from the other image metadata. The
62current implementation of this function recognizes the following
63regions:</p><dl><dt></dt><dd><pre>aa - Alaska Sitka
64ax - Alaska South
65gb - Great Barrier Reef
66ay - Alaska West
67az - Alaska North
68ce - Caribbean East
69cw - Caribbean West
70er - East Coast North
71gr - Great Lakes
72hr - Hawaii
73mr - Gulf of Mexico
74sb - East Coast Bermuda
75sl - Great Salt Lake
76sr - East Coast South
77wa - West Coast Acapulco
78wj - West Coast Baja
79wn - West Coast North
80ws - West Coast South
81uk - the CoastWatch region is unknown (the image coordinates were not recognized by this tool)</pre></dd></dl><p>These regions were taken from the <a href="http://www2.ncdc.noaa.gov/docs/klm/html/c9/sec9-5.htm">NOAA KLM User's Guide Section 9.5</a> amended
82November 7, 2005. If a file is not for one of these regions, it will
83only be found if you do not specify any region codes. If you would
84like more region codes added to this tool, please contact the
85author.</p></td></tr><tr><td class="info">{satellites;satellites...}</td><td class="info" align="left"><p>Satellites for the files to find. If any satellites are provided,
86only files that contain data from these satellites will be found. If
87none are provided, all files will be found.</p><p>At the time of this writing, the CoastWatch program was known to have
88published data from the following satellites:</p><dl><dt></dt><dd><pre>NOAA-12
89NOAA-14
90NOAA-15
91NOAA-16
92NOAA-17
93NOAA-18</pre></dd></dl></td></tr><tr><td class="info">{minImageDate}</td><td class="info" align="left"><p>Minimum image date, in UTC, for the files to find. If provided,
94only files that contain images taken on or after this date will be
95found. You may provide a date with or without a time. If you do not
96provide a time, it is assumed to be midnight.</p></td></tr><tr><td class="info">{maxImageDate}</td><td class="info" align="left"><p>Maximum image date, in UTC, for the files to find. If provided,
97only files that contain images taken on or before this date will be
98found. You may provide a date with or without a time. If you do not
99provide a time, it is assumed to be midnight.</p></td></tr><tr><td class="info">{minDayOfYear}</td><td class="info" align="left"><p>Minimum image day of the year, in UTC, for the for the files to
100find. If provided, only files that contain images taken on or after
101this day of the year will be found. The first day of the year is
102always 1, and the last day of the year is 365 during non-leap years
103and 366 during leap years.</p></td></tr><tr><td class="info">{maxDayOfYear}</td><td class="info" align="left"><p>Maximum image day of the year, in UTC, for the for the files to
104find. If provided, only files that contain images taken on or before
105this day of the year will be found. The first day of the year is
106always 1, and the last day of the year is 365 during non-leap years
107and 366 during leap years.</p></td></tr><tr><td class="info">{sceneTimes;sceneTimes...}</td><td class="info" align="left"><p>CoastWatch "scene times" for the files to find. If provided, only
108files that contain images with these scene times will be found. If
109none are provided, all files will be found.</p><p>At the time of this writing, the CoastWatch program was known to have
110published data with the following scene times:</p><dl><dt></dt><dd><pre>day
111day/night
112night</pre></dd></dl><p>The scene time affects which cloud tests are used to generate the
113cloud mask image, among other things. Please consult the CoastWatch
114documentation for more information.</p></td></tr><tr><td class="info">{cloudVariable}</td><td class="info" align="left"><p>Name of the CoastWatch variable to extract from the input
115CoastWatch file and use as the cloud mask (e.g. "cloud"). If the input
116file does not contain the cloud variable, cloud masking will not be
117performed for this file.</p><p>A limitation of this tool is that it can only extract the cloud
118variable from the input CoastWatch file; it cannot extract it from
119another file. This tool, therefore, cannot perform cloud masking on
120CWF files (except those that contain the cloud variable), because CWFs
121usually only contain one variable (e.g. sst) in addition to the
122graphics variable. If you need to perform cloud masking on CWF files,
123I recommend you convert the CWFs containing the cloud variable and the
124other variables of interest into a single HDF, and then process the
125HDF instead.</p><p>The current implementation of this tool was designed to operate on the
1268-bit CLAVR cloud mask represented by the "cloud" variable in
127CoastWatch files. It was not designed to operate on the "cloudx"
128variable, which is a new experimental CLAVR-x cloud mask available in
129recent CoastWatch HDF files. Nonetheless, if you wish to operate on
130the cloudx variable, you can specify it instead of cloud, and pick
131mask options appropriate for it instead.</p></td></tr><tr><td class="info">{sunZenithVariable}</td><td class="info" align="left"><p>Name of the CoastWatch variable to extract from the input
132CoastWatch file and use as the solar zenith image (e.g. "sun_zenith").</p><p>A limitation of this tool is that it can only extract the solar zenith
133image from the input CoastWatch file; it cannot extract it from
134another file. Therefore, because this tool uses the solar zenith image
135when performing cloud masking on images with a day/night scene time,
136cannot perform cloud masking on CWF files, because CWFs usually only
137contain one variable (e.g. sst) in addition to the graphics variable.
138If you need to perform cloud masking on CWF files, I recommend you
139convert the CWFs containing the cloud, sun_zenith, and the other
140variables of interest into a single HDF, and then process the HDF
141instead.</p><p>According to CoastWatch researcher Peter Hollemans, when an image's
142scene time is "day", all pixels of the cloud mask use daytime cloud
143tests, and when it is "night", all pixels use nighttime cloud tests.
144When the scene time is "day/night", the decision of which tests to use
145is based on the solar zenith for that pixel.</p><p>According to Peter, for CoastWatch HDF files, pixels with a solar
146zenith &gt; 80 degrees use the nighttime cloud tests, and &lt;= 80 use the
147daytime cloud tests. This tool implements that logic. If you specify
148that cloud masking should be performed for a day/night image but no
149solar zenith image is available, this tool will assume that nighttime
150cloud tests were used for every pixel and a warning will be issued.
151For some reason, CoastWatch occasionally produces day/night images
152with no sun_zenith or other variables that are present in day images.
153My recollection is that Peter said it is safe to assume for these
154images that all pixels are nighttime.</p><p>The solar zenith image is ignored for scene times other than
155"day/night" (e.g. "day" or "night").</p><p>After some investigation, I find that the cloud mask pixels near the
15680 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
157to line up perfectly with the switch from daytime to nighttime cloud
158tests because the solar zenith angles are rounded to the nearest
1590.01 when written to the HDF file so a few pixels with values of say
16080.003 will get rounded to 80 even though they underwent processing
161with the nighttime cloud tests. Peter said, "I guess that's the flaw
162with storing angle data in HDF as scaled integers (that decision was
163mainly due to file size concerns)."</p></li></ul><ul><li><p>The switch between daytime tests and nighttime tests does not
164manifest as a clean transition in the cloud mask pixels. The daytime
165pixels do not seem to cleanly abut the nighttime pixels. Rather, a
166strip of pixels with strange values raggedly separates the two.
167Peter said: "The apparent unclean transition between day and night
168tests is related to neighborhood functions.  The uniformity tests
169use a 2x2 box of data values to the right and below a given value in
170the array to check for a condition being true, and the results of
171the uniformity test flag all pixels in the 2x2 box with the test
172results, regardless of whether all those pixels are day or
173nighttime.  Both day and nighttime have uniformity tests, so the
174results of uniformity tests at the day/night boundary are mixed. The
175mixing is generally acceptable because the results are intended to
176be used for SST masking not cloud type evaluation and the mixing
177only 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
178files. I examined a few of these from the North East region, and it
179appeared that they also switched from daytime to nighttime cloud tests
180in the middle of the image. But the NOAA distribution site
181(<a href="http://www.class.noaa.gov">http://www.class.noaa.gov</a>) only appeared to have CWFs containing the
182sun_zenith variable for dates after late 1999.</p><p>Peter mentioned that the cwangles program from the CoastWatch
183Utilities could compute the solar zenith, but the values would only be
184approximate beacuse the program assumed that all pixels were obtained
185by the sensor at the same moment in time. I tried this approach but
186the 80 degree solar zenith line did not line up with the line where
187the cloud tests appeared to switch. Because of this, I do not believe
188that day/night CWF files will be useable for users who want to use
189some cloud tests and ignore others.</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
190Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
191cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
192test is used for both CWF and HDF files, but for HDF files, the
193CLAVR-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
194how pixels 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 see the
198CoastWatch 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
199Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
200this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
201test is used for both CWF and HDF files, but for HDF files, the
202CLAVR-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
203how pixels are classified as daytime or nighttime, please see the
204documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
205value of 0 for a bit indicates that the cloud test passed, while 1
206indicates it failed. For more details about the cloud tests, please see the
207CoastWatch 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
208Cloud Test (bit 3 of the cloud mask) will be masked. If False, this
209cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
210test is used for both CWF and HDF files, but for HDF files, the
211CLAVR-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
212how pixels are classified as daytime or nighttime, please see the
213documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
214value of 0 for a bit indicates that the cloud test passed, while 1
215indicates it failed. For more details about the cloud tests, please see the
216CoastWatch 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
217Test (bit 4 of the cloud mask) will be masked. If False, this cloud
218test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
219how pixels are classified as daytime or nighttime, please see the
220documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
221value of 0 for a bit indicates that the cloud test passed, while 1
222indicates it failed. For more details about the cloud tests, please see the
223CoastWatch 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
224Test (bit 5 of the cloud mask) will be masked. If False, this cloud
225test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
226how pixels are classified as daytime or nighttime, please see the
227documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
228value of 0 for a bit indicates that the cloud test passed, while 1
229indicates it failed. For more details about the cloud tests, please see the
230CoastWatch 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
231Test (bit 6 of the cloud mask) will be masked. If False, this cloud
232test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
233how pixels 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 see the
237CoastWatch 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
238Cloud Test (bit 7 of the cloud mask) will be masked. If False, this
239cloud test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
240how pixels are classified as daytime or nighttime, please see the
241documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
242value of 0 for a bit indicates that the cloud test passed, while 1
243indicates it failed. For more details about the cloud tests, please see the
244CoastWatch 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
245greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
246success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
247mask values are NOT intended to be interpreted as range, like a
248spectrum, where 0 represents "very clear" and 255 represents "very
249cloudy". Nevertheless, some users of this tool determined that for
250their study the best tradeoff between minimizing SST error and
251minimizing the number of pixels masked by clouds was obtained by
252masking all pixels where the cloud mask exceeded a certain value. This
253option was implemented specifically for those users and is not
254recommended for general use. If you do use this option, be sure to
255study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
256bits specified by the previous parameters, all of these parameters
257will be effective. In other words, a cloudy pixel can be masked by
258failing a specific cloud test, or by exceeding the minimum cloud mask
259value, or both. .</p><p>This parameter is ignored for nighttime pixels. For a discussion of
260how pixels are classified as daytime or nighttime, please see the
261documentation for the cloud mask file parameter. For more information
262about the cloud tests, please see the CoastWatch and CLAVR
263documentation.</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
264Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
265cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
266pixels are classified as daytime or nighttime, please see the
267documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
268value of 0 for a bit indicates that the cloud test passed, while 1
269indicates it failed. For more details about the cloud tests, please
270see 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
271Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
272this cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
273pixels are classified as daytime or nighttime, please see the
274documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
275value of 0 for a bit indicates that the cloud test passed, while 1
276indicates it failed. For more details about the cloud tests, please
277see 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
278Stratus Test (bit 3 of the cloud mask) will be masked. If False, this
279cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
280pixels are classified as daytime or nighttime, please see the
281documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
282value of 0 for a bit indicates that the cloud test passed, while 1
283indicates it failed. For more details about the cloud tests, please
284see 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
285Test (bit 4 of the cloud mask) will be masked. If False, this cloud
286test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
287pixels are classified as daytime or nighttime, please see the
288documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
289value of 0 for a bit indicates that the cloud test passed, while 1
290indicates it failed. For more details about the cloud tests, please
291see 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
2925 of the cloud mask) will be masked. If False, this cloud test will be
293ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
294pixels are classified as daytime or nighttime, please see the
295documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
296value of 0 for a bit indicates that the cloud test passed, while 1
297indicates it failed. For more details about the cloud tests, please
298see 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
299Albedo Test (bit 6 of the cloud mask) will be masked. If False, this
300cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
301used for CoastWatch CWF files and thus bit 6 will always be 0,
302indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
303pixels are classified as daytime or nighttime, please see the
304documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
305value of 0 for a bit indicates that the cloud test passed, while 1
306indicates it failed. For more details about the cloud tests, please
307see 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
308Albedo Uniformity Test (bit 7 of the cloud mask) will be masked. If
309False, this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
310used for CoastWatch CWF files and thus bit 7 will always be 0,
311indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
312pixels are classified as daytime or nighttime, please see the
313documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
314value of 0 for a bit indicates that the cloud test passed, while 1
315indicates it failed. For more details about the cloud tests, please
316see 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
317greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
318success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
319mask values are NOT intended to be interpreted as range, like a
320spectrum, where 0 represents "very clear" and 255 represents "very
321cloudy". Nevertheless, some users of this tool determined that for
322their study the best tradeoff between minimizing SST error and
323minimizing the number of pixels masked by clouds was obtained by
324masking all pixels where the cloud mask exceeded a certain value. This
325option was implemented specifically for those users and is not
326recommended for general use. If you do use this option, be sure to
327study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
328bits specified by the previous parameters, all of these parameters
329will be effective. In other words, a cloudy pixel can be masked by
330failing a specific cloud test, or by exceeding the minimum cloud mask
331value, or both. .</p><p>This parameter is ignored for daytime pixels. For a discussion of
332how pixels are classified as daytime or nighttime, please see the
333documentation for the cloud mask file parameter. For more information
334about the cloud tests, please see the CoastWatch and CLAVR
335documentation.</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
336for that pixel to be masked.</p><p>You can use this option to ignore isolated cloudy pixels that are not
337clumped together. For example, if you specify the value 1, cloudy
338pixels will be ignored and not used in the masking process unless at
339least one of their eight neighbors is also cloudy.</p><p>If a neighbor is not cloudy but it is masked for some other reason
340(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
341image prior to running the histogram analysis step of the
342Cayula-Cornillon algorithm. If not provided, median filtering will not
343be performed.</p><p>If you provide a value, it must be an odd integer greater than or
344equal to 3. The filter window is square and advances across the image
3451 pixel at a time. The center pixel, if it is not masked, is replaced
346with the median value of the non-masked pixels in the surrounding
347window. All masks are applied before the median filter is executed.</p><p>Median filtering is a traditional first step for certain classes of
348edge detection algorithms. The original Cayula-Cornillon paper used a
349window 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
350algorithm.</p><p>The window is square. The original paper used a window size of 32.
351Although the algorithm is claimed to obtain similar results regardless
352of window size, I have noticed that some fronts may only be detected
353by using a smaller window size such as 16. I highly recommend you read
354the paper carefully before experimenting with different window
355sizes.</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
356of the Cayula-Cornillon algorithm.</p><p>The original paper used a 32x32 window and a stride of 16, to minimize
357the CPU time required to execute the algorithm. Cutting the stride in
358half increases the CPU time by a factor of about four. For example, a
359stride of 1 requires about 256 times more CPU time than a stride of
36016.</p><p>In my experience, smaller stride values identify more fronts, and the
361resulting fronts are longer and thicker. If you have a powerful
362computer, want to find more fronts, and are comfortable deviating from
363the published method, you can use a smaller value. If you do this, you
364may want to apply a thinning algorithm after running this tool, to
365reduce 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
366be masked for the algorithm to proceed with histogram analysis on that
367window.</p><p>For example, if the value 0.75 is used and the histogram window is
36820x20, at least 300 out of the 400 pixels must not be masked for
369analysis to proceed on that window. If more than 100 pixels are
370masked, the algorithm discards the current window, advances to next
371one, 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
372non-masked pixels in the window have a bimodal distribution, it then
373selects the value that optimally separates them into two populations.
374As described on page 73 of the 1992 paper, if the proportion of
375non-masked pixels allocated to the smaller population is smaller than
3760.25, the subsequent statistical tests will not be accurate. In this
377case, and the algorithm discards the current window, advances to next
378one, and starts over.</p><p>I do not recommend selecting a value other than 0.25 unless you
379understand 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
380populations, it computes the means of the two populations. If the
381means differ by less than this parameter value, the algorithm discards
382the current window, advances to next one, and starts over.</p><p>The original intent of this parameter is obscure. The Fortran code I
383obtained from Dave Ullman used the value 3 and contained the
384explanation "a temperature difference of less than three digital
385counts between the 2 populations is likely to be a result of the
386discrete nature of the data."</p><p>You can use this parameter to eliminate weak fronts by selecting a
387value that corresponds to a desired minimum mean temperature
388difference. For example, the NOAA NODC 4km AVHRR Pathfinder Project
389(<a href="http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/">http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/</a>) publishes SST
390data as 16-bit unsigned integers where each integer represents 0.075
391degrees. To eliminate fronts where the mean temperature difference is
392less than 0.5 degrees, set this parameter to 0.5 / 0.075 =
3936.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
39471-72 of the 1992 paper.</p><p>The criterion function is used to determine whether the histogram
395window contains a bimodal distribution. Cayula and Cornillon performed
396an extensive analysis to determine that the value 0.76 produced
397optimal results for the SST data they worked with. Selecting a smaller
398value will allow windows with more homogenous, less bimodal
399distributions to be considered by the algorithm. If the window yields
400a value less than this parameter, the algorithm discards the current
401window, advances to next one, and starts over.</p><p>I do not recommend selecting a value other than 0.76 unless you
402understand 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
403distribution of values, the cohesion algorithm is executed to check
404whether the pixels of the two populations are sufficiently spatially
405separated. High values indicate that they are separated, suggesting
406that two distinct populations (e.g. water masses) are present in the
407window. Low values indicate the populations are all mixed up, like a
408checkerboard, and suggest that the pattern results from clouds, noise
409or other random processes.</p><p>The first part of the cohesion algorithm checks the cohesion of each
410population by itself (equations 19 and 20 in the 1992 paper). As
411described in Appendix B of the 1992 paper, the optimal cohesion
412coefficients depend on the size of the histogram window. Cayula and
413Cornillon used the value 0.90 for a 32x32 window, which was
414calculated:</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
415populations together (equation 21 in the 1992 paper). As described in
416Appendix B of the 1992 paper, the optimal cohesion coefficients depend
417on the size of the histogram window. Cayula and Cornillon used the
418value 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
419designed to run in parallel on machines that have multiple processors.
420To maximize utilization of your machine's processors and shorten the
421time required to execute the algorithms, set the number of threads to
422the number of processors you wish to utilize. Do not set the number of
423threads to more than the number of processors you have; this will
424reduce performance.</p><p>For this option to have any effect, your version of Python must
425include the threading module. Most recent versions of Python include
426this module.</p></td></tr><tr><td class="info">{projectedCoordinateSystem}</td><td class="info" align="left"><p>New coordinate system to project the output raster to.</p><p>The raster may only be projected to a new coordinate system if the
427original projection is defined. An error will be raised if you specify
428a new coordinate system without defining the original coordinate
429system.</p><p>The ArcGIS Project Raster tool is used to perform the projection. The
430documentation for that tool recommends that you also specify a cell
431size for the new coordinate system.</p><p>I have noticed that for certain coordinate systems the ArcGIS 9.2
432Project Raster tool seems to clip the projected raster to an arbitrary
433extent that is too small. For example, when projecting a global MODIS
434Aqua 4 km chlorophyll image in geographic coordinates to
435Lambert_Azimuthal_Equal_Area with central meridian of -60 and latitude
436of origin of -63, the resulting image is clipped to show only
437one-quarter of the planet. This problem does not occur when Project
438Raster is invoked interactively from the ArcGIS user interface; it
439only occurs when the tool is invoked programmatically (the
440ProjectRaster_management method of the geoprocessor). Thus you may
441not see it when you use Project Raster yourself but it may happen when
442you use MGET tools that invoke Project Raster as part of their
443geoprocessing operations.</p><p>If you encounter this problem, you can work around it like this:</p><ul><li><p>First, run this tool without specifying a new coordinate system, to
444obtain the output raster in the original coordinate system.</p></li></ul><ul><li><p>In ArcCatalog, use the Project Raster tool to project the raster to
445the new coordinate system. Verify that the entire raster is present,
446that it has not been clipped to an extent that is too small.</p></li></ul><ul><li><p>In ArcCatalog, look up the extent of the projected raster by
447right-clicking on it in the catalog tree, selecting Properties, and
448scrolling down to Extent.</p></li></ul><ul><li><p>Now, before running the MGET tool that projects the raster, set the
449Extent environment setting to the values you looked up. If you are
450invoking the MGET tool interactively from ArcCatalog or ArcMap,
451click the Environments button on the tool's dialog box, open General
452Settings, change the Extent drop-down to "As Specified Below", and
453type in the values you looked up. If you're invoking it from a
454geoprocessing model, right-click on the tool in the model, select
455Make Variable, From Environment, General Settings, Extent. This will
456place Extent as a variable in your model, attached to the MGET tool.
457Open the Extent variable, change it to "As Specified Below" and type
458in the values you looked up. If you're invoking the MGET tool
459programmatically, you must set the Extent property of the
460geoprocessor to the values you looked up. Please see the ArcGIS
461documentation for more information about this and Environment
462settings in general.</p></li></ul><ul><li><p>Run the MGET tool. The extent of the output raster should now be the
463proper size.</p></li></ul></td></tr><tr><td class="info">{geographicTransformation}</td><td class="info" align="left"><p>A transformation method used to convert between the original
464coordinate system and the new coordinate system.</p><p>This parameter is a new option introduced by ArcGIS 9.2. You must have
465ArcGIS 9.2 to use this parameter.</p><p>This parameter is only needed when you specify that the raster should
466be projected to a new coordinate system and that new system uses a
467different datum than the original coordinate system, or there is some
468other difference between the two coordinate systems that requires a
469transformation. To determine if a transformation is needed, I
470recommend the following procedure:</p><ul><li><p>First, run this tool without specifying a new coordinate system, to
471obtain the output raster in the original coordinate system.</p></li></ul><ul><li><p>Next, use the ArcGIS 9.2 Project Raster tool on the output raster to
472project it to the desired coordinate system. If a geographic
473transformation is needed, that tool will prompt you for one. Write
474down the exact name of the transformation you used.</p></li></ul><ul><li><p>Finally, if a transformation was needed, type in the exact name into
475this tool, rerun it, and verify that the output raster was projected
476as you desired.</p></li></ul></td></tr><tr><td class="info">{NEAREST | BILINEAR | CUBIC}</td><td class="info" align="left"><p>The resampling algorithm to be used to project the original raster
477to a new coordinate system. The ArcGIS Project Raster tool is used to
478perform the projection and accepts the following values:</p><ul><li><p>NEAREST - nearest neighbor interpolation</p></li></ul><ul><li><p>BILINEAR - bilinear interpolation</p></li></ul><ul><li><p>CUBIC - cubic convolution</p></li></ul><p>You must specify one of these algorithms to project to a new
479coordinate system. An error will be raised if you specify a new
480coordinate system without selecting an algorithm.</p></td></tr><tr><td class="info">{projectedCellSize}</td><td class="info" align="left"><p>The cell size of the projected coordinate system. Although this
481parameter is optional, to receive the best results, the ArcGIS
482documentation recommends you always specify it when projecting to a
483new coordinate system.</p></td></tr><tr><td class="info">{registrationPoint}</td><td class="info" align="left"><p>The x and y coordinates (in the output space) used for pixel
484alignment.</p><p>This parameter is a new option introduced by ArcGIS 9.2. You must have
485ArcGIS 9.2 to use this parameter. It is ignored if you do not specify
486that the raster should be projected to a new coordinate system.</p></td></tr><tr><td class="info">{clippingRectangle}</td><td class="info" align="left"><p>Rectangle to which the raster should be clipped.</p><p>If a projected coordinate system was specified, the clipping is
487performed after the projection and the rectangle's coordinates should
488be specified in the new coordinate system. If no projected coordinate
489system was specified, the coordinates should be specified in the
490original coordinate system.</p><p>The ArcGIS Clip tool is used to perfom the clip. The clipping
491rectangle must be passed to this tool as a string of four numbers
492separated by spaces. The ArcGIS user interface automatically formats
493the string properly; when invoking this tool from the ArcGIS UI,
494you need not worry about the format. But when invoking it
495programmatically, take care to provide a properly-formatted string.
496The numbers are ordered LEFT, BOTTOM, RIGHT, TOP. For example, if the
497raster is in a geographic coordinate system, it may be clipped to 10
498W, 15 S, 20 E, and 25 N with the string:</p><dl><dt></dt><dd><p>10 15 20 25</p></dd></dl><p>Integers or decimal numbers may be provided.</p></td></tr><tr><td class="info">{buildPyramids}</td><td class="info" align="left"><p>If True, pyramids will be built for the output raster, which will
499improve its display speed in the ArcGIS user interface. This is the
500last step performed in post-conversion processing.</p></td></tr><tr><td class="info">{outputFrontsRasterPythonExpression}</td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
501output raster that shows the fronts detected in the input image.</p><p>The raster will have the same dimensions as the input image and
502contain 8-bit signed integers with three possible values:</p><ul><li><p>NoData - the pixel was never a candidate for containing a front,
503either because it was masked or because because it did not appear in
504any histogram windows that had sufficiently large numbers of
505non-masked pixels to proceed with the histogramming step of the
506Cayula-Cornillon algorithm.</p></li></ul><ul><li><p>0 - The pixel was a candidate for containing a front -- it was not
507masked and it appeared in at least one histogram window with a
508sufficient number of non-masked pixels to proceed with the
509histogramming step -- but it was never marked as a front pixel in
510any 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
511as a front pixel in at least one of the histogram windows it
512appeared in.</p></li></ul><p>The expression may be any Python statement appropriate for passing to
513the eval function and must return a Unicode string. The expression may
514reference the following variables:</p><ul><li><p>directoryToSearch - the value provided for the directory to search
515parameter</p></li></ul><ul><li><p>outputWorkspace - the value provided for the output
516workspace parameter</p></li></ul><ul><li><p>inputFile - the absolute path to the input CoastWatch file</p></li></ul><ul><li><p>metadata - a dictionary of CoastWatch metadata about the file and
517variable (see below)</p></li></ul><p>The default expression:</p><dl><dt></dt><dd><pre>os.path.join(outputWorkspace, metadata['Region code'], metadata['Satellite'], 'fronts', metadata['Image datetime'].strftime('%Y'), metadata['Image datetime'].strftime('fr%Y%j%H%M'))</pre></dd></dl><p>stores the raster in the output workspace in a subdirectory structure
518based on the CoastWatch region code, satellite and so on. For example,
519if fronts were detected in the file 2007_066_0459_n17_wn.hdf and the
520output workspace was C:CoastWatch, the output raster path would be:</p><dl><dt></dt><dd><pre>C:\CoastWatch\wn\noaa-17\fronts\2007\fr20070660459</pre></dd></dl><p>The following keys are available in the metadata dictionary. The
521Python data type of the value for the key appears in parentheses.
522Remember that if the value is not a string, you must convert it to one
523before you can use it in Python's os.path function:</p><ul><li><p>'Variable' (str) - Full name of the CoastWatch variable that was
524extracted from the file for processing. At the time of this writing,
525the CoastWatch program was known to have published files with these
526variables:</p><dl><dt></dt><dd><pre>avhrr_ch1
527avhrr_ch2
528avhrr_ch3
529avhrr_ch3a
530avhrr_ch4
531avhrr_ch5
532cloud
533cloudx
534graphics
535sst
536rel_azimuth
537sat_zenith
538sun_zenith</pre></dd></dl></li></ul><ul><li><p>'Abbreviation' (str) - 2 character abbreviation for the CoastWatch
539variable that was extracted from the file for processing. These
540abbreviations were invented by the author of this tool, not by the
541CoastWatch program. For the variables mentioned above, the
542abbreviations are:</p><dl><dt></dt><dd><pre>c1
543c2
544c3
545ca
546c4
547c5
548cl
549gr
550st
551ra
552sz
553uz</pre></dd></dl></li></ul><ul><li><p>'Region code' (str) - 2 character CoastWatch region code. The
554CoastWatch program assigns the region code, but because the file
555metadata does not include it, the tool must infer it using
556hard-coded rules that examine other metadata such as the image
557coordinates. The tool recognizes the following regions, taken from
558the <a href="http://www2.ncdc.noaa.gov/docs/klm/html/c9/sec9-5.htm">NOAA KLM User's Guide Section 9.5</a>
559amended November 7, 2005:</p><dl><dt></dt><dd><pre>aa - Alaska Sitka
560ax - Alaska South
561gb - Great Barrier Reef
562ay - Alaska West
563az - Alaska North
564ce - Caribbean East
565cw - Caribbean West
566er - East Coast North
567gr - Great Lakes
568hr - Hawaii
569mr - Gulf of Mexico
570sb - East Coast Bermuda
571sl - Great Salt Lake
572sr - East Coast South
573wa - West Coast Acapulco
574wj - West Coast Baja
575wn - West Coast North
576ws - West Coast South
577uk - the CoastWatch region is unknown (the image coordinates were not recognized by this tool)</pre></dd></dl></li></ul><ul><li><p>'Satellite' (str) - satellite that took the image. At the time of
578this writing, the CoastWatch program was known to have published
579data from the following satellites:</p><dl><dt></dt><dd><pre>noaa-12
580noaa-14
581noaa-15
582noaa-16
583noaa-17
584noaa-18</pre></dd></dl></li></ul><ul><li><p>'Sensor' (str) - sensor that took the image (e.g. "avhrr").</p></li></ul><ul><li><p>'Image datetime' (datetime.datetime) - date and time the image was
585taken, in UTC.</p></li></ul><ul><li><p>'Image unix time' (int) - date and time the image was taken, in
586"UNIX time" format. UNIX times are 32-bit signed integers that are
587the number of seconds since 1970-01-01 00:00:00 UTC. The UNIX time
588values produced by this tool do not include leap seconds; this tool
589assumes that a regular year is 31536000 seconds and a leap year is
59031622400 seconds.</p></li></ul><ul><li><p>'Scene time' (str) - the CoastWatch "scene" time for image. At the
591time of this writing, the CoastWatch program was known to have
592published data with the following scene times:</p><dl><dt></dt><dd><pre>day
593day/night
594night</pre></dd></dl></li></ul><ul><li><p>'Projection type' (str) - projection type for the image (e.g.
595"mapped").</p></li></ul><ul><li><p>'Map projection' (str) - map projection for the image (e.g.
596"Mercator").</p></li></ul><ul><li><p>'Map affine a' (float) - the a coefficient for the map affine for the
597file, in meters.</p></li></ul><ul><li><p>'Map affine b' (float) - the b coefficient for the map affine for the
598file, in meters.</p></li></ul><ul><li><p>'Map affine c' (float) - the c coefficient for the map affine for the
599file, in meters.</p></li></ul><ul><li><p>'Map affine d' (float) - the d coefficient for the map affine for the
600file, in meters.</p></li></ul><ul><li><p>'Map affine e' (float) - the e coefficient for the map affine for the
601file, in meters.</p></li></ul><ul><li><p>Map affine f' (float) - the f coefficient for the map affine for the
602file, in meters.</p></li></ul><ul><li><p>'Spheroid' (str) - spheroid used for the image (e.g. "WGS 84").</p></li></ul><ul><li><p>'Origin' (str) - organization that produced the file (e.g.
603"USDOC/NOAA/NESDIS CoastWatch").</p></li></ul><ul><li><p>Format' (str) - format version of the file (e.g.
604"CoastWatch HDF version 3.4").</p></li></ul><ul><li><p>'Pixel width' (float) - the width of each pixel, in km. This should not
605be used as the raster cell size. Please see the CoastWatch
606documentation for more information.</p></li></ul><ul><li><p>'Pixel height' (float) - the height of each pixel, in km. This should not
607be used as the raster cell size. Please see the CoastWatch
608documentation for more information.</p></li></ul><ul><li><p>'Total width' (float) - the width of the image, in km. Please see the
609CoastWatch documentation for more information.</p></li></ul><ul><li><p>'Total height' (float) - the height of the image, in km. Please see the
610CoastWatch documentation for more information.</p></li></ul><ul><li><p>'Center y' (float) - the latitude, in decimal degrees, of the center of
611the image.</p></li></ul><ul><li><p>'Center x' (float) - the longitude, in decimal degrees, of the center of
612the image.</p></li></ul><ul><li><p>'Upper-left y' (float) - the latitude, in decimal degrees, of the upper
613left corner of the image.</p></li></ul><ul><li><p>'Upper-left x' (float) - the longitude, in decimal degrees, of the
614upper left corner of the image.</p></li></ul><ul><li><p>'Upper-right y' (float) - the latitude, in decimal degrees, of the upper
615right corner of the image.</p></li></ul><ul><li><p>'Upper-right x' (float) - the longitude, in decimal degrees, of the
616upper right corner of the image.</p></li></ul><ul><li><p>'Lower-left y' (float) - the latitude, in decimal degrees, of the lower
617left corner of the image.</p></li></ul><ul><li><p>'Lower-left x' (float) - the longitude, in decimal degrees, of the
618lower left corner of the image.</p></li></ul><ul><li><p>'Lower-right y' (float) - the latitude, in decimal degrees, of the lower
619right corner of the image.</p></li></ul><ul><li><p>'Lower-right x' (float) - the longitude, in decimal degrees, of the
620lower right corner of the image.</p></li></ul><ul><li><p>'Type' (str) - the Java data type of the variable (e.g. "short").</p></li></ul><ul><li><p>'Rows' (int) - the number of rows in the image of this variable.</p></li></ul><ul><li><p>'Columns' (int) - the number of columns in the image of this
621variable.</p></li></ul><ul><li><p>'Units' (str) - the units for this variable, or "-" or blank
622if this variable is unitless.</p></li></ul><ul><li><p>'Scale' (float) - the scale factor for computing the true value of this
623variable. Please see the CoastWatch documentation for more
624information.</p></li></ul><ul><li><p>'Offset' (float) - the offset for computing the true value of this
625variable. Please see the CoastWatch documentation for more
626information.</p></li></ul><ul><li><p>'Nav offset y' (float) - the shift, in pixels, that has been applied to the
627variable's image in the north/south direction to georectify it.
628North is positive.</p></li></ul><ul><li><p>'Nav offset x' (float) - the shift, in pixels, that has been applied to the
629variable's image in the east/west direction to georectify it. East
630is positive.</p></li></ul><p>For more information on Python syntax, please see the <a href="http://www.python.org/doc/">Python
631documentation</a>.</p></td></tr><tr><td class="info">{outputMaskRasterPythonExpression}</td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
632output raster that shows the pixels of the input image that were
633masked prior to executing the Cayula-Cornillon algorithm. If an
634expression is not provided, this raster will not be created.</p><p>The raster will contain 8-bit integers and have the same dimensions as
635the input image. The value 1 indicates that the corresponding pixel of
636the input image was masked; 0 indicates the pixel was not masked.</p><p>Please see the documentation for the Output Fronts Raster Python
637Expression parameter for more information about writing the Python
638expression.</p></td></tr><tr><td class="info">{outputFilteredImageRasterPythonExpression}</td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
639output raster that shows the median-filtered input image. If an
640expression is not provided, this raster will not be created.</p><p>The raster will have the same data type and dimensions as the input
641image (usually 16-bit signed integers). Only the non-masked cells are
642filtered and may change from the values in the input image. Masked
643cells are not filtered and remain unchanged. If median filtering was
644not performed, the entire filtered image will be identical to the
645input image.</p><p>Even though masked cells appear in the filtered image, they are not
646considered in the selection of median values for nearby non-masked
647cells. Only non-masked cells are considered in the selection of median
648values.</p><p>Please see the documentation for the Output Fronts Raster Python
649Expression parameter for more information about writing the Python
650expression.</p></td></tr><tr><td class="info">{outputCandidateCountsRasterPythonExpression}</td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
651output raster that indicates how many times the corresponding pixels
652of the input image were candidates for containing fronts, i.e. the
653number of times the pixels appeared in histogram windows that had a
654sufficiently large number of non-masked pixels to proceed with the
655histogramming step of the Cayula-Cornillon algorithm. If an expression
656is not provided, this raster will not be created.</p><p>The raster will contain 16-bit signed integers and have the same
657dimensions as the input image. Because the histogram window stride is
658typically less than the window size, successive histogram windows
659typically overlap, causing many non-masked pixels to have candidate
660counts greater than 1. Masked pixels can never be candidates for
661containing a front and will be marked as NoData.</p><p>Please see the documentation for the Output Fronts Raster Python
662Expression parameter for more information about writing the Python
663expression.</p></td></tr><tr><td class="info">{outputFrontCountsRasterPythonExpression}</td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
664output raster indicates how many times fronts were detected at the
665corresponding pixels of the input image. If an expression is not
666provided, this raster will not be created.</p><p>The raster will contain 16-bit signed integers and have the same
667dimensions as the input image. The value will range from 0 (the input
668image pixel never contained a front) to the candidate count value for
669the pixel (it always contained a front in every histogram window that
670contained it). Masked pixels can never be candidates for containing a
671front and will be marked as NoData.</p><p>Please see the documentation for the Output Fronts Raster Python
672Expression parameter for more information about writing the Python
673expression.</p></td></tr><tr><td class="info">{outputWindowStatusCodesRasterPythonExpression}</td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
674output raster that indicates the result of the algorithm for the
675histogram window centered on the pixel. You can use this image to
676diagnose why the algorithm did not find fronts in a particular region
677of your image.</p><p>The raster will contain 8-bit signed integers and have the same
678dimensions as the input image. The pixel values will be one of these
679code numbers:</p><ul><li><p>Code 0 - The algorithm was not executed for the window because the
680histogram window stride was greater than 1, causing the algorithm to
681skip over this window.</p></li></ul><ul><li><p>Code 1 - The proportion of the window's pixels that had data was
682found to be too small. This typically occurs when the window occurs
683in a region where many of the pixels are masked due to land, clouds,
684or insufficient satellite coverage.</p></li></ul><ul><li><p>Code 2 - After the histogram algorithm optimally separated the
685window's pixels into two populations, the proportion of pixels
686allocated to the smaller population was found to be too small. This
687can occur when a front occurs in the window, but the window is not
688centered on the front, causing it to contain a disproportionate
689number of pixels from one population. This is usually not a problem.
690As long as the histogram window stride is sufficiently small, the
691histogram window will eventually pass over the front and proceed to
692the next step of the algorithm.</p></li></ul><ul><li><p>Code 3 - After the histogram algorithm optimally separated the
693window's pixels into two populations, the difference between the
694mean values of the two populations was found to be too small. This
695typically happens when the window does not contain a front or when
696the 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
697window's pixels into two populations, the criterion function that
698was calculated was found to be too small (the criterion function is
699theta(Topt) described on pages 71-72 of the 1992 paper). This means
700that the two populations are not sufficiently bimodal to indicate
701that a front exists in the window.</p></li></ul><ul><li><p>Code 5 - The window was found to have two populations that were
702sufficiently proportional, different in their means, and bimodal,
703but the cohesion of one or the other population was insufficient (as
704described by equations 19 and 20 in the 1992 paper). This indicates
705that the cells of the two populations are spatially intermixed like
706a checkerboard, rather than being spatially separate, as occurs when
707a front is present.</p></li></ul><ul><li><p>Code 6 - The window was found to have two populations that were
708sufficiently proportional, different in their means, and bimodal,
709and each population was found to be sufficiently cohesive, but the
710cohesion of the two populations together was insufficient (as
711described by equation 21 of the 1992 paper). As with code 5, this
712indicates that the cells of the two populations are spatially
713intermixed like a checkerboard, rather than being spatially
714separate, 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
715classified as containing a front.</p></li></ul><p>When the width and height of histogram window is an even number, the
716center pixel is the one to the lower right of the exact center of the
717window, which falls at the intersection of four pixels. For example,
718in a 6x6 window, the center pixel is the fourth from the left and
719fourth from the top.
720Please see the documentation for the Output Fronts Raster Python
721Expression parameter for more information about writing the Python
722expression.</p></td></tr><tr><td class="info">{outputWindowStatusValuesRasterPythonExpression}</td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
723output raster that you can use in conjunction with the window status
724codes when diagnosing the results of the algorithm.</p><p>The raster will contain 32-bit floating point numbers and have the
725same dimensions as the input image. The value of each pixel depends on
726the window 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
727that 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
728the window's two populations.</p></li></ul><ul><li><p>Code 4 - The pixel value is the criterion function that was
729calculated for the window.</p></li></ul><ul><li><p>Code 5 - The pixel value is the cohesion of the window's population
730that was found to be insufficiently cohesive. If both populations
731were insufficiently cohesive, it is the cohesion of the "cold"
732population.</p></li></ul><ul><li><p>Code 6 - The pixel value is the cohesion of the window's two
733populations together.</p></li></ul><p>By examining the pixel values, you can determine how to adjust the
734algorithm's parameters to cause more or fewer windows to pass the
735algorithm's tests, increasing or decreasing the number of fronts
736identified in the image. You should only adjust the parameters if you
737feel comfortable deviating from their published values.
738Please see the documentation for the Output Fronts Raster Python
739Expression parameter for more information about writing the Python
740expression.</p></td></tr><tr><td class="info">{modulesToImport;modulesToImport...}</td><td class="info" align="left"><p>Python modules to import prior to evaluating the expression. If
741you need to access Python functions or classes that are provided by a
742module rather than being built-in to the interpreter, list the module
743here. For example, to be able to use the datetime class in your
744expression, list the datetime module here. In your expression, you
745must refer to the class using its fully-qualified name,
746datetime.datetime.</p></td></tr><tr><td class="info">{skipExisting}</td><td class="info" align="left"><p>If True, conversion will be skipped for output rasters that already exist.</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">CoastWatchAVHRRFindCoastWatchFilesAndFindFrontsAsArcGISRasters_GeoEco (inputDirectory, outputWorkspace, wildcard, searchTree, minSize, maxSize, minDateCreated, maxDateCreated, minDateModified, maxDateModified, variables, regionCodes, satellites, minImageDate, maxImageDate, minDayOfYear, maxDayOfYear, sceneTimes, cloudVariable, 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, projectedCoordinateSystem, geographicTransformation, resamplingTechnique, projectedCellSize, registrationPoint, clippingRectangle, buildPyramids, outputFrontsRasterPythonExpression, outputMaskRasterPythonExpression, outputFilteredImageRasterPythonExpression, outputCandidateCountsRasterPythonExpression, outputFrontCountsRasterPythonExpression, outputWindowStatusCodesRasterPythonExpression, outputWindowStatusValuesRasterPythonExpression, modulesToImport, skipExisting) <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">Directory to search (Required) </td><td class="info" align="left"><p>Directory to search.</p></td></tr><tr><td class="info">Output workspace (Required) </td><td class="info" align="left"><p>Workspace to receive the ArcGIS rasters.</p></td></tr><tr><td class="info">Wildcard expression (Optional) </td><td class="info" align="left"><p>UNIX-style "glob" wildcard expression specifying the CoastWatch
747files to find.</p><p>The glob syntax supports the following patterns:</p><ul><li><p>? - matches any single character</p></li></ul><ul><li><p>* - matches zero or more characters</p></li></ul><ul><li><p>[seq] - matches any single character in <i>seq</i></p></li></ul><ul><li><p>[!seq] - matches any single character not in <i>seq</i></p></li></ul><p><i>seq</i> is one or more characters, such as abc. You may specify
748character ranges using a dash. For example, a-z0-9 specifies all of
749the characters in the English alphabet and the decimal digits 0
750through 9.</p><p>You may specify subdirectories in the glob expression. For example,
751the expression CoastWatch*/2006* will find all files beginning with
7522006 that are contained in directories beginning with CoastWatch.</p><p>The operating system determines whether / or \ is used as the
753directory separator. On Windows, both will work. On most flavors of
754UNIX, / must be used.</p><p>The operating system determines if matching is case sensitive. On
755Windows, matching is case-insensitive. On most flavors of UNIX,
756matching is case-sensitive.</p><p>It is ok if your expression matches files that are not CoastWatch
757files. For example, the expression *.hdf might match some
758non-CoastWatch HDF files. These files will be ignored.</p></td></tr><tr><td class="info">Search directory tree (Optional) </td><td class="info" align="left"><p>If True, subdirectories will be searched.</p></td></tr><tr><td class="info">Minimum size (Optional) </td><td class="info" align="left"><p>Minimum size, in bytes, of files to find. If provided, only files
759that are this size or larger will be found.</p></td></tr><tr><td class="info">Maximum size (Optional) </td><td class="info" align="left"><p>Maximum size, in bytes, of files to find. If provided, only files
760that are this size or smaller will be found.</p></td></tr><tr><td class="info">Minimum creation date (Optional) </td><td class="info" align="left"><p>Minimum creation date, in the local time zone, of the files to
761find, as reported by the operating system. If provided, only files
762that were created on or after this date will be found. You may provide
763a date with or without a time. If you do not provide a time, it is
764assumed to be midnight.</p></td></tr><tr><td class="info">Maximum creation date (Optional) </td><td class="info" align="left"><p>Maximum creation date, in the local time zone, of the files to
765find, as reported by the operating system. If provided, only files
766that were created on or before this date will be found. You may
767provide a date with or without a time. If you do not provide a time,
768it is assumed to be midnight.</p></td></tr><tr><td class="info">Minimum modification date (Optional) </td><td class="info" align="left"><p>Minimum modification date, in the local time zone, of the files to
769find, as reported by the operating system. If provided, only files
770that were modified on or after this date will be found. You may
771provide a date with or without a time. If you do not provide a time,
772it is assumed to be midnight.</p></td></tr><tr><td class="info">Maximum modification date (Optional) </td><td class="info" align="left"><p>Maximum modification date, in the local time zone, of the files to
773find, as reported by the operating system. If provided, only files
774that were modified on or before this date will be found. You may
775provide a date with or without a time. If you do not provide a time,
776it is assumed to be midnight.</p></td></tr><tr><td class="info">CoastWatch variables (Optional) </td><td class="info" align="left"><p>CoastWatch variables to find in the files that are found. Each
777variable corresponds to an image in the file. If any variables are
778provided, only the images for those variables will be found in the
779files. If none are provided, all images in the files will be found.</p><p>At the time of this writing, the CoastWatch program was known to have
780published files with these variables:</p><dl><dt></dt><dd><pre>avhrr_ch1
781avhrr_ch2
782avhrr_ch3
783avhrr_ch3a
784avhrr_ch4
785avhrr_ch5
786cloud
787cloudx
788graphics
789sst
790rel_azimuth
791sat_zenith
792sun_zenith</pre></dd></dl><p>Please see the CoastWatch documentation for more information about
793these variables. In general, most users are interested in the "sst"
794variable, which is the estimated sea surface temperature, and the
795"cloud" variable, which is a bit mask indicating which cloud tests
796failed for that pixel. A value of 0 for the cloud variable indicates
797that all cloud tests passed and CoastWatch has high confidence in the
798validity of the SST value for that pixel.</p></td></tr><tr><td class="info">CoastWatch region codes (Optional) </td><td class="info" align="left"><p>CoastWatch region codes for the files to find. If any regions are
799provided, only files matching those regions will be found. If none are
800provided, all files will be found.</p><p>This function finds the region codes by examining the CoastWatch
801metadata inside the files, not be examining the file name. Thus it
802will work properly with older CoastWatch files that do not include the
803region in the file name.</p><p>Because the CoastWatch metadata does not include the region code
804explicitly, it must be inferred from the other image metadata. The
805current implementation of this function recognizes the following
806regions:</p><dl><dt></dt><dd><pre>aa - Alaska Sitka
807ax - Alaska South
808gb - Great Barrier Reef
809ay - Alaska West
810az - Alaska North
811ce - Caribbean East
812cw - Caribbean West
813er - East Coast North
814gr - Great Lakes
815hr - Hawaii
816mr - Gulf of Mexico
817sb - East Coast Bermuda
818sl - Great Salt Lake
819sr - East Coast South
820wa - West Coast Acapulco
821wj - West Coast Baja
822wn - West Coast North
823ws - West Coast South
824uk - the CoastWatch region is unknown (the image coordinates were not recognized by this tool)</pre></dd></dl><p>These regions were taken from the <a href="http://www2.ncdc.noaa.gov/docs/klm/html/c9/sec9-5.htm">NOAA KLM User's Guide Section 9.5</a> amended
825November 7, 2005. If a file is not for one of these regions, it will
826only be found if you do not specify any region codes. If you would
827like more region codes added to this tool, please contact the
828author.</p></td></tr><tr><td class="info">Satellites (Optional) </td><td class="info" align="left"><p>Satellites for the files to find. If any satellites are provided,
829only files that contain data from these satellites will be found. If
830none are provided, all files will be found.</p><p>At the time of this writing, the CoastWatch program was known to have
831published data from the following satellites:</p><dl><dt></dt><dd><pre>NOAA-12
832NOAA-14
833NOAA-15
834NOAA-16
835NOAA-17
836NOAA-18</pre></dd></dl></td></tr><tr><td class="info">Minimum image date (Optional) </td><td class="info" align="left"><p>Minimum image date, in UTC, for the files to find. If provided,
837only files that contain images taken on or after this date will be
838found. You may provide a date with or without a time. If you do not
839provide a time, it is assumed to be midnight.</p></td></tr><tr><td class="info">Maximum image date (Optional) </td><td class="info" align="left"><p>Maximum image date, in UTC, for the files to find. If provided,
840only files that contain images taken on or before this date will be
841found. You may provide a date with or without a time. If you do not
842provide a time, it is assumed to be midnight.</p></td></tr><tr><td class="info">Minimum image day of the year (Optional) </td><td class="info" align="left"><p>Minimum image day of the year, in UTC, for the for the files to
843find. If provided, only files that contain images taken on or after
844this day of the year will be found. The first day of the year is
845always 1, and the last day of the year is 365 during non-leap years
846and 366 during leap years.</p></td></tr><tr><td class="info">Maximum image day of the year (Optional) </td><td class="info" align="left"><p>Maximum image day of the year, in UTC, for the for the files to
847find. If provided, only files that contain images taken on or before
848this day of the year will be found. The first day of the year is
849always 1, and the last day of the year is 365 during non-leap years
850and 366 during leap years.</p></td></tr><tr><td class="info">Scene times (Optional) </td><td class="info" align="left"><p>CoastWatch "scene times" for the files to find. If provided, only
851files that contain images with these scene times will be found. If
852none are provided, all files will be found.</p><p>At the time of this writing, the CoastWatch program was known to have
853published data with the following scene times:</p><dl><dt></dt><dd><pre>day
854day/night
855night</pre></dd></dl><p>The scene time affects which cloud tests are used to generate the
856cloud mask image, among other things. Please consult the CoastWatch
857documentation for more information.</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 input
858CoastWatch file and use as the cloud mask (e.g. "cloud"). If the input
859file does not contain the cloud variable, cloud masking will not be
860performed for this file.</p><p>A limitation of this tool is that it can only extract the cloud
861variable from the input CoastWatch file; it cannot extract it from
862another file. This tool, therefore, cannot perform cloud masking on
863CWF files (except those that contain the cloud variable), because CWFs
864usually only contain one variable (e.g. sst) in addition to the
865graphics variable. If you need to perform cloud masking on CWF files,
866I recommend you convert the CWFs containing the cloud variable and the
867other variables of interest into a single HDF, and then process the
868HDF instead.</p><p>The current implementation of this tool was designed to operate on the
8698-bit CLAVR cloud mask represented by the "cloud" variable in
870CoastWatch files. It was not designed to operate on the "cloudx"
871variable, which is a new experimental CLAVR-x cloud mask available in
872recent CoastWatch HDF files. Nonetheless, if you wish to operate on
873the cloudx variable, you can specify it instead of cloud, and pick
874mask options appropriate for it instead.</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 input
875CoastWatch file and use as the solar zenith image (e.g. "sun_zenith").</p><p>A limitation of this tool is that it can only extract the solar zenith
876image from the input CoastWatch file; it cannot extract it from
877another file. Therefore, because this tool uses the solar zenith image
878when performing cloud masking on images with a day/night scene time,
879cannot perform cloud masking on CWF files, because CWFs usually only
880contain one variable (e.g. sst) in addition to the graphics variable.
881If you need to perform cloud masking on CWF files, I recommend you
882convert the CWFs containing the cloud, sun_zenith, and the other
883variables of interest into a single HDF, and then process the HDF
884instead.</p><p>According to CoastWatch researcher Peter Hollemans, when an image's
885scene time is "day", all pixels of the cloud mask use daytime cloud
886tests, and when it is "night", all pixels use nighttime cloud tests.
887When the scene time is "day/night", the decision of which tests to use
888is based on the solar zenith for that pixel.</p><p>According to Peter, for CoastWatch HDF files, pixels with a solar
889zenith &gt; 80 degrees use the nighttime cloud tests, and &lt;= 80 use the
890daytime cloud tests. This tool implements that logic. If you specify
891that cloud masking should be performed for a day/night image but no
892solar zenith image is available, this tool will assume that nighttime
893cloud tests were used for every pixel and a warning will be issued.
894For some reason, CoastWatch occasionally produces day/night images
895with no sun_zenith or other variables that are present in day images.
896My recollection is that Peter said it is safe to assume for these
897images that all pixels are nighttime.</p><p>The solar zenith image is ignored for scene times other than
898"day/night" (e.g. "day" or "night").</p><p>After some investigation, I find that the cloud mask pixels near the
89980 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
900to line up perfectly with the switch from daytime to nighttime cloud
901tests because the solar zenith angles are rounded to the nearest
9020.01 when written to the HDF file so a few pixels with values of say
90380.003 will get rounded to 80 even though they underwent processing
904with the nighttime cloud tests. Peter said, "I guess that's the flaw
905with storing angle data in HDF as scaled integers (that decision was
906mainly due to file size concerns)."</p></li></ul><ul><li><p>The switch between daytime tests and nighttime tests does not
907manifest as a clean transition in the cloud mask pixels. The daytime
908pixels do not seem to cleanly abut the nighttime pixels. Rather, a
909strip of pixels with strange values raggedly separates the two.
910Peter said: "The apparent unclean transition between day and night
911tests is related to neighborhood functions.  The uniformity tests
912use a 2x2 box of data values to the right and below a given value in
913the array to check for a condition being true, and the results of
914the uniformity test flag all pixels in the 2x2 box with the test
915results, regardless of whether all those pixels are day or
916nighttime.  Both day and nighttime have uniformity tests, so the
917results of uniformity tests at the day/night boundary are mixed. The
918mixing is generally acceptable because the results are intended to
919be used for SST masking not cloud type evaluation and the mixing
920only 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
921files. I examined a few of these from the North East region, and it
922appeared that they also switched from daytime to nighttime cloud tests
923in the middle of the image. But the NOAA distribution site
924(<a href="http://www.class.noaa.gov">http://www.class.noaa.gov</a>) only appeared to have CWFs containing the
925sun_zenith variable for dates after late 1999.</p><p>Peter mentioned that the cwangles program from the CoastWatch
926Utilities could compute the solar zenith, but the values would only be
927approximate beacuse the program assumed that all pixels were obtained
928by the sensor at the same moment in time. I tried this approach but
929the 80 degree solar zenith line did not line up with the line where
930the cloud tests appeared to switch. Because of this, I do not believe
931that day/night CWF files will be useable for users who want to use
932some cloud tests and ignore others.</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
933Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
934cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
935test is used for both CWF and HDF files, but for HDF files, the
936CLAVR-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
937how pixels are classified as daytime or nighttime, please see the
938documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
939value of 0 for a bit indicates that the cloud test passed, while 1
940indicates it failed. For more details about the cloud tests, please see the
941CoastWatch 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
942Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
943this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
944test is used for both CWF and HDF files, but for HDF files, the
945CLAVR-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
946how pixels are classified as daytime or nighttime, please see the
947documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
948value of 0 for a bit indicates that the cloud test passed, while 1
949indicates it failed. For more details about the cloud tests, please see the
950CoastWatch 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
951Cloud Test (bit 3 of the cloud mask) will be masked. If False, this
952cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, the same CLAVR-1
953test is used for both CWF and HDF files, but for HDF files, the
954CLAVR-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
955how pixels are classified as daytime or nighttime, please see the
956documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
957value of 0 for a bit indicates that the cloud test passed, while 1
958indicates it failed. For more details about the cloud tests, please see the
959CoastWatch 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
960Test (bit 4 of the cloud mask) will be masked. If False, this cloud
961test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
962how pixels are classified as daytime or nighttime, please see the
963documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
964value of 0 for a bit indicates that the cloud test passed, while 1
965indicates it failed. For more details about the cloud tests, please see the
966CoastWatch 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
967Test (bit 5 of the cloud mask) will be masked. If False, this cloud
968test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
969how pixels are classified as daytime or nighttime, please see the
970documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
971value of 0 for a bit indicates that the cloud test passed, while 1
972indicates it failed. For more details about the cloud tests, please see the
973CoastWatch 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
974Test (bit 6 of the cloud mask) will be masked. If False, this cloud
975test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
976how pixels are classified as daytime or nighttime, please see the
977documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
978value of 0 for a bit indicates that the cloud test passed, while 1
979indicates it failed. For more details about the cloud tests, please see the
980CoastWatch 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
981Cloud Test (bit 7 of the cloud mask) will be masked. If False, this
982cloud test will be ignored.</p><p>This parameter is ignored for nighttime pixels. For a discussion of
983how pixels are classified as daytime or nighttime, please see the
984documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
985value of 0 for a bit indicates that the cloud test passed, while 1
986indicates it failed. For more details about the cloud tests, please see the
987CoastWatch 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
988greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
989success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
990mask values are NOT intended to be interpreted as range, like a
991spectrum, where 0 represents "very clear" and 255 represents "very
992cloudy". Nevertheless, some users of this tool determined that for
993their study the best tradeoff between minimizing SST error and
994minimizing the number of pixels masked by clouds was obtained by
995masking all pixels where the cloud mask exceeded a certain value. This
996option was implemented specifically for those users and is not
997recommended for general use. If you do use this option, be sure to
998study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
999bits specified by the previous parameters, all of these parameters
1000will be effective. In other words, a cloudy pixel can be masked by
1001failing a specific cloud test, or by exceeding the minimum cloud mask
1002value, or both. .</p><p>This parameter is ignored for nighttime pixels. For a discussion of
1003how pixels are classified as daytime or nighttime, please see the
1004documentation for the cloud mask file parameter. For more information
1005about the cloud tests, please see the CoastWatch and CLAVR
1006documentation.</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
1007Cloud Test (bit 1 of the cloud mask) will be masked. If False, this
1008cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
1009pixels are classified as daytime or nighttime, please see the
1010documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
1011value of 0 for a bit indicates that the cloud test passed, while 1
1012indicates it failed. For more details about the cloud tests, please
1013see 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
1014Uniformity Test (bit 2 of the cloud mask) will be masked. If False,
1015this cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
1016pixels are classified as daytime or nighttime, please see the
1017documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
1018value of 0 for a bit indicates that the cloud test passed, while 1
1019indicates it failed. For more details about the cloud tests, please
1020see 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
1021Stratus Test (bit 3 of the cloud mask) will be masked. If False, this
1022cloud test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
1023pixels are classified as daytime or nighttime, please see the
1024documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
1025value of 0 for a bit indicates that the cloud test passed, while 1
1026indicates it failed. For more details about the cloud tests, please
1027see 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
1028Test (bit 4 of the cloud mask) will be masked. If False, this cloud
1029test will be ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
1030pixels are classified as daytime or nighttime, please see the
1031documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
1032value of 0 for a bit indicates that the cloud test passed, while 1
1033indicates it failed. For more details about the cloud tests, please
1034see 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
10355 of the cloud mask) will be masked. If False, this cloud test will be
1036ignored.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
1037pixels are classified as daytime or nighttime, please see the
1038documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
1039value of 0 for a bit indicates that the cloud test passed, while 1
1040indicates it failed. For more details about the cloud tests, please
1041see 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
1042Albedo Test (bit 6 of the cloud mask) will be masked. If False, this
1043cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
1044used for CoastWatch CWF files and thus bit 6 will always be 0,
1045indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
1046pixels are classified as daytime or nighttime, please see the
1047documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
1048value of 0 for a bit indicates that the cloud test passed, while 1
1049indicates it failed. For more details about the cloud tests, please
1050see 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
1051Albedo Uniformity Test (bit 7 of the cloud mask) will be masked. If
1052False, this cloud test will be ignored.</p><p>According to CoastWatch researcher Peter Hollemans, this test was not
1053used for CoastWatch CWF files and thus bit 7 will always be 0,
1054indicating success, for CWF nighttime cloud mask pixels.</p><p>This parameter is ignored for daytime pixels. For a discussion of how
1055pixels are classified as daytime or nighttime, please see the
1056documentation for the cloud mask file parameter.</p><p>In CoastWatch cloud masks, bit 1 is the least significant bit, and a
1057value of 0 for a bit indicates that the cloud test passed, while 1
1058indicates it failed. For more details about the cloud tests, please
1059see 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
1060greater than this value will be masked.</p><p>The CoastWatch cloud mask is a bitmask, where each bit represents the
1061success (0) or failure (1) of a given CLAVR cloud test. Thus the cloud
1062mask values are NOT intended to be interpreted as range, like a
1063spectrum, where 0 represents "very clear" and 255 represents "very
1064cloudy". Nevertheless, some users of this tool determined that for
1065their study the best tradeoff between minimizing SST error and
1066minimizing the number of pixels masked by clouds was obtained by
1067masking all pixels where the cloud mask exceeded a certain value. This
1068option was implemented specifically for those users and is not
1069recommended for general use. If you do use this option, be sure to
1070study many cloud mask images before selecting a value.</p><p>If a value is provided both for this parameter and for the cloud test
1071bits specified by the previous parameters, all of these parameters
1072will be effective. In other words, a cloudy pixel can be masked by
1073failing a specific cloud test, or by exceeding the minimum cloud mask
1074value, or both. .</p><p>This parameter is ignored for daytime pixels. For a discussion of
1075how pixels are classified as daytime or nighttime, please see the
1076documentation for the cloud mask file parameter. For more information
1077about the cloud tests, please see the CoastWatch and CLAVR
1078documentation.</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
1079for that pixel to be masked.</p><p>You can use this option to ignore isolated cloudy pixels that are not
1080clumped together. For example, if you specify the value 1, cloudy
1081pixels will be ignored and not used in the masking process unless at
1082least one of their eight neighbors is also cloudy.</p><p>If a neighbor is not cloudy but it is masked for some other reason
1083(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
1084image prior to running the histogram analysis step of the
1085Cayula-Cornillon algorithm. If not provided, median filtering will not
1086be performed.</p><p>If you provide a value, it must be an odd integer greater than or
1087equal to 3. The filter window is square and advances across the image
10881 pixel at a time. The center pixel, if it is not masked, is replaced
1089with the median value of the non-masked pixels in the surrounding
1090window. All masks are applied before the median filter is executed.</p><p>Median filtering is a traditional first step for certain classes of
1091edge detection algorithms. The original Cayula-Cornillon paper used a
1092window 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
1093algorithm.</p><p>The window is square. The original paper used a window size of 32.
1094Although the algorithm is claimed to obtain similar results regardless
1095of window size, I have noticed that some fronts may only be detected
1096by using a smaller window size such as 16. I highly recommend you read
1097the paper carefully before experimenting with different window
1098sizes.</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
1099of the Cayula-Cornillon algorithm.</p><p>The original paper used a 32x32 window and a stride of 16, to minimize
1100the CPU time required to execute the algorithm. Cutting the stride in
1101half increases the CPU time by a factor of about four. For example, a
1102stride of 1 requires about 256 times more CPU time than a stride of
110316.</p><p>In my experience, smaller stride values identify more fronts, and the
1104resulting fronts are longer and thicker. If you have a powerful
1105computer, want to find more fronts, and are comfortable deviating from
1106the published method, you can use a smaller value. If you do this, you
1107may want to apply a thinning algorithm after running this tool, to
1108reduce 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
1109be masked for the algorithm to proceed with histogram analysis on that
1110window.</p><p>For example, if the value 0.75 is used and the histogram window is
111120x20, at least 300 out of the 400 pixels must not be masked for
1112analysis to proceed on that window. If more than 100 pixels are
1113masked, the algorithm discards the current window, advances to next
1114one, 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
1115non-masked pixels in the window have a bimodal distribution, it then
1116selects the value that optimally separates them into two populations.
1117As described on page 73 of the 1992 paper, if the proportion of
1118non-masked pixels allocated to the smaller population is smaller than
11190.25, the subsequent statistical tests will not be accurate. In this
1120case, and the algorithm discards the current window, advances to next
1121one, and starts over.</p><p>I do not recommend selecting a value other than 0.25 unless you
1122understand 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
1123populations, it computes the means of the two populations. If the
1124means differ by less than this parameter value, the algorithm discards
1125the current window, advances to next one, and starts over.</p><p>The original intent of this parameter is obscure. The Fortran code I
1126obtained from Dave Ullman used the value 3 and contained the
1127explanation "a temperature difference of less than three digital
1128counts between the 2 populations is likely to be a result of the
1129discrete nature of the data."</p><p>You can use this parameter to eliminate weak fronts by selecting a
1130value that corresponds to a desired minimum mean temperature
1131difference. For example, the NOAA NODC 4km AVHRR Pathfinder Project
1132(<a href="http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/">http://www.nodc.noaa.gov/SatelliteData/pathfinder4km/</a>) publishes SST
1133data as 16-bit unsigned integers where each integer represents 0.075
1134degrees. To eliminate fronts where the mean temperature difference is
1135less than 0.5 degrees, set this parameter to 0.5 / 0.075 =
11366.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
113771-72 of the 1992 paper.</p><p>The criterion function is used to determine whether the histogram
1138window contains a bimodal distribution. Cayula and Cornillon performed
1139an extensive analysis to determine that the value 0.76 produced
1140optimal results for the SST data they worked with. Selecting a smaller
1141value will allow windows with more homogenous, less bimodal
1142distributions to be considered by the algorithm. If the window yields
1143a value less than this parameter, the algorithm discards the current
1144window, advances to next one, and starts over.</p><p>I do not recommend selecting a value other than 0.76 unless you
1145understand 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
1146distribution of values, the cohesion algorithm is executed to check
1147whether the pixels of the two populations are sufficiently spatially
1148separated. High values indicate that they are separated, suggesting
1149that two distinct populations (e.g. water masses) are present in the
1150window. Low values indicate the populations are all mixed up, like a
1151checkerboard, and suggest that the pattern results from clouds, noise
1152or other random processes.</p><p>The first part of the cohesion algorithm checks the cohesion of each
1153population by itself (equations 19 and 20 in the 1992 paper). As
1154described in Appendix B of the 1992 paper, the optimal cohesion
1155coefficients depend on the size of the histogram window. Cayula and
1156Cornillon used the value 0.90 for a 32x32 window, which was
1157calculated:</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
1158populations together (equation 21 in the 1992 paper). As described in
1159Appendix B of the 1992 paper, the optimal cohesion coefficients depend
1160on the size of the histogram window. Cayula and Cornillon used the
1161value 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
1162designed to run in parallel on machines that have multiple processors.
1163To maximize utilization of your machine's processors and shorten the
1164time required to execute the algorithms, set the number of threads to
1165the number of processors you wish to utilize. Do not set the number of
1166threads to more than the number of processors you have; this will
1167reduce performance.</p><p>For this option to have any effect, your version of Python must
1168include the threading module. Most recent versions of Python include
1169this module.</p></td></tr><tr><td class="info">Project to new coordinate system (Optional) </td><td class="info" align="left"><p>New coordinate system to project the output raster to.</p><p>The raster may only be projected to a new coordinate system if the
1170original projection is defined. An error will be raised if you specify
1171a new coordinate system without defining the original coordinate
1172system.</p><p>The ArcGIS Project Raster tool is used to perform the projection. The
1173documentation for that tool recommends that you also specify a cell
1174size for the new coordinate system.</p><p>I have noticed that for certain coordinate systems the ArcGIS 9.2
1175Project Raster tool seems to clip the projected raster to an arbitrary
1176extent that is too small. For example, when projecting a global MODIS
1177Aqua 4 km chlorophyll image in geographic coordinates to
1178Lambert_Azimuthal_Equal_Area with central meridian of -60 and latitude
1179of origin of -63, the resulting image is clipped to show only
1180one-quarter of the planet. This problem does not occur when Project
1181Raster is invoked interactively from the ArcGIS user interface; it
1182only occurs when the tool is invoked programmatically (the
1183ProjectRaster_management method of the geoprocessor). Thus you may
1184not see it when you use Project Raster yourself but it may happen when
1185you use MGET tools that invoke Project Raster as part of their
1186geoprocessing operations.</p><p>If you encounter this problem, you can work around it like this:</p><ul><li><p>First, run this tool without specifying a new coordinate system, to
1187obtain the output raster in the original coordinate system.</p></li></ul><ul><li><p>In ArcCatalog, use the Project Raster tool to project the raster to
1188the new coordinate system. Verify that the entire raster is present,
1189that it has not been clipped to an extent that is too small.</p></li></ul><ul><li><p>In ArcCatalog, look up the extent of the projected raster by
1190right-clicking on it in the catalog tree, selecting Properties, and
1191scrolling down to Extent.</p></li></ul><ul><li><p>Now, before running the MGET tool that projects the raster, set the
1192Extent environment setting to the values you looked up. If you are
1193invoking the MGET tool interactively from ArcCatalog or ArcMap,
1194click the Environments button on the tool's dialog box, open General
1195Settings, change the Extent drop-down to "As Specified Below", and
1196type in the values you looked up. If you're invoking it from a
1197geoprocessing model, right-click on the tool in the model, select
1198Make Variable, From Environment, General Settings, Extent. This will
1199place Extent as a variable in your model, attached to the MGET tool.
1200Open the Extent variable, change it to "As Specified Below" and type
1201in the values you looked up. If you're invoking the MGET tool
1202programmatically, you must set the Extent property of the
1203geoprocessor to the values you looked up. Please see the ArcGIS
1204documentation for more information about this and Environment
1205settings in general.</p></li></ul><ul><li><p>Run the MGET tool. The extent of the output raster should now be the
1206proper size.</p></li></ul></td></tr><tr><td class="info">Geographic transformation (Optional) </td><td class="info" align="left"><p>A transformation method used to convert between the original
1207coordinate system and the new coordinate system.</p><p>This parameter is a new option introduced by ArcGIS 9.2. You must have
1208ArcGIS 9.2 to use this parameter.</p><p>This parameter is only needed when you specify that the raster should
1209be projected to a new coordinate system and that new system uses a
1210different datum than the original coordinate system, or there is some
1211other difference between the two coordinate systems that requires a
1212transformation. To determine if a transformation is needed, I
1213recommend the following procedure:</p><ul><li><p>First, run this tool without specifying a new coordinate system, to
1214obtain the output raster in the original coordinate system.</p></li></ul><ul><li><p>Next, use the ArcGIS 9.2 Project Raster tool on the output raster to
1215project it to the desired coordinate system. If a geographic
1216transformation is needed, that tool will prompt you for one. Write
1217down the exact name of the transformation you used.</p></li></ul><ul><li><p>Finally, if a transformation was needed, type in the exact name into
1218this tool, rerun it, and verify that the output raster was projected
1219as you desired.</p></li></ul></td></tr><tr><td class="info">Projection resampling technique (Optional) </td><td class="info" align="left"><p>The resampling algorithm to be used to project the original raster
1220to a new coordinate system. The ArcGIS Project Raster tool is used to
1221perform the projection and accepts the following values:</p><ul><li><p>NEAREST - nearest neighbor interpolation</p></li></ul><ul><li><p>BILINEAR - bilinear interpolation</p></li></ul><ul><li><p>CUBIC - cubic convolution</p></li></ul><p>You must specify one of these algorithms to project to a new
1222coordinate system. An error will be raised if you specify a new
1223coordinate system without selecting an algorithm.</p></td></tr><tr><td class="info">Cell size for projected coordinate system (Optional) </td><td class="info" align="left"><p>The cell size of the projected coordinate system. Although this
1224parameter is optional, to receive the best results, the ArcGIS
1225documentation recommends you always specify it when projecting to a
1226new coordinate system.</p></td></tr><tr><td class="info">Registration point for projected coordinate system (Optional) </td><td class="info" align="left"><p>The x and y coordinates (in the output space) used for pixel
1227alignment.</p><p>This parameter is a new option introduced by ArcGIS 9.2. You must have
1228ArcGIS 9.2 to use this parameter. It is ignored if you do not specify
1229that the raster should be projected to a new coordinate system.</p></td></tr><tr><td class="info">Clip to rectangle (Optional) </td><td class="info" align="left"><p>Rectangle to which the raster should be clipped.</p><p>If a projected coordinate system was specified, the clipping is
1230performed after the projection and the rectangle's coordinates should
1231be specified in the new coordinate system. If no projected coordinate
1232system was specified, the coordinates should be specified in the
1233original coordinate system.</p><p>The ArcGIS Clip tool is used to perfom the clip. The clipping
1234rectangle must be passed to this tool as a string of four numbers
1235separated by spaces. The ArcGIS user interface automatically formats
1236the string properly; when invoking this tool from the ArcGIS UI,
1237you need not worry about the format. But when invoking it
1238programmatically, take care to provide a properly-formatted string.
1239The numbers are ordered LEFT, BOTTOM, RIGHT, TOP. For example, if the
1240raster is in a geographic coordinate system, it may be clipped to 10
1241W, 15 S, 20 E, and 25 N with the string:</p><dl><dt></dt><dd><p>10 15 20 25</p></dd></dl><p>Integers or decimal numbers may be provided.</p></td></tr><tr><td class="info">Build pyramids (Optional) </td><td class="info" align="left"><p>If True, pyramids will be built for the output raster, which will
1242improve its display speed in the ArcGIS user interface. This is the
1243last step performed in post-conversion processing.</p></td></tr><tr><td class="info">Output fronts raster Python expression (Optional) </td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
1244output raster that shows the fronts detected in the input image.</p><p>The raster will have the same dimensions as the input image and
1245contain 8-bit signed integers with three possible values:</p><ul><li><p>NoData - the pixel was never a candidate for containing a front,
1246either because it was masked or because because it did not appear in
1247any histogram windows that had sufficiently large numbers of
1248non-masked pixels to proceed with the histogramming step of the
1249Cayula-Cornillon algorithm.</p></li></ul><ul><li><p>0 - The pixel was a candidate for containing a front -- it was not
1250masked and it appeared in at least one histogram window with a
1251sufficient number of non-masked pixels to proceed with the
1252histogramming step -- but it was never marked as a front pixel in
1253any 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
1254as a front pixel in at least one of the histogram windows it
1255appeared in.</p></li></ul><p>The expression may be any Python statement appropriate for passing to
1256the eval function and must return a Unicode string. The expression may
1257reference the following variables:</p><ul><li><p>directoryToSearch - the value provided for the directory to search
1258parameter</p></li></ul><ul><li><p>outputWorkspace - the value provided for the output
1259workspace parameter</p></li></ul><ul><li><p>inputFile - the absolute path to the input CoastWatch file</p></li></ul><ul><li><p>metadata - a dictionary of CoastWatch metadata about the file and
1260variable (see below)</p></li></ul><p>The default expression:</p><dl><dt></dt><dd><pre>os.path.join(outputWorkspace, metadata['Region code'], metadata['Satellite'], 'fronts', metadata['Image datetime'].strftime('%Y'), metadata['Image datetime'].strftime('fr%Y%j%H%M'))</pre></dd></dl><p>stores the raster in the output workspace in a subdirectory structure
1261based on the CoastWatch region code, satellite and so on. For example,
1262if fronts were detected in the file 2007_066_0459_n17_wn.hdf and the
1263output workspace was C:CoastWatch, the output raster path would be:</p><dl><dt></dt><dd><pre>C:\CoastWatch\wn\noaa-17\fronts\2007\fr20070660459</pre></dd></dl><p>The following keys are available in the metadata dictionary. The
1264Python data type of the value for the key appears in parentheses.
1265Remember that if the value is not a string, you must convert it to one
1266before you can use it in Python's os.path function:</p><ul><li><p>'Variable' (str) - Full name of the CoastWatch variable that was
1267extracted from the file for processing. At the time of this writing,
1268the CoastWatch program was known to have published files with these
1269variables:</p><dl><dt></dt><dd><pre>avhrr_ch1
1270avhrr_ch2
1271avhrr_ch3
1272avhrr_ch3a
1273avhrr_ch4
1274avhrr_ch5
1275cloud
1276cloudx
1277graphics
1278sst
1279rel_azimuth
1280sat_zenith
1281sun_zenith</pre></dd></dl></li></ul><ul><li><p>'Abbreviation' (str) - 2 character abbreviation for the CoastWatch
1282variable that was extracted from the file for processing. These
1283abbreviations were invented by the author of this tool, not by the
1284CoastWatch program. For the variables mentioned above, the
1285abbreviations are:</p><dl><dt></dt><dd><pre>c1
1286c2
1287c3
1288ca
1289c4
1290c5
1291cl
1292gr
1293st
1294ra
1295sz
1296uz</pre></dd></dl></li></ul><ul><li><p>'Region code' (str) - 2 character CoastWatch region code. The
1297CoastWatch program assigns the region code, but because the file
1298metadata does not include it, the tool must infer it using
1299hard-coded rules that examine other metadata such as the image
1300coordinates. The tool recognizes the following regions, taken from
1301the <a href="http://www2.ncdc.noaa.gov/docs/klm/html/c9/sec9-5.htm">NOAA KLM User's Guide Section 9.5</a>
1302amended November 7, 2005:</p><dl><dt></dt><dd><pre>aa - Alaska Sitka
1303ax - Alaska South
1304gb - Great Barrier Reef
1305ay - Alaska West
1306az - Alaska North
1307ce - Caribbean East
1308cw - Caribbean West
1309er - East Coast North
1310gr - Great Lakes
1311hr - Hawaii
1312mr - Gulf of Mexico
1313sb - East Coast Bermuda
1314sl - Great Salt Lake
1315sr - East Coast South
1316wa - West Coast Acapulco
1317wj - West Coast Baja
1318wn - West Coast North
1319ws - West Coast South
1320uk - the CoastWatch region is unknown (the image coordinates were not recognized by this tool)</pre></dd></dl></li></ul><ul><li><p>'Satellite' (str) - satellite that took the image. At the time of
1321this writing, the CoastWatch program was known to have published
1322data from the following satellites:</p><dl><dt></dt><dd><pre>noaa-12
1323noaa-14
1324noaa-15
1325noaa-16
1326noaa-17
1327noaa-18</pre></dd></dl></li></ul><ul><li><p>'Sensor' (str) - sensor that took the image (e.g. "avhrr").</p></li></ul><ul><li><p>'Image datetime' (datetime.datetime) - date and time the image was
1328taken, in UTC.</p></li></ul><ul><li><p>'Image unix time' (int) - date and time the image was taken, in
1329"UNIX time" format. UNIX times are 32-bit signed integers that are
1330the number of seconds since 1970-01-01 00:00:00 UTC. The UNIX time
1331values produced by this tool do not include leap seconds; this tool
1332assumes that a regular year is 31536000 seconds and a leap year is
133331622400 seconds.</p></li></ul><ul><li><p>'Scene time' (str) - the CoastWatch "scene" time for image. At the
1334time of this writing, the CoastWatch program was known to have
1335published data with the following scene times:</p><dl><dt></dt><dd><pre>day
1336day/night
1337night</pre></dd></dl></li></ul><ul><li><p>'Projection type' (str) - projection type for the image (e.g.
1338"mapped").</p></li></ul><ul><li><p>'Map projection' (str) - map projection for the image (e.g.
1339"Mercator").</p></li></ul><ul><li><p>'Map affine a' (float) - the a coefficient for the map affine for the
1340file, in meters.</p></li></ul><ul><li><p>'Map affine b' (float) - the b coefficient for the map affine for the
1341file, in meters.</p></li></ul><ul><li><p>'Map affine c' (float) - the c coefficient for the map affine for the
1342file, in meters.</p></li></ul><ul><li><p>'Map affine d' (float) - the d coefficient for the map affine for the
1343file, in meters.</p></li></ul><ul><li><p>'Map affine e' (float) - the e coefficient for the map affine for the
1344file, in meters.</p></li></ul><ul><li><p>Map affine f' (float) - the f coefficient for the map affine for the
1345file, in meters.</p></li></ul><ul><li><p>'Spheroid' (str) - spheroid used for the image (e.g. "WGS 84").</p></li></ul><ul><li><p>'Origin' (str) - organization that produced the file (e.g.
1346"USDOC/NOAA/NESDIS CoastWatch").</p></li></ul><ul><li><p>Format' (str) - format version of the file (e.g.
1347"CoastWatch HDF version 3.4").</p></li></ul><ul><li><p>'Pixel width' (float) - the width of each pixel, in km. This should not
1348be used as the raster cell size. Please see the CoastWatch
1349documentation for more information.</p></li></ul><ul><li><p>'Pixel height' (float) - the height of each pixel, in km. This should not
1350be used as the raster cell size. Please see the CoastWatch
1351documentation for more information.</p></li></ul><ul><li><p>'Total width' (float) - the width of the image, in km. Please see the
1352CoastWatch documentation for more information.</p></li></ul><ul><li><p>'Total height' (float) - the height of the image, in km. Please see the
1353CoastWatch documentation for more information.</p></li></ul><ul><li><p>'Center y' (float) - the latitude, in decimal degrees, of the center of
1354the image.</p></li></ul><ul><li><p>'Center x' (float) - the longitude, in decimal degrees, of the center of
1355the image.</p></li></ul><ul><li><p>'Upper-left y' (float) - the latitude, in decimal degrees, of the upper
1356left corner of the image.</p></li></ul><ul><li><p>'Upper-left x' (float) - the longitude, in decimal degrees, of the
1357upper left corner of the image.</p></li></ul><ul><li><p>'Upper-right y' (float) - the latitude, in decimal degrees, of the upper
1358right corner of the image.</p></li></ul><ul><li><p>'Upper-right x' (float) - the longitude, in decimal degrees, of the
1359upper right corner of the image.</p></li></ul><ul><li><p>'Lower-left y' (float) - the latitude, in decimal degrees, of the lower
1360left corner of the image.</p></li></ul><ul><li><p>'Lower-left x' (float) - the longitude, in decimal degrees, of the
1361lower left corner of the image.</p></li></ul><ul><li><p>'Lower-right y' (float) - the latitude, in decimal degrees, of the lower
1362right corner of the image.</p></li></ul><ul><li><p>'Lower-right x' (float) - the longitude, in decimal degrees, of the
1363lower right corner of the image.</p></li></ul><ul><li><p>'Type' (str) - the Java data type of the variable (e.g. "short").</p></li></ul><ul><li><p>'Rows' (int) - the number of rows in the image of this variable.</p></li></ul><ul><li><p>'Columns' (int) - the number of columns in the image of this
1364variable.</p></li></ul><ul><li><p>'Units' (str) - the units for this variable, or "-" or blank
1365if this variable is unitless.</p></li></ul><ul><li><p>'Scale' (float) - the scale factor for computing the true value of this
1366variable. Please see the CoastWatch documentation for more
1367information.</p></li></ul><ul><li><p>'Offset' (float) - the offset for computing the true value of this
1368variable. Please see the CoastWatch documentation for more
1369information.</p></li></ul><ul><li><p>'Nav offset y' (float) - the shift, in pixels, that has been applied to the
1370variable's image in the north/south direction to georectify it.
1371North is positive.</p></li></ul><ul><li><p>'Nav offset x' (float) - the shift, in pixels, that has been applied to the
1372variable's image in the east/west direction to georectify it. East
1373is positive.</p></li></ul><p>For more information on Python syntax, please see the <a href="http://www.python.org/doc/">Python
1374documentation</a>.</p></td></tr><tr><td class="info">Output mask raster Python expression (Optional) </td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
1375output raster that shows the pixels of the input image that were
1376masked prior to executing the Cayula-Cornillon algorithm. If an
1377expression is not provided, this raster will not be created.</p><p>The raster will contain 8-bit integers and have the same dimensions as
1378the input image. The value 1 indicates that the corresponding pixel of
1379the input image was masked; 0 indicates the pixel was not masked.</p><p>Please see the documentation for the Output Fronts Raster Python
1380Expression parameter for more information about writing the Python
1381expression.</p></td></tr><tr><td class="info">Output median filtered image Python expression (Optional) </td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
1382output raster that shows the median-filtered input image. If an
1383expression is not provided, this raster will not be created.</p><p>The raster will have the same data type and dimensions as the input
1384image (usually 16-bit signed integers). Only the non-masked cells are
1385filtered and may change from the values in the input image. Masked
1386cells are not filtered and remain unchanged. If median filtering was
1387not performed, the entire filtered image will be identical to the
1388input image.</p><p>Even though masked cells appear in the filtered image, they are not
1389considered in the selection of median values for nearby non-masked
1390cells. Only non-masked cells are considered in the selection of median
1391values.</p><p>Please see the documentation for the Output Fronts Raster Python
1392Expression parameter for more information about writing the Python
1393expression.</p></td></tr><tr><td class="info">Output candidate counts raster Python expression (Optional) </td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
1394output raster that indicates how many times the corresponding pixels
1395of the input image were candidates for containing fronts, i.e. the
1396number of times the pixels appeared in histogram windows that had a
1397sufficiently large number of non-masked pixels to proceed with the
1398histogramming step of the Cayula-Cornillon algorithm. If an expression
1399is not provided, this raster will not be created.</p><p>The raster will contain 16-bit signed integers and have the same
1400dimensions as the input image. Because the histogram window stride is
1401typically less than the window size, successive histogram windows
1402typically overlap, causing many non-masked pixels to have candidate
1403counts greater than 1. Masked pixels can never be candidates for
1404containing a front and will be marked as NoData.</p><p>Please see the documentation for the Output Fronts Raster Python
1405Expression parameter for more information about writing the Python
1406expression.</p></td></tr><tr><td class="info">Output front counts raster Python expression (Optional) </td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
1407output raster indicates how many times fronts were detected at the
1408corresponding pixels of the input image. If an expression is not
1409provided, this raster will not be created.</p><p>The raster will contain 16-bit signed integers and have the same
1410dimensions as the input image. The value will range from 0 (the input
1411image pixel never contained a front) to the candidate count value for
1412the pixel (it always contained a front in every histogram window that
1413contained it). Masked pixels can never be candidates for containing a
1414front and will be marked as NoData.</p><p>Please see the documentation for the Output Fronts Raster Python
1415Expression parameter for more information about writing the Python
1416expression.</p></td></tr><tr><td class="info">Output window status codes raster Python expression (Optional) </td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
1417output raster that indicates the result of the algorithm for the
1418histogram window centered on the pixel. You can use this image to
1419diagnose why the algorithm did not find fronts in a particular region
1420of your image.</p><p>The raster will contain 8-bit signed integers and have the same
1421dimensions as the input image. The pixel values will be one of these
1422code numbers:</p><ul><li><p>Code 0 - The algorithm was not executed for the window because the
1423histogram window stride was greater than 1, causing the algorithm to
1424skip over this window.</p></li></ul><ul><li><p>Code 1 - The proportion of the window's pixels that had data was
1425found to be too small. This typically occurs when the window occurs
1426in a region where many of the pixels are masked due to land, clouds,
1427or insufficient satellite coverage.</p></li></ul><ul><li><p>Code 2 - After the histogram algorithm optimally separated the
1428window's pixels into two populations, the proportion of pixels
1429allocated to the smaller population was found to be too small. This
1430can occur when a front occurs in the window, but the window is not
1431centered on the front, causing it to contain a disproportionate
1432number of pixels from one population. This is usually not a problem.
1433As long as the histogram window stride is sufficiently small, the
1434histogram window will eventually pass over the front and proceed to
1435the next step of the algorithm.</p></li></ul><ul><li><p>Code 3 - After the histogram algorithm optimally separated the
1436window's pixels into two populations, the difference between the
1437mean values of the two populations was found to be too small. This
1438typically happens when the window does not contain a front or when
1439the 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
1440window's pixels into two populations, the criterion function that
1441was calculated was found to be too small (the criterion function is
1442theta(Topt) described on pages 71-72 of the 1992 paper). This means
1443that the two populations are not sufficiently bimodal to indicate
1444that a front exists in the window.</p></li></ul><ul><li><p>Code 5 - The window was found to have two populations that were
1445sufficiently proportional, different in their means, and bimodal,
1446but the cohesion of one or the other population was insufficient (as
1447described by equations 19 and 20 in the 1992 paper). This indicates
1448that the cells of the two populations are spatially intermixed like
1449a checkerboard, rather than being spatially separate, as occurs when
1450a front is present.</p></li></ul><ul><li><p>Code 6 - The window was found to have two populations that were
1451sufficiently proportional, different in their means, and bimodal,
1452and each population was found to be sufficiently cohesive, but the
1453cohesion of the two populations together was insufficient (as
1454described by equation 21 of the 1992 paper). As with code 5, this
1455indicates that the cells of the two populations are spatially
1456intermixed like a checkerboard, rather than being spatially
1457separate, 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
1458classified as containing a front.</p></li></ul><p>When the width and height of histogram window is an even number, the
1459center pixel is the one to the lower right of the exact center of the
1460window, which falls at the intersection of four pixels. For example,
1461in a 6x6 window, the center pixel is the fourth from the left and
1462fourth from the top.
1463Please see the documentation for the Output Fronts Raster Python
1464Expression parameter for more information about writing the Python
1465expression.</p></td></tr><tr><td class="info">Output window status values raster Python expression (Optional) </td><td class="info" align="left"><p>Python expression used to calculate the absolute path of the
1466output raster that you can use in conjunction with the window status
1467codes when diagnosing the results of the algorithm.</p><p>The raster will contain 32-bit floating point numbers and have the
1468same dimensions as the input image. The value of each pixel depends on
1469the window 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
1470that 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
1471the window's two populations.</p></li></ul><ul><li><p>Code 4 - The pixel value is the criterion function that was
1472calculated for the window.</p></li></ul><ul><li><p>Code 5 - The pixel value is the cohesion of the window's population
1473that was found to be insufficiently cohesive. If both populations
1474were insufficiently cohesive, it is the cohesion of the "cold"
1475population.</p></li></ul><ul><li><p>Code 6 - The pixel value is the cohesion of the window's two
1476populations together.</p></li></ul><p>By examining the pixel values, you can determine how to adjust the
1477algorithm's parameters to cause more or fewer windows to pass the
1478algorithm's tests, increasing or decreasing the number of fronts
1479identified in the image. You should only adjust the parameters if you
1480feel comfortable deviating from their published values.
1481Please see the documentation for the Output Fronts Raster Python
1482Expression parameter for more information about writing the Python
1483expression.</p></td></tr><tr><td class="info">Python modules to import (Optional) </td><td class="info" align="left"><p>Python modules to import prior to evaluating the expression. If
1484you need to access Python functions or classes that are provided by a
1485module rather than being built-in to the interpreter, list the module
1486here. For example, to be able to use the datetime class in your
1487expression, list the datetime module here. In your expression, you
1488must refer to the class using its fully-qualified name,
1489datetime.datetime.</p></td></tr><tr><td class="info">Skip existing outputs (Optional) </td><td class="info" align="left"><p>If True, conversion will be skipped for output rasters that already exist.</p></td></tr></tbody></table></div></body></html>
Note: See TracBrowser for help on using the browser.