page updated 10/19/2006
The ICE is coded in Java using version 1.1 standards, so as to run as an applet under common web browsers. If your users have Apple computers running OS-9, however, they will need to use Internet Explorer and the Apple MRJ (Java runtime).
This is Version 2 of the ICE tool.
View this page in Romanian courtesy of azoft
View this page in Portuguese (thanks to Artur Weber)
It is strongly recommended that you use an 8-bit image encoding scheme, such as GIF. All the math and color combination operations are done with 8 bit colors. In addition, using other encoding schemes (JPG, PNG) usually results in using 4 times as much memory for the image storage which can cause problems with "Out of Memroy" errors in some situations.
Note that when using the "Showing 3 images" mode, clicking on a thumbnail will cause the corresponding image to be displayed in the big panel. If you want to do a scatter diagram (or 3D historgram) in this mode, the program will always use the last two images viewed.
Oh, and you need to decide which mode you want to use for a particular situation -- that's what the following examples will help you with:
<applet archive="icecode.jar" code="ICE.class" height="660" width="750"> <param name="filenames" value="band02.jpg,band06.jpg,band07.jpg"> <param name="labels" value="0.87 micron,1.64 micron,2.13 micron"> <param name="do_rgb" value="ok"> <param name="bgcolor" value="xFFFF00"> <param name="resolution" value="km,1.5,1.5"> </applet>Click here to see this example in action.
<applet archive="icecode.jar" code="ICE.class" height="660" width="750"> <param name="filenames" value="band02.jpg,band06.jpg,band07.jpg"> <param name="labels" value="0.87 micron,1.64 micron,2.13 micron"> <param name="do_math" value="ok"> <param name="bgcolor" value="xFFFFFF"> <param name="resolution" value="km,1.5,1.5"> <param name="colortable_filenames" value="aerosol_darksky.act,fasir_ndvi.act,atmospheric_profile_temp.act"> <param name="colortable_labels" value="Dark Sky, NDVI, Profile Temperature"> </applet>Click here to see this example in action.
And to illustrate "pre-computing" a particular combination, this example also includes the following parameter:
<param name="initial_math" value="1.0, 2, 1.0, 0, 0.0">which will initially cause the first to images to be subtracted, and the third one not to be included in the computation.
And to illustrate the use of math operations with only two images, the example here is the same as the previous one except for these three parameters:
<param name="filenames" value="band02.jpg,band06.jpg"> <param name="labels" value="0.87 um,1.64 um"> <param name="initial_math" value="1.0, 2, 1.0">
<applet archive="icecode.jar" code="ICE.class" height="660" width="750"> <param name="filenames" value="us0.gif, us1.gif, us2.gif"> <param name="labels" value="1745UTC, 1815UTC, 1845UTC"> <param name="do_animation" value="anything"> <param name="resolution" value="km,16,16"> <param name="calibration" value="degrees C, 0=56.8, 176=-31.2, 255=-110.2"> </applet>Click here to see this example in action. Note that we've also added a calibration (brightness values to temperature for GOES IR images).
Note we did not specify a background color, so the default (usually gray) is used.
<applet archive="icecode.jar" code="ICE.class" height="660" width="750"> <param name="filenames" value="band02.jpg, band06.jpg, band07.jpg"> <param name="labels" value="0.87 micron,1.64 micron,2.13 micron"> <param name="bgcolor" value="xFFFFFF"> <param name="resolution" value="km,16,16"> <param name="calibration" value="^oC, 0=56.8, 176=-31.2, 255=-110.2 & %,0=0, 255=100 & E-3 W / m^2, 0=40., 120=16., 255=.2"> </applet>Click here to see this example in action. Note that we've also added a calibration curve for each of the images, and these will be reflected in the probe values (along with the units specified). Note the "shorthand" for the superscripts for the degree and square symbol.
And to illustrate "navigation", whereby you have rectangular images (in latitude-longitude space), this example also includes the following parameter:
<param name="navigation" value="40.0, -90, 35.00, -70, nmi">which says that the upper-left corner of the image is at 40.0N/90W and the lower-right corner is at 35.00N/70W. Furthermore, the units to display distance and area in are nautical miles (nmi); other options are "km" and "mi". The maximum number of digits to the right of the decimal of the displayed values will be the maximum number of digits to the right of the decimal in any of the given values. In this case, all displayed values will have 2 digits to the right of the decimal (because of the "35.00").
Finally, here is a Real World example from NASA's Earth Observatory, that uses this "image only" mode. Click here to run it.
<applet archive="icecode.jar" code="ICE.class" height="460" width="750"> <param name="filenames" value="test_patt.gif"> <param name="labels" value="TV Test Pattern"> <param name="resolution" value="px,1,1"> </applet>You may run this single-image example (which also includes a color_table selection for interest) by clicking here. The color_table specifications are done the same way as previously shown:
<param name="colortable_filenames" value="aerosol_darksky.act,fasir_ndvi.act,atmospheric_profile_temp.act"> <param name="colortable_labels" value="Dark Sky, NDVI, Profile Temperature">This is, of course, optional.
<applet archive="icecode.jar" code="ICE.class" height="650" width="750">(required) This says the applet will occupy 650 lines and 750 pixels, whereever it is placed. Some guidelines:
<param name="bgcolor" value="xFFFF00">(optional) This parameter lets you set the background color of the applet. The format of the value is: xRRGGBB (RR=red, GG=green, BB=blue) in hexadecimal. The example (xFFFF00) will produce yellow (red=full, green=full, blue=none).
<param name="filenames" value="EOS1.GIF, EOS2.GIF, EOS5.GIF">(required) This names the image files (GIF or JPEG). They are displayed, left-to-right, as the thumbnails. If not doing math operations, there must be 3 images. If you are doing math, you may use 2 or 3 images. If you just use two, then the third thumbnail will show the results of the math operation on the other two images (it will be labelled "Results").
<param name="labels" value="Visible Channel, 6.7 micron, 10.7 micron">(required) These are the labels for the images. They are in the same order as the filenames (above), and there must be an equal number.
<param name="long_labels" value="The MODIS Visible Channel from 00Z 10 Dec 1998, The 6.7 micron channel, The 10.7 micron channel (aka 'IR')">(optional) These are optional "long" labels for the images that will be used in several of the modes to produce the labelling below the main display. They are in the same order as the filenames (above), and there must be an equal number. The default is to use the values of the regular "labels", defined above.
<param name="resolution" value="km,4,5">(optional) This parameter, if present, will cause the Select Region "rubber band box" to read out the area in square 'units'. The form of this parameter is: "units, distance-per-line, distance-per-pixel"
<param name="do_rgb" value="anything">(optional) This parameter says that the RGB-combining mode should be used. This parameter may be used in conjuntion with "do_animation" (although generally it is not), but may not appear if "do_math" or "do_extended_math" appears.
<param name="do_animation" value="anything">(optional) This parameter says that the images are really three in a time-sequence. This will cause an "Animate" and "Step" buttons to appear, and will also cause the "probe" to have a little graph on it.
<param name="do_math" value="anything">(optional) This changes the basic form of the applet to the "math mode". Here, each thumbnail has a 'scale factor' input text box below it. In between each text box is a pull-down selector for a math operator: Add, Subtract, Multiply, Divide. Will be adding a color table widget for the main panel. This mode may be combined with "do_animation", but may not be combined with do_rgb.
<param name="probe_number_format" value="###.###">(optional) When in "do_math" mode, this allows you to specify the format for the probe readout. When "do_math" mode is specified, the probe will only show the resutling value (as a decimal value) according to this format. The special formatting characters are: # = a digit (leading/trailing zeroes not shown), . = a decimal point, 0 = a digiti (leading/trailing zeros shown). The default is as shown: ###.###).
<param name="do_extended_math" value="anything">(optional) This parameter implies "do_math" (above), but also adds extended operators (right now, only NDVI). Neither "do_math" or "do_extended_math" may appear if "do_rgb" is used.
<param name="initial_math"> value="1.0, 1, 2.0, 2, 0.5">(optional) When "do_math" or "do_extended_math" is used, this parameter allows you to set the initial contents (and the initial display) of the math scales and operators. The five values are:
Values for operators are:
0 = do nothing 1 = add 2 = subtract 3 = multiply 4 = divide 5 = NDVI (only in do_extended_math mode)If you are only using two images, then you may abbreviate the form of the initial_math parameter to just the first three items.
NOTE: if none of the "do_..." parameters are present, a "Step" button will be added to allow the user to bring each of the thumbnails to the main window....for whatever purpose...
<param name="colortable_filenames" value="file1.act, file2.act..."> <param name="colortable_labels" value="label for file1, label for file2, ...">(optional) These two parameters specify that color look-up tables are to be read from the named files. The labels will appear in the pull-down menu that is used to select one of them. The presence of these two parameters will cause a pull-down to be placed below the main panel in the display. The colortable files with be ".act" files (binary byte triplets (RGB) for pixel values from 0-255).
<param name="calibration" value="C, 0=56.8, 176=-31.2, 255=-110.2"> <param name="calibration" value="C, slope=.5, intercept=163>(optional) These two forms of the calibration parameter allow you to specify the conversion between image (8-bit) values and some physical quantity. In the first example, a series of 'breakpoints' are provided, in the form: image_value=physical_value. The first 'image_value' must be the smallest, and the last must be the largest. The others serve as breakpoints, and linear interpolation will be used in between. If the first 'image_value' is greater than zero, all value from 0 to it will be considered 'missing'. Likewise, if the last value is less than 255, all the rest of the values will be considered 'missing'.
The second form provides a more conventional "slope and intercept" form, and is convenient in those cases where the conversion is linear over the entire input (image) range.
You may also supply a calibration for each of the 3 working images independently, by separating them with an ampersand character (&). For example:
<param name="calibration" value="^oC, 0=56.8, 176=-31.2, 255=-110.2 & %,0=0,255=100 & E-3 W / m^2, 0=88, 120=15.5, 255=.22">These values will be listed with the probe readout.
Note: The maximum number of decimal digits (to the right of the decimal point) you specify for any of the calibrated values in each section will be used to format the displays. For example, if you say "15.24" then the display for that parameter will be formatted as "XX.XX". If more than 5 digits would appear, a warning message is shown in the Java console...
Note: the shorthand codes for superscripts for degree, two and three are: ^o, ^2, ^3, respectively. Note: to supress the listing of the units in the probe, use the value "none" (without the quotes) in the parameter.
<param name="navigation" value="35.1, -90, 25.22, -70.1">(optional) This parameter will cause the probe readout form to be altered to include the latitude and longitude of the point as well as the values. The maximum precision of the values given in this parameter will also mandate the precision displayed in the readout; therefore, in the above example, probe values will be listed to two places to the right of decimal point.
<param name="missing_value" value="255">(optional) This parameter will cause the indicated value (255 in this case) to be used as "missing". Pixels containing this value will be ignored during mathematical operations. In addition, any pixel in the "red" image that does not have equal R-G-B components will cause that pixel to be considered "missing" in all images, regardless of the presence of the 'missing_value' parameter.
<param name="missing_values" value="255 & 0,1,2,253,254,255 & 180,255">(optional) This parameter will cause the indicated values for each image to be defined as "missing". This is the most flexible of the three ways to define missing values. The values for images are separated by an ampersand, while the values for an individual image are separated by commas. In the example shown, the first image has one missing value (255), the second image has 6 missing values (0,1,2,253,254,255), and the last image has two missing values (180 and 255). as "missing". Pixels containing these values will be ignored during mathematical operations. Please also note that any pixel that does not have equal R-G-B components will cause that pixel to be considered "missing" in all images, regardless of the presence of the 'missing_values' parameter. Please note: In this case, the value 255 is declared "missing".
The software described herein is the ICE (Image Componsite Explorer) package, a web-based toolkit for exploring image combinations. It was developed under contract to NASA Earth Observatory and is Copyright(C) 2002-2006 by Tom Whittaker.
This program is free software; you can redistribute it and/or modify it but you may NOT repackage and sell it.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
The developers or their employers or the spondering Agency are not responsible for any and all ramifications, etc., which may result from using this software, or software derived therefrom. Furthermore, you agree to hold us harmless from any consequences related to the use of this software.
That's it.