Сводка
Вычисляет ошибки невязки и среднеквадратичную ошибку (RMSE) на основании координат входных связей известных опорных точек, для использования в пространственном трансформировании данных.
Использование
Инструмент используется перед инструментом Трансформировать объекты, для проверки корректности опорных точек, что особенно важно при преобразовании большого числа объектов.
Входные объекты связей – это линии, представляющие связи трансформирования между соответствующими опорными точками.
-
Трансформирование работает в декартовой или плоскостной системе координат. Необходима система координат проекции (СКП). Использование географической системы координат (ГСК) со значениями широты и долготы может привести к нежелательным искажениям или вычислительным ошибкам.
Ошибки вычисляются для трех типов преобразований: аффинное, проективное и преобразование подобия. Для каждого метода определено минимально необходимое для корректного трансформирования количество связей. См. Преобразование объектов для дополнительной информации, в том числе и о формулах преобразований.
- AFFINE – для аффинного преобразования необходимо минимум три связи смещения.
- PROJECTIVE – для проективного преобразования необходимо минимум четыре связи смещения.
- SIMILARITY – для преобразования подобия необходимо минимум две связи смещения.
Результаты преобразования зависят от качества входных связей. Связь должна начинаться в известном исходном местоположении и заканчиваться в соответствующем целевом местоположении, называющимися также опорными точками. Чем лучше поставлены опорные точки, тем более точным будет результат трансформирования. Координаты начального и конечного местоположений связей используются для получения параметров трансформирования, лучше всего подходящих для исходных и целевых опорных точек, как описано в разделе Преобразование объекта. Даже если вы используете параметры преобразования для трансформации реальных исходных опорных точек, результирующие местоположения не будут совпадать с действительным положением целевых опорных точек. Это называется невязкой, которая рассчитывается для каждой связи трансформирования. Невязки входных связей можно записать в указанную выходную таблицу, содержащую следующие поля:
- Orig_FID— ID объекта входной связи
- X_Source— X-координата начального местоположения связи
- Y_Source— Y-координата начального местоположения связи
- X_Destination— X-координата конечного местоположения связи
- Y_Destination— Y-координата конечного местоположения связи.
- Residual_Error— Невязка трансформированного местоположения
Среднеквадратическая ошибка (RMSE), также называемая среднеквадратическим отклонением (RMSD), вычисляется на основе невязок и в общем указывает насколько хорошо вычислено полученное преобразование. Значение RMSE записывается в выходных сообщениях обработки. Оно также является производным выходным параметром, который можно использоваться в скриптах или моделях рабочего процесса.
В разделе «Связи трансформирования и среднеквадратичные ошибки» статьи Трансформировать объекты рассказывается более подробно о невязках и среднеквадратичных ошибках. Вы определяете допустимое значение RMSE на основе ваших знаний о позиционной точности входных объектов, а также опорных точек. Если значение RMSE слишком высоко, следует пересмотреть значения невязок и отменить или переместить связи с большими невязками.
Синтаксис
arcpy.edit.CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
Parameter | Объяснение | Тип данных |
in_link_features | Входные объекты-связи, которые соединяют известные опорные точки для пространственного трансформирования. | Feature Layer |
out_link_table (Дополнительный) | Выходная таблица, содержащая идентификаторы входных связей и их невязки. Невязки входных связей можно записать в указанную выходную таблицу, содержащую следующие поля:
| Table |
method (Дополнительный) | Методы трансформации, используемые для конвертации координат входных объектов.
| String |
Производные выходные данные
Name | Объяснение | Тип данных |
out_rmse | Отчет о значении среднеквадратической ошибки (RMSE). | Double |
Пример кода
Пример скрипта окна Python для использования функции CalculateTransformationErrors в режиме прямого запуска.
import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.CalculateTransformationErrors_edit("control_Links", "output_Table", "AFFINE")
Пример скрипта Python для выполнения функции 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])
Environments
Информация о лицензиях
- Basic: Нет
- Standard: Нет
- Advanced: Да