6

I created an event layer using the MAKE ROUTE EVENT LAYER tool based on anticipated scheduled events. The road layer which is the base layer is intact.

What I would like to achieve is combine layer 1 (base roads) with layer 2 (scheduled events) into one Result layer as shown in the figure below while maintaining attributes from both layers.

line up layers

I have tried using Join, data join, spatial join, and other aspects and I still can't get it to do it right. If ArcGIS managed to merge the layers, it usually has missing data but for the most part my efforts have been unsuccessful.

what is the "best of practice way" to solve my problem?

  • Is the resulting event table based solely on Layer1 and Layer2's event tables? If so, it might be helpful to show the associated event tables. I'd love to see an SQL solution to event overlay (where the gaps in Layer2 produce null values for fields in the result). An SQL solution would allow the result table to be maintained as a view. – Kirk Kuykendall Sep 12 '14 at 19:11
  • @KirkKuykendall - Field personnel take layer 1 and assign where where work is scheduled using excel in the form of ROUTE_ID, FROM, TO, DATE . I then took that information and created an event layer about it. The result should be merged into Layer_1 yet pereserving the attributes. – dassouki Sep 12 '14 at 19:14
  • @KirkKuykendall Did my above comment answer your question? – dassouki Sep 12 '14 at 19:15
  • It sounds like there are places on the road where events overlap. Are you saying a stretch of road can have many or no events scheduled? In the case of many, then the events overlap have different from's & to's. I.e. pave from mile 2 to mile 5. Restripe from mile 3 to mile 6, could be two rows in Layer1, right? – Kirk Kuykendall Sep 12 '14 at 19:19
  • @KirkKuykendall A piece of road can only either have one event scheduled or none. However, that event could be over many segments (control sections) and do not necessarily match the boundaries. i.e. it could start half way and end 3/4 of the way of a segment. So an example Route_1_control_Section_1 2.5 to 10.6, Resurface, Route_1_control_section_2 0.0 to 3.8, crackseal. Conversely 95% of the existing segments (layer_1) will get no work scheduled next year. – dassouki Sep 12 '14 at 19:26
7
+50

You should convert layer 1 from a feature class into an event table and then use the Overlay Route Events tool with the Union option. That preserves all events and attributes that exist from both event tables into a new event table where every unique closest pair of measure positions creates a new line segment. See this discussion of the Overlay Route Event process for more information.

If you want to keep the original unsplit measures of the events before the merge, be sure to calculate them into a set of double fields that are separate from the fields you use to define the overlay measures with that tool. Of course since layer 2 has gaps, they will have null values where no actual segment exists, but that should be what you want, so you can tell where the base layer has no scheduled event. You can make this event layer into permanent line feature class with the Feature Class to Feature Class tool or other similar export/copy tools if you want.

You can use the Locate Features Along Routes tool to convert your layer 1 features to an event table. Be sure that you preserve the ObjectID value into a long field if that is your only unique ID value in Layer 1 for each original segment. If there are missing segments after the tool completes because of imperfect topology between layer 1 and my routes, then I may instead extract both ends of the layer 1 line segments as points using the Feature Vertice to Point tool with the Both Ends option and use the Locate Features Along Routes tool with those points. Through a series of other geoprocessing tool steps I am able to convert a sorted list of point events into line segment events. Let me know if you need those steps and I will look them up.

The Feature Vertices to Points tool requires an Advanced license, so if you have a lower license I would have to list a series of steps to accomplish the same result. Let me know if you don't have an Advanced license and I will try to provide those steps later.

  • as a note, I don't want to maintain duplicate segments, Scheduled events should replace existing portions of layer 1. They'll have the attributes from layer 1 and the new ones from layer 2 – dassouki Sep 12 '14 at 18:32
  • 2
    No duplicate segments are created. The end result will be exactly like your picture and only a single event will exist between any pair of measures that define a line segment. Segments will be divided into multiple separate segments every time a segment boundary of one layer falls inside the segment of the other layer and only the unique full set of attributes that cover that segment from both layers will be in each segment. The only way overlapping event segments could be created is if the overlaps already existed within layer 1 itself or within layer 2 itself before the union occurs. – Richard Fairhurst Sep 13 '14 at 4:50
  • 2
    The output event layer would be converted to a feature class and replace your existing layer 1 feature class entirely in the end. As a union all portions of layer 1 that are not overlapped by layer 2 will be preserved, and the portions that do overlap layer 2 will be cut up and given the layer 2 attributes at every attribute change in either layer. You won't need layer 1 anymore, unless portions of layer 1 are not actually part of your route system. – Richard Fairhurst Sep 13 '14 at 4:52
  • 1
    I did a bounty on this answer that I'll reward you with when it allows me to! – dassouki Sep 16 '14 at 13:40
  • Hi Richard, for some reason, this method is duplicating a lot of links and also creating new fmeasures of -0.000023. any suggestions? – dassouki Oct 22 '14 at 12:35

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.