I have a large road network layer with an AGE attribute associated per segment. In some occasions, I would have segments A -> B -> C with segment B with no value for the AGE field. In other situations I would have segments D-> E with either segments D or E with no AGE value.

In the first case, the age of B could be assumed as either the average or max of A and C and in the other case assign D or E the age of the other segment. Is this possible in ArcGIS?

Note: Thought must be given to the plausible situation, which I haven't seen in the data yet, of the following case G <-> H <-> ... <-> I <-> K where H, I, and values in between have no AGE values.


This sounds very similar to the problems in two other questions I have attempted to frame a solution to:

I don't have specifics in terms of tools or code, but my approach would be an iterative analysis script or model.

  1. Iterate through all segments where AGE = null/blank/whichever.
  2. For selected segment, select / examine adjacent segments. You may want or need to also check / select only adjacent segments that share a name or other common attribute (I'm thinking of two streets intersecting - one might assume street A should match on both sides of the intersection, not take on the age from the crossing street B.) And you could also ignore any adjacent segment that is also AGE null.
  3. Now you have to make the rules - get the max, min, average, equal value and assign that age to the segment in question.
  4. Once you've iterated through all segments, repeat as a loop until all segments have an age.

As you note, there are several potential pitfalls in this process. Any assigned age is going to be an assumption, and because of that you may need a qualifying or whole new attribute (age and assumed age) if you want to track which is which. A particular segment may have been repaved last week or twenty years ago with no change to the adjacent segments. In your note case where you have a string of nulls with differing values on either side, do you work your way in from the ends or assume the entire series is the same age? When examining adjacent segments, how do you account for intersections (as mentioned above)?

Depending on the size of the network, number of nulls, complexity of the decision tree, and required accuracy of the data (ie researching other sources to determine what a segment age really should be), this might be better performed as a manual edit task.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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