[GIS] ArcGIS Network Analysis Find Shortest Route with Large Number of Data

arcgis-desktopmodelbuildernetwork-analystrouteshortest path

I am trying to find the shortest distance and shortest travel time from one point to another point. However, I have a large number of data (140 000s). I break my data to smaller feature classes of 10 000 and run the model. However, it took more than 12 hours to run one model, since I have broken down my data to 15 sets, it will take a long time for me to run the model. I also need to find the straight distance between the points thus, i have three model running for the data. It takes a lot of time and I have to do this quite frequent. I am wondering if there is a better ways of doing this. there are probably other ways of doing this but I am not sure about it.

Currently, this is how my model looks like:
enter image description here

I used iterator to iterate through each records (there are 10 000 records).
Each point will have destination.

I am finding the shortest route and the shortest travel time thus I will run this model twice with different impedance (Minute and Km).

After the network route is solved, it will append to a holding file (I think the whole model take a long time to run due to the append).

Best Answer

You are making the classic mistake that a lot of people do. If you read the help file of the Append tool it takes a LIST of datasets.

Currently your model is appending on ever iteration which is very inefficient.

You can improve model performance by sending the output of the Select Data tool (Routes) to an in_memory workspace then feed that tool into a COLLECTS VALUE tool and expose that as a parameter. Then whole model is an embedded sub-model to a master model which has a single Append tool that would be taking the list of datasets to append.

Look at my answer in this question. The original poster still gets it wrong but then I guess he was not iterating through thousands of features.

Once you get your model like this it will run much faster but as you are talking in thousands of points that is a lot of network processing and I would expect it to run for many hours, especially if the map display keeps trying to refresh itself...

Related Question