CAD or GIS Design - Optimizing Contour Line Generation for Topography or surveying.

Job ID: 38224710

Budget: $750 – $1,500 USD

I work with CAD design, particularly in designing contour lines. However, the tool I would be interested in developing would also be useful if it were to run on a GIS platform or CAD(QGis, ArcGis, or other cad program; preferably running on Windows 7 versions).
Point 1 – Regarding Smoothing:
I would like to have a tool that creates contour polylines (with a configurable altimetric interval) as "smooth" as possible. This means that the sequence of points defining them should create curves with the maximum radius, taking into account that transitions between curves with opposite curvatures should also be smooth, within a specified altimetric error margin. It should aim to ensure that the segments defined between consecutive points are as long as possible, not falling below a defined minimum (e.g., 2.5 meters).

In other words, the angles defined at each vertex of the contour polylines should be as wide as possible, respecting the minimum length defined for the segments and also adhering to the specified altitude error margin. It may be possible to maximize the sum of the angles at each vertex of a polyline and, as a preliminary step, incorporate a Kriging process, which inherently smooths contour lines obtained from a discrete point sample without losing coherence with reality. If the angle at some vertices falls below a user-defined value, it should be highlighted in some way for manual resolution.
Altimetric error margin: configurable altimetric error margin, Ex: plus 1.5 cm, minus 1.5 cm of the corresponding contour line, of the original terrain (or failing that after Kriging); generating two tolerance lines, one at +1.5cm and other at -1.5 cm. This line should not be smoothed, since it is what allows us to trust the defined margin of error. The designed contour curve must be developed within this margin at all times.
It should be possible to load an outer limit, where the generated contour polylines should extend to, and internal limits where contour polylines should not be generated. It would be interesting to implement this step before Smoothing to avoid processing outside the area of interest marked by the limits (interior and exterior).


In summary, the parameters from which the tool should operate are as follows:
1- Minimum vertical interval between contour lines (e.g., 3 cm).
2- Vertical tolerance margin (e.g., +-1.5 cm).
3- Minimum segment length.
4- Minimum angle at which "problematic" vertices should be highlighted.
5- Sequence of vertical jumps for selecting contour lines in cases where they are too close horizontally.

All of this should start from a LandXml file

I use meters as the units of distance, and degrees as the units of angles.