The IMAP procedure creates an iTool and associated user interface (UI) configured to display and manipulate image and contour data that is georeferenced, as well as shapefile data that is interactively imported once an iMap tool is created.
| Note |
This procedure is written in the IDL language. Its source code can be found in the file imap.pro in the lib/itools subdirectory of the IDL distribution.
IMAP[, MAP_PROJECTION=string]
IMAP[, Image[, X, Y]] [, GRID_UNITS=value] [, MAP_PROJECTION=string]
IMAP[, Z[, X, Y]] , /CONTOUR [, GRID_UNITS=value] [, MAP_PROJECTION=string]
iTool Common Keywords: [, BACKGROUND_COLOR=value] [, DIMENSIONS=[x, y]] [, IDENTIFIER=variable] [, LOCATION=[x, y]] [, MACRO_NAMES=string or string array] [, NAME=string] [, /NO_SAVEPROMPT] [, OVERPLOT=iToolID] [, STYLE_NAME=string] [, TITLE=string] [, VIEW_GRID=[columns, rows]] [, /VIEW_NEXT] [, VIEW_NUMBER=integer]
iTool Image Keywords: This procedure accepts all IIMAGE keywords. For more information, see IIMAGE.
iTool Contour Keywords: If the CONTOUR keyword is set, this procedure accepts all ICONTOUR keywords. For more information, see ICONTOUR.
Map Projection Keywords: [, CENTER_LATITUDE=value] [, CENTER_LONGITUDE=value] [, DATUM=string] [, FALSE_EASTING=value] [, FALSE_NORTHING=value] [, HEIGHT=value] [, HOM_AZIM_LONGITUDE=value] [, HOM_AZIM_ANGLE=value] [, HOM_LATITUDE1=value] [, HOM_LATITUDE2=value] [, HOM_LONGITUDE1=value] [, HOM_LONGITUDE2=value] [, IS_ZONES=value] [, IS_JUSTIFY=value] [, LIMIT=[latmin, lonmin, latmax, lonmax]] [, MERCATOR_SCALE=value] [, OEA_ANGLE=value] [, OEA_SHAPEM=value] [, OEA_SHAPEN=value] [, SEMIMAJOR_AXIS=value] [, SEMIMINOR_AXIS=value] [, SOM_INCLINATION=value] [, SOM_LONGITUDE=value] [, SOM_PERIOD=value] [, SOM_RATIO=value] [, SOM_FLAG=value] [, SOM_LANDSAT_NUMBER=value] [, SOM_LANDSAT_PATH=value] [, SPHERE_RADIUS=value] [, STANDARD_PARALLEL=value] [, STANDARD_PAR1=value] [, STANDARD_PAR2=value] [, TRUE_SCALE_LATITUDE=value] [, ZONE=value]
Axis Keywords: [, [XY]GRIDSTYLE={0 | 1 | 2 | 3 | 4 | 5 | 6}] [, [XY]MAJOR=integer] [, [XY]MINOR=integer] [, [XY]RANGE=[min, max]] [, [XY]SUBTICKLEN=ratio] [, [XY]TEXT_COLOR=RGB vector] [, [XY]TICKFONT_INDEX={0 | 1 | 2 | 3 | 4}] [, [XY]TICKFONT_SIZE=integer] [, [XY]TICKFONT_STYLE={0 | 1 | 2 | 3}] [, [XY]TICKFORMAT=string or string array] [, [XY]TICKINTERVAL=value] [, [XY]TICKLAYOUT={0 | 1 | 2}] [, [XY]TICKLEN=value] [, [XY]TICKNAME=string array] [, [XY]TICKUNITS=string] [, [XY]TICKVALUES=vector] [, [XY]TITLE=string]
A vector, a two-dimensional array, or a three-dimensional array representing the sample values to be displayed as an image.
If Image is a vector:
If Image is a two-dimensional array:
Image represents an array of x, y, and z values (either [[x0, y0, z0], [x1, y1, z1], ..., [xn, yn, zn]] or [[x0, x1, ..., xn], [y0, y1, ..., yn], [z0, z1, ..., zn]] where n is the length of the other dimension). In this case, the X and Y arguments, if present, will be ignored. A dialog will be presented that allows the option of gridding the data to a regular grid (the results of which will be displayed as an indexed-color image, using the z values as the image data values).
Image represents an array of sample values to be displayed as a color-indexed image. If X and Y are provided, the sample values are defined as a function of the corresponding (x, y) locations; otherwise, the sample values are implicitly treated as a function of the array indices of each element of Image.
If Image is a three-dimensional array:
Image is a 3 x n x m, n x 3 x m, or n x m x 3 array representing the red, green, and blue channels of the image to be displayed.
Image is a 4 x n x m, n x 4 x m, or n x m x 4 array representing the red, green, blue, and alpha channels of the image to be displayed.
Either a vector or a two-dimensional array representing the x-coordinates of the image grid.
If the Image argument is a vector:
If the Image argument is a two-dimensional array (for which neither dimension is 3):
Each element of X specifies the x-coordinates for a column of Image (e.g., X[0] specifies the x-coordinate for Image[0, *]).
Each element of X specifies the x-coordinate of the corresponding point in Image (Xij specifies the x-coordinate of Imageij).
Either a vector or a two-dimensional array representing the y-coordinates of the image grid.
If the Image argument is a vector:
If the Image argument is a two-dimensional array:
Each element of Y specifies the y-coordinates for a column of Image (e.g., Y[0] specifies the y-coordinate for Image[*, 0]).
Each element of Y specifies the y-coordinate of the corresponding point in Image (Yij specifies the y-coordinate of Imageij).
A vector or two-dimensional array containing the values to be contoured. If the X and Y arguments are provided, the contour is plotted as a function of the (x, y) locations specified by their contents. Otherwise, the contour is generated as a function of the two-dimensional array index of each element of Z.
A vector or two-dimensional array specifying the x-coordinates for the contour surface. If X is a vector, each element of X specifies the x-coordinate for a column of Z (e.g., X[0] specifies the x-coordinate for Z[0, *]). If X is a two-dimensional array, each element of X specifies the x-coordinate of the corresponding point in Z (i.e., Xij specifies the x-coordinate for Zij).
A vector or two-dimensional array specifying the y-coordinates for the contour surface. If Y is a vector, each element of Y specifies the y-coordinate for a row of Z (e.g., Y[0] specifies the y-coordinate for Z[*,0]). If Y is a two-dimensional array, each element of Y specifies the y-coordinate of the corresponding point in Z (Yij specifies the y-coordinate for Zij).
Set this keyword to create a contour visualization from the supplied data. By default, the procedure creates an image visualization.
Set this keyword to a string specifying the name of an IDL GCTP map projection to use for the initial projection. If this keyword is specified, the allowed map projection keywords are available. Table 5 provides the projection names and the allowed keywords associated with them.
These properties are applied to the newly created dataspace, without affecting existing dataspaces. If you create an image with IMAP and use this keyword to define a map projection, IDL uses these properties to set up the image's projection. For more information, see Registering an Imagein the iTools User Guide.
Set this keyword to an RGB value specifying the color to be used as the background color for the view. The default is [255, 255, 255] (white). The BACKGROUND_COLOR keyword can be used when a tool is being created or when a new visualization is being created in an existing tool with the use of the OVERPLOT, VIEW_NUMBER, or VIEW_NEXT keywords. The background color is applied to the current view. For example, if multiple views have been created with the VIEW_GRID keyword, and the VIEW_NUMBER keyword is used to create a visualization in the second view, use of the BACKGROUND_COLOR keyword would set the background color in the second view only.
Set this keyword to a two-element vector of the form [width, height] to specify the dimensions of the drawing area of the specific tool in units specified by the UNITS keyword. If no value is provided, a default value of one half the screen size is used. The minimum width of the window correlates to the width of the menu bar. The minimum window height is 100 pixels.
Set this keyword to an integer specifying the units for the image or contour grid. This keyword applies only when there is a map projection inserted. It has the following values:
Set this keyword to a named variable that will contain the iToolID for the created tool. This value can then be used to reference this tool during overplotting operations or command-line-based tool management operations.
Set this keyword to a two-element vector of the form [x, y] to specify the location of the upper left corner of the tool relative to the display screen, in units specified by the UNITS keyword.
| Note |
Set this keyword to a scalar string or an array of strings that specifies the names of one or more macros to run. The macro names are retrieved and the macros are run sequentially after the iTool and (if applicable) any visualizations have been created. If a macro of the specified name does not exist, IDL generates an error and the routine exits.
Set this keyword to a string that specifies the name of this visualization.
Set this keyword to cause the iTool not to prompt the user to save changes when closing the tool. The default is to prompt the user to save changes.
Set this keyword to an iToolID to direct the graphical output of the particular tool to the tool specified by the provided iToolID.
Set this keyword to 1 to place the graphical output for the command in the current tool. If no current tool exists, a new tool is created.
Set this keyword equal to a string that specifies the name of a user-defined or a system style. If a style of the specified name does not exist, IDL generates an error and the routine exits. The style is applied using the following rules:
Set this keyword to a string to specify a title for the tool. The title is displayed in the title bar of the tool and is used for tool-related display purposes only, as the root of the hierarchy shown in the Tool Browser, for example.
Set this keyword to a two-element vector of the form [columns, rows] to specify the view layout within the new tool. This keyword is only used if a new tool is being created. For example, if OVERPLOT, VIEW_NEXT, or VIEW_NUMBER are specified, then VIEW_GRID is ignored.
Set this keyword to change the view selection to the next view following the currently selected view before issuing any graphical commands. If the currently selected view is the last one in the layout, then VIEW_NEXT will cause the first view in the layout to become selected. This keyword is ignored if no current tool exists.
| Note |
Set this keyword to change the currently-selected view to the view specified by the VIEW_NUMBER before issuing any graphical commands. The view number starts at 1, and corresponds to the position of the view within the graphics container (not necessarily the position on the screen). This keyword is ignored if no current tool exists.
| Note |
The index of the linestyle to be used for plot tickmarks and grids (i.e., when [XY]TICKLEN is set to 1.0). See LINESTYLE for a list of linestyles.
Set this keyword to an integer representing the number of major tick marks. The default is -1, specifying that IDL will compute the number of tickmarks. Setting MAJOR equal to zero suppresses major tickmarks entirely.
Set this keyword to an integer representing the number of minor tick marks. The default is -1, specifying that IDL will compute the number of tickmarks. Setting MINOR equal to zero suppresses minor tickmarks entirely.
Set this keyword to the desired data range of the axis, a two-element vector. The first element is the axis minimum, and the second is the axis maximum.
Set this keyword to a floating-point scale ratio specifying the length of minor tick marks relative to the length of major tick marks. The default is 0.5, specifying that the minor tick mark is one-half the length of the major tick mark.
Set this keyword to an RGB value specifying the color for the axis text. The default value is [0, 0, 0] (black).
Set this keyword equal to one of the following integers, which represent the type of font to be used for the axis text:
Set this keyword to an integer representing the point size of the font used for the axis text. The default is 12.0 points.
Set this keyword equal to one of the following integers, which represent the style of font to be used for the axis text:
Set this keyword to a string, or an array of strings, in which each string represents a format string or the name of a function to be used to format the tick mark labels. If an array is provided, each string corresponds to a level of the axis. The TICKUNITS keyword determines the number of levels for an axis.
If the string begins with an open parenthesis, it is treated as a standard format string. See Format Codes.
If the string does not begin with an open parenthesis, it is interpreted as the name of a callback function to be used to generate tick mark labels. This function is defined with either three or four parameters, depending on whether TICKUNITS is specified.
The callback function is called with three parameters: Axis, Index, and Value, where:
The callback function is called with four parameters: Axis, Index, Value, and Level, where:
| Note |
Used with the LABEL_DATE function, this property can easily create axes with date/time labels.
Set this keyword to a floating-point scalar indicating the interval between major tick marks for the first axis level. The default value is computed according to the axis [XY]RANGE and the number of major tick marks ([XY]MAJOR). The value of this keyword takes precedence over the value set for the [XY]MAJOR keyword.
For example, if TICKUNITS = ['S', 'H', 'D'] and TICKINTERVAL = 30, then the interval between major ticks for the first axis level will be 30 seconds.
Set this keyword to an integer scalar that indicates the tick layout style to be used to draw each level of the axis.
Valid values include:
| Note |
Set this keyword to a floating-point value that specifies the length of each major tick mark, measured in data units. The recommended, and default, tick mark length is 0.2. IDL converts, maintains, and returns this data as double-precision floating-point.
Set this keyword to a string array of up to 30 elements that controls the annotation of each tick mark.
Set this keyword to a string (or a vector of strings) indicating the units to be used for axis tick labeling. If more than one unit is provided, the axis will be drawn in multiple levels, one level per unit.
The order in which the strings appear in the vector determines the order in which the corresponding unit levels will be drawn. The first string corresponds to the first level (the level nearest to the primary axis line).
Valid unit strings include:
If any of the time units are utilized, then the tick values are interpreted as Julian date/time values.
| Note |
| Note |
Set this keyword to a floating-point vector of data values representing the values at each tick mark. If TICKVALUES is set to 0, the default, IDL computes the tick values based on the axis range and the number of major ticks. IDL converts, maintains, and returns this data as double-precision floating-point.
Set this keyword to a string representing the title of the specified axis.
Set this keyword to the latitude of the point on the earth's surface to be mapped to the center of the projection plane. Latitude is measured in degrees north of the equator and must be in the range -90 to +90. The default value is zero.
Set this keyword to the longitude of the point on the earth's surface to be mapped to the center of the map projection. Longitude is measured in degrees east of the Greenwich meridian and must be in the range -360 to +360. The default value is zero.
Set this keyword to a scalar string containing the name of the datum to use for the ellipsoid. The default value depends on the projection selected, but is either the Clarke 1866 ellipsoid or a sphere with a radius of 6370.997 kilometers.
Table 6 shows the datums (or spheroids) available for use with the DATUM keyword.
| Note |
Set this keyword to the false easting value (in meters) to be added to each x-coordinate for the forward transform, or subtracted from each x coordinate for the inverse transform.
Set this keyword to the false northing value (in meters) to be added to each y-coordinate for the forward transform, or subtracted from each y-coordinate for the inverse transform.
Set this keyword to the height (in meters) above the earth's surface for satellite projections.
Set this keyword to the longitude in degrees of the central meridian point where the azimuth occurs.
Set this keyword to the azimuth angle, measured in degrees, east of a north-south line that intersects the center line. The center line is defined as the great circle path along which the Mercator cylinder touches the sphere.
Set this keyword to the latitude in degrees of the first point on the center line. The center line is defined as the great circle path along which the Mercator cylinder touches the sphere.
Set this keyword to the latitude in degrees of the second point on the center line. The center line is defined as the great circle path along which the Mercator cylinder touches the sphere.
Set this keyword to the longitude in degrees of the first point on the center line. The center line is defined as the great circle path along which the Mercator cylinder touches the sphere.
Set this keyword to the longitude in degrees of the second point on the center line. The center line is defined as the great circle path along which the Mercator cylinder touches the sphere.
Set this keyword to the number of longitudinal zones to include in the projection.
Set this keyword to indicate what to do with rows with an odd number of columns. The following values are allowed:
Set this keyword to a four-element vector of the form [latmin, lonmin, latmax, lonmax] that specifies the boundaries of the region to be mapped. The points [lonmin, latmin] and [lonmax, latmax] are the longitudes and latitudes of two points diagonal from each other on the region's boundary.
Set this keyword to the scale factor at the central meridian (for the Transverse Mercator projection) or the center of the projection (for the Hotine Oblique Mercator projection). For the Transverse Mercator projection, the default scale is 0.9996.
Set this keyword to the Oblated Equal Area oval rotation angle in degrees.
Set this keyword to the Oblated Equal Area shape parameter m. The value of OEA_SHAPEM determines the horizontal flatness of the oblong region, and is usually set to a value between one and three.
| Note |
Set this keyword to the Oblated Equal Area oval shape parameter n. The value of OEA_SHAPEN determines the vertical flatness of the oblong region, and is usually set to a value between one and three.
| Note |
Set this keyword to the length in meters of the semimajor axis of the reference ellipsoid. The default is the semimajor axis length of either the Clarke 1866 datum (6378206.4 meters) or the Sphere radius (6370997.0 meters), depending on the projection.
Set this keyword to the length in meters of the semiminor axis of the reference ellipsoid. The default is the semiminor axis length of either the Clarke 1866 datum (6356583.8 meters) or the Sphere radius (6370997.0 meters), depending on the projection.
Set this keyword to the orbit inclination angle in degrees of the ascending node, counter-clockwise from the equator.
Set this keyword to the longitude in degrees of the ascending orbit at the equator.
Set this keyword to the period in minutes of the satellite revolution.
Set this keyword to the Landsat ratio to compensate for confusion at the northern end of orbit. A typical value is 0.5201613.
Set this keyword to the end-of-path flag for Landsat, where 0 is the start and 1 is the end.
Set this keyword to the Landsat satellite number.
Set this keyword to the Landsat path number. Use 1 for Landsat 1, 2, and 3; use 2 for Landsat 4, 5 and 6.
Set this keyword to the radius in meters of the reference sphere. The default value is 6370997.
Set this keyword to the latitude in degrees of the standard parallel along which the scale is true.
Set this keyword to the latitude in degrees of the first standard parallel along which the scale is true.
Set this keyword to the latitude in degrees of the second standard parallel along which the scale is true.
Set this keyword to the latitude in degrees of true scale.
Set this keyword to an integer specifying the zone for the UTM projection or the State Plane projection.
| Note |
In the IDL Intelligent Tools system, data can be imported from the IDL Command Line (as described in Examples 2 and 3) or data can be imported via the File menu in the iTool window. For detailed information on importing data via the iTool file menu, refer to Data Import Methods.
IMAP, MAP_PROJECTION='Lambert'
This command opens a new iMap tool with the Lambert Conformal Conic projection loaded (Figure 3-29).
file = FILEPATH('avhrr.png', SUBDIRECTORY=['examples','data'])
data = READ_PNG(file, r, g, b)
IMAP, data, LIMIT=[-90,-180,90,180], $
MAP_PROJECTION='Mollweide', RGB_TABLE=[[r],[g],[b]], $
IMAGE_TRANSPARENCY=50, GRID_UNITS=2, $
IMAGE_LOCATION=[-180,-90], IMAGE_DIMENSIONS=[360,180]
This series of commands opens a new iMap tool and loads an image of the world, registered in degrees, into a Mollweide map projection (Figure 3-30).
This example builds on Example 2, adding contours to the world image in the Mollweide projection.
loadct, 39
tvlct, r, g, b, /get
clons = FINDGEN(360) - 179.5
clats = FINDGEN(180) - 89.5
cdata = SIN(clons/30) # COS(clats/30)
IMAP, cdata, clons, clats, /CONTOUR, /OVERPLOT, $
RGB_TABLE=[[r],[g],[b]], GRID_UNITS=2, $
N_LEVELS=10, C_THICK=REPLICATE(2,10)
This series of commands plots the contour data atop Example 2's display (Figure 3-30)..
Introduced: 6.1