概要
座標変換に使用する既知のコントロール ポイント間の変換リンクの座標に基づいて、残差エラーと 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 値が大きすぎると、残差エラーを確認して、残差エラーの大きいリンクを破棄または置換する必要が生じます。 
構文
CalculateTransformationErrors(in_link_features, {out_link_table}, {method})| パラメーター | 説明 | データ タイプ | 
| in_link_features | 座標変換に使用する既知のコントロール ポイント間の変換リンクである入力リンク フィーチャ。 | Feature Layer | 
| out_link_table (オプション) | 入力リンクのフィーチャ ID とその残差エラーを含む出力テーブル。入力リンクの残差エラーは、指定された出力テーブルに書き込まれます。このテーブルには、次のフィールドが含まれています。 
 | Table | 
| method (オプション) | 入力フィーチャの座標変換に使用する変換方式。 
 | 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: はい