Краткая информация
Конвертирует координаты входных объектов из одного местоположения в другое через масштабирование, смещение и поворот на основе связей преобразования между соответствующими известными опорными точками.
Использование
-
Входными объектами могут быть, точки, линии или полигоны.
-
Входные объекты связей – это линии, представляющие связи трансформирования между известными соответствующими опорными точками. Начальная точка связи – это местоположение исходной опорной точки, а конечная точка связи – соответствующее местоположение целевой опорной точки.
-
Трансформирование работает в декартовой или плоскостной системе координат. Необходима система координат проекции (СКП). Использование географической системы координат (ГСК) со значениями широты и долготы может привести к нежелательным искажениям или вычислительным ошибкам.
-
Все входные объекты трансформируются одним из следующих методов: аффинным преобразованием, преобразованием подобия или проективным преобразованием. Для каждого из методов необходимо определенное минимальное число связей. Более подробно см. Векторная трансформация. Преобразования. Обзор, в том числе и о формулах преобразований.
- 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 на основе ваших знаний о позиционной точности входных объектов, а также опорных точек. Если значение RMSE слишком высоко, следует пересмотреть значения невязок и отменить или переместить связи с большими невязками.
Синтаксис
TransformFeatures_edit (in_features, in_link_features, {method}, {out_link_table})
Параметр | Объяснение | Тип данных |
in_features | Входные объекты, координаты которых будут преобразованы. | Feature Layer |
in_link_features | Входные объекты-связи, которые соединяют известные опорные точки трансформирования. | Feature Layer |
method (Дополнительный) | Методы трансформации, используемые для конвертации координат входных объектов.
| String |
out_link_table (Дополнительный) | Выходная таблица, содержащая входные связи и их невязки. | Table |
Пример кода
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])
Параметры среды
Информация о лицензиях
- ArcGIS Desktop Basic: Нет
- ArcGIS Desktop Standard: Нет
- ArcGIS Desktop Advanced: Да