Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have a lot of csv files which contain point data containing height, aspect and slope measurements at a resolution of 12,5 meters.

I need to create a dem from this data and have ArcGIS 10 with spatial analyst and 3d Analyst. I did this before with 9.3 but I am not sure if my methodology is correct.

  1. Create point shapefiles from the csv file
  2. interpolate to raster (here I never know whether to use spline, kriging or some other method)?

Last time I did something wrong and rounded all the values up to 1m even though the data was to cm accuracy so this time I want to do it right!

share|improve this question
Why use shapefile? when you can use file geodatabase (high precision) webhelp.esri.com/arcgisdesktop/9.2/… –  Mapperz May 2 '12 at 16:34
ok...geodatabase is also an option. I am more concerned about which interpolation method to use for uniform point samples of 12,5 meter resolution. I have read that topo to raster is the most appropriate tool for terrain modelling, but need some good reasons so that I can explain it. –  Robert Buckley May 2 '12 at 16:49
Why not try all the different interpolation methods and see which one does the best? Arc's help discusses the pros & cons of each method, but in my experience it is often helpful to just try them all and see. You can also play with various settings within each method that can change your results as well. –  Baltok May 2 '12 at 17:59
ok...quite time consuming though! i have an area of 5000km² with over 2 million points. The thing is, the data will be used for floodrisk/wind turbine viewsheds and other projects and i want to be sure that my interpolation method is the best one given my source data. The source (as i already mentioned) is regular 12,5 point measurements, so i´m sure there is an optimal interpolation method. –  Robert Buckley May 2 '12 at 18:12
Here's a link to ESRI's discussion help on interpolation. Within that page, the first two links go into greater detail regarding various methods. help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//… –  Baltok May 2 '12 at 18:20

2 Answers 2

up vote 5 down vote accepted

Because these are regular points, you effectively already have a DEM; it's just in a different format than ArcGIS likes. This makes two different strategies available to you:

  1. Convert the data into a format ArcGIS can handle. One way is to set up a raster extent and cellsize that (i) cover your DEM and (ii) situate each point near the middle of its cell. Import your DEM as a point layer and convert that directly, with no interpolation, into a grid format. (Each cell acquires the value of the unique point lying within it.) From now on, interpolation will be automatically performed whenever you resample the DEM, when aggregating, resizing, or reprojecting it. This gives you access to nearest-neighbor (not recommended), bilinear, and cubic convolution methods. You can create three separate grids this way: one for elevation, one for slope, one for aspect. For this to work, though, you must be using exactly the same coordinate system (including the projection) used to create the DEM in the first place, so that the points are truly evenly spaced and parallel to the coordinate axes.

  2. Pretend the points are "irregular" and interpolate only the elevations using any method you can (splines, IDW, kriging, etc). Derive new slope and aspect DEMs from the interpolated elevations. Unless you are using a Topo2DEM approach and have additional information you can supply--such as stream beds, elevation contours, peaks, or such material--then it is likely this method will merely produce meaningless artifacts that reflect the interpolation method as much as they do the original data. It will also require much more computation than the first method (kriging may even be impossible because of this).

share|improve this answer
Thanks for your comment. 1 sounds very interesting. 2 sounds like I´m doing it wrong..."produce meaningless artifacts". –  Robert Buckley May 3 '12 at 5:20

i think the interpolation method for dem changes to everybody for area of usage. Not only interpolation method, but also creating dem method can change to usage. For example if you want to work more complex areas you should use TINs instead of altitude matricez structure to create dem. there is lots of information about interpolation but i want to give you sth. as following text.

This is from   -- Bill Huber , Quantitative Decisions (http://www.quantdec.com ) 

Resampling an aspect map will either be (a) crude, if you use nearest-neighbor resampling, or (b) meaningless, if you use interpolation (bilinear or cubic convolution are available). This is because the interpolation methods compute an average. For instance, aspects in a northward-sloping region will all be near zero or 360 degrees, for an average of about 180 degrees: due south! Thus, the answer for an aspect map is clear: recompute the aspect of the resampled DEM; do not resample the original aspect map.

For slopes, the answer depends on what you use the slopes for. A resampled slope should be generated using an interpolator, rather than nearest neighbors. It therefore represents an average slope within each cell. The average can sometimes be much greater than the apparent slope at the new scale. Consider, for instance, an area around a small incised stream on a mountainside. At the 10m resolution, you might see a wide variety of quite extreme slopes. At the 50m resolution, perhaps all you see is the mountainside. The average of the 10m slopes can be much higher than the apparent slope at 50m resolution.

Unless you want the slope map to reflect this average of slopes over smaller regions, you might as well assure consistency among the elevations, slopes, and aspects by recomputing slope and aspect from the resampled DEM. It would be best to use cubic convolution for the resampling of the elevations. This ought to produce a DEM that has no spurious NoData values in its aspect grid.

And definition of interpolation according to Arcgis help:

Inverse Distance Weighted Interpolation (IDW)

" IDW interpolation explicitly implements the assumption that things that are close to one another are more alike than those that are farther apart. To predict a value for any unmeasured location, IDW will use the measured values surrounding the prediction location. Those measured values closest to the prediction location will have more influence on the predicted value than those farther away. Thus, IDW assumes that each measured point has a local influence that diminishes with distance. It weights the points closer to the prediction location greater than those farther away, hence the name inverse distance weighted."


"Like IDW interpolation, Kriging forms weights from surrounding measured values to predict values at unmeasured locations. As with IDW interpolation, the closest measured values usually have the most influence. However, the kriging weights for the surrounding measured points are more sophisticated than those of IDW. IDW uses a simple algorithm based on distance, but kriging weights come from a semivariogram that was developed by looking at the spatial structure of the data. To create a continuous surface or map of the phenomenon, predictions are made for locations in the study area based on the semivariogram and the spatial arrangement of measured values that are nearby."

For more information about interpolation on surfaces pls read Interpolating Surfaces in ArcGIS Spatial Analyst which is a great information to understand interpolation with graphs. And after this i think you will find which is proper for your needs.

And beside arcgis, you dont have to use only arcgis for getting dem data. You can use gdal_grid to get correct dem from your data. it has lots of option as interpolation algorithms.

Example usage :

gdal_grid -zfield "Elevation" -a invdist:power=2.0:smoothing=1.0 -txe 85000 89000 -tye 894000 890000 -outsize 400 400 -of GTiff -ot Float64 -l dem dem.vrt dem.tiff

Beside this you can use classify_terrain.py too...

i hope it helps you...

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.