Сводка
Идентифицирует не совпадающие части входных объектов относительно целевых объектов в пределах расстояния поиска и выравнивает их по указанным объектам.
Иллюстрация

Использование
- Входные и целевые объекты могут быть как линейными, так и полигональными. Например, у вас может быть линейный или полигональный класс объектов границ округа, который частично не совпадает с линейным классом рек, в котором река должна проходить по границе между округами. Этот инструмент можно использовать для выравнивания несовпадающих границ по линиям рек, чтобы добиться совпадения. 
- Входные объекты, целиком или частично, становятся кандидатами на выравнивание, если они попадают в пределы указанного Радиуса поиска от целевых объектов. Геометрия кандидата должна быть похожа на геометрию целевого объекта; например, если входной и целевой объекты дорог идут параллельно, они более похожи, чем дороги, идущие под прямым углом друг к другу. 
- Если отмечено, опция Сопоставление полей используется для уточнения кандидата для выравнивания по отношению к целевому объекту. Например, если в пределах расстояния поиска от целевого объекта обнаружено два входных объекта, и оба они похожи по геометрии с целевым, и один из них совпадает с целевым также и по атрибутивному полю, для выравнивания будет выбран именно он. 
- Выравнивание сохраняет существующие топологические отношения между входными объектами. Например, если линия, конечные точки которой совпадают с другими линиями, перемещается в процессе выравнивания, конечные точки совпадающих линий перемещаются соответственно, так что линии остаются соединенными. 
- Новое поле, AF_CONF, добавляется к измененному входному объекту. В этом поле хранится значение, от 0 до 100, определяющее уровень достоверности для выравнивания по каждому объекту. Значение 100 показывает отсутствие разночтений для кандидата на выравнивание. Значение тем ниже, чем больше кандидатов на выравнивание находится, больше различий в геометрии или больше несовпадений атрибутов при отмеченной опции Сопоставление полей. Если входной объект не изменен – в поле будет значение -1. Так как входные и целевые объекты могут обладать сложной геометрией, есть вероятность неожиданного результата выравнивания; соответственно необходима последующая проверка, особенно если объектам присвоены низкие значения в AF_CONF. 
Синтаксис
arcpy.edit.AlignFeatures(in_features, target_features, search_distance, {match_fields})| Параметр | Объяснение | Тип данных | 
| in_features | Входные линейные или полигональные объекты для сопоставления. | Feature Layer | 
| target_features | Входные линейные или полигональные целевые объекты. | Feature Layer | 
| search_distance | Расстояние, использованное при поиске кандидатов для сопоставления. Расстояние должно быть задано, и оно должно быть больше 0. Вы можете выбрать предпочитаемые единицы измерения; единицами измерения по умолчанию являются единицы измерения объекта. | Linear Unit | 
| match_fields [[source_field, target_field],...] (Дополнительный) | Поля входных объектов и целевых объектов. Если указано, каждая пара полей проверяется на совпадения для нахождения правильного сопоставления. | Value Table | 
Производные выходные данные
| Имя | Объяснение | Тип данных | 
| out_feature_class | Обновленные входные объекты | Векторный слой | 
Пример кода
AlignFeatures, пример 1 (окно Python)
Пример скрипта окна Python для использования функции AlignFeatures в режиме прямого запуска.
import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.AlignFeatures_edit("countryA_border", "target_border", "25 Feet")
AlignFeatures, пример 2 (автономный скрипт)
Пример скрипта Python для выполнения функции AlignFeatures в автономном режиме.
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_features_orig = "common_border"
    in_features_copy = "common_border1"
    
    # Make a copy of the original data 
    arcpy.CopyFeatures_management(in_features_orig, in_features_copy)
    
    # Features to which input will be aligned
    target_features = "country1_border"
    
    search_dist = "100 Meters"
    match_fields = "A_field B_field"
    
    arcpy.AlignFeatures_edit(in_features_copy, target_features, search_dist, match_fields)
    
except arcpy.ExecuteError as aex:
    print(arcpy.GetMessages(2))
    
except Exception as ex:
    print(ex.args[0])
Параметры среды
Информация о лицензиях
- Basic: Нет
- Standard: Нет
- Advanced: Да