Код: Выделить всё
#import system modules
import arcpy
import math
from arcpy import env
#Set environment options
env.workspace="C:/Users/el/ac/script1"
# Set local variables
inFeatures = "line2.shp"
fieldName = "angle1"
expression = "GetAzimuthPolyline(!Shape!)"
codeblock = """import math
def GetAzimuthPolyline(shape):
radian = math.atan((shape.lastpoint.x - shape.firstpoint.x)/(shape.lastpoint.y - shape.firstpoint.y))
degrees = radian * 180 / math.pi
return degrees"""
# Execute AddField
arcpy.AddField_management(inFeatures, fieldName, "SHORT")
#print "Field has been added."
# Execute CalculateField
arcpy.CalculateField_management(inFeatures, fieldName, "GetAzimuthPolyline(!Shape!)", "PYTHON", codeblock)
Спойлер
Traceback (most recent call last):
File "C:\Users\el\ac\script1\scr1.py", line 35, in <module>
arcpy.CalculateField_management(inFeatures, fieldName, "GetAzimuthPolyline(!Shape!)", "PYTHON", codeblock)
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 3354, in CalculateField
raise e
ExecuteError: ERROR 000539: Error running expression: GetAzimuthPolyline(GPVARIANTOBJECT0)
Traceback (most recent call last):
File "<expression>", line 1, in <module>
File "<string>", line 3, in GetAzimuthPolyline
AttributeError: 'str' object has no attribute 'x'
File "C:\Users\el\ac\script1\scr1.py", line 35, in <module>
arcpy.CalculateField_management(inFeatures, fieldName, "GetAzimuthPolyline(!Shape!)", "PYTHON", codeblock)
File "c:\program files (x86)\arcgis\desktop10.2\arcpy\arcpy\management.py", line 3354, in CalculateField
raise e
ExecuteError: ERROR 000539: Error running expression: GetAzimuthPolyline(GPVARIANTOBJECT0)
Traceback (most recent call last):
File "<expression>", line 1, in <module>
File "<string>", line 3, in GetAzimuthPolyline
AttributeError: 'str' object has no attribute 'x'