From the discussion with Qina, we identified the tool (or service) to generate a river profile can be beneficial for other hydrologist. Also, the tool can be used not just for elevation profile but a profile for any variable stored in raster data.
The two major parts for this algorithm:
Python gdal library gives capability for #2, Python shapely gives capability for #1.
Example and useful link:
http://www.portailsig.org/content/python-utilisation-des-couches-vectorielles-et-matricielles-dans-une-perspective-geologique- (it is in French, you may need to use google translate)
INPUT
OUPUT