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】基于动态规划和K聚类的彩色图片压缩算法

引言 当想要压缩一张彩色图像时,彩色图像通常由数百万个颜色值组成,每个颜色值都由红、绿、蓝三个分量组成。因此,如果我们直接对图像的每个像素进行编码,会导致非常大的数据量。为了减少数据量,我们可以尝试减少颜色的数量,从而降低存储需求。 1.主要原理 (一)颜色聚类(Color Clustering):

核对不同文件夹所含内容的差异并提取缺失内容:Python代码

本文介绍基于Python语言,以一个大文件夹作为标准,对另一个大文件夹所包含的子文件夹或文件加以查漏补缺,并将查漏补缺的结果输出的方法~

Python 引用不确定的函数

本文详细介绍了Python引用不确定的函数的表示方法、如何在Python中引用不确定的函数、如何在Python中调用不确定函数方法。