Вычислить ошибки трансформирования (Редактирование)

Краткая информация

Вычисляет ошибки невязки и среднеквадратичную ошибку (RMSE) на основании координат входных связей известных опорных точек, для использования в пространственном трансформировании данных.

Использование

  • Инструмент используется перед инструментом Трансформировать объекты, для проверки корректности опорных точек, что особенно важно при трансформации большого числа объектов.

  • Входные объекты связей – это линии, представляющие связи трансформирования между соответствующими опорными точками.

  • Трансформирование работает в декартовой или плоскостной системе координат. Рекомендуется система координат проекции (СКП). Использование географической системы координат (ГСК) со значениями широты и долготы может привести к искажениям или вычислительным ошибкам.

  • Ошибки вычисляются для трех типов преобразований: аффинное, проективное и преобразование подобия. Для каждого метода определено минимально необходимое для корректного трансформирования количество связей. См. Трансформация объектов для дополнительной информации, в том числе и о формулах преобразований.

    • АФФИННОЕ - Требуется минимум три связи преобразования
    • ПРОЕКТИВНОЕ - Требуется минимум четыре связи преобразования
    • ПОДОБИЯ – Требуется минимум две связи преобразования
  • Результаты трансформации зависят от качества входных связей. Связь должна начинаться в известном исходном местоположении и заканчиваться в соответствующем целевом местоположении, называющимися также опорными точками. Чем лучше поставлены опорные точки, тем более точным будет результат трансформирования. Координаты начального и конечного местоположений связей используются для получения параметров, используемых в выражениях трансформирования, лучше всего подходящих для исходных и целевых опорных точек, как описано в разделе Трансформация объектов. Даже если вы используете параметры преобразования для трансформации реальных исходных опорных точек, результирующие местоположения не будут совпадать с действительным положением целевых опорных точек. Это называется невязкой, которая рассчитывается для каждой связи трансформирования. Невязки входных связей будут записаны в указанную выходную таблицу, содержащую следующие поля:

    • Orig_FID— ID объекта входной связи
    • X_Source— X-координата начального местоположения связи
    • Y_Source— Y-координата начального местоположения связи
    • X_Destination— X-координата конечного местоположения связи
    • Y_Destination— Y-координата конечного местоположения связи
    • Residual_Error— невязка трансформированного местоположения

    RMSE, также называемая среднеквадратическим отклонением (RMSD), вычисляется на основе невязок и обозначает общую пригодность полученной трансформации. Значение RMSE записывается в выходных сообщениях обработки. Оно также является производным выходным параметром, который можно использоваться в скриптах или моделях рабочего процесса.

    В разделе Трансформация объектов приведены подробные сведения о вычислениях невязок и RMSE. Вам необходимо определить допустимое значение RMSE на основе ваших знаний о позиционной точности входных объектов, а также опорных точек. Если значение RMSE слишком высоко, пересмотрите значения невязок и отмените или переместите связи с большими невязками.

Параметры

ПодписьОписаниеТип данных
Входные объекты-связи

Входные объекты-связи, которые соединяют известные опорные точки для пространственного трансформирования.

Feature Layer
Выходная таблица связей
(Дополнительный)

Выходная таблица, содержащая идентификаторы входных связей и их невязки. Невязки входных связей будут записаны в указанную выходную таблицу, содержащую следующие поля:

  • Orig_FID— ID объекта входной связи
  • X_Source— X-координата начального местоположения связи
  • Y_Source— Y-координата начального местоположения связи
  • X_Destination— X-координата конечного местоположения связи
  • Y_Destination— Y-координата конечного местоположения связи
  • Residual_Error— невязка трансформированного местоположения
Table
Метод
(Дополнительный)

Определяет методы трансформации, используемые для конвертации координат входных объектов.

  • Аффинное преобразованиеНеобходимо минимум три связи преобразования. Это значение по умолчанию
  • Проективное преобразованиеНеобходимо минимум четыре связи преобразования.
  • Преобразование подобияНеобходимо минимум две связи преобразования.
String

Производные выходные данные

ПодписьОписаниеТип данных
RMSE

Отчет о значении среднеквадратичной ошибки (RMSE).

Double

arcpy.management.CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
ИмяОписаниеТип данных
in_link_features

Входные объекты-связи, которые соединяют известные опорные точки для пространственного трансформирования.

Feature Layer
out_link_table
(Дополнительный)

Выходная таблица, содержащая идентификаторы входных связей и их невязки. Невязки входных связей будут записаны в указанную выходную таблицу, содержащую следующие поля:

  • Orig_FID— ID объекта входной связи
  • X_Source— X-координата начального местоположения связи
  • Y_Source— Y-координата начального местоположения связи
  • X_Destination— X-координата конечного местоположения связи
  • Y_Destination— Y-координата конечного местоположения связи
  • Residual_Error— невязка трансформированного местоположения
Table
method
(Дополнительный)

Определяет методы трансформации, используемые для конвертации координат входных объектов.

  • AFFINEНеобходимо минимум три связи преобразования. Это значение по умолчанию
  • PROJECTIVEНеобходимо минимум четыре связи преобразования.
  • SIMILARITYНеобходимо минимум две связи преобразования.
String

Производные выходные данные

ИмяОписаниеТип данных
out_rmse

Отчет о значении среднеквадратичной ошибки (RMSE).

Double

Пример кода

CalculateTransformationErrors, пример 1 (окно Python)

В следующем скрипте окна Python показано, как используется функция CalculateTransformationErrors в режиме прямого запуска.

import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.edit.CalculateTransformationErrors("control_Links", "output_Table", "AFFINE")
CalculateTransformationErrors, пример 2 (автономный скрипт)

Следующий автономный скрипт является примером применения функции CalculateTransformationErrors в среде скриптов.

import arcpy
import os

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

in_links_feats = "link_features"
out_link_table = "output_table"

# Transformation method
method = "SIMILARITY"

result = arcpy.edit.CalculateTransformationErrors(in_links_feats, out_link_table, method)

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

# If error is less than 12.234, run Transform Features
if error < 20.0:
    # Make a copy of the input features 
    arcpy.management.CopyFeatures(in_links_feats, "in_links_copy")
    arcpy.edit.TransformFeatures("in_links_copy", in_links_feats, method, "out_link_table")
else:
    print("Transformation error {} is too high".format(error))