Трансформировать объекты (Редактирование)

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

Конвертирует координаты входных объектов из одного местоположения в другое через масштабирование, смещение и поворот на основе связей преобразования между соответствующими известными опорными точками.

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

    Внимание:

    Этот инструмент изменяет входные значения. Более подробно о стратегиях предотвращения нежелательных изменений данных см. в разделе Инструменты, которые изменяют или обновляют входные данные.

    Примечание:

    Все входные данные должны быть в одной системе координат.

  • Входными объектами могут быть точки, линии, полигоны или аннотации.

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

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

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

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

    • 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
Входные объекты-связи

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

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

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

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

Выходная таблица, содержащая входные связи и их невязки.

Table

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

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

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

Double
Обновленные входные объекты

Обновленные входные объекты.

Feature Layer

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

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

Feature Layer
in_link_features

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

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

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

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

Выходная таблица, содержащая входные связи и их невязки.

Table

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

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

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

Double
out_feature_class

Обновленные входные объекты.

Feature Layer

Пример кода

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

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

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

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

import arcpy
import os

# Set environment settings
arcpy.env.overwriteOutput = True

# Function to convert link info in a text file to a line feature class
def CreateLinkFeatures(in_text_file, in_data):

    sr = arcpy.Describe(in_data).spatialReference
    features = []  # a list to hold polyline geometry objects

    f = open(in_text_file, "r")
    
    for line in f.readlines():

        # Take start/end blank spaces off
        # Separate the start and end point coordinates
        points = line.strip().split()   
        
        point1 = arcpy.Point(float(points[1]), float(points[2]))
        point2 = arcpy.Point(float(points[3]), float(points[4]))
        
        features.append(arcpy.Polyline(arcpy.Array([point1, point2]), sr))
        
    f.close()   # close the text file

    # Copy the geometry objects into a feature class named Links
    result = arcpy.management.CopyFeatures(features, in_data + "_links")

    return result[0]
    
if __name__ == "__main__":

    # Make a copy of the data because
    # TransformFeatures tool modifies the input data
    arcpy.management.CopyFeatures(r"C:\data\Tutorial.gdb\Parcels", r"C:\data\Tutorial.gdb\Parcels_copy")

    links_file = r"C:\data\TF_links.txt"
    tf_link_features = CreateLinkFeatures(links_file, r"C:\data\Tutorial.gdb\Parcels")
    
    arcpy.edit.TransformFeatures(r"C:\data\Tutorial.gdb\Parcels_copy", tf_link_features)
    print(arcpy.GetMessages())