扭曲 (数据管理)
插图
用法
-
必须指定源坐标和目标坐标。可供选择的变换类型(多项式的阶)取决于输入的控制点数。
-
默认的多项式阶数 (1) 将执行仿射变换。
-
在栅格需要可用多项式进行建模的系统化几何校正时,“扭曲”工具很有用。通过使用适当阶数的多项式变换,空间变换可转换或移除变形。阶数越高,可校正的变形便越复杂。高阶多项式所需的处理时间也将逐渐增加。
要确定指定阶的多项式所必需的最小连接线数,请使用以下公式:
n = (p + 1) (p + 2) / 2
其中,n 是 p 阶多项式变换所需的最小连接线数。强烈建议使用大于最小连接线数的值。-
可将输出保存为 BIL、BIP、BMP、BSQ、DAT、GIF、GRID、IMG、JPEG、JPEG 2000、PNG、TIFF 格式或任意地理数据库栅格数据集。
-
将栅格数据集存储到 JPEG 文件、JPEG 2000 文件或地理数据库时,可在“环境设置”中指定压缩类型和压缩质量。
语法
参数 | 说明 | 数据类型 |
in_raster |
输入栅格数据集。 | 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 选项最适用于连续数据。不推荐对分类数据使用 BILINEAR 或者 CUBIC,因为像元值可能被更改。 | String |
代码示例
这是扭曲工具的 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")
这是扭曲工具的 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()