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.