Surface Display Options

Surfaces appear in a surface window as grayscale images where lighter colors indicate greater heights. The word "Height" is used even though the data values of a surface may convey some other meaning, such as temperature.


To change the appearance of a surface window, use View - Display Options to change the settings.




Surface Display Options


By default, surfaces will appear as shaded surface renderings with the color of each pixel corresponding to the data value at that spot as adjusted for highlights and shadows from a Sun in the East. Other options include display of aspect or slope, or use of shading. Palette controls are similar to those used in Thematic Formatting of drawings.




Choose the computation used to display the surface in 2D.

Height - Color each surface pixel by its height.

Aspect - Color each surface by its aspect, that is, the azimuthal direction in which a tangent plane faces at that spot, for example, a north-facing section of hillside. Aspects vary from -180 to 180 degrees.

Slope - Color each pixel by the inclination of the surface at that point. Slopes are given in degrees.



Preset color combinations that may be applied to surfaces. Press Apply to apply the palette to the surface. Palettes use a fixed number of intervals and corresponding colors.



Apply the chosen palette to the Colors pane. This allows scrolling through the palettes without changing colors until we press Apply. Pressing Apply only changes the color scheme in use for values. It does not change the formatting of the surface until the OK button is pressed. To see a preview of how the applied colors will look, use the Preview check box.



Reverse the formats used in the colors box from high to low.



Change the colors or sizes used in the colors boxes by interpolating between the top and the bottom boxes. A quick way of creating smooth gradients of colors or sizes.



Lighten all colors. Each click of the Lighten button lightens the colors a bit more.



Darken all colors. Each click of the Darken button darkens the colors a bit more.



Convert all colors to grayscale.



Load a previously saved theme from an XML file. The loading rules allow omitting color specifications in the XML file to load values using whatever is the default color. Loading rules also allow omitting any of the colorDef, colorMax, colorMin, interval and type tags.




Save this theme to an XML file.



Shade the surface with highlights and shadows as if illuminated by the Sun from a given azimuth and elevation.



Automatically adjust contrast for even dispersion of light and dark tones.



The angle to the Sun's position in degrees from North: North = 0, East = 90, South = 180 and West = 270 degrees. Keep in mind that in most latitudes in the Northern Hemisphere the Sun traverses azimuthal angles from East to South to West. Used to compute shading.



The Sun's altitude above the horizon in degrees. 0 is at sunrise or sunset and 90 is directly overhead. Used to compute shading.


Slopes are measured in degrees such that 0 degrees is a horizontal slope (an absolutely flat surface). 45 degrees is equivalent to a slope where for each meter in a horizontal direction the surface moves one meter vertically up. 90 degrees is an impossible example of a vertical slope. There are no slopes higher than 90 degrees. There are no negative slopes since every tilt of a surface can be viewed as either negative or positive and Manifold always regards it as positive.


Shading is computed based on a given position of the Sun as set by Azimuth and Altitude values. In the Northern Hemisphere in the course of a day the Sun moves in azimuth approximately from 90 degrees (East) to 180 degrees (South) to 270 degrees (West). Depending on the time of year and the latitude the Sun's altitude will range from 0 degrees (on the horizon, at sunrise and sunset) to 90 degrees (directly overhead, in the tropics). To allow artistic effects and for usage in unusual latitudes (such as above the Arctic Circle), Manifold allows Sun azimuth and altitude values beyond these ranges.


Save Mask/Channel


The Edit - Save Mask/Channel dialog for surfaces includes choices to save aspect or slope data in single-precision floating-point format into new surfaces. Aspects vary from -180 to 180 degrees. Slopes vary from 0 to 100 percent. Surfaces created using this dialog will retain the coordinate system (projection) and saved selections of the original surface.




We will use File - Import - Surface to import the montara_mountain DEM files from SDTS format.


This file came from the USGS free Internet servers. It shows a portion of the San Francisco peninsula approximately centered on the region where Highway 92 cuts across the San Andreas fault and the coast range on its way from the Bay to the ocean.


DEM's are "Digital Elevation Modules" and give the height of the Earth's surface. High resolution DEMs (1:24,000-scale) are provided by USGS in SDTS format. They may be imported from the File - Import - Drawing dialog or form the File - Import - Surface dialog. When an SDTS file containing a raster elevation data set is imported via the "drawing" dialogs, Manifold knows to create a surface.




The result is several new components in the project: the surface, the surface's terrain and comments taken from the DEM file. Manifold takes the name for the component from the name embedded in the SDTS file. If we double-click open the surface component, what we see in the surface window is determined by the settings in the View - Display Options dialog.




The illustration above shows the default Height display with Shading and Autocontrast boxes checked. By default, Manifold will show the surface as a shaded surface as if it were illuminated from the specified direction (an Azimuth of 90, East, sunrise, by default). Very cool! This is probably the most frequently used display option for surfaces. In the Northeast quadrant we can see a linear valley cutting across from the northern edge of the surface to just below the middle of the Eastern edge of the surface. That valley marks the path of the San Andreas fault, locus of the famous 1904 earthquake that destroyed San Francisco.




If we choose the Height display and uncheck the Shading and Autocontrast boxes we get a simple grayscale display that shows lower elevations as darker tones and higher elevations as lighter tones.




Choosing Aspect for display option we see the surface color-coded to show the aspect of each pixel. Aspect is the direction in which terrain faces. Aspect is the direction in which the surface at that point faces. We would use an aspect display to find, for example, all of the southern-facing regions that would provide a sunnier place to locate a house.




Because aspect displays are difficult to interpret if too many aspects are shown at once, they are usually formatted with a simplifying palette. The display above uses the Black to White palette to reduce the number of aspects that are displayed into four major ranges.




Choosing Slope shows the inclination at each location, with lighter pixels indicating greater slopes. Slope is the angle that the perpendicular to the face makes with the vertical. Black pixels show flat regions. Note the black color of the regions covered by the lakes in the valley of the San Andreas fault. Since lakes are flat, the slope in these regions is flat. Slope is a good way of finding reasonably level regions to use for building sites, helicopter pads, weapons emplacement and so forth. It may also be used to find paths through terrain that do not traverse steep ground.




Surfaces may be automatically colored by palettes other than the default black and white palette.




Applying the Altitude palette will color the display by elevation to produce the effect seen above. The Shading and Autocontrast options have been checked.


Fixed Interval Palettes


Palettes in Manifold occur in two forms:


·      Relative palettes, where colors from the palette will be "stretched" and interpolated as necessary for use in the number of breaks specified in the Colors pane. The example above uses relative palettes.

·      Fixed palettes, where colors are associated with specified intervals. When a fixed palette is used in thematic formatting, applying the palette will automatically create as many intervals as are required by the numbers specified for the palette.


Fixed palettes are most frequently used to color surfaces that show terrain elevations. They allow a standard color scheme to be applied for specific elevations that is the same from surface to surface. Manifold includes a few fixed palettes for use with surfaces. Altitudes are predictable since the general elevation of the Earth is known and covers a fairly narrow range. Standardized palettes may therefore be created for altitudes and incorporated into Manifold.


The fixed interval palettes provided in Manifold are named Altitude and are provided in three variations: a palette where color intervals have round numbers intended to indicate meters, where round numbers are intended to indicate feet and a relative version of the same palette.


Surfaces usually originate in either meter-based data sets, where the elevation values are given in meters, or in foot-based elevation values such as US SDTS DEMs where the elevations are in feet. It is convenient to have the same fixed palette available with both meter-based as well as foot-based palettes so that the color scheme can be used for the same elevation above or below sea level regardless of whether the numbers in the surface represent meters or feet.


It is also convenient to have a version of a fixed palette available as a relative palette. This is allows a quick look at how the full range of palette colors appears in use. We can use whatever data set we want and even if it only ranges between -100 and 1000 we will still see the full set of colors.


The Altitude and Altitude and Bathymetry palettes are typical of those used in large printed atlases. The colors are organized to provide good displays throughout most of the world. Since most world atlases are in meters, the elevations chosen for the color intervals will be round numbers in meters.


The Altitude, Aeronautical palette provides a simple color scheme similar to that used in NOAA sectional aeronautical charts in the United States. This palette has elevations chosen for color intervals that are round numbers in feet.




Palettes used in thematic formats may be customized, and new palettes may be added to Manifold. See the Customization topic.


Tech Tip


Change the appearance of surfaces by selecting parts of the surface and then deleting them and letting the background show through. For example, one way to show lakes or other water bodies in surfaces (which are at the same elevation) is to select their pixels and then delete them. Make the background of the surface blue so that the water regions are all colored blue no matter what their elevation.




For example, suppose we start with a surface that's been colored with a palette using View - Display Options. The background for this surface is turned on in the Layers pane. The background has been set to blue color in the View - Properties dialog for this surface.




We click on regions using SHIFT - touch select to select all portions of the surface at a given elevation. Using Add to Selection mode, click on the desired elevation and on regions below the desired elevation.




Press Delete and the selected pixels disappear, allowing the blue background to show through. Note how this method provides a "waterline" effect to instantly show which regions are above a given elevation.


This method can also be used to remove flatter parts of a surface, leaving only very mountainous areas. The surface can then be used in a map overlaid upon drawings to provide visual cues of mountainous terrain.


A Note on Computation of Slopes


There are many ways to compute the "slope" of a surface. If a surface consists of an even, flat plane tilted in only one direction that extends over a great distance then most people and algorithms would agree what the "slope" is. However, in reality surfaces often consist of numerous undulations in small scale and large and the "slope" computed depends upon how the computation is made. "Slope" is an artificial approximation based upon a subjective judgement or other heuristic as to what plane should be taken as an approximation for a particular surface or a portion thereof.


At the lowest level, surfaces are ordered sets of pixels arranged in a regular array with a height for each pixel. To compute the slope of a surface one must consider some window, that is, some subset matrix of pixel values, and then perform a computation on it. Let's consider three possible ways to compute the slope of a surface given a 3 x 3 pixel window.


Consider the following window:


z1 z2 z3 

z4 z5 z6 

z7 z8 z9 


To compute the slope we have to approximate this window with a plane that will give us dx and dy factors. We can then use the dx and dy factors to compute the slope (a simple matter of atan(hypot(dx, dy) / 2) with some scale correction).


Here is one way to do this:


dx = z6 - z4 

dy = z2 - z8 


Here is another way to do this:


dx = ((z3 - z1) + (z6 - z4) + (z9 - z7)) / 3 

dy = ((z1 - z7) + (z2 - z8) + (z3 - z9)) / 3 


Here is yet another way to do this (k > 1):


dx = ((z3 - z1) + k*(z6 - z4) + (z9 - z7)) / (2 + k) 

dy = ((z1 - z7) + k*(z2 - z8) + (z3 - z9)) / (2 + k) 


For example, in the above case one might use k = 2 to weight the central comparison more. There are numerous other ways as well, but the above three show in simple fashion three possible approaches.


If different software uses different methods, it will provide different values for "slope" at any given location. In general, Manifold uses the second method but there are software packages that use the first method, the third method and many other methods.


Example: Transferring Aspect to Points


Manifold's raster extensions to SQL allow us to exploit computations on surfaces from within SQL. For example, suppose we have a drawing of points that are located in the same region of interest as a surface and we would like to compute the aspect of the surface at each point and to save that value as a data attribute for each point. This is easy to do using SQL as follows:


1. Open the drawing's table and add a new floating-point column named Aspect.

2. Create a new query.

3. Open the query and enter the following text for the query (substitute the name of the drawing for "Drawing" and the name of the surface for "Surface"):


UPDATE [Drawing] SET [Aspect] = AspectHeight([Surface], Centroid([Geom (I)]));


4. Run the query. This will set the values in the Aspect column for each point to the aspect of the surface at that point's location.


See Also


Using Surfaces as Images - Surfaces are virtual views either in 2D or 3D. They can be dragged and dropped into maps as is. They can also be copied and pasted as images to allow subsequent effects using image manipulation tools.


Stylistically, the Display Options dialog has much in common with the thematic formatting dialog. See Thematic Formatting for examples.


See the Displaying Data in a Gradient Map topic for an example that shows demographic data displayed in a continuously varying gradient throughout the United States using a surface.