[空间分析] 低分辨率转高分辨率-DEM与栅格图像-空间内插

版权声明:本文为博主原创文章,若有错误之处望大家批评指正!转载需附上原文链接,谢谢! https://blog.csdn.net/summer_dew/article/details/83000221

如果是遥感图像,要用几何配准的方法,不适合此方法
此方法适用于类似于DEM、温度栅格图这样的单DN值图像。这种图像往往很不好进行配准(对应点好不选)

【问题背景】两幅不同的分辨率的DEM(DEM1,DEM2),将分辨率统一
【思路】低分辨率的DEM1 -->转成点要素 --> 插值(按照DEM2的范围、DEM2的分辨率)–> 得到产品raster
【原理】一幅栅格图=矩阵+栅格大小(分辨率)+栅格的范围(左下角的经纬度) --> 栅格大小、栅格范围一定,栅格的框框位置也一定,也对的上
【判断分辨率是否转成一样】

  1. 肉眼看,一个像元的位置和大小是否一样(可以通过卷帘功能)
  2. 进行简单的栅格运算,如果能运算成果即分辨率相同了(计算: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)  # 保存

猜你喜欢

转载自blog.csdn.net/summer_dew/article/details/83000221