I have two datasets - contours and vector (water, roads,...)

Vector layers were used as breaklines to generate the contours. Then the contours were generalized a bit.

For quality check I need to find the elevation difference between those two datasets at their intersections.

If I use Intersect tool in ArcGIS and output it with both file attributes to a point file, I get the contour elevation nicely, since it is the same over all the element vertice Z values. But for vector data of roads or rivers every vertex has its own Z value and intersect only gives me the value of elements lowest Z value (if I have a line with two points and one is 3m and the other 4m and contour intersects exactly in the middle, the intersect elevation value should be 3.5m, but instead 3 is written to point file).

I thought of creating TIN from vector data set and adding value from there to the intersect points, but as soon as there is another vector object with different elevations close to intersect point that does not intersect with contour but crosses the other vector between its two vertices, it forces the TIN to follow it and with that the intersect value is not correct anymore.

Is there a tool that allows me to get the interpolated Z value between two vertices? It doesn't even have to be ESRI software. I am not however very good at code.

  • What about a different approach - creating a surface (TIN/raster) from the contours and then extracting the interpolated values at the vector object locations to these...? Dec 13, 2015 at 19:08
  • I need vector elevations, contour elevations are no problem since each contour is at their singular height (1m contour has the Z value of 1 everywhere or it wouldn't be a contour).
    – karjuuhin
    Dec 13, 2015 at 19:59
  • 1
    If I'm understanding your problem correctly, it is concerned with calculating the differences in elevation between the contour dataset and the vector layer dataset. I'd convert the contour dataset to a surface, the vector layer to points, which can be assigned elevations from the contour surface, and evaluate the differences at these points. Dec 13, 2015 at 20:10
  • You should be able to create a Terrain from the contours which can be sampled using Interpolate Shape resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//… (3d analyst license required) or using the vertices as points over the raster from the Terrain using Sample (spatial analyst license required) Dec 13, 2015 at 23:43
  • Linear referencing will do the job
    – FelixIP
    Dec 14, 2015 at 4:33

1 Answer 1


Did it like the cavemans do.

Imported Vector DGN file with CAD to Geodatabase tool to a geodatabase.

Ran Intersect tool, added both file info into point file output.

Explode/Multipart to Singlepart to points.

Created 1cm buffer for points.

Used Clip to cut out vector in that 1cm radius buffer.

Calculated medium Z value (since usually there was start and endpoint and the point would have been situated in the middle of the buffer ring).

Ran spatial join that applied the values from those short vector lines to intersect points with "closest" option since the point isn't exactly on the line. In spatial join disregarded all the fields that weren't needed.

Since previously I had the contour elevation there already and now I got the vector elevation from the spatial join, I created new field and calculated the difference between those two elevation values.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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