I'm currently busy writing a Python Module to determine the Equal-Area Slope of the Longest Flowpath of each catchment. I need to generate a Python Dictionary for each Longest Flowpath within the polyline Feature Class with the following format.

v = vertex

z = Change in height (i.e. 0, 1, 2,....150)

seq = segment length between vertices (i.e. v1 - v2, 200m, v2 - v3, 300m,....v100 - v101, 500m)

longestflowpath_dict = {DrainID: [(v1(Z), v2(Z), seg1(M)),(v2(Z), v3(Z), seg2(M)),...(v100(Z), v101(Z), seq100(M))

What approaches could I use to extract the geometry Z and M between each vertices to determine the lengths between each vertices. The Z values stored are the accumulated difference in height between each vertices.

I've included the documentation from the engineering manual with the manual methodology of determining the Equal Area Slope.

Peter, how are you pulling the data? If the source is a DEM, then you can extract the values from it along a transect line using a polylline... but the trick is to draw the polyline, then densify it with a spacing approximately equal to your cell size * root 2 ( ie 10 * 1.414... or even 10). then use the Extract to Points tool from there, you can get the X, Y values, and of course Z. X and Y will allow you to determine distance from the start of the line (I have sequential distance between points code in my blog if you need it... field calculator expression).

Sequential distance, sequential Z an its difference with some rolling filters will provide the necessary information.

My obvious suggestion once you get the X,Y and Z values is to send the data to numpy for further processing an graphing (ie matplotlib) If you get a samle profile, post a copy if you want me to provide further suggestions