変換エラーの計算 (Calculate Transformation Errors) (編集)

概要

座標変換に使用する既知のコントロール ポイント間の変換リンクの座標に基づいて、残差エラーと RMSE (二乗平均平方根誤差) を計算します。

使用法

  • このツールは、[フィーチャの座標補正 (Transform Features)] ツールの前に使用され、特に多数のフィーチャを変換する前に、コントロール ポイントが対象の変換に対して十分あるかどうかが判定されます。

  • 入力リンク フィーチャは、対応するコントロール ポイント間の変換リンクを表すラインです。

  • 変換は、直交座標系または平面座標系で機能します。PCS (投影座標系) を強くお勧めします。緯度と経度の値を持つ GCS (地理座標系) を使用すると、不要な歪みや計算エラーが発生する可能性があります。

  • エラーは、アフィン変換、相似変換、射影変換という 3 つの変換方式のいずれかに対して計算されます。各方式には、最低数の変換リンクが必要です。変換式などの詳細については、「フィーチャの変換」をご参照ください。

    • アフィン変換 - アフィン変換には、少なくとも 3 つの変換リンクが必要です。
    • 射影変換 - 射影変換には、少なくとも 4 つの変換リンクが必要です。
    • 相似変換 - 相似変換には、少なくとも 2 つの変換リンクが必要です。
  • 変換結果は、入力リンクの質によって異なります。リンクは既知のソース位置から開始し、対応するターゲット位置で終了します。これらの位置は、コントロール ポイントとも呼ばれます。コントロール ポイントがよりよく確立されているほど、変換結果の精度が高くなります。リンクの位置からおよび位置までの座標を使用して、変換式で使用されるパラメーターを取得します。これらは、「フィーチャの変換」で説明するように、ソースとターゲットのコントロール ポイント間で最適なものです。 変換パラメーターに基づいて実際のソース コントロール ポイントを変換した場合でも、結果の位置はターゲット コントロール ポイントの位置と一致しません。この不一致は残差エラーと呼ばれ、各変換リンクで発生します。入力リンクの残差エラーは、指定された出力テーブルに書き込まれます。このテーブルには、次のフィールドが含まれています。

    • Orig_FID - 入力リンク フィーチャの ID
    • X_Source - リンクのソース位置つまり始点の X 座標
    • Y_Source - リンクのソース位置つまり始点の Y 座標
    • X_Destination - リンクのターゲット位置つまり終点の X 座標
    • Y_Destination - リンクのターゲット位置つまり終点の Y 座標
    • Residual_Error - 変換後の位置の残差エラー

    RMSD (二乗平均平方根偏差) とも呼ばれる RMSE (二乗平均平方根誤差) は、残差エラーに基づいて計算され、通常、得られた変換結果の適切さの尺度となります。RMSE 値は、処理メッセージに書き込まれます。これは、スクリプトまたはモデル ワークフローで使用できる派生出力パラメーターにもなります。

    フィーチャの変換」の「変換リンクと RMSE」セクションでは、残差エラーと RMSE の計算に関する詳細を示しています。 入力フィーチャとコントロール ポイントの位置正確度に関する知識を基に、許容可能な RMSE 値を決めるのはユーザーです。RMSE 値が大きすぎると、残差エラーを確認して、残差エラーの大きいリンクを破棄または置換する必要が生じます。

構文

arcpy.edit.CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
パラメーター説明データ タイプ
in_link_features

座標変換に使用する既知のコントロール ポイント間の変換リンクである入力リンク フィーチャ。

Feature Layer
out_link_table
(オプション)

入力リンクのフィーチャ ID とその残差エラーを含む出力テーブル。入力リンクの残差エラーは、指定された出力テーブルに書き込まれます。このテーブルには、次のフィールドが含まれています。

  • Orig_FID - 入力リンク フィーチャの ID
  • X_Source - リンクのソース位置つまり始点の X 座標
  • Y_Source - リンクのソース位置つまり始点の Y 座標
  • X_Destination - リンクのターゲット位置つまり終点の X 座標
  • Y_Destination - リンクのターゲット位置つまり終点の Y 座標
  • Residual_Error - 変換後の位置の残差エラー
Table
method
(オプション)

入力フィーチャの座標変換に使用する変換方式。

  • AFFINEアフィン変換には、少なくとも 3 つの変換リンクが必要です。これがデフォルトです。
  • PROJECTIVE射影変換には、少なくとも 4 つの変換リンクが必要です。
  • SIMILARITY相似変換には、少なくとも 2 つの変換リンクが必要です。
String

派生した出力

名前説明データ タイプ
out_rmse

RMSE (二乗平均平方根誤差) の値をレポートします。

Double (倍精度浮動小数点数)

コードのサンプル

CalculateTransformationErrors (変換エラーの計算) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで CalculateTransformationErrors 関数を使用する方法を示しています。

import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.CalculateTransformationErrors_edit("control_Links", "output_Table", "AFFINE")
CalculateTransformationErrors (変換エラーの計算) の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、CalculateTransformationErrors 関数をスクリプティング環境で適用する方法の例を示しています。

import arcpy
import os

# all input data are in country.gdb and output will also go to this gdb
arcpy.env.workspace = os.path.join(os.getcwd(), "country.gdb")

try:
    in_links_feats = "link_features"
    out_link_table = "output_table"
    
    # transformation method
    method = "SIMILARITY"
    
    result = arcpy.CalculateTransformationErrors_edit(in_links_feats, out_link_table, method)

    # get the transformation error
    error = float(result.getOutput(1))

    # if error is less than 12.234 then run Transform Features
    if error < 20.0:
        # make a copy of the input features 
        arcpy.CopyFeatures_management(in_links_feats, "in_links_copy")
        arcpy.TransformFeatures_edit("in_links_copy", in_links_feats, method, "out_link_table")
    else:
        print("Transformation error {} is too high".format(error))
        
except arcpy.ExecuteError as aex:
    print(arcpy.GetMessages(2))
    
except Exception as ex:
    print(ex.args[0])

ライセンス情報

  • Basic: いいえ
  • Standard: いいえ
  • Advanced: はい

関連トピック