FAQ
[フィールド演算] でラインの始点と次の頂点の角度を属性テーブルに出力する

ナレッジ番号:2801 | 登録日:2023/05/29 | 更新日:2023/06/21

概要

フィールド演算機能を使用して、ラインの始点と次の頂点までの角度(方位角)を算出します。

操作手順

準備

属性テーブルに新規にフィールドを追加します。フィールドのタイプは、「Double 型」にしてください。フィールドに作成方法につきましは、以下の FAQ をご参考ください。

新規でフィールドを作成するには?

手順

  1. 作成したフィールドの名前上で右クリックし、[フィールド演算] を選択します。
  2. [フィールド演算] ダイアログの [形式] から [Python] を選択します。
  3. [フィールド演算] ダイアログの [コードブロックを表示] にチェックを入れます。
  4. [Pre-Logic Script Code] の部分に以下の Python スクリプトを入力します。
    import math
    def GetAzimuthPolyline(shape):
      nextPoint = shape.getPart(0).getObject(1)
      radian = math.atan2((nextPoint.y - shape.firstpoint.y),(nextPoint.x - shape.firstpoint.x))
      angle = radian * 180 / math.pi #一般角
       
      if angle < 0:
        angle = 360 + angle #負の角度を正の角度に変換
       
      #一般角を方位角に変換
      azimuth = (-(angle % 360) + 90 + 360) % 360
      return azimuth
    
  5. 下部にある「フィールド名 = 」の箇所に、以下のコードを入力します。
    GetAzimuthPolyline(!Shape!)
    
  6. [OK] をクリックし、フィールド演算を実行します。

このサンプル コードはポリラインの始点と次の頂点を使用して、図上の真上を 0度とする方位角を算出します。また、座標値が地理座標系の場合には、期待する方位角は求められませんのでご注意ください。
上記の処理はラインだけでなく、ポリゴンに対しても実行することができます。

メタデータ

種類

製品

バージョン