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)
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. |
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:
<> - required parameter
{} - optional parameter
The argument separator for StartInfo.Arguments is space. If a string might contain a space, you need to double quote it.