Allocates a set of demand points (Customers) to user specified number of supply points (Facilities) out of a Facilities point dataset based on the Bidirectional Network (BDN) distance/cost 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 Network distance/cost) 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.
Expression | Explanation |
---|---|
Function Name | AllocateBasedOnNetwork |
<Network to Use> | A String - the full name of the Network file (.etn). |
<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 |
<snap tolerance> | A Double representing the snap tolerance(in the units of the spatial reference of the Network). |
{Input Barrier Points} | A String representing the input layer with barrier points. Must be of Point type. |
{Barriers Direction Field} | A String representing the name of the field in the Input Barrier Points that will indicate the direction in which the barrier defined by each point work . Must be of String type. |
{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. |
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, "AllocateBasedOnNetwork","Network to Use", "facilities dataset", "customers dataset", "out link layer", " out facilities layer", "number facilities","snap tolerance", "Input Barrier Points", "Barriers Direction Field", "facility name field", "facility type field","customer name field","Cutoff distance ","KeepSourceSref"]) |
.NET using ETGWRun.exe | StartInfo.FileName = ETGWPath StartInfo.Arguments = "AllocateBasedOnNetwork" "Network to Use" "facilities dataset" "customers dataset" "out link layer" "out facilities layer" "number facilities" "snap tolerance" "Input Barrier Points" "Barriers Direction Field" "facility name field" "facility type field" "customer name field" "Cutoff distance " "KeepSourceSref" |
.NET using ETGWOutX.dll | AllocateBasedOnNetwork(Network to Use,facilities dataset,customers dataset, out link layer,out facilities layer, number facilities,snap tolerance, Input Barrier Points, Barriers Direction Field, facility name field, facility type field, customer name field, Cutoff distance KeepSourceSref) |
ArcPy | arcpy.AllocateBasedOnNetwork(Network to Use,facilities dataset,customers dataset, out link layer,out facilities layer, number facilities,snap tolerance, Input Barrier Points, Barriers Direction Field, 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.