• Python遥感开发之arcpy批量重采样


    Python遥感开发之arcpy批量重采样


    前言:主要介绍使用ARCGIS中自带的重采样工具,以及Python代码实现arcpy批量重采样,使用Python代码更加方便快捷。


    1. 重采样

    • 作用:更改栅格数据集的空间分辨率并针对所有新像素大小的聚合值或插值设置规则。
    • 可改变像元大小,但栅格数据集的范围将保持不变。
    • 最邻近 - 执行最邻近分配法,是速度最快的插值方法。此选项主要用于离散数据(如土地利用分类),因为它不会更改像元的值。最大空间误差将是像元大小的一半。
    • 众数 - 执行众数算法,可根据过滤器窗口内的最常用值来确定像元的新值。与最邻近法一样,此选项主要用于离散数据;但与“最邻近”选项相比,“众数”选项通常可生成更平滑的结果。众数重采样方法将在与输出像元中心最接近的输入空间中查找相应的 4 x 4 像元,并使用 4 x 4 相邻点的众数。
    • 双线性 - 执行双线性插值并基于四个最邻近的输入像元中心的加权平均距离来确定像元的新值。这对连续数据非常有用并且会对数据进行一些平滑处理。
    • 三次卷积 - 执行三次卷积插值法,可通过拟合穿过 16 个最邻近输入像元中心的平滑曲线确定像元的新值。此选项适用于连续数据,尽管所生成的输出栅格可能会包含输入栅格范围以外的值。与通过运行最邻近重采样算法获得的栅格相比,输出栅格的几何变形程度较小。“三次”选项的缺点是需要更多的处理时间。在某些情况下,此选项会使输出像元值位于输入像元值范围之外。如果无法接受此结果,请转而使用“双线性”选项。

    2. ARCGIS中的重采样

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 注意1:X和Y要设置成一致
    • 注意2:由于次遥感图是地理坐标,0.005表示的是500m的分辨率,0.01表示的是1000米的分辨率,依次类推(忽略误差)
    • 注意3:投影坐标500就表示500m的分辨率,1000表示1000的分辨率
    • 经纬度和米的换算如下所示,以上采用的方法有误差。
      在这里插入图片描述
      在这里插入图片描述

    3. Python_arcpy代码实现

    注意:使用的ARCGIS中Python2.7,记得切换环境。
    在这里插入图片描述
    代码实现:

    #encoding:utf-8
    import glob
    import os
    import arcpy
    
    if __name__ == "__main__":
    
        file = r"D:\0000Desktop\AAAAAwork\研究方向\data\河南NDVI"
        out = r"D:\0000Desktop\AAAAAwork\研究方向\data\河南NDVI_500m"
        file = unicode(file, "utf-8")
        out = unicode(out, "utf-8")
        os.chdir(file)
        names = os.listdir(file)
        
        for name in names:
            print(name)
            filepath = file+'\\'+name
            output = out+'\\'+name
            arcpy.Resample_management(filepath, output, "0.005", "NEAREST")#这个是在地理坐标的基础上进行的重采样
        #删除多余的文件
        for file_i in glob.glob(os.path.join(out, '*.xml')):
            os.remove(file_i)
        for file_i in glob.glob(os.path.join(out, '*.tfw')):
            os.remove(file_i)
        for file_i in glob.glob(os.path.join(out, '*.ovr')):
            os.remove(file_i)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
  • 相关阅读:
    启用redis缓存,让齐博x1访问速度更快
    文心一言 VS 讯飞星火 VS chatgpt (116)-- 算法导论10.3 1题
    Numpy字符串数组总结
    npm 下载包失败解决方案
    数仓4.0(可视化报表)
    在Fedora 16 linux下安装USB无线网卡驱动rtl88x2bu
    什么是热阻?
    嵌入式Linux--进程间通讯--消息队列
    (1)攻防世界web-Training-WWW-Robots
    C++: int转换成LPCSTR
  • 原文地址:https://blog.csdn.net/qq_32306361/article/details/128088402