Topo to Raster garbage results

3128
3
03-14-2012 04:00 PM
ChrisChutter
New Contributor
I am trying to run Topo to Raster on contour lines representing water runoff.  First off I had to greatly reduce resolution just to get it to run and once it does the results are garbage.  Reclassifying the result so that the colors break at the contour values shows that it does in fact take the correct value at those contour lines, but between them is some garbage.  Between the 100 and 200 contours it has values below 0!!  Shouldn't it be smart enough to know that is not possible without crossing the 100 and 0 contour?  I have a pretty sound understanding of interpolation but it seems Topo to Raster for Arc10.0 does not.  At several contours, value move in the wrong direction on both sides of the line!  Looking at the 100 contour I have values greater than 100 on the side closer to the 0 contour, while on the side closer to the 200 contour I have values lower than 100.  Of course the values then magically cross the invisible 100 contour again before actually getting to the next contour line.  If this tool is so broken is there another means to turn contours into a raster?  Looking at it closely the results seem worst at areas where a contour of one value neighbors itself which is bound to happen on all ridges and valleys in the data.  Anyone know why it is doing this and how to make it stop?  Is there an option to prevent Arc from apparently assuming the contour dataset is incomplete and it can feel free to add new ones?  If a pixel falls between 100 and 200 contour lines it should be really easy to not allow it to have a value of -77!

[ATTACH=CONFIG]12684[/ATTACH]
0 Kudos
3 Replies
curtvprice
MVP Esteemed Contributor
  Is there an option to prevent Arc from apparently assuming the contour dataset is incomplete and it can feel free to add new ones?  If a pixel falls between 100 and 200 contour lines it should be really easy to not allow it to have a value of -77!


Chris,

Contours are one of the most difficult data sources from which to build an accurate raster for a simple reason - they are very biased, all samples are on the contour lines. Flat areas have no information on a contour map, so an interpolator's shortcomings become quite obvious there.

TopoToRaster (details in the docs of course) is a modified spline interpolator, which means it captures curvature of the surface and can generate you values (like your -77) that are not part of in your input data values as it fits your surface to curves.

I think the best solution for you is to add point or contour values manually to areas where the spline isn't capturing the surface because of the lack of good data your contours are providing. Topo to Raster is pretty good at guessing based on contours, but humans are much better at it. If you give it a little more information I think you'll get better surface from the interpolator.
0 Kudos
ChrisChutter
New Contributor
Thanks Curtis,
I was really afraid someone would respond with, "The tool works, you're doing it wrong."  I admittedly know almost nothing about programming, but as someone with a firm understanding of common sense it seems it should be possible to have a statement like:
IF pixel falls between contour ValueA and contour ValueB, pixel value MUST A<pv>B
or IF pixel falls between contour ValueB and contour ValueB, pixel value MUST A<pv>C

Any other option leads to the GIS outputting data that crosses invisible contour lines.

Alternatively, something like:
Contours have values: a, b, c, d
Run interpolation
FIND all cells with values: a, b, c, d
Spatially compare to contour lines
Do you find cells with values: a, b, c, d not closely associated with input contour lines?
If NO proceed,
If YES output error message: We are sorry this tool does not work.

I feel I am better off just assigning the nearest value to each pixel and I am creating a model with over 50 processes so that someone else can run it.  I hate to tell them, "Run this interpolation, then look at it and add common sense values manually until it looks less ridiculous."

I probably sound pissed, but I mostly mean this as humourous with a hope someone at ESRI goes, "Hey that might work never thought of that!"
0 Kudos
curtvprice
MVP Esteemed Contributor
Thanks Curtis,
I was really afraid someone would respond with, "The tool works, you're doing it wrong.


Really? Hm.

I think you're overestimating what this interpolator can do with contours, which as I said is the worst possible input to generate an unbiased estimate of a surface that also looks "how you want it." Converting your contours to points and using another interpolator like IDW may honor the contours better, but the surface may other properties you will not like. Topo To Raster just may not the right interpolator for the task at hand. It's specifically tuned to make elevation surfaces from topographic contours.

I recommend Hutchinson's paper on ANUDEM (referenced in the help) you'll get an idea how much more difficult this is to automate. It's a pretty amazing method Hutchinson came up with, but it is quite directed toward solving a specific interpolation problem -- generating topographic surfaces from contours suitable for hydrologic analysis (flow directions, etc).

If you have an idea on how a tool can be improved (or ideas for new tools) I suggest you post to http://ideas.esri.com, where other users can vote it up. Sharing your annoyance here in the forum (though I agree can be good sport, especially in the service of solving your problem!) is unlikely to have as much effect on the future capabilities of the software as the (new, and useful) ideas site.
0 Kudos