1

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).

  • Could you please clarify what kind of workflow you are trying to achieve? You say that you need shortest travel time from one point to another point, but you have 140.000 points. Do you want to get routes from each of the point to every other? The model image is a bit too small, it's hard to read the tools you use. – Alex Tereshenkov Feb 4 '15 at 9:24
  • 1
    @AlexTereshenkov I have found (if you are using Google Chrome) you can right click on an image and open in another tab. It usually opens the image in a size that can be read. Just a technique I discovered after hours of staring at impossibly small images! :) – Hornbydd Feb 4 '15 at 10:14
  • @Hornbydd, ah thanks a ton. Works well in Firefox and IE, too (guess any browser would work). Just had to paste the image url into the url bar. – Alex Tereshenkov Feb 4 '15 at 10:19
  • I have 140 000+ records to join with respective hospital. Thus, I will need to find 140 000 routes. Using my current model, I am taking days to just run the model. Do not think this is the best way to do the Network Analyst but I do not know other way around it. – Elfi Feb 9 '15 at 1:55
1

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...

  • Thank you for your answer. I have tried using the Collects Value tool and it helped but it still take a long time to run the model. Is it possible to use Python (if it will be a lot faster) or Data Interoperability to get the same result as Model Builder. – Elfi Feb 9 '15 at 1:49

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.