如果是遥感图像,要用几何配准的方法,不适合此方法
此方法适用于类似于DEM、温度栅格图这样的单DN值图像。这种图像往往很不好进行配准(对应点好不选)
【问题背景】两幅不同的分辨率的DEM(DEM1,DEM2),将分辨率统一
【思路】低分辨率的DEM1 -->转成点要素 --> 插值(按照DEM2的范围、DEM2的分辨率)–> 得到产品raster
【原理】一幅栅格图=矩阵+栅格大小(分辨率)+栅格的范围(左下角的经纬度) --> 栅格大小、栅格范围一定,栅格的框框位置也一定,也对的上
【判断分辨率是否转成一样】
- 肉眼看,一个像元的位置和大小是否一样(可以通过卷帘功能)
- 进行简单的栅格运算,如果能运算成功即分辨率相同了(计算:raster+DEM2)
【异常处理】如果上一步处理之后,框框的位置还是对不到
这里提供一个Python代码,利用的是Arcpy里的模块,强行将框框的位置对齐
# -*- coding:utf-8 -*-
# Author: PasserQi
# Time:20181009
# Desc:
# 问题背景:两幅不同分辨率的DEM,将DEM分辨率统一
# 第一步:[DEM1]-->转成点-->插值(按照DEM2的范围、DEM2的分辨率)-->得到产品[DEM11]
# 问题:得到的产品[DEM11] 和 DEM2 分辨率相同,但是栅格的位置不同
# 第二步:使用Arcpy强行对齐,有精度问题
import arcpy
import arcpy,sys
from arcpy.sa import *
arcpy.CheckOutExtension("sptial") #权限检查
# 得到初始参数
# DEM11 = sys.argv[1]
# DEM2 = sys.argv[2]
# outPath = sys.argv[3]
DEM11 = r'' # DEM11的全路径
DEM2 = r'' # DEM2的全路径
outPath = r'' # 输出路径
if __name__ == '__main__':
dem11 = Raster(DEM11) #打开栅格
r1 = arcpy.RasterToNumPyArray(dem11) #转成Numpy方便对每个像元进行处理
# dem2栅格基础的信息
dem2 = Raster(DEM2)
noDataValue = dem2.noDataValue
lowerLeft = arcpy.Point(dem2.extent.XMin, dem2.extent.YMin)
cellWidth = dem2.meanCellWidth
cellHeight = dem2.meanCellHeight
newRaster = arcpy.NumPyArrayToRaster(r1, lowerLeft, cellWidth, cellHeight, noDataValue) # 转换成栅格
newRaster.save(outPath) # 保存