Python ArcPy批量掩膜、重采样大量遥感影像

python,arcpy,批量,掩膜,采样,大量,遥感,影像 · 浏览次数 : 184

小编点评

**代码摘要:** 该 Python 代码用于对大量栅格遥感影像进行批量掩膜和重采样的操作。 **步骤:** 1. **获取影像文件列表:** - 利用 `arcpy.ListRasters()` 函数获取路径下所有 .tif 格式的影像文件路径。 - 将结果存入 `tif_file_name` 中。 2. **执行掩膜操作:** - 遍历 `tif_file_name` 中的所有 .tif 格式影像文件。 - 利用 `ExtractByMask()` 函数对影像进行掩膜操作,并将其保存为新文件名。 - 保存结果图像文件。 3. **执行重采样操作:** - 遍历 `tif_file_name` 中的所有 .tif 格式影像文件。 - 利用 `Resample_management()` 函数对影像进行重采样,并将其保存为新文件名。 - 保存结果图像文件。 **完整代码:** ```python import arcpy from arcpy.sa import * # 设置工作空间 tif_file_path = "E:/LST/Data/NDVI/03_Mosaic/" shp_file = "E:/LST/Data/Region/YellowRiver_nineprovince.shp" out_file_path = "E:/LST/Data/NDVI/04_Mask/" resample_file_path = "E:/LST/Data/NDVI/05_Resample/" # 获取影像文件路径 tif_file_name = arcpy.ListRasters(tif_file_path)[0] # 执行掩膜操作 mask_result_path = out_file_path + "/\+{}_Mask.tif".format(tif_file.split(".")[1]) arcpy.ExtractByMask(tif_file, shp_file, mask_result_path) # 执行重采样操作 resample_file_name = tif_file.split(".")[1] + "_Re.tif" arcpy.Resample_management(tif_file, resample_file_path, 1000, "BILINEAR") ``` **注意:** - `tif_file_path` 和 `shp_file` 应根据实际路径进行修改。 - `out_file_path` 和 `resample_file_path` 应根据需求进行设置。

正文

  本文介绍基于PythonArcPy模块,对大量栅格遥感影像文件进行批量掩膜批量重采样的操作。

  首先,我们来明确一下本文的具体需求。现有一个存储有大量.tif格式遥感影像的文件夹;且其中除了.tif格式的遥感影像文件外,还具有其它格式的文件。

  我们希望,依据一个已知的面要素矢量图层文件,对上述文件夹中的全部.tif格式遥感影像进行掩膜,并对掩膜后的遥感影像文件再分别加以批量重采样,使得其空间分辨率为1000 m。

  明确了需求后,我们就可以开始具体的操作。首先,本文所需用到的代码如下。

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 15 16:44:26 2022

@author: fkxxgis
"""

import arcpy
from arcpy.sa import *

tif_file_path="E:/LST/Data/NDVI/03_Mosaic/"
shp_file="E:/LST/Data/Region/YellowRiver_nineprovince.shp"
out_file_path="E:/LST/Data/NDVI/04_Mask/"
resample_file_path="E:/LST/Data/NDVI/05_Resample/"
arcpy.env.workspace=tif_file_path
arcpy.env.extent=shp_file

tif_file_name=arcpy.ListRasters("*","tif")
for tif_file in tif_file_name:
    mask_result=ExtractByMask(tif_file,shp_file)
    mask_result_path=out_file_path+"/"+tif_file.strip(".tif")+"_Mask.tif"
    mask_result.save(mask_result_path)
    
arcpy.env.workspace=out_file_path
tif_file_name=arcpy.ListRasters("*","tif")
for tif_file in tif_file_name:
    resample_file_name=tif_file.strip(".tif")+"_Re.tif"
    arcpy.Resample_management(tif_file,resample_file_path+resample_file_name,
                              1000,"BILINEAR")

  其中,tif_file_path是原有掩膜前遥感图像的保存路径,shp_file是已知面要素矢量图层文件的保存路径,out_file_path是我们新生成的掩膜后遥感影像的保存路径,resample_file_path则是最终重采样后遥感影像的保存路径。

  在这里,我们首先利用arcpy.ListRasters()函数,获取路径下原有的全部.tif格式的图像文件,并存放于tif_file_name中;随后,遍历tif_file_path路径下全部.tif格式图像文件(即遍历tif_file_name),并利用ExtractByMask()函数进行掩膜操作;其次,对于掩膜好的图层,在其原有文件名后添加"_Mask.tif"后缀,作为新文件的文件名。

  对全部图像文件完成掩膜操作后,我们继续进行重采样操作。和前述代码思路类似,我们依然还是先遍历文件,并在其原有文件名后添加"_Re.tif"后缀,作为新文件的文件名;随后,利用Resample_management()函数进行重采样。其中,1000表示重采样的空间分辨率,在这里单位为米;"BILINEAR"表示用双线性插值的方法完成重采样。

  以上便是本次操作的全部代码;我们这里选择在 IDLE (Python GUI) 中运行代码。运行完毕,得到的一个结果文件如下图;可以看到,遥感影像已经完成了掩膜,且空间分辨率已经为1000 m。

  至此,大功告成。

与Python ArcPy批量掩膜、重采样大量遥感影像相似的内容:

Python ArcPy批量掩膜、重采样大量遥感影像

本文介绍基于Python中ArcPy模块,对大量栅格遥感影像文件进行批量掩膜与批量重采样的操作~

Python ArcPy批量拼接长时间序列栅格图像

本文介绍基于Python中ArcPy模块,对大量不同时相的栅格遥感影像按照其成像时间依次执行批量拼接的方法~

Python ArcPy批量计算多时相遥感影像的各像元平均值

本文介绍基于Python中ArcPy模块,对大量长时间序列栅格遥感影像文件的每一个像元进行多时序平均值的求取~

ArcPy批量对大量遥感影像相减做差

本文介绍基于Python中ArcPy模块,对大量栅格遥感影像文件批量进行相减做差的方法~

Python arcpy创建栅格、批量拼接栅格

本文介绍基于Python语言arcpy模块,实现栅格影像图层建立与多幅遥感影像数据批量拼接(Mosaic)的操作~

Python批量填补遥感影像的无效值NoData

本文介绍基于Python中ArcPy模块,对大量栅格遥感影像文件批量进行无效值(NoData值)填充的方法~

HDF格式遥感影像批量转为TIFF格式:ArcPy实现

本文介绍基于Python中ArcPy模块,实现大量HDF格式栅格图像文件批量转换为TIFF格式的方法~

音频文件降噪及python示例

操作系统 :Windows 10_x64 Python版本:3.9.2 noisereduce版本:3.0.2 从事音频相关工作,大概率会碰到降噪问题,今天整理下之前学习音频文件降噪的笔记,并提供Audacity和python示例。 我将从以下几个方面展开: noisereduce库介绍 使用Aud

Python按条件筛选、剔除表格数据并绘制剔除前后的直方图

本文介绍基于Python语言,读取Excel表格文件数据,以其中某一列数据的值为标准,对于这一列数据处于指定范围的所有行,再用其他几列数据的数值,加以数据筛选与剔除;同时,对筛选前、后的数据分别绘制若干直方图,并将结果数据导出保存为一个新的Excel表格文件的方法~

我从 Python 潮流周刊提取了 800 个链接,精选文章、开源项目、播客视频集锦

你好,我是豌豆花下猫。前几天,我重新整理了 Python 潮流周刊的往期分享,推出了第 1 季的图文版电子书,受到了很多读者的一致好评。 但是,合集和电子书的篇幅很长,阅读起来要花不少时间。所以,为了方便大家阅读,我打算将合集进一步整理,分门别类将原始内容的标题罗列出来。 本文总计约 800 个链接