Трансформировать (Warp) (Управление данными)
Резюме
Трансформирует растр на основании опорных точек, используя метод полиномов. Действует сходно с пространственной привязкой, используя текстовый файл.
Рисунок
![]() |
Использование
-
Необходимо указать исходные и целевые координаты. Выбор типа преобразования (порядка полиномов) зависит от количества введенных контрольных точек.
-
Порядок полиномов по умолчанию (1) выполнит аффинное преобразование.
-
Инструмент Трансформировать полезен, когда растр запрашивает систематическую геометрическую коррекцию, которая может быть смоделирована с полиномом. Пространственное преобразование может инвертировать или удалять искажения с помощью преобразования полиномов в надлежащем порядке. Чем выше порядок, тем более сложные искажения могут быть скорректированы. Более высоким порядкам многочлена будет требоваться все большее время обработки.
Чтобы определить минимальное число связей, необходимых для данного порядка полинома, используйте следующую формулу:
n = (p + 1) (p + 2) / 2
, где n - минимальное число связей, необходимое для преобразования порядка полиномов p. Настоятельно рекомендуется использовать больше минимального количества связей.Этот инструмент определяет экстент трансформируемого растра и устанавливает почти такое же число строк и столбцов, как у входного растра. Из-за изменивших пропорций между размерами растров могут возникнуть небольшие изменения. Используемый размер ячейки по умолчанию будет вычислен путем деления экстента на предварительно указанное число строк и столбцов. Значение размера ячейки будет использоваться алгоритмом пересчета.
При определении размера выходной ячейки (output cell size) в Параметрах среды (Environment Settings) количество строк и столбцов вычисляется следующим образом:
columns = (xmax - xmin) / cell size rows = (ymax - ymin) / cell size
-
Вы можете сохранить выходные данные в BIL, BIP, BMP, BSQ, DAT, GIF, Esri Grid, IMG, JPEG, JPEG 2000, PNG, TIFF или любой набор растровых данных базы геоданных.
-
При хранении набора растровых данных в файле JPEG, файле JPEG 2000 или базе геоданных, вы можете указать тип Сжатие и Качество сжатия в настройках Параметров среды.
Синтаксис
Параметр | Объяснение | Тип данных |
in_raster |
Входной набор растровых данных. | Mosaic Layer; Raster Layer |
source_control_points [source_control_point,...] |
Исходные точки (координаты "от" для связи смещения). | Point |
target_control_points [target_control_point,...] |
Целевые точки (координаты "до" для связи смещения). | Point |
out_raster |
Выходной набор растровых данных. При сохранении набора растровых данных в формате файла, вы должны указать соответствующее расширение:
При сохранении набора растровых данных в базе геоданных расширение файла к имени набора растровых данных добавлять не нужно. При хранении набора растровых данных в файле JPEG, файле JPEG 2000, файле TIFF или базе геоданных, вы можете указать тип и качество сжатия. | Raster Dataset |
transformation_type (дополнительно) |
Тип преобразования, который будет использован.
| String |
resampling_type (дополнительно) |
Метод изменения разрешения растра. По умолчанию устанавливается метод ближайшего соседа (NEAREST).
Опции NEAREST и MAJORITY используются для данных категорий, например, классификации землепользования. Метод ближайшего соседа (NEAREST) применяется по умолчанию, т.к. является наиболее быстрым методом и не меняет значения ячеек растра. Не используйте NEAREST или MAJORITY для непрерывных данных, например, поверхности рельефа. Для непрерывных данных больше подходят методы Билинейной интерполяции (BILINEAR) и Кубической свертки (CUBIC). Которые в свою очередь не рекомендуется применять к данным категорий, т.к. в результате могут быть добавлены новые значения ячеек, не встречающиеся в исходных значениях ячеек растра. | String |
Пример кода
Это пример Python для инструмента Трансформировать (Warp).
import arcpy
from arcpy import env
env.workspace = "c:/data"
source_pnt = "'234718 3804287';'241037 3804297';'244193 3801275'"
target_pnt = "'246207 3820084';'270620 3824967';'302634 3816147'"
arcpy.Warp_management("raster.img", source_pnt, target_pnt, "warp.tif", "POLYORDER1",\
"BILINEAR")
Это пример скрипта Python для инструмента Трансформировать (Warp).
##====================================
##Warp
##Usage: Warp_management in_raster source_control_points;source_control_points...
## target_control_points;target_control_points... out_raster
## {POLYORDER_ZERO | POLYORDER1 | POLYORDER2 | POLYORDER3 |
## ADJUST | SPLINE | PROJECTIVE} {NEAREST | BILINEAR |
## CUBIC | MAJORITY}
try:
import arcpy
arcpy.env.workspace = r"C:/Workspace"
##Warp a TIFF raster dataset with control points
##Define source control points
source_pnt = "'234718 3804287';'241037 3804297';'244193 3801275'"
##Define target control points
target_pnt = outpnts = "'246207 3820084';'270620 3824967';'302634 3816147'"
arcpy.Warp_management("raster.img", source_pnt, target_pnt, "warp.tif", "POLYORDER2",\
"BILINEAR")
except:
print "Warp example failed."
print arcpy.GetMessages()