サマリー
座標変換に使用する既知のコントロール ポイント間の変換リンクの座標に基づいて、残差エラーと 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 値は、処理メッセージに書き込まれます。これは、スクリプトまたはモデル ワークフローで使用できる派生出力パラメーターにもなります。
構文
CalculateTransformationErrors_edit (in_link_features, {out_link_table}, {method})
パラメーター | 説明 | データ タイプ |
in_link_features | 座標変換に使用する既知のコントロール ポイント間の変換リンクである入力リンク フィーチャ。 | Feature Layer |
out_link_table (オプション) | 入力リンクのフィーチャ ID とその残差エラーを含む出力テーブル。入力リンクの残差エラーは、指定された出力テーブルに書き込まれます。このテーブルには、次のフィールドが含まれています。
| Table |
method (オプション) | 入力フィーチャの座標変換に使用する変換方式。詳細は、「フィーチャの照合と照合テーブルについて」をご参照ください。
| String |
コードのサンプル
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])
環境
このツールは、ジオプロセシング環境を使用しません。
ライセンス情報
- ArcGIS Desktop Basic: いいえ
- ArcGIS Desktop Standard: いいえ
- ArcGIS Desktop Advanced: はい