shortest distance

3533
6
02-13-2014 06:51 PM
silvanaAcevedo
New Contributor
Hi
I need to find out the shortest distance (by car) for over 2000 participants to the park that report they visit most.
For example participant 1 shortest path to park A only , participant 2 shortest path to park X and so on.
For example:
Participant (incident)   Park visited (facilities)
1                                  A
2                                  X
3                                  G
.                                    .
2000                             P

I try - New closest facility but for that i have to do it 2000, One for each participants
I also try ODC matrix and I am not interest in each participant to all park.
Any help with this.
thanks
Tags (2)
0 Kudos
6 Replies
MelindaMorang
Esri Regular Contributor
Hi.  You can use the Route solver.  You can configure it to solve multiple routes, one for each person-park pair.  To do this, you need to use field mapping when you're loading locations into the Route layer. Each person-park pair should have a unique ID, and you should map this unique ID to the Route layer's RouteID field. You might have to load multiple copies of the same park because multiple people use the same park.
0 Kudos
silvanaAcevedo
New Contributor
Hi Melinda,
Thanks for your reply. Loading multiple copies of the same park is not possible as i do have 532 parks and 2724 participants.

Also do you mind please extend in your comment ..."You can configure it to solve multiple routes, one for each person-park pair. To do this, you need to use field mapping when you're loading locations into the Route layer" what do you mean with ..use field mapping when loading locations?
Thanks a lot
silvana
0 Kudos
MelindaMorang
Esri Regular Contributor
After you create a new Route layer, you have to first load locations (stops) before you can solve the Route.  Essentially, you have to tell the Route layer what points you're creating a route for.  So, you use the Load Locations tool (or Add Locations if you're using ArcToolbox or writing a python script or making a model).

When you load locations, you can do something called field mapping.  This determines the relationship between fields in the input data (your people and parks) and the class in the Route layer you're loading (Stops).  The Stops class has a field called Name, and you can indicate that the field "ParkName" in your parks input should be transferred to the Name field in Stops.  To read more about field mapping and the Load Locations tool, check out this page: http://resources.arcgis.com/en/help/main/10.2/index.html#//00470000003t000000.

You can use field mapping to produce the behavior you're looking for (to create a separate route between individual pairs of stops).  When you load your people and your parks into the Stops class, you can assign each person and park to a different route using the RouteName field.  Stops with the same RouteName will have a route generated between them.  If your Stops class contains stops with 10 different RouteNames, 10 individual routes will be created in the results.  So, to do what you're trying to do, you should give each person-park pair a unique ID that will be used as the RouteName:
RouteName, Participant, Park
Route_A, 1, X
Route_B, 2, Y
Route_C, 3, Z
Route_D, 4, Y
This is why you might have to load multiple copies of some parks.  If multiple people use the same park, you'll need a copy of that park for each person who used it.
0 Kudos
MelindaMorang
Esri Regular Contributor
This video has a demonstration showing essentially what you're trying to do.
http://video.esri.com/watch/2918/network-analyst-performing-network-analysis
The relevant part starts around 12:50, and the field mapping portion starts around 16:30.  The demo finished up around 19:40.
0 Kudos
silvanaAcevedo
New Contributor
Hi Melinda,

Thanks so much for your reply and your detail explanation. It works Ok and you and the video make me understand few things I wasn't sure I was doing correctly.

However, only works fine when  I have a centroid of the park polygon. If I use the points around the park, as the park may have few entrances, it takes most of the entrances as stops (points around the park).  I open the Stop Table and in the table I have
Name           RouteName(my participants id) ....Cumul_Lenght ...
Location 2       10                                                      3297                                          
Location 20     10                                                      3532
Location 70     10                                                      4139
and so on

My interpretation is  for participant 10 the shortest route to the park based in the cum-Length is location 2. Is that correct?
Thanks again
sil
0 Kudos
MelindaMorang
Esri Regular Contributor
Any stops with the same RouteName will end up on the same route.  If you have Person 1 going to Park A, and you have three entrances for Park A (A1, A2, and A3), and you assign them all to RouteName 1, the route solver will produce a route like this:
Person 1 -> A1 -> A2 -> A3.  The route will have four stops, which I think isn't what you want.  You need to choose just one of those park entrances as the second stop in your route.

Alternatively, if you don't actually know which park/entrance each person is going to, you can use the Closest Facility solver.  This will generate a route to the closest park or park entrance to each person.  However, if you already have data reporting which park each person goes to, the closest one might not necessarily match.
0 Kudos