I have multiple surveyed cross-sections of river channels and need to convert this data into 3D polylines (shapefile) for use in a hydraulic model. The cross-section data is typically supplied in "X,Y,Z" csv format.

I have tried using this method described by Purdue University, but it fails to run each time except when I use their input example datasets. I also have limited access to ArcMap. I've tried a method described by modelling software "HEC-RAS", but this requires significant data conversion to formats compatible with HEC-RAS. From my experience, it also produces an output that does not follow the river banks correctly and often contains interpolation errors.

I plan to write a python script that will project the first cross-section onto a second and interpolate intermediate points within each cross-section so that both have elevations at corresponding points. Between each corresponding point, I will then use the river centre line and river bank lines to inform interpolated polylines along the channel connecting the corresponding points in each cross-section. I should end up with something similar to the images below, except curved to match the river banks and centreline.

Is there a simpler way to interpolate this data into 3D polylines along the river channel? Ideally, any methods will use QGIS 3+ or just python outside of a GIS, but I do have access to ArcMap 10.4, MapInfo 10.5 and Global Mapper.

Visualisation of proposed output - 3D polylines as dashed black lines linking the river cross-sections

  • Have you tried searching this forum? What you are asking is a common topic, searching for "river cross sections" throws up lots of Q&A, this one discusses a tool you do not mention.
    – Hornbydd
    Aug 5, 2020 at 18:15
  • Thanks, Hornbydd. I have searched the forum and nothing has answered my query. Many of the discussions including the one you've linked calculate the opposite of what I'm looking for unfortunately. The example you provided takes a DEM as an input and creates cross-sections from it as the output. I have a series of cross-sections already and I'm looking to create either 3D polylines along the channel connecting them (a sort of wire frame model) or a DEM as an output. Aug 6, 2020 at 10:19
  • Your work flows is a bit out of a more common workflow using Rasmapper. Have you seen this plugin rivergis.com? It has a bug when ussing bathymetry points, but there are some works around and maybe a fix.
    – Marco
    Aug 19, 2020 at 17:27
  • I've not seen that plugin. Thanks Marco. I'll take a look. Aug 24, 2020 at 8:27

1 Answer 1


I had the same issue, the tutorial at the link below provided necessary information to successfully run the method described by Purdue University https://water.usgs.gov/osw/flood_inundation/toolbox/files/bathymetry_mesh_tool.pdf

  • 2
    Link-only answers may be deleted because links fail over time. Please summarize the linked document so that the answer doesn't become useless if the link doesn't work.
    – Vince
    Apr 13, 2022 at 11:30

Your Answer

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

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