扭曲 (Data Management)

许可等级:BasicStandardAdvanced

摘要

根据源和目标控制点使用多项式变换对栅格执行变换。这类似于使用文本文件进行地理配准。

插图

Example of two-dimensional coordinate transformations

用法

语法

Warp_management (in_raster, source_control_points, target_control_points, out_raster, {transformation_type}, {resampling_type})
参数说明数据类型
in_raster

输入栅格数据集。

Mosaic Layer; Raster Layer
source_control_points
[source_control_point,...]

源点是链接的“起点”坐标。

Point
target_control_points
[target_control_point,...]

目标点是链接的“终点”坐标。

Point
out_raster

输出栅格数据集。

以文件格式存储栅格数据集时,需要指定文件扩展名,具体如下:

  • .bil—Esri BIL
  • .bip—Esri BIP
  • .bmp—BMP
  • .bsq—Esri BSQ
  • .dat—ENVI DAT
  • .gif—GIF
  • .img—ERDAS IMAGINE
  • .jpg—JPEG
  • .jp2—JPEG 2000
  • .png—PNG
  • .tif—TIFF
  • 无扩展名 Esri Grid

以地理数据库形式存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。

将栅格数据集存储到 JPEG 文件、JPEG 2000 文件、TIFF 文件或地理数据库时,可以指定压缩类型和压缩质量。

Raster Dataset
transformation_type
(可选)

几何变换类型。

  • POLYORDER0零阶多项式用于平移数据。当数据已进行地理配准但通过微小的平移可以更好的排列数据时,通常使用该多项式。执行零阶多项式平移只需要一个连接线。
  • POLYORDER1一阶多项式(仿射)将输入点拟合为平面。这是默认设置。
  • POLYORDER2二阶多项式将输入点拟合为稍微复杂一些的曲面。
  • POLYORDER3三阶多项式将输入点拟合为更为复杂的曲面。
  • ADJUST对全局和局部精度都进行优化的变换。这可通过以下方法来完成:先执行一次多项式变换,然后使用不规则三角网 (TIN) 插值方法局部校正控制点,以便更好地与目标控制点保持一致。
  • SPLINE此变换可将源控制点准确地变换为目标控制点。这意味着控制点是准确的,只是控制点之间的栅格像素则不准确。
  • PROJECTIVE可扭曲线以使它们保持平直的变换。进行变换时,之前平行的线可能不再保持平行。投影变换尤其适用于倾斜的影像、扫描的地图和一些影像产品。
String
resampling_type
(可选)

要使用的重采样算法。默认设置为 NEAREST。

  • NEAREST最邻近分配法
  • BILINEAR双线性插值法
  • CUBIC三次卷积插值法
  • MAJORITY众数重采样法

NEAREST 和 MAJORITY 选项用于分类数据,如土地利用分类。NEAREST 选项是默认设置,因为它是最快的插值法,同时也因为它不会更改像元值。请勿对连续数据(如高程表面)使用 NEAREST 或 MAJORITY。

BILINEAR 选项和 CUBIC 选项最适用于连续数据。不推荐对分类数据使用 BILINEAR 或者 CUBIC,因为像元值可能被更改。

String

代码实例

扭曲示例 1(Python 窗口)

这是扭曲工具的 Python 示例。

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")
扭曲示例 2(独立脚本)

这是扭曲工具的 Python 脚本示例。

##====================================
##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()

环境

相关主题

许可信息

ArcGIS for Desktop Basic:是
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013