KSi Knowledge Sciences, Inc.
go back to TAS page     go to KSi home page Terrain Analysis System - Knowledge Base Models

The Terrain Analysis System can be used interactively through its graphical user interface to apply various transforms and processing primitives to extract features from elevation data. The programmatical use of these primitives via an expert system knowledge base provides a powerful means of feature recognition. We have developed an approach similar to image pattern recognition where applicable features are "segmented" into collections of regions. These collections of regions are then "interpreted" as terrain features based on region attributes and geometry. 

The landform knowledge bases (KB's) are written in the JESS rule language and are executed by the JESS Inference Engine. The landform KB's implement the landform segmentation and interpretation strategies for each type of landform. This consists of applying the various drainage and digital terrain elevation processing primitives to generate attributed region objects. The rules of the KB are then used to infer particular landform types from the collection of objects, their attributes and the results of other landform KB's. 

Regional Knowledge Base

A regional level model is defined for each physiographic unit. The regional model establishes the landforms expected for the particular physiographic unit, the terrain attribute intervals to be used by the landform models and determines the regional level segmentation strategy based largely on landform dependency relationships. More specific geometric modeling is done in the individual landform knowledge bases.

Basin and Range Regional KB

The major landforms to be expected in the physiographic unit consisting of the Southern Subdivision are: mountains, hills/outliers, mountain valleys, peaks, ridges, gullys, valleys, valley floors, alluvial fans, playas, washes.

The model for the regional mapping strategy for this physiographic unit consists of the following (lookFor is a function that activates the specified landform KB):

1.  lookFor(mountains)

IF (mountains found)
THEN lookFor(peaks)

IF (mountains found)
THEN lookFor(ridges)

IF (mountains found)
THEN lookFor(gullys)

IF (mountains found)
THEN lookFor(mountainValleys)

IF (mountains found)
THEN lookFor(outliers)

2.  lookFor(valleys)

  • IF (valleys found) 
    THEN lookFor(valleyFloors)

  • IF (valleys found) 
    THEN lookFor(plains)

  • IF (valleyFloors found) 
    OR (plains found) 
    THEN lookFor(playas)

  • IF (valleys found) 
    AND (mountains found) 
    THEN lookFor(alluvialFans)

  • IF (valleys found) 
    THEN lookFor(washes)

  • IF (outliers found) 
    AND (valleys found) 
    THEN lookFor(inselbergs)


Landform Knowledge Bases

A model is developed for each landform in the form of a knowledge base. These models have been developed such that they can be reconfigured according to physiographic area. This is done using a set of physiographic dependant variables. KB's have been developed for landform features such as mountains, mountain valleys, ridges, peaks, gullys,  hills, inselbergs, outliers, large valleys, valley floors, plains, alluvial fans, washes, playas. KB's can be developed for any physiographic province that has good elevation data.

The following paragraphs present two examples of the landform models in detail. In the descriptions below the bolded words are action functions and variables are indicated in brackets.

Mountain Knowledge Base

Mountains have ridge, peak and pass morphometric features. They also have steep sloped channel features. A minimum percentage of it's total area must be curved if it is not one of the other features. Mountains have a minimum area and minimum height (determined from object min and max elevations). Mountain objects may be eroded by a small number of pixels to facilitate object separation.


  1. IF (segmentation started) 
    THEN compute morphometric feature map using [mountainCurvature, mountainWindowSize, mountainSlope]

  2. IF (mountains haveCurveFeature) 
    THEN threshold curve feature regions from feature map into segmentObject map.

  3. IF (mountains havePeakFeature) 
    THEN threshold peak feature regions from feature map into segmentObject map.

  4. IF (mountains haveRidgeFeature) 
    THEN threshold ridge feature regions from feature map into segmentObject map.

  5. IF (mountains havePassFeature) 
    THEN threshold pass feature regions from feature map into segmentObject map.

  6. IF (mountains haveChannels) 

    1. compute slope map using [moutainChannelGradientWindow].
    2. threshold slope map for slopes above [mountainChannelMinSlope].
    3. mask feature map with slope map thus retaining high sloped features.
    4. threshold channel feature regions from feature map to segmentObject map.

  7. IF (segmentation completed) 

    1. delineate regions in segmentObject map
    2. erode each region by [mountainErrosionPixels] pixels.
    3. for each delineated region generate a mountainSegmentObject with the following characteristics:
      1. area
      2. maxValue (in region)
      3. minValue
      4. curvaturePercentage


  1. for each mountainSegmentObject:
        IF (area < mountainMinArea) 
        THEN delete mountainSegmentObject.

  2. for each remaining mountainSegmentObject:
        IF ((maxValue-minValue) <mountainMinHeight) 
        THEN delete mountainSegmentObject.

  3. for each remaining mountainSegmentObject:
        IF (curvaturePercentage <
        THEN delete mountainSegementObject.

  4. IF (interpretation completed) 

    1. redelineate all remaining regions in segmentObjectMap into landformObjectMap
    2. for each region generate a mountainLandformObject with computed object properties.

Alluvial Fan Knowledge Base

Fans are defined to be regions that have negative plan curvature. These shapes are constrained to lie within mountain alluvial slopes and have apexes that are adjacent to mountains.


  1. IF (segmentation started)  
    THEN low pass filter elevation data by [alluvialFanFilter] number of passes

  2. IF (segmentation started)  
    THEN compute plan profile curvatureFeatureMap using [alluvialFanCurv, alluvialFanGradWindow, alluvialFanSlope]

  3. IF (alluvialFans haveNegativePlanProfile)  
    THEN threshold feature map for values between [alluvialFanCurvLo] and [alluvialFanCurvHi]

  4. IF (alluvialFansOverlap mountainHillAlluvialArea) 

    1. load mountainLandformMap and hillLandformMap
    2. mask curvatureFeatureMap with landformMaps to eliminate mountain and hill regions
    3. compute planeFeatureMap of all features using [alluvialAreaCurv, alluvialAreaWindow, alluvialAreaSlope]
    4. threshold planeFeatureMap for the plane feature (this will be all of the areas having lvery ow curvature and slope)
    5. mask curvatureFeatureMap with planeFeatureMap to eliminate all plane areas. This should leave only the low sloping and low curvature regions representative of alluvial deposit regions.
  5. IF (segmentation completed)

    1. delineate regions in curvatureFeatureMap into segmentObjectMap
    2. for each delineated region generate an alluvialFanSegmentObject with the following characteristics:

      1. area

      2. minValue (these are elevation values)

      3. maxValue


  1. for each alluvialFanSegmentObject:
       IF (area < alluviaFanMinArea) 
    delete alluvialFanSegmentObject

  2. for each remaining alluvialFanSegmentObject:

    1. threshold upper 20% of object's elevation points in segmentObjectMap into apexMap
    2. generate fanApexObject with apexRegionID and fanSegmentID

  3. IF (fanApexesAdjacentTo mountains)

    1. load mountainLandformMap
    2. delineate mountainLandformMap
    3. dilate mountainLandformMap by [alluviaFansDistance] pixels

  4. for each fanApexObject(apexRegionID, fanSegmentID):
      IF (fanApexesAdjacentTo mountains)
         AND (fanApextObject{RegionID}
      THEN delete segmentObject with
         fanSegmentID from segmentObjectMap

  5. IF (interpretation completed) 

    1. redelineate all remaining regions in segmentObjectMap into landformObjectMap
    2. for each region generate an alluvialFanLandformObject with computed object properties.

Copyright © Knowledge Sciences, Inc. PO Box 3385, Ponte Vedra Beach, FL 32004-3385
904-280-7478 bleighty@knowsci.com