Take your terrain mapping to new heights

by Kenneth Field, Senior Cartographic Product Engineer

Standard techniques for representing terrain, like a hillshade, are adequate for many applications, but you may want to represent terrain under different lighting conditions, or perhaps use more artistic techniques. In these cases you might need to go a little further than creating a simple hillshade. For this reason (and because we like making tools that extend what we can do!) we’ve built a new toolbox, called Terrain Tools, that helps you take your terrain mapping to new heights.

Cartographic research often develops techniques, models and tools that supplement or extend what you find in software out-of-the-box. They are often difficult to find, hidden in journal articles or cumbersome to implement. We’ve brought together some of these ideas and workflows in the Terrain Tools toolbox that provides capabilities for creating alternative terrain representations in ArcGIS (ArcMap and ArcGIS Pro). Terrain Tools are designed to extend your out-of-the-box toolkit for representing terrain in GIS by encouraging you to be more creative; how to think more critically about design choices; and how to go beyond the defaults.

You can download a zip file from ArcGIS Online that contains the toolbox, sample data, documentation and also an ArcMap Map Document and ArcGIS Pro Project. The Map Document and Pro Project also include results layers so you can see how the tools work before you use them on your own data. It’s important to note that the sample results show the results of running the tools using the default output. They are a starting point and many of the tools give you the flexibility to modify parameters and customize your own output. The documentation is in workshop format that includes discussion of each tool and instructions for use. Because the tools are written in Python they can be viewed, modified and used as a starting point for further development.

Here’s a brief look at some of the output you’ll get from running Terrain Tools.

Terrain Tools incorporates a few previously available tools which were available as models (built originally using ModelBuilder). They have been rewritten and optimized as Python scripts which improves stability and speed of processing. Additionally, a range of new tools have been either written (from the original published algorithms) or optimized as Python scripts from code samples.

One of the highlights of Terrain Tools is the new Cluster Hillshade which provides you with the ability to make spectacularly detailed and artistic hillshades with your own data. This is just about as close as you can get with an automated process to classic hand-drawn hillshading – and all from just a Digital Elevation Model input and a click of a mouse.

The Tanaka method for creating Illuminated Contours and Filled Contours are also included, here depicted one on top of the other:

Thematic maps haven’t been ignored. It’s perfectly possible to run the tools for any input raster (e.g. a statistical surface rather than a DEM) but there’s also a specific 3D Choropleth tool, useful for adding depth to a choropleth, encoding a second piece of information or as a way to see variation within a single class interval:

There’s plenty more tools to explore and, of course, the scripts are entirely open to being customised further. Here’s the full list of what’s included in the Terrain Tools sample:

Multi-Directional Oblique Weighted (MDOW) hillshade
Produces a hillshade that emphasizes oblique illumination on all surfaces by using more than one illumination azimuth

Swiss Hillshade
Builds and then combines several hillshades to give a resulting yellow-blue Swiss hillshade effect

Cluster Hillshades
A suite of three tools that uses k-means clustering to create a seamless change of local lighting conditions throughout the generation of a hillshade to produce stunning results

Sky Models
Builds multiple hillshades with varying azimuth, zenith and intensity of light source and combines them in a weighted output to create hillshades under different lighting conditions with some dramatic effects

Historic Dots
Creates and symbolizes contours using an historic dotted line symbol and modifies the overall appearance by removing contours for low slope angles

Filled Contours
Creates and symbolizes nested polygons such that the boundary lines demarcate areas of equal elevation value

Illuminated Contours
An analytical version of the Tanaka method of symbolizing contours that includes colouring and varying the thickness of illuminated and non-illuminated contour lines

Creates an output that illustrates three-dimensional topography on a two dimensional map using hachures that symbolize slope and aspect

Shadow lines
An artistic drawing method in which lines of variable thickness and orientation approximate tonal variations associated with shading and shadowing

Chromastereoscopic tinting
A technique that encodes depth values by colour and which, when viewed through glasses that contain minute prisms, gives a holographic 3D view of the data. Glasses not included!

3D Choropleth
Breathes life into the choropleth mapping technique by building multiple hillshades that emphasize differences across the statistical surface

We’re indebted to the assistance of a number of key researchers who’ve assisted in the development of these tools. You’ll find references and links to their original work in the documentation and the tool help.

Get the tools here via ArcGIS Online.

We hope you enjoy using these tools whether you’re looking for a more advanced hillshade or something a little more artistic. Use them as a starting point for inspiration and share your efforts!

This entry was posted in Analysis & Geoprocessing, ArcGIS Pro, Cartographic Design, Mapping, Web and tagged , , , , , , . Bookmark the permalink.

Leave a Reply


  1. spt_akl2 says:

    Thank you Ken, I’ve been waiting for this for a while now. For sure, I’ll have fun playing, sorry working with these tools.

  2. bichek says:

    Unfortunately it does’t download?

  3. Jim Sibbald says:

    Not allowing download “You do not have permissions to access this resource.”

  4. geoteq says:

    Same here. Not able to download.

  5. dejames says:

    it would be nice if I could reach the site with my ArcGIS login…genuflection required?

  6. akmanchianand says:

    Same here. Not able to download. “You do not have permissions to access this resource.”

  7. Kenneth Field says:

    Thanks for the comments about downloading. I took it offline for about an hour to incorporate a small fix to the Sky Model tool. It’s back up now so please try again. One thing to keep in mind – if you’re already signed into a different ArcGIS Online org account you may be asked to sign in to get the download. Sign out of your org, then try downloading again. There are no restrictions or sign-ins required to get these tools.

  8. varvara_t says:

    Tools are great, thank you!
    Unfortunately not all of them are in the toolbox, for example Swiss hillshade and 3D Choropleth are missing. And these were the ones I wanted to try first of all ((

    • Kenneth Field says:

      I have checked. they are all there, and all work. If you are missing results once run, please check your environment settings and ensure you have a scratch workspace set that can be written to.

  9. stephensmithaot says:

    Thanks for the great tools, Ken! I ran into a little problem when executing this on a 10 meter DEM. Any clue why this would have failed after 10 minutes? Thanks! @themapsmith
    Traceback (most recent call last):
    File "C:\Users\StSmith\Downloads\TerrainTools\Scripts\ClusterHillshadeElev.py", line 74, in
    File "C:\Users\StSmith\Downloads\TerrainTools\Scripts\ClusterHillshadeElev.py", line 52, in clusterHillshadeElev
    weight = (Float(inDEMObj) - float(minProp)) / (float(maxProp) - float(minProp))
    TypeError: float() argument must be a string or a number, not 'NoneType'
    Failed to execute (ClusterHillshadeElev).

  10. zhart says:

    Running into a 010240 error using the MDOW hillshade tool no matter if the output is a fGDB or a folder.
    Traceback (most recent call last):
    File "C:\Users\zhart\Documents\ArcGIS\TerrainTools\Scripts\MDOWHillshade.py", line 68, in
    File "C:\Users\zhart\Documents\ArcGIS\TerrainTools\Scripts\MDOWHillshade.py", line 59, in MDOWHillshade
    RuntimeError: ERROR 010240: Could not save raster dataset to C:\Users\zhart\Documents\ArcGIS\Default.gdb\ifthe_ras with output format FGDBR.

    Failed to execute (MDOWHillshade).
    Failed at Fri May 29 09:19:29 2015 (Elapsed Time: 8 minutes 54 seconds)

    Interestingly, on previous runs, it failed with ‘square_ras’ instead of ‘ifthe_ras’ as shown above.

    • Kenneth Field says:

      It looks like there may already be a raster dataset with the same name and format in the target directory. check this first.

      • Geojock says:

        I get a similar error. I even created a new FGDB and set it as the output and scratch workspace.

        File "Z:\Templates\TerrainTools\Scripts\SkyModel.py", line 63, in skymodel
        RuntimeError: ERROR 010240: Could not save raster dataset to C:\Users\user1\Documents\ArcGIS\scratch.gdb\times_ras1 with output format FGDBR

  11. Timo says:

    Great tool! However, when I try to run 3D Choropleth tool, get an error:

    Traceback (most recent call last):
    File “C:\Temp\ArcGIS\terraintools\Scripts\Choropleth3D.py”, line 143, in
    File “C:\Temp\ArcGIS\terraintools\Scripts\Choropleth3D.py”, line 84, in Choropleth3D
    arcpy.SaveToLayerFile_management(inFeatures, inlyrFile)
    File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\management.py”, line 7163, in SaveToLayerFile
    raise e
    ExecuteError: Failed to execute. Parameters are not valid.
    ERROR 000732: Input Layer: Dataset C:\Temp\ArcGIS\terraintools\Samples\TerrainToolsArcMap\terraintoolssamples.gdb\CO_voting does not exist or is not supported
    Failed to execute (SaveToLayerFile).

    Failed to execute (Choropleth3D2).

    • Kenneth Field says:

      Looks like the input data isn’t where the tool expects it to be.

      • Timo says:

        Where should it be? In same directory than the tool is?

        • Kenneth Field says:

          The CO_voting feature class was distributed in the sample gdb and can live in there or in any other gdb you copy it too. The tool is simply reporting it isn’t there or has perhaps been damaged if you moved it without using Catalog. It’s only a small sample dataset. Try the tool on any polygonal dataset you have instead.

          • Timo says:

            It seems that demo data is obviously corrupted. I tried another data. Now it works. Thanks for help.

  12. jemohr22 says:

    Several of the tools in the Terrain Mapping toolbox present with a red x and error message by the input feature box. This includes 3D choropleth, Chromastereoscopic, Cluster Hillshade (Elevation), Cluster Hillshade (Slope), Filled Contours, and Swiss Hillshade. This indicates an error before the first input is selected.

    I tried using other polygon features which did not resolve the red x error indicator beside the input box. Here is the error message:

    updateParameters Syntax Error: Runtime error Traceback (most recent call last): File “C:\GIS_data\TerrainTools\Terrain Mapping.tbx#Choropleth3D2.UpdateParameters.py”, line 1, in File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\__init__.py”, line 24, in from arcpy.toolbox import * File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\toolbox.py”, line 355, in from .management import Graph, GraphTemplate File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\management.py”, line 26, in import _management File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\_management.py”, line 14, in import _graph File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\_graph.py”, line 27, in import numpy ImportError: No module named numpy


  13. stacemaples says:

    Getting the following error when running the 3D Choropleth tool in ArcGIS 10.3.1:

    Executing: Choropleth3D2 Nepal_District_Data_AlbersEA cholera_area C:\Users\maples\Documents\ArcGIS\scratch short_shadow medium_shadow long_shadow 10 1000
    Start Time: Tue Jun 16 15:16:03 2015
    Running script Choropleth3D2...
    Failed script Choropleth3D2...

    Traceback (most recent call last):
    File "C:\Users\maples\Documents\ArcGIS\Scripts\TerrainTools\Scripts\Choropleth3D.py", line 143, in
    File "C:\Users\maples\Documents\ArcGIS\Scripts\TerrainTools\Scripts\Choropleth3D.py", line 91, in Choropleth3D
    if float(arcpy.GetInstallInfo()['Version']) < 7.0:
    ValueError: invalid literal for float(): 10.3.1

    Failed to execute (Choropleth3D2).
    Failed at Tue Jun 16 15:16:12 2015 (Elapsed Time: 8.51 seconds)

  14. ialixandroae says:

    I have ArcGIS 10.2 and when I add the toolbox I`m not seeing the 3D Choropleth tools. Do you know why?

    • Kenneth Field says:

      There shouldn’t be anything that prevents you from seeing any of the tools in previous versions. I’ve added the toolbox to a 10.2 version and can see it. May be worth downloading again?

      • rpnolet says:

        This post is kind of old but I am experiencing the same issue. I have downloaded the tools twice on my work PC and once from home (to make sure there was not network issues) and I am only seeing 2/3 of the tools. I am using Arc10.2.2. Any idea what I am doing wrong?

  15. insyzygy says:

    Hi Ken,
    This looks great. But I can’t find the Swiss Hillshade option under the Terrain Mapping toolbox… ?

  16. holcim32 says:


    I’m trying this tool and I get for most of them errors. Do you need 3D and spatial analyst extension ?

    Here is one of the error messages

    Executing: FilledContours “Tahoe DEM” 100 “D:\Users\lscheure\Documents\GIS\Outils arcview\Terrain tools\Samples\TerrainToolsArcMap\scratch.gdb\TahoeDEMfull_FilledContours” 0 1
    Start Time: Fri Jun 26 07:46:07 2015
    Running script FilledContours…
    Failed script FilledContours…

    Traceback (most recent call last):
    File “D:\Users\lscheure\Documents\GIS\Outils arcview\Terrain tools\Scripts\CreateFilledContours.py”, line 204, in
    File “d:\program files\arcgis\desktop10.3\arcpy\arcpy\sa\Functions.py”, line 5721, in Contour
    File “d:\program files\arcgis\desktop10.3\arcpy\arcpy\sa\Utils.py”, line 53, in swapper
    result = wrapper(*args, **kwargs)
    File “d:\program files\arcgis\desktop10.3\arcpy\arcpy\sa\Functions.py”, line 5714, in Wrapper
    File “d:\program files\arcgis\desktop10.3\arcpy\arcpy\geoprocessing\_base.py”, line 504, in
    return lambda *args: val(*gp_fixargs(args, True))
    ExecuteError: Failed to execute. Parameters are not valid.
    ERROR 000824: The tool is not licensed.
    Failed to execute (Contour).

    Failed to execute (FilledContours).
    Failed at Fri Jun 26 07:46:09 2015 (Elapsed Time: 1.94 seconds)

    • bmapple says:

      I’m having the same problem. I don’t own the 3D or Spatial Analyst extensions; as a one-person small business I can’t afford to pay for extensions for which a majority of the individual tools will go unused.

      Dr. Field, will you please add a note in future documentation that includes which licenses are required? I looked for this requirement and didn’t see it, my apologies if it’s already there.

      Or, perhaps ESRI would consider just selling individual tools instead of the full extensions? That would be fantastic!

  17. jesse.varner_noaa says:

    Thanks for posting these tools. Just wanted to point out that you can get MUCH better results for the various hillshade methods if your input DEM is in projected coordinates (i.e. one vertical unit equals one horizontal unit). The Tahoe DEM you included in the examples was in geographic coordinates, so it produced bizarre overexaggerated/high contrast results, particularly in the Sky Model tool. Usually you’d put a Z factor like 0.00005 if you’re in geographic coords, but there’s no option for that in those tools. If you project it to UTM it looks way better. For the Sky Model hillshade, you applied a default “inverted” white-to-black color ramp, but that’s not necessary if you just use a projected DEM.

    • Kenneth Field says:

      Thanks. A very good point and one I had overlooked! The z factor compensation is in most, but not all, tools. We’ll make sure we update the documentation for the next version to make this more obvious. Thanks for commenting.

  18. iains says:

    I am a relative newcomer – can I download and run these tools in 10.2. If I can can you point me to instructions on how to do this. as an archaeologist i am keen to try out the hachures. Iain

  19. carlynne says:

    Hi Kenneth,
    I used the Swiss Hillshade tool within the terrain tools for a map at 1:8 million scale and it looks very grainy. However, when I zoom it, it looks great.

    Is there a way to adjust any parameter to make the hillshade look great at smaller scales or do you suggest another tool?


  20. ingerholndonner says:

    None of tools are working with my ArcGIS 10.3, it always says: “RuntimeError: ERROR 000824: The tool is not licenced. Failed to execute (tool).” Are there any special licence-information for the tool i have to install or save somewhere that it starts working? I work in a city government – so my generel ArcGIS Desktop licence is the normal one.

  21. noro79 says:

    I have just downloaded the toolbox and have noticed that the screen grab of the toolbox differs to the tools contained within the zip. Specifically for the arcgis arc map toolbox. All the scripts are there however the Swiss hill share and 3d coropleth tools are not in the tool box. I am using 10.2.1 so I cannot open the mxd to see if the tools are in there.

    Any help will be truly appreciated.

    Thanks @kennethfield

  22. Timo says:

    Hi Ken

    I upgraded from 10.3 to 10.3.1. and I tried to rerun this 3DChoropleth tool. However
    I get an error when running the script. The tool worked before ArcMap upgrade?

    Traceback (most recent call last):
    File “E:\GIS\terraintools\Scripts\Choropleth3D.py”, line 143, in
    File “E:\GIS\terraintools\Scripts\Choropleth3D.py”, line 91, in Choropleth3D
    if float(arcpy.GetInstallInfo()['Version']) < 7.0:
    ValueError: invalid literal for float(): 10.3.1

    Failed to execute (Choropleth3D2).

    • sladinj says:

      This was bothering me to, but fixed it. You need to edit the script. Go to line “if float(arcpy.GetInstallInfo()['Version']) < 7.0" And remove "float" plus the parentheses around the arcpy.GetInsallInfo so that it is "if arcpy.GetInstallInfo()['Version'] 10.0″

      • sladinj says:

        Sorry, my above was slightly wrong (due to copy/paste error). The first line you edit should be “if arcpy.GetInstallInfo()['Version'] 10.0″, which is several lines down should be “if arcpy.GetInstallInfo()['Version'] > 10.0″

        • sladinj says:

          Sorry again, just realized the this uses HTML tags so my replies are coming out correctly. Here’s what the lines should be:

          Change: if float (arcpy.GetInstallInfo()['Version']) < 7.0:
          To: if arcpy.GetInstallInfo()['Version'] 10.0:
          To: if arcpy.GetInstallInfo()['Version'] > 10.0:

          • adnordic1 says:

            That still does not work you need to fix the code by replacing:
            if float(arcpy.GetInstallInfo()['Version']) < 7.0:
            with if arcpy.GetInstallInfo()['Version'] < 10.0:
            then you need to replace elif float(arcpy.GetInstallInfo()['Version']) 10.0:

            Then the tool works great.

          • adnordic1 says:

            elif arcpy.GetInstallInfo()['Version'] > 10.0:

          • Timo says:

            Thanks for your help. However for some reason I can’t edit the script with pythontools. I get IDLE error: Unable to update Recent Files list:
            [Errno 13] Permission denied: ‘Z:\\.idlerc\\recent-files.lst’ ??

  23. abuckley says:

    Some credit should go to Mapping Center and its team who created the original version of some of these tools and also all of the styles in the download. To see the originals, including some additional resources (such as the Bump Mapping Tools that can also be used for enhancing terrain representation), see the ArcGIS Resources pages (http://mappingcenter.esri.com/index.cfm?fa=arcgisResources.gateway) on Mapping Center.

    • Kenneth Field says:

      Agreed. MDOW and Swiss have been available as Modelbuilder models for some time. Credit is in the doc. We re-wrote them as python scripts and automated some steps that were previously manually implemented. We also wrapped in the terrific styles to bring them to a new audience. Plan is to include a variation of bump mapping in the next release.

  24. ecarlton24 says:

    Note all the script tools are showing in the toolbox when added to ArcMap (using 10.2.2). Is there some kind of python code edit I can make to correct this? How can I manually add the script to the toolbox, confused about parameter setup?

    • ecarlton24 says:

      Not all the script tools are showing up in the toolbox when added to ArcMap (using 10.2.2). Is there some kind of python code edit I can make to correct this? How can I manually add the script to the toolbox, confused about parameter setup?

  25. ecrumbaker says:

    I keep hitting this error when trying to run “Filled Contours” (both input raster and output in a fGDB). Logged in with Spatial Analyst and 3D Analyst.

    Running script FilledContours…
    Failed script FilledContours…

    Traceback (most recent call last):
    File “T:\_Utils\ArcGISTerrainTools\Scripts\CreateFilledContours.py”, line 222, in
    outBufferContourLine, ‘#’, ‘ATTRIBUTES’)
    File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\management.py”, line 2551, in FeatureToLine
    raise e
    ExecuteError: Failed to execute. Parameters are not valid.
    ERROR 000824: The tool is not licensed.
    Failed to execute (FeatureToLine).

    Failed to execute (FilledContours).
    Failed at Thu Nov 12 13:55:49 2015 (Elapsed Time: 35.87 seconds)

  26. zax_gis says:

    Several of these tools run fine for me but Filled Contours errors out with any data I have tried so far, including the sample DEM. Here’s the error…

    Executing: FilledContours T:\Divisions\GIS\GIS_Specialist\ESRI_Tools\TerrainMapping\Samples\TerrainToolsArcMap\terraintoolssamples.gdb\TahoeDEMfull 10 T:\Divisions\GIS\GIS_Specialist\Data\MergeContours\FilledContours.gdb\test3 0 1
    Start Time: Wed Dec 16 14:56:23 2015
    Running script FilledContours…
    Failed script FilledContours…

    Traceback (most recent call last):
    File “T:\Divisions\GIS\GIS_Specialist\ESRI_Tools\TerrainMapping\Scripts\CreateFilledContours.py”, line 195, in
    if (os.path.splitext(currentWS)[1]).lower() != “.gdb”:
    File “C:\Python27\ArcGIS10.2\Lib\ntpath.py”, line 190, in splitext
    return genericpath._splitext(p, sep, altsep, extsep)
    File “C:\Python27\ArcGIS10.2\Lib\genericpath.py”, line 91, in _splitext
    sepIndex = p.rfind(sep)
    AttributeError: ‘NoneType’ object has no attribute ‘rfind’

    Failed to execute (FilledContours).
    Failed at Wed Dec 16 14:56:24 2015 (Elapsed Time: 0.62 seconds)

  27. ayfzoe says:

    Hi Ken! This toolbox is great! However, most of my trials with 3D choropleth ends with warning like these:
    Traceback (most recent call last):
    File “\\ad.uillinois.edu\engr\instructional\yufeiao2\Desktop\CA footprint\Land subsidence\Scripts\Choropleth3D.py”, line 147, in
    File “\\ad.uillinois.edu\engr\instructional\yufeiao2\Desktop\CA footprint\Land subsidence\Scripts\Choropleth3D.py”, line 76, in Choropleth3D
    lyr1 = arcpy.MakeRasterLayer_management(attExtract1, ‘short_lyr’)
    File “c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\management.py”, line 7002, in MakeRasterLayer
    raise e
    ExecuteError: ERROR 000873: Output raster layer name: The workspace 3D_Choropleth\ does not exist.
    ERROR 000581: Invalid parameters.
    Failed to execute (MakeRasterLayer).

    Failed to execute (Choropleth3D2).
    Any idea what caused this? I was thinking about maybe output workspace of one 3D choropleth should not be the same as the former ones as they would have the same names? Maybe the location of the output folder should be under the same directory of input feature file?
    Thanks ahead!

    • ayfzoe says:

      So currently the input file is a layer file from Folder A1 in Folder A which is on the desktop; toolbox scripts are in Folder A2 in Folder A; output workspace folder is either an empty new folder B on the desktop OR Folder A3 in Folder A. I’ve also tried making output workspace folder in other locations; new and old folders. none of these work.
      and some other times, following warning message showed up:
      File “\\ad.uillinois.edu\engr\instructional\yufeiao2\Desktop\CA footprint\Land subsidence\Scripts\Choropleth3D.py”, line 147, in
      File “\\ad.uillinois.edu\engr\instructional\yufeiao2\Desktop\CA footprint\Land subsidence\Scripts\Choropleth3D.py”, line 59, in Choropleth3D
      attExtract1.save(os.path.join(outWorkpace, shortName))
      RuntimeError: ERROR 010240: Could not save raster dataset to \\ad.uillinois.edu\engr\instructional\yufeiao2\Desktop\CA footprint\Land subsidence\Samples\TerrainToolsArcMap\terraintoolssamples.gdb\short_shadow with output format FGDBR.

      Failed to execute (Choropleth3D2).
      Crying on the floor in front of the computer :( (

    • ayfzoe says:

      But oddly it always works when I start all over again from the extraction of the downloaded zip file. But still, every successful 3D choropleth would overwrite the short/medium/long_lyr of the 3D choropleth process before it. Even though I renamed them in the tool parameter window.

  28. jmsprung says:

    These tools NEVER work for me. Every tool I’ve run off our network on local copies fails miserably. The most important tool I would like to work is the “Filled Contour” script but it fails 2 seconds in to the process…

    This line in the code fails… …”line 195, in
    File “C:\Python27\ArcGIS10.1\Lib\ntpath.py”, line 190, in splitext
    return genericpath._splittext (p, sep, altsep, extsep)
    File “C:\Python27\ArcGIS10.1\Lib\genericpath.py”, line 91, in_splitext
    sepIndex = p.rfind (sep)
    AttributeError: ‘NoneType’ object has no attribute ‘rfind’

    Failed to execute (FilledContours)

    Please advise what needs to change in the script to make it work

  29. cwesson says:

    So have the license requirements been clarified? Do we need 3D Analyst and do we need anything else?
    I’m trying to get the tools working in ArcGIS Pro 1.1, need to know what to ask our IS guys for.

  30. cwesson says:

    Also in ArcGIS Pro 1.1 getting this error on Hachures using the tools on sample data:

    Start Time: Mon Apr 18 13:50:10 2016
    Running script Hachures…
    Failed script Hachures…
    SyntaxError: invalid syntax (Hachure.py, line 74)
    Failed to execute (Hachures).
    Failed at Mon Apr 18 13:50:17 2016 (Elapsed Time: 6.90 seconds)

    In short, I can see all scripts but none of the tools work.
    What am I missing?

    • cwesson says:

      So, ran the tools in the unsupported ArcMap 10.2.1 and they worked just fine! :-)

      Well nearly fine…
      if float(arcpy.GetInstallInfo()['Version']) < 7.0:
      ValueError: invalid literal for float(): 10.2.1

      I deleted the IF statement and replaced with just the relevant bit of code for ArcMap. Simply version 10.2.1 has two decimal points therefore is invalid under 'float' in Python!

  31. hewittaj says:

    I cannot get the download to work.

  32. blackghost says:

    Does it support the arcgis 10.0 ? I see nothing under the direction of TerrainTools.tbx. Why?
    I have to add the script to the tbx file, but some of them doesn’t work well, such as the clusterHillshade. This script run error at the
    IsoClusterUnsupervisedClassification function.

  33. andreamilan says:

    I found it very interesting this paper :
    the results that they have achieved based on colour reference points and a look-up table is what I’ve always tried to get.
    I read that this process has been Implemented in a application prototype and I do not find this application in any software.
    I tried several times with Terrain Tools “Tools Swiss Hillshade”, in documentation, I read that
    guilds and then combines several hillshades to give a yellow-blue Resulting Swiss hillshade effect “, but what I get is just one Swiss_Filtered grayscale and one Swiss_Hillshade grayscale, no blue yellow hue. You know tell me where I’m wrong?

  34. wallacelaw says:

    Great terrain display tools! But like other folks I’m running into errors. In particular I can’t get the fantastic Sky Model to work.

    I’ve downloaded the latest version, but I’m still receiving the following SkyModel error:

    Traceback (most recent call last):
    File “c:\program files\arcgis\desktop10.3\ArcToolbox\Toolboxes\Scripts\SkyModel.py”, line 81, in
    File “c:\program files\arcgis\desktop10.3\ArcToolbox\Toolboxes\Scripts\SkyModel.py”, line 63, in skymodel
    RuntimeError: ERROR 010240: Could not save raster dataset to \\psf\Home\Documents\ArcGIS\Default.gdb\times_ras1 with output format FGDBR.

    Failed to execute (SkyModel).
    Failed at Fri Jun 24 12:26:20 2016 (Elapsed Time: 6 minutes 15 seconds)

    • wallacelaw says:

      Problem fixed. If it helps others, I redownloaded the newest version of the terrain toolset. After setting the Toolbox in ArcMap, I shut down the program and rebooted the machine (yes, that old chestnut!). Everything seems to be working now, and beautiful terrain maps are flowing in my workspace. I hope this simple fix may work for others…always good to be reminded to install and reboot.

  35. m_oyuela says:

    Sky model don’t work, error to create raster. arcgis 10.4. please help

  36. bancroft.bw says:

    Hi Kenneth, your series of tools have been fantastic and of great utility since I tried them out a year back. I’ve since built two cruddy and one half-decent print topos that I’ve used in place of government maps to hike and navigate in British Columbia by map and compass.

    I think I might have found a small bug in the swiss hillshade tool where the outputs are inverted. The highs look low and the lows look high. I didn’t think too much of it the first two times because the workaround is to go and manually invert the colour ramps of all three resulting rasters. This may be less a bug than a UI problem or even just an “Impatient Brian” problem, but since I’ve done the same thing three times in a row, I figured it was worth mentioning.

    Best wishes!