-
Notifications
You must be signed in to change notification settings - Fork 1
/
BuildNetwork.py
120 lines (89 loc) · 5.63 KB
/
BuildNetwork.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# BuildNetwork.py
# Created on: 2017-11-02 00:00:39.00000
# (generated by ArcGIS/ModelBuilder)
# Usage: BuildNetwork <Search_Radius> <Watershed_Boundaries> <River_Network> <On_River_nodes> <Demands> <River_Reservoirs> <NodeLink_Network> <Demand_Sites> <Reservoirs> <Engineered_Links> <OffStream_links>
# Description:
# build network
# ---------------------------------------------------------------------------
# Set the necessary product code
# import arcinfo
# Import arcpy module
import arcpy
# Script arguments
Search_Radius = arcpy.GetParameterAsText(0)
if Search_Radius == '#' or not Search_Radius:
Search_Radius = "100 Meters" # provide a default value if unspecified
Watershed_Boundaries = arcpy.GetParameterAsText(1)
if Watershed_Boundaries == '#' or not Watershed_Boundaries:
Watershed_Boundaries = "HUC8LittleBear" # provide a default value if unspecified
River_Network = arcpy.GetParameterAsText(2)
if River_Network == '#' or not River_Network:
River_Network = "SmallerNetwork" # provide a default value if unspecified
On_River_nodes = arcpy.GetParameterAsText(3)
if On_River_nodes == '#' or not On_River_nodes:
On_River_nodes = "points" # provide a default value if unspecified
Demands = arcpy.GetParameterAsText(4)
if Demands == '#' or not Demands:
Demands = "points" # provide a default value if unspecified
River_Reservoirs = arcpy.GetParameterAsText(5)
if River_Reservoirs == '#' or not River_Reservoirs:
River_Reservoirs = "points" # provide a default value if unspecified
NodeLink_Network = arcpy.GetParameterAsText(6)
if NodeLink_Network == '#' or not NodeLink_Network:
NodeLink_Network = "C:\\Users\\Ayman\\Box Sync\\USU\\Thesis\\Third Paper\\RiverNetworkTool\\New File Geodatabase.gdb\\Network" # provide a default value if unspecified
Demand_Sites = arcpy.GetParameterAsText(7)
if Demand_Sites == '#' or not Demand_Sites:
Demand_Sites = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb\\points_FeatureToPoint1" # provide a default value if unspecified
Reservoirs = arcpy.GetParameterAsText(8)
if Reservoirs == '#' or not Reservoirs:
Reservoirs = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb\\points_FeatureToPoint1" # provide a default value if unspecified
Engineered_Links = arcpy.GetParameterAsText(9)
if Engineered_Links == '#' or not Engineered_Links:
Engineered_Links = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb\\Engineered_links_FeatureToLi2" # provide a default value if unspecified
OffStream_links = arcpy.GetParameterAsText(10)
if OffStream_links == '#' or not OffStream_links:
OffStream_links = "Engineered_links" # provide a default value if unspecified
# Local variables:
ClippedRivers = "C:\\Users\\Ayman\\Box Sync\\USU\\Thesis\\Third Paper\\RiverNetworkTool\\New File Geodatabase.gdb\\ClippedRivers"
ClippedRivers_Dissolve = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb\\ClippedRivers_Dissolve"
Network = "C:\\Users\\Ayman\\Box Sync\\USU\\Thesis\\Third Paper\\RiverNetworkTool\\New File Geodatabase.gdb\\Network"
Network__2_ = Network
Output_Feature_Class__2_ = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb\\points_FeatureToPoint1"
points_FeatureToPoint1 = Output_Feature_Class__2_
Output_Feature_Class__3_ = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb\\points_FeatureToPoint1"
points_FeatureToPoint1__2_ = Output_Feature_Class__3_
Output_Feature_Class = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb\\Engineered_links_FeatureToLi2"
Engineered_links_FeatureToLi2 = Output_Feature_Class
# Set Geoprocessing environments
arcpy.env.scratchWorkspace = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb"
arcpy.env.workspace = "C:\\Users\\Ayman\\Documents\\ArcGIS\\Default.gdb"
# Process: Clip
arcpy.Clip_analysis(River_Network, Watershed_Boundaries, ClippedRivers, "")
# Process: Dissolve
arcpy.Dissolve_management(ClippedRivers, ClippedRivers_Dissolve, "", "", "MULTI_PART", "DISSOLVE_LINES")
# Process: Split Line at Point
arcpy.SplitLineAtPoint_management(ClippedRivers_Dissolve, On_River_nodes, Network, Search_Radius)
# Process: Add Field
arcpy.AddField_management(Network, "UniqueID", "TEXT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
# Process: Calculate Field
arcpy.CalculateField_management(Network__2_, "UniqueID", "\"L\" + str( !OBJECTID! )", "PYTHON_9.3", "")
# Process: Feature To Point
arcpy.FeatureToPoint_management(River_Reservoirs, Output_Feature_Class__2_, "CENTROID")
# Process: Add Field (2)
arcpy.AddField_management(Output_Feature_Class__2_, "UniqueID", "TEXT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
# Process: Calculate Field (2)
arcpy.CalculateField_management(points_FeatureToPoint1, "UniqueID", "\"R\" + str( !OBJECTID! )", "PYTHON_9.3", "")
# Process: Feature To Point (2)
arcpy.FeatureToPoint_management(Demands, Output_Feature_Class__3_, "CENTROID")
# Process: Add Field (3)
arcpy.AddField_management(Output_Feature_Class__3_, "UniqueID", "TEXT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
# Process: Calculate Field (3)
arcpy.CalculateField_management(points_FeatureToPoint1__2_, "UniqueID", "\"D\" + str( !OBJECTID! )", "PYTHON_9.3", "")
# Process: Feature To Line
arcpy.FeatureToLine_management(OffStream_links, Output_Feature_Class, "", "ATTRIBUTES")
# Process: Add Field (4)
arcpy.AddField_management(Output_Feature_Class, "UniqueID", "TEXT", "", "", "", "", "NULLABLE", "NON_REQUIRED", "")
# Process: Calculate Field (4)
arcpy.CalculateField_management(Engineered_links_FeatureToLi2, "UniqueID", "\"EL\" + str( !OBJECTID! )", "PYTHON_9.3", "")