-
Notifications
You must be signed in to change notification settings - Fork 0
/
calculateField.py
62 lines (50 loc) · 2.01 KB
/
calculateField.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
import arcpy
from arcpy import env
# env.overwriteOutput = True
#test
env.workspace = "Database Connections/RPUD_TESTDB.sde"
# env.workspace = "C:/data/BasinTest.gdb"
# fc_basin = "PU_Boundaries/SewerBasins"
#trans
# env.workspace = "Database Connections/RPUD_TRANSDB.sde"
# fc = "RPUD.PU_Boundaries/RPUD.EasementMaintenanceAreas"
fc_basin = "RPUD.PU_Boundaries/RPUD.SewerBasins"
def calculateBasin(fc, basinLyr):
fLyr = "lyr_" + fc
arcpy.MakeFeatureLayer_management(fc, fLyr)
rows = arcpy.SearchCursor(basinLyr)
try:
for row in rows:
arcpy.SelectLayerByAttribute_management(basinLyr, "NEW_SELECTION", "\"OBJECTID\" = " + str(row.getValue("OBJECTID")))
arcpy.SelectLayerByLocation_management(fLyr, "INTERSECT", basinLyr, "", "NEW_SELECTION")
# print(str(row.getValue("BASINS")))
arcpy.CalculateField_management(fLyr, "BASIN", "'{0}'".format(str(row.getValue("BASINS"))), "PYTHON_9.3", "")
print("BASIN " + str(row.getValue("BASINS")) + " has been assigned to " + fc)
except:
pass
print(fc + " does not have a BASIN field.")
def calculateLength(fc, field):
fLyr = "lyr_" + fc
arcpy.MakeFeatureLayer_management(fc, fLyr)
# try:
arcpy.CalculateField_management(fLyr, field, "!SHAPE.LEN!", "PYTHON_9.3", "")
# except:
# print(fc + "does not have a " + field + " field.")
#####################################################################################################################################
# 02/03/2017
#calculate basin for Easement
# fc = "RPUD.EasementMaintenanceAreas"
# arcpy.MakeFeatureLayer_management(fc_basin, "lyr_basin")
# calculateBasin(fc, "lyr_basin")
#calculate basin for sewer featureclasses
# fcs = arcpy.ListFeatureClasses("", "", "RPUD.SewerCollectionNetwork")
# for fc in fcs:
# basinLyr = "basin_" + fc
# arcpy.MakeFeatureLayer_management(fc_basin, basinLyr)
# calculateBasin(fc, basinLyr)
#
#calculate length for gravity main
env.workspace = "Database Connections/RPUD_TRANSDB.sde/RPUD.SewerCollectionNetwork"
fc = "RPUD.ssGravityMain"
field = "LENGTH"
calculateLength(fc, field)