|
POST
|
Topology of the input features is only one possible cause of a poorly-connected network. Please see the link in my post above about network connectivity. It could be the way your connectivity groups are set up or your connectivity policy. Maybe you're using End Point connectivity when you should be using Any Vertex, or maybe you have override vertices but their connectivity policy isn't set to Override.
... View more
03-04-2015
04:10 PM
|
0
|
0
|
3373
|
|
POST
|
I wasn't sure what you were referring to when you asked about the timeframe for "this" to be implemented. Are you referring to the ability to create and/or edit network dataset properties in python? If so, I can't answer that question except to say that we have no definitive plans to provide that functionality at this time. We are aware that many users want this functionality, however. It's on our radar.
... View more
03-04-2015
11:52 AM
|
0
|
4
|
2190
|
|
POST
|
Hi Natalie. Let me try to address each of your problems individually below. Hierarchy Hierarchy is a way of speeding up lengthy, long-distance route calculations by ignoring small local roads and preferring highways. It is not fully guaranteed to give the true shortest path, but it does a good job most of the time. If you solve without hierarchy, all the roads will be searched until the true shortest path is found. Consequently, your observation that some of the routes created were obviously not the shortest path when you were not using hierarchy makes me think that your network has some connectivity problems. If you're not using hierarchy, the Closest Facility solver will always return the shortest path through the network. If the shortest path looks wrong, it's probably because the network has some problems. Network dataset problems Here are a few common network dataset problems that cause incorrect results: - Your impedance attribute isn't set up correctly, so all roads have 0 impedance (then it doesn't even matter what roads are used in the route because it costs nothing to travel across any of them). - Your road features don't actually touch at intersection points. Maybe when they were digitized, you didn't have snapping turned on, and the road endpoints just don't coincide, so it's not possible to travel across intersections. - Your road features touch, but the points of intersection don't have a vertex (if you have an Any Vertex connectivity policy) or an endpoint (if you have an End Point connectivity policy). In this case, the roads appear connected but aren't actually logically connected in the network. This documentation page provides further information: ArcGIS Help (10.2, 10.2.1, and 10.2.2) Solve not creating a path to all facilities You definitely need to set "Facilities to Find" equal to the number of facilities you have if you want a route to be generated to all of them for each Incident. If some routes still aren't being generated, it's possible that no route was found in the network (which should generate a warning message). That would be another symptom of a network dataset problem. Other things to think about - If you're having trouble with your network dataset, and if you don't need to use your own street data (for instance, you have your own forest roads that you've added), you could use our online Closest Facility service. You would be charged credits from your ArcGIS Online account, but it would save you the trouble of creating and managing your own network dataset. You can connect to the online services through ArcMap as described here: ArcGIS Help (10.2, 10.2.1, and 10.2.2) - If you just need the travel time or distance between your points and not the actual routes taken, you should use the OD Cost Matrix tool instead of Closest Facility. It will run much faster, and it defaults to finding all OD pairs.
... View more
03-04-2015
11:48 AM
|
1
|
1
|
3373
|
|
POST
|
The Build Network tool is the final step in network dataset editing or creation. After you've edited the source features or updated the network dataset properties (which has to be done manually), you have to run the Build Network tool in order for those changes to really take effect in the network. So no, this tool doesn't do everything you want to do, but you will still need this tool as the final step in your procedure.
... View more
03-04-2015
08:26 AM
|
0
|
6
|
2190
|
|
POST
|
Oh, I see. Yes, you can use python for every step except the network dataset creation and network dataset property editing. I don't know what you mean by "Can I use Python to set up a GP Tool Model to set the simulation up". It's also not possible to alter network dataset properties in Model Builder. You could possibly use ArcObjects to do that, and then you could call your ArcObjects executable code from within a python script. If the only thing that's changing are the street features referenced by the network dataset, you might be able to automate the whole thing. Before starting your simulations, you could create your network dataset and get all the attributes and other properties defined. Then, during each run of your simulation, if you edit the street features, you can just run the Build tool on the network dataset so that it incorporates the new edits. If, on the other hand, you actually need to edit the network's attributes or connectivity properties or something, you will not be able to automate that with python. Have you created a network dataset before? If not, I think it might be best if you run through the network dataset creation tutorial (ArcGIS Help (10.2, 10.2.1, and 10.2.2) ) first before you continue planning your simulation. This will give you some idea of what's involved and put some of my suggestions above into context.
... View more
02-24-2015
11:40 AM
|
0
|
10
|
2528
|
|
POST
|
Correct, it's the 'create network dataset' step that is not possible in python. Why do you need to re-create the network dataset every time? If you just want to solve a route between a different start and end point, you can re-use the network dataset, especially if the points are all within the same geographic area.
... View more
02-24-2015
11:23 AM
|
0
|
12
|
2528
|
|
POST
|
Hello Matthias. For 1), what do you mean by "define a street network in a GDB"? If you have an existing network dataset, you can easily use it in python for your analysis. However, it is not possible to create a network dataset (meaning define its source features and set up all its properties) in python. The rest of your steps can definitely be done in python. Check out the code samples on this page: ArcGIS Help (10.2, 10.2.1, and 10.2.2). There are many code samples like that throughout the Network Analyst tool documentation which should help get you started.
... View more
02-24-2015
09:36 AM
|
0
|
14
|
2528
|
|
POST
|
Hello Francisco. Whenever you load locations into a Network Analysis layer, you can use the field mapping control to transfer attributes from the input feature class to the NA layer's Stops/Facilities/Origins/Destinations/etc. The input class in the NA layer doesn't automatically inherit all the fields from the input data. If you have an ID field, you could map that to the Name property in the NA layer. Or, before loading your input data, you could use the Add Field to Analysis Layer tool to add a custom field to the NA sublayer, and then you could map the field in your input to the custom field. Suppose your feature class of firms has a field called firmID and you want your Facilities sublayer in your Closest Facility layer to also have this field. You would have to add the field to the Facilities sublayer with the Add Field to Analysis Layer tool and then map the fields during the Load Locations process. See this page for more details: ArcGIS Help (10.2, 10.2.1, and 10.2.2) For your analysis, is each firm matched to a specific customer or set of customers, or are you actually trying to find the "closest facility" to each one? If you already know which pairs go together, and these pairs aren't necessarily the closest, you should use the Route tool rather than Closest Facility. There's a way you can use field mapping with the RouteName field to specify which pairs of points should be on the same route which I can describe in further detail if this is what you're trying to do. As far as splitting the resulting routes by state to find out the distance traveled in each state, check out this video of a presentation from the Esri User Conference which contains a demo of exactly this problem: Network Analyst: Performing Network Analysis | Esri Video It starts around 13:00. The material prior to that in the video explains a bit about field mapping.
... View more
02-17-2015
08:42 AM
|
1
|
2
|
3927
|
|
POST
|
This sounds like an issue you should report to Tech Support. They can log a bug for the crash and help you figure out a workaround. http://support.esri.com/
... View more
02-12-2015
12:29 PM
|
1
|
1
|
1100
|
|
POST
|
I suspect that the addition of your 751st stop is just crossing a threshold in the Network Analyst window after which it automatically collapses all the stops in order to save display space. The stops are still there and assigned to the correct routes, but you just can't view them in the Network Analyst window because there are too many. Since you have sooooo many stops, it seems like it would make more sense for you to create a feature class of them using the editing tools before loading them into a Network Analysis layer. Your feature class could have a field called RouteName which you could easily edit in order to assign the stops to the correct route. Then, when you load the feature class as Stops in your route, just use field mapping to assign the RouteName field in your feature class to the RouteName property for the Stops. If you don't want to start over completely, just export your Stops as a feature class, add the rest of them, and then re-load them back into the NA layer.
... View more
02-09-2015
08:37 AM
|
1
|
1
|
2973
|
|
POST
|
Does one of the cost attributes on your network dataset have a space or other special character in the name? I've seen that "specified column does not exist" message in that circumstance. If your network does have a cost attribute like that, rename it to something with only letters, digits, and underscores, rebuild the network, and try your solve again.
... View more
02-02-2015
08:24 AM
|
0
|
2
|
1657
|
|
POST
|
Hi everyone. When using detailed polygons in Service Area, holes are normal and expected. Detailed polygons provide the most accurate representation of the area that can be reached within your time or distance limit. It is quite possible that there might be pockets of unreachable areas completely surrounded by reachable areas. For instance, it could take quite a bit of time for your fire truck to wind its way through a bunch of curvy subdivision roads to the end of a cul-de-sac, so the cul-de-sac might not be reachable even if the surrounding roads are, leaving a hole in the middle. You might also have a stretch of road with a restriction on it, and Service Area polygons will not be drawn around it if the road is restricted in the analysis. Finally, there might simply be a large area with no roads, such as a river or lake or forest. That said, the holes you're getting might be a symptom of a problem with your network dataset (and the screenshots make me think this is indeed the case). In addition to the topology issues mentioned above, there are a few reasons why some - Your road has a one-way problem where both directions of travel are restricted (a 0-way road). - The impedance is calculated incorrectly for the road, giving it an extremely high value that makes it effectively unreachable. - Your road has a restriction placed on it incorrectly. For instance, there might be a height restriction with an unreasonable height limit. - The roads intersecting this one connect to it at vertices, but you're using an End Point connectivity model, so the roads don't actually connect. Some debugging tips: - Run the service area again with all the same settings, but check on line generation. Are the Service Area lines covering the roads where the polygon holes are? If not, then that looks like a symptom of a network connectivity problem. - Create a Route analysis layer and drop two points on either side of that one troublesome road segment. Can you calculate a Route and force it to cross that road segment, or does it loop around the block instead in order to get to the other side? - Use the Network Identify tool (on the Network Analyst toolbar) to click on the problem road. A pop-up window will appear, and it will show you a list of all the junctions and edges that are connected to that road. You can click on the items in this list, and it will highlight them on the map. If the road isn't connected to the surrounding roads the way you expected, then you have a network connectivity problem that needs to be solved.
... View more
01-21-2015
08:58 AM
|
2
|
1
|
3147
|
|
POST
|
Everything in your script up to that point looks fine to me...I'm kind of at a loss for what the problem might be. It might be time to contact Esri Support and get them to take a look.
... View more
01-20-2015
10:11 AM
|
0
|
1
|
2622
|
|
POST
|
It think you can accomplish this in your model as follows: - Make Route Layer - configure it to find the best order (rather than using input order) but to preserve both the first and last stops. That way the first and last one will remain first and last, but the middle ones will reorder for the optimized route. See ArcGIS Help (10.2, 10.2.1, and 10.2.2) - Add Locations 1 - your user's first selected stop (the starting point) - Add Locations 2 - all the intermediate stops that you already know - Add Locations 3 - your user's second selected stop (the end stop) - Solve
... View more
01-20-2015
09:20 AM
|
0
|
1
|
1175
|
|
POST
|
Sorry, I was unclear. What I meant is, have you tried adding the network dataset to ArcMap just to play around with it to make sure it works at all? Just try running a few manual tests in ArcMap. If you can't get it to work manually within ArcMap, then you certainly won't be able to get it to work in your script. Regardless, I think I see where the problem is in your MakeVehicleRoutingProblem statement: arcpy.MakeVehicleRoutingProblemLayer_na(inNetworkDataset, outNALayerName, impedanceAttribute, distanceAttribute, timeUnits, distanceUnits, "USE_HIERARCHY", "TRUE_LINES_WITH_MEASURES") You have to have the input parameters in the correct order and placement. Everything is fine up until "USE_HIERARCHY". In that place, it's expecting the default_date parameter, and it's confused because you're telling it to use a value of "USE_HIERARCHY" for default_date, which it doesn't understand. If you don't want to set a default_date or any of the other parameters between there and hierarchy, you can just explicitly identify the parameter you're using like hierarchy="USE_HIERARCHY": arcpy.MakeVehicleRoutingProblemLayer_na(inNetworkDataset, outNALayerName, impedanceAttribute, distanceAttribute, timeUnits, distanceUnits, hierarchy="USE_HIERARCHY", output_path_shape="TRUE_LINES_WITH_MEASURES") A complete list of Vehicle Routing Problem parameters, and their correct ordering, is here: ArcGIS Help (10.2, 10.2.1, and 10.2.2)
... View more
01-20-2015
08:31 AM
|
0
|
3
|
2622
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 2 weeks ago | |
| 1 | 3 weeks ago | |
| 1 | 3 weeks ago | |
| 1 | 06-12-2026 01:53 PM | |
| 1 | 04-21-2026 08:39 AM |
| Online Status |
Offline
|
| Date Last Visited |
2 weeks ago
|