创建正射校正的栅格数据集 (Data Management)
用法
-
要正射校正栅格数据集,栅格必须与 RPC 相关联。
-
要获得更精确的结果,应该为高程使用数字高程模型 (DEM) 选项。在正射校正过程中应该使用 DEM,以便将地球的高程和曲率考虑进来。
-
如果使用 DEM 正射校正栅格数据集,将不使用常量高程值。
-
可将输出结果保存为 BIL、BIP、BMP、BSQ、DAT、GIF、Esri Grid、IMG、JPEG、JPEG 2000、PNG、TIFF 格式或任意地理数据库栅格数据集。
-
如果想要正射校正过程假设地球是大地水准面,则选中大地水准面参数。
语法
参数 | 说明 | 数据类型 |
in_raster | 要正射校正的输入栅格。 此栅格必须与有理多项式系数相关联。 | Raster Layer |
out_raster_dataset |
输出栅格数据集。 以文件格式存储栅格数据集时,需要指定文件扩展名,具体如下:
以地理数据库形式存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。 将栅格数据集存储到 JPEG 文件、JPEG 2000 文件、TIFF 文件或地理数据库时,可以指定压缩类型和压缩质量。 | Raster Dataset |
Ortho_type |
在正射校正过程中使用的高程类型。
| String |
constant_elevation |
当 ortho_type 参数为 CONSTANT_ELEVATION 时要使用的常量高程值。 如果在正射校正过程中使用 DEM,将不使用该值。 | Double |
in_DEM_raster (可选) |
当 ortho_type 参数为 DEM 时需要用来进行正射校正的是使用数字高程模型栅格。 | Mosaic Layer; Raster Layer |
ZFactor (可选) |
用于在 DEM 中转换高程值的比例因子。 它用来实现两个目的:首先,将高程单位(例如米或英尺)转换为数据集的水平坐标单位(可能是英尺、米或度);第二,为实现视觉效果添加垂直夸大。 | Double |
ZOffset (可选) |
在 DEM 中要添加到高程值的基础值。此参数偏移可使用不从海平面开始的高程值。 | Double |
Geoid (可选) |
指明是否想让正射校正过程假设地球是大地水准面或球体。
| Boolean |
代码实例
这是创建正射校正的栅格数据集 (CreateOrthoCorrectedRasterDataset) 工具的 Python 示例。
import arcpy
arcpy.CreateOrthoCorrectedRasterDataset_management("c:/data/RPCdata.tif",
"c:/data/orthoready.tif",
"DEM", "#", "c:/data/DEM.img",
"#", "10", "GEOID")
这是创建正射校正的栅格数据集 (CreateOrthoCorrectedRasterDataset) 工具的 Python 脚本示例。
##====================================
##Create Ortho Corrected Raster Dataset
##Usage: CreateOrthoCorrectedRasterDataset_management in_raster out_raster_dataset
## CONSTANT_ELEVATION | DEM constant_ elevation
## in_DEM_raster {ZFactor} {ZOffset} {NONE | GEOID}
try:
import arcpy
arcpy.env.workspace = r"C:/Workspace"
##Ortho correct with Constant elevation
arcpy.CreateOrthoCorrectedRasterDataset_management("ortho.img", "orthoready.tif",\
"CONSTANT_ELEVATION", "30", "#",\
"#", "#", "#")
##Ortho correct with DEM image and Z factors
arcpy.CreateOrthoCorrectedRasterDataset_management("ortho.img", "orthoready_dem.tif",\
"DEM", "#", "dem.img", "#", "10", "GEOID")
except:
print "Create Ortho Corrected Raster Dataset example failed."
print arcpy.GetMessages()