Hi there,
I am trying to use the Copy Traversed Source Features tool to look more closely at the routes being generated by my Network Dataset (which I created using the tutorial). However, it is creating an empty output and I'm not sure why. When I ran the route solver, I made sure to choose a date and time that is included in the schedule in the GTFS data (see attached), and it worked so not sure why there wouldn't be edges/junctions/turns for the Copy Traversed Source Features tool to display. Any ideas why the tool might be generating an empty output?
Also, my routes are being drawn as following the Line Variant Elements- is there any way to set it so that it follows the actual streets or subways that the vehicles actually take?
Thank you!
The Copy Traversed Source Features tool will give a warning about empty output being generated whenever any of the three outputs (edges, junctions, or turns) is empty. This very frequently happens for turns. If your network dataset doesn't even include turns (the one from that tutorial doesn't), then you will always see this message. However, you should see something in the output edges and junctions feature classes. Do you see the layers in the map, and do they have something in them? They should. If not, please include more details, and we'll figure it out.
Regarding your other question about making the transit lines match the streets they run on: Unfortunately, that is not possible. LineVariantElements are constructed from GTFS schedule data, which is only loosely tied to the transit line geometries defined in the GTFS shapes.txt file. That file is often missing or of poor quality and is not suitable for creating a well-connected, routable network. The way our transit networks are built, the geometry of the transit lines is unimportant, as long as they connect properly at stop locations.
If you want to visualize your public transit lines, you can use the GTFS Shapes To Features tool, but this is unrelated to the network dataset and is purely for visualization purposes. If the network dataset LineVariantElement geometry matters to you a lot, you could attempt to manually edit the LineVariantElements to match the geometry of the GTFS shapes, but I think this would be very arduous and could generate a lot of errors if you accidentally made things disconnected.
Could you tell me why the geometry of the LineVariantElements matters to you? I hear a lot of requests for this, so I would like to understand your motivations so I can consider whether this is something we should support in the future.
Thanks for your quick response! You are correct, it was only the Turns element that is empty, so thank you for that.
I just would like to see what actual elements of the transportation system are being used in the route (e.g. which train line, which bus, etc), and how that changes when different locations are used or if barriers are put in. I have visualized the public transit lines themselves using the GTFS Shapes to Features tool, but it would be helpful to be able to see how the routes follow the public transit lines (as opposed to the more abstract LineVariantElements). Let me know if that doesn't make sense!
I see. Yeah, that's a very reasonable thing to want to do.
Unfortunately, it's more complicated than simply needing the geometry of the transit lines. What you really need is an enhanced version of Copy Traversed Source Features that includes the transit trips that were actually used, not the lines themselves. The LineVariantElements may be shared by all trips running along that line. However, although under the hood, Network Analyst knows which transit trips were used, the architecture of the network dataset and the evaluator and solver do not allow us to pass that information out of the evaluator where it can be accessed by the traversal result. So, the information is there, but it's inaccessible. I know, super annoying...
Note that you should not use barriers to obstruct transit lines. If a barrier blocks one transit line segment, the solver is not smart enough to know that the transit line segments further on will also be delayed or not running. Each transit line segment just checks to see what the schedule is and uses it without regard for anything that may have happened upstream.
Instead, if you want to turn service on and off for a particular line, trip, mode, etc., you can do this using the special parameters available with the Public Transit evaluator described here: https://pro.arcgis.com/en/pro-app/latest/help/analysis/networks/public-transit-evaluator.htm#ESRI_SE.... This video may also be helpful.
With all that said, barriers are perfectly valid to use for blocking pedestrian areas or streets. Just don't put them on transit lines.
Thanks a lot, that makes sense.
Is it possible to turn off service for just part of a line (and specify between which stops)? The transit lines I'm working with are pretty long, so it doesn't really work to turn the entire line off, but I think that would solve my problem if I could turn just portions of the line off.
Thanks again!
No, there's no explicit way to do that. You could potentially edit your data and assign a different line ID to the section you want to turn off. You would have to very carefully read and understand the Public Transit Data Model documentation to make sure you've propagated those changes through all the related tables. And you still have to remember that the service downstream of the part your turning off will still run on the same schedule as before.
Another option: Don't put barriers on the transit lines, but put them on all the StopConnectors features that allow passengers to access the transit line. This would work to eliminate all access on and off the line for the section you want to turn off, although passengers already traveling on the line would still be able to go through. You could put a single barrier on the transit line at the start of the closed section, I guess. You would still have to account for downstream affects.
Thanks! Those are good ideas, I will look into them.
Hello again. Just wanted to follow up on part of this thread. I have created a downloadable script tool that adds transit information to the output of Copy Traversed Source Features, including the Run ID, ride time, wait time, and transit trip arrival and departure time to each transit segment.
The tool runs a post-process that queries the Public Transit Data Model tables to make a good guess as to which transit runs were used for each segment based on the constraints of the analysis settings and the arrival and departure times for that segment. This isn't a terribly efficient way to solve the problem, but it gets the job done.
Please consider this a prototype. Definitely let me know if the tool doesn't return the output you want or if you experience any problems. I would like to get this behavior into the core software at some point, and feedback on this prototype will be very valuable in doing so.
Download the tool from ArcGIS.com or GitHub. (This download includes several tools; the new one is called Copy Traversed Source Features With Transit.)
This topic covered a lot of ground, but one small piece of it was "My routes are being drawn as following the Line Variant Elements- is there any way to set it so that it follows the actual streets or subways that the vehicles actually take? "
In case this topic is still relevant to you, I wanted to share that with the ArcGIS Pro 3.4 release, you can now create a new Public Transit Data Model feature class, LVEShapes, to store the pretty on-street transit route shapes for visualization instead of just the straight-line stop connections in the LineVariantElements feature class. You can create an LVEShapes feature class from a GTFS shapes.txt file when running the GTFS To Public Transit Data Model tool.
Once you have a transit-enabled network dataset that includes LVEShapes, you can solve a Route or Closest Facility analysis and use a new downloadable prototype tool, Replace Route Geometry With LVEShapes, to post-process the output routes to swap the geometry derived from LineVariantElements with geometry derived from LVEShapes. That tool is part of the Transit Network Analysis Tools download, which you can get from GitHub or ArcGIS Online.