1

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
4

1 に答える 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
于 2013-03-18T14:52:43.320 に答える