在Arcgis 10中用Python计算方位角时的语法错误
我正在尝试在ArcGIS 10中用Python计算方位角,但遇到了语法错误。以下是我的代码:
def CalculaAzimuth(Linea):
Xorigen = linea.firstPoint.Y
Yorigen = linea.firstPoint.X
Xfinal = linea.lastPoint.X
Yfinal = linea.lastPoint.Y
DeltaX = Xfinal - Xorigen
DeltaY = Yfinal - Xorigen
PI = math.pi()
Azimuth = 4 * PI
if DeltaX = 0:
if DeltaY >=0:
Azimuth = 0
else:
Azimuth = 180
elif DeltaX >0:
Azimuth = 90 - math.atan( DeltaY / DeltaX ) * 180 / PI
elif DeltaX <0:
Azimuth = 270 - math.atan( DeltaY / DeltaX )* 180 / PI
return Azimuth
1 个回答
4
好的,这里有一个整理过的版本,包含了上面的所有评论,还有一些逻辑上的小改动和变量的清理。请注意,这并不是一个真正的椭球体上的方位角。
def CalculaAzimuth(linea):
if (hasattr(linea,'type') and linea.type == 'polyline'):
xf = linea.firstPoint.X
yf = linea.firstPoint.Y
xl = linea.lastPoint.X
yl = linea.lastPoint.Y
dX = xl - xf
dY = yl - yf
PI = math.pi
Azimuth = 0 #Default case, dX = 0 and dY >= 0
if dX > 0:
Azimuth = 90 - math.atan( dY / dX ) * 180 / PI
elif dX < 0:
Azimuth = 270 - math.atan( dY / dX )* 180 / PI
elif dY < 0:
Azimuth = 180
return Azimuth
else:
return False