Сводка
Конвертирует координаты входных объектов из одного местоположения в другое через масштабирование, смещение и поворот на основе связей преобразования между соответствующими известными опорными точками.
Использование
-         Входными объектами могут быть, точки, линии или полигоны. 
-         Входные объекты связей – это линии, представляющие связи трансформирования между известными соответствующими опорными точками. Начальная точка связи – это местоположение исходной опорной точки, а конечная точка связи – соответствующее местоположение целевой опорной точки. 
-         Трансформирование работает в декартовой или плоскостной системе координат. Необходима система координат проекции (СКП). Использование географической системы координат (ГСК) со значениями широты и долготы может привести к нежелательным искажениям или вычислительным ошибкам. 
-         Все входные объекты трансформируются одним из следующих методов: аффинным преобразованием, преобразованием подобия или проективным преобразованием. Для каждого из методов необходимо определенное минимальное число связей. Подробнее, в том числе о формулах преобразования см. раздел О пространственных преобразованиях настройки.. - 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.TransformFeatures(in_features, in_link_features, {method}, {out_link_table})| Параметр | Объяснение | Тип данных | 
| in_features | Входные объекты, координаты которых будут преобразованы. | Feature Layer | 
| in_link_features | Входные объекты-связи, которые соединяют известные опорные точки трансформирования. | Feature Layer | 
| method (Дополнительный) | Методы трансформации, используемые для конвертации координат входных объектов. 
 | String | 
| out_link_table (Дополнительный) | Выходная таблица, содержащая входные связи и их невязки. | Table | 
Производные выходные данные
| Имя | Объяснение | Тип данных | 
| out_rmse | Отчет о значении среднеквадратичной ошибки (RMSE). | Double | 
| out_feature_class | Обновленные входные объекты | Векторный слой | 
Пример кода
TransformFeatures, пример 1 (окно Python)
Пример скрипта окна Python для использования функции TransformFeatures в режиме прямого запуска.
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.TransformFeatures_edit("source_Roads.shp","control_Links.shp",
                             "AFFINE")
TransformFeatures, пример 2 (автономный скрипт)
Пример скрипта Python для выполнения функции TransformFeatures в автономном режиме.
import arcpy
import os
# Set geoprocessing environments
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.CopyFeatures_management(features, in_data + "_links")
    return result.getOutput(0)
    
if __name__ == "__main__":
    # Make a copy of the data because
    # TransformFeatures tool modifies the input data
    arcpy.CopyFeatures_management(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")
    
    try:
        arcpy.TransformFeatures_edit(r"C:\data\Tutorial.gdb\Parcels_copy", tf_link_features)
        print(arcpy.GetMessages())
        
    except arcpy.ExecuteError as aex:
        print(arcpy.GetMessages(2))
    except Exception as ex:
        print(ex.args[0])
Параметры среды
Информация о лицензиях
- Basic: Нет
- Standard: Нет
- Advanced: Да