How To Do Integrated Terrain Unit Mapping

by G. Peterson
August 24, 2010

Integrated terrain unit mapping is like a weighted combination raster model except that you use vector data instead. You might do this instead of the more common raster modeling because your data might be very geographically specific and perhaps you don’t want to loose that specificity by converting to raster. You might also use this method in order to be able to store all of the inputs in one file as opposed to the raster method wherein you need to look back at all the input layers to understand what influenced the final score.

To run this type of model you need to combine all your input data sources into one single dataset (or feature layer in ArcGIS terms). This single dataset will include all of the input geometry as well as all the final weights. Of course you will have normalized your data first and have everything in a common scale – most likely 0-10 or 0-100 or 0.0-1.0. You can apply the weighting later.

Combining the data is as simple (ahem) as using a function in your GIS that does this. In ArcGIS it is called the identity function and it is not available at the ArcView or ArcEditor license levels. For those familiar with ArcGIS, identity in this case does not mean the little button with the i that you use to click on a feature and see its attributes.

If you use the ArcGIS identity function you may be interested in automating the combination of several layers, since it only allows the comibination of two layers at a time. Yes, you could use model builder to automate this but if you are going to fool around with the model at all – by adding and deleting layers – you’ll want an easier way. The code is not that hard to write and the bulk of it consists of something like this:

for index in range( 1,len(featureclasses) ):
newOutputFile = "nextNewFile%s" % (index)
try:
gp.identity_analysis(outputFile, featureclasses[index], newOutputFile)
except:
# If an error occurred, print out the error message
print gp.GetMessage()
outputFile = newOutputFile

Once this has been done you can then calculate the result of your model by creating an algorithm that combines all of the input data, weights it, and then outputs the result to a new field. You might simply be averaging everything together, or you might be weighting everything individually, or you might be using a combination of these techniques.

In the Suquamish Archaeological Model that I recently completed, we wanted three of the input layers to be of primary importance. If any of those three layers were present (a polygon with a 10 for any of the three layers in our case) then the final result was automatically a 10. If none of those were present then the other layers were simply averaged, excluding anything with a zero value. While I wound up using a fairly complex algorithm in the Field Calculator (Advanced Window), yours may be easier to implement.