Allocation

Running programmatically

Allocates a set of demand points (Customers) to user specified number of supply points (Facilities) out of a Facilities point dataset based on the Euclidian distance between the Customers and Facilities. In other words the function selects N Facilities out of K candidates to service a set of M Customer locations in such a way that each Customer is allocated to a single Facility (based on Euclidean distance) and the total distance between the Customers and selected Facilities is minimized.

The function uses heuristic vertex substitution algorithm modified from Teitz and  Bart (1968) and can handle comparatively large problems (Number of Customers * Number Facilities < 5 Million)

Inputs:

Outputs:

Illustration:

Input Facilities and Customers - No required facilities

Result (Selected facilities in green)

I<span>nput Facilities and Customers - Two required facilities

Result (Selected facilities in green)

Notes:

References:

Running Programmatically

(Go to TOP)

Parameters

Expression Explanation
Function Name Allocate
<facilities dataset> A Point layer - the candidate facilities.
<customers dataset> A Point feature class or feature layer - the Customers (demand points).
<out link layer> A String - the full name of the output link layer
<out facilities layer> A String - the full name of the output selected facilities feature class
<number facilities> An integer - the number of facilities to be selected
 {facility name field} A String representing a field name - the values in this field are used to identify the facilities.
 {facility type field} A String representing a field name - the values in this field are used to identify the type of the facilities.
 {customer name field} A String representing a field name - the values in this field are used to identify the customers.
{Cutoff distance} A number - the maximum distance between a Facility and a Customer to be used.The units of the tolerance are the units of spatial reference of the facilities dataset if KeepSourceSref = TRUE. Otherwise - the units of spatial reference of the customers dataset.
{Keep Customers Sref} A Boolean indicating whether the output to have the spatial reference of the customers layer. If False or 0, the spatial reference of the facilities layer will be used.

Running the function

ETGWPath used in the table below is the full path to ETGWRun.exe (E.G. "C:\Program Files\ETSpatial Techniques\ETGeo Wizards\ETGWRun.exe")

Language Syntax
Python subprocess.call([ETGWPath, "Allocate", "facilities dataset", "customers dataset", "out link layer", " out facilities layer", "number facilities", "facility name field", "facility type field","customer name field","Cutoff distance ","KeepSourceSref"])
.NET using ETGWRun.exe StartInfo.FileName = ETGWPath
StartInfo.Arguments = "Allocate" "facilities dataset"  "customers dataset" "out link layer" "out facilities layer" "number facilities" "facility name field" "facility type field" "customer name field" "Cutoff distance " "KeepSourceSref"
.NET using ETGWOutX.dll Allocate(facilities dataset,customers dataset, out link layer,out facilities layer, number facilities, facility name field, facility type field, customer name field, Cutoff distance KeepSourceSref)
ArcPy arcpy.Allocate(facilities dataset,customers dataset, out link layer,out facilities layer, number facilities, facility name field, facility type field, customer name field, Cutoff distance KeepSourceSref)

Notes:

(Go to TOP)