[gdal-dev] Most optimal algorithm for contour correctness?

Jan Heckman jan.heckman at gmail.com
Sat Feb 16 06:50:07 PST 2013


Hi,
I've tackled a similar problem.
Correctness of contour is a simple matter, except for one thing. That is
the issue of saddles.
That issue cannot be solved "correctly" since typically the data can be
interpreted in several ways.
This is also described in a wikipedia article (google for it, if you like).
Imagine a (descending) mountainridge, which may have towers and gaps in it
(sometimes referred to as sentinels when climbing).
When the (dem) grid is too coarse, these won't show.
I found that I had to write my own routine to handle this.
Roughly as follows:
When gridsquare with values equal or larger than the contourvalue are
isolated, except they touch diagonally, you have a potential saddle
situation.
My "correctness" is that I continue straight on when the average of the
four surrounding gridpoints is equal to or larger than the contour value.
If not, the contour is divided in two subcontours.
Hope this helps and tell me whether you need such code.
I have been considering offering it for the gdal and saga communities, but
have not had enough time to make the code nice enough.
Jan

On Thu, Feb 14, 2013 at 4:15 AM, nav <navin.pro at gmail.com> wrote:

> Am creating an app which correctly calculates contours from a DEM file or
> any
> height-map given to it. The correctness of the contour holding the most
> importance, since a person viewing the contours shouldn't end up taking
> wrong planning decisions and maybe losing their life by the route they
> choose after looking at the map.
>
> I have already tried using GDAL 1.7 source code, compiled it and added some
> features of my own to it for some other objective. Now I want to
> add-to/modify the source to be able to use the contour generation function
> of GDAL in C++.
>
> But before proceeding, I wanted to know:
> 1. If GDAL offers the best free contour generation algorithm available or
> is
> there any other library which I can link to my code and feed my DEM map to
> it and receive contour vector lines (or go thru research papers and
> implement the contour generation algorithm myself in C++)? If GDAL, then
> why
> is it the best?
> 2. A generated contour will basically be points connected with straight
> lines. Is it more correct for a contour to be depicted with connected
> straight lines or will it give a more correct result to use a spline to
> smoothen out the lines?
>
> I won't be interpolating any contours or the DEM because I've read on this
> website that interpolation leads to incorrect results.
>
>
>
> --
> View this message in context:
> http://osgeo-org.1560.n6.nabble.com/Most-optimal-algorithm-for-contour-correctness-tp5034148.html
> Sent from the GDAL - Dev mailing list archive at Nabble.com.
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20130216/01fdc52a/attachment-0001.html>


More information about the gdal-dev mailing list