Automatic manhole numbering according to flow direction

4964
2
Jump to solution
07-02-2013 09:51 PM
JohnsonKollakkaran
New Contributor
Does any one know, which is best method (not manual editing) to numbering the manholes according to the flow. I have around 1000 manholes and associated pipe network and the flow direction.
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
RichardFairhurst
MVP Honored Contributor
Does any one know, which is best method (not manual editing) to numbering the manholes according to the flow. I have around 1000 manholes and associated pipe network and the flow direction.


Linear Referencing can deal with this.

1.  Convert you pipe network to an LR Route network where each pipe ID is converted to a Route that has its measures oriented to the flow.  The measures would be based on length.

2.  Then use the Locate Features Along Route tool on the manhole points using an appropriate tolerance to generate an event table with the Route ID and measure of the manhole locations on the network.  Delete any duplicate manhole records that were associated to an incorrect nearby pipe due to the tolerance or proximity to pipe junctions.

3.  Use the Sort tool or Summary Statistics tool to sort the manholes to order according to their Route ID and measure and then their Manhole ID or the original preserved ObjectIDs of the manholes.

At this point the ObjectID of the sorted table is the sorted numbering that is unique for the entire network of every manhole grouped first by the pipe they are associated with and then by their flow direction.  If this is the numbering you are after simply join this table to your original Manholes points using the preserved original manhole objectID and calculate over to the manhole points the ObjectIDs of the sorted table into a Long field.

If, however, you want each pipe to restart its manhole ID numbering at 1 you need to do an additional set of steps before transferring those numbers.

3.1.  Create a new Long field within the sorted table (I will call it ManholeSort) and calculate the new ObjectIDs of the sorted manholes into it.

3.2.  Use Summary Statistics and use the RouteID as the unique case field and get the Min summary of the ManholeSort field.

3.3.  Join the first sort/summary table to the summary with the Min_ManholeSort values and use the Field Calculator to populate a new long field (I will call it PipeManholeSort) using the formula:

Original_Summary.ManholeSort - Second_Summary.Min_ManholeSort + 1

Now you can break the join of the two summaries and then join the first summary to your original manholes points and use the field calculator to transfer the PipeManholeSort values over to the original points.

In either case, sorted IDs are never a good to use as your primary manhole ID value.  That is because newly inserted manholes will almost always cause the IDs of previously existing manholes to be reordered to maintain a human readable order along the pipelines.  This reordering should never happen to a primary ID value.  I only use these kinds of sorted IDs as a secondary ID value for list and presentation purposes for human readable uses where there is no need to preserve comparisons to historic reports or billings.  But for the computer, billing numbers, and reports that must maintain an unbroken history, the records of my feature classes/tables maintain and report another ID value that has no enforced order and that never repeats or changes for any of the features/records after it has been assigned.

In any case, the LR table of your manholes also will allow you to obtain the distances between manholes along each pipe and many other useful associations between your pipe lengths and your manhole positions, so you should probably start using LR anyway.

View solution in original post

0 Kudos
2 Replies
RichardFairhurst
MVP Honored Contributor
Does any one know, which is best method (not manual editing) to numbering the manholes according to the flow. I have around 1000 manholes and associated pipe network and the flow direction.


Linear Referencing can deal with this.

1.  Convert you pipe network to an LR Route network where each pipe ID is converted to a Route that has its measures oriented to the flow.  The measures would be based on length.

2.  Then use the Locate Features Along Route tool on the manhole points using an appropriate tolerance to generate an event table with the Route ID and measure of the manhole locations on the network.  Delete any duplicate manhole records that were associated to an incorrect nearby pipe due to the tolerance or proximity to pipe junctions.

3.  Use the Sort tool or Summary Statistics tool to sort the manholes to order according to their Route ID and measure and then their Manhole ID or the original preserved ObjectIDs of the manholes.

At this point the ObjectID of the sorted table is the sorted numbering that is unique for the entire network of every manhole grouped first by the pipe they are associated with and then by their flow direction.  If this is the numbering you are after simply join this table to your original Manholes points using the preserved original manhole objectID and calculate over to the manhole points the ObjectIDs of the sorted table into a Long field.

If, however, you want each pipe to restart its manhole ID numbering at 1 you need to do an additional set of steps before transferring those numbers.

3.1.  Create a new Long field within the sorted table (I will call it ManholeSort) and calculate the new ObjectIDs of the sorted manholes into it.

3.2.  Use Summary Statistics and use the RouteID as the unique case field and get the Min summary of the ManholeSort field.

3.3.  Join the first sort/summary table to the summary with the Min_ManholeSort values and use the Field Calculator to populate a new long field (I will call it PipeManholeSort) using the formula:

Original_Summary.ManholeSort - Second_Summary.Min_ManholeSort + 1

Now you can break the join of the two summaries and then join the first summary to your original manholes points and use the field calculator to transfer the PipeManholeSort values over to the original points.

In either case, sorted IDs are never a good to use as your primary manhole ID value.  That is because newly inserted manholes will almost always cause the IDs of previously existing manholes to be reordered to maintain a human readable order along the pipelines.  This reordering should never happen to a primary ID value.  I only use these kinds of sorted IDs as a secondary ID value for list and presentation purposes for human readable uses where there is no need to preserve comparisons to historic reports or billings.  But for the computer, billing numbers, and reports that must maintain an unbroken history, the records of my feature classes/tables maintain and report another ID value that has no enforced order and that never repeats or changes for any of the features/records after it has been assigned.

In any case, the LR table of your manholes also will allow you to obtain the distances between manholes along each pipe and many other useful associations between your pipe lengths and your manhole positions, so you should probably start using LR anyway.
0 Kudos
MaryEmmons
New Contributor

I was just wondering if you got your manhole numbering problem resolved.  I have a table of sewerlines with upmh, dnmh, up invert elevation and dn invert elevation and sewer line length.  I was wanting to order these from up stream to down stream.  Any suggestions or examples you have would be helpful.

0 Kudos