Python中ArcPy基于矢量要素批量将栅格影像切割为多个小部分

简介: Python中ArcPy基于矢量要素批量将栅格影像切割为多个小部分

  本文介绍基于PythonArcPy模块,基于具有多个面要素的要素类,批量分割大量栅格图像的方法。

  首先明确一下我们的需求。现在需要基于一个面要素类,对一个栅格遥感影像加以分割;如下图所示。这个面要素类中有3个部分,我们希望将背景的这个遥感影像也依据这3个要素的划分方式,进行切割,从而得到3个小区域对应的栅格数据。同时,我们有很多张同一空间范围的栅格遥感影像,都希望通过这一方式对其加以分割,即需要批量进行上述操作。

  其中,如果大家想基于ArcMap软件,不用代码从而实现这一操作,可以基于文章ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决https://fkxxgis.blog.csdn.net/article/details/128474804)中提到的分割栅格Split Raster)工具加以实现。本文就介绍基于代码来实现这一操作的具体步骤。

  本文需要用到的代码如下。

# -*- coding: utf-8 -*-
"""
Created on Tue Dec 27 17:19:07 2022
@author: fkxxgis
"""
import arcpy
tif_file_path = r"E:\02_Project\01_Chlorophyll\ClimateZone\Original"
result_file_path = r"E:\02_Project\01_Chlorophyll\ClimateZone\Split"
shp_file_name = r"E:\02_Project\01_Chlorophyll\ClimateZone\SCClimateP.shp"
arcpy.env.workspace = tif_file_path
arcpy.env.parallelProcessingFactor = 0
tif_file_list = arcpy.ListRasters("*", "tif")
for tif_file in tif_file_list:
    arcpy.SplitRaster_management(tif_file,
                                 result_file_path,
                                 tif_file.split(".tif")[0],
                                 "POLYGON_FEATURES",
                                 "TIFF",
                                 "BILINEAR",
                                 "#",
                                 "#",
                                 "#",
                                 "#",
                                 "#",
                                 "#",
                                 shp_file_name,
                                 "#",
                                 "#",
                                 "0")

  其中,tif_file_path是保存有我们待分割的栅格图像的路径,result_file_path是分割后各个结果图像的保存路径,shp_file_name是分割栅格图像所用矢量面要素的文件路径与名称。

  代码整体思路也很简单:首先,我们基于arcpy.ListRasters()函数,获取tif_file_path路径下原有的全部.tif格式的图像文件,并以列表的形式存放于tif_file_list中;随后,逐一取出tif_file_list列表中的栅格文件,进行分割处理。

  在这里,我们的分割操作是基于arcpy.SplitRaster_management()函数来实现的。这一函数有很多参数,具体各个参数的含义大家直接参考ArcMap软件软件官网即可,这里就仅对本文中需要用到的参数加以介绍。其中,前两个参数就分别是我们待处理数据和结果数据的保存路径,第三个参数是每一个大的栅格图像(也就是待分割的图像)在被分为多个小图像后,每一个小图像的命名前缀。在这里,我们通过.split()函数,直接将原有每一个大的栅格图像的名称作为小图像的命名前缀;后面得到多个小图像结果后,程序会自动在这个命名前缀的后面加上对应的数字编号,从而区分每一个小图像

  接下来,第四个参数"POLYGON_FEATURES"表示我们将通过矢量要素来确定图像分割的范围,第五个参数"TIFF"表明我们结果图像的格式为.tif文件,第六个参数"BILINEAR"表明我们将用双线性插值法来实现切割后图像的重采样;关于不同重采样方法的选择,大家可以参考文章ArcGIS中ArcMap栅格重采样操作与算法选择https://fkxxgis.blog.csdn.net/article/details/128448615)。此外,接下来的几个"#"表示我们对这些参数暂时不配置;再靠后一个参数就是我们分割栅格图像所用的矢量要素数据。

  随后,依然是两个"#",表示我们对这些参数暂时不配置;最后一个参数"0",表明在大的栅格图像中所有值为0的像元,在分割后都将作为无效值(NoData值)的像元。

  此外,还有一点需要注意的是,上述代码中我们通过arcpy.env.parallelProcessingFactor参数,将“Parallel Processing”选项设置为0;如果我们不这么设置的话,大概率这段代码是无法成功运行的;具体为什么要这么设置,大家可以参考文章ArcGIS中ArcMap分割栅格Split Raster工具没有结果的解决https://fkxxgis.blog.csdn.net/article/details/128474804),这里就不再赘述。

  运行上述代码,我们即可在结果保存路径result_file_path中看到各个栅格图像被分割后所得到的各个结果。

  至此,大功告成。

欢迎关注:疯狂学习GIS

相关文章
|
2月前
|
SQL 定位技术 API
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
GEE python:按照矢量中的几何位置、属性名称和字符串去筛选矢量集合
45 0
|
14天前
|
定位技术 索引 Python
Python GDAL缩放栅格文件各波段数值
本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像文件的方法。 首先,看一下本文的具体需求。我们现有一个文件夹,其中含有大量.tif格式的遥感影像文件;其中,这些遥感影像文件均含有4个波段,每1个波段都表示其各自的反射率数值。而对于这些遥感影像文件,有的文件其各波段数值已经处于0至1的区间内(也就是反射率数据的正常数值区间),而有的文件其各波段数值则是还没有乘上缩放系数的(在本文中,缩放系数是0.0001)。
|
2月前
|
人工智能 安全 网络安全
python运营商身份证二要素查验接口、身份证实名认证接口
翔云身份证二要素实名认证接口,实时联网,通过网民用户提供身份证号+姓名的核验方式确保交易与服务过程中的用户身份真实性是保障网络安全、防范欺诈行为的关键步骤。
|
2月前
|
Python
Python批量求取多景栅格文件之间的像素差值
【2月更文挑战第18天】本文介绍基于Python语言,针对一个含有大量遥感影像栅格文件的文件夹,从其中第2景遥感影像开始,分别用每一景影像减去其前一景影像,从而求取二者的差值,并将每一个所得到的差值结果保存为新的一景遥感影像文件的方法~
Python批量求取多景栅格文件之间的像素差值
|
2月前
|
存储 编解码 Python
Python GDAL基于经、纬度提取大量遥感影像中相同位置处像元的数值
【2月更文挑战第8天】本文介绍基于Python语言中的gdal模块,对2景不同的遥感影像加以对应位置像素值匹配的方法——即基于一景遥感影像的每一个像元,提取另一景遥感影像中,与之空间位置相同的像元的像素值的方法~
Python GDAL基于经、纬度提取大量遥感影像中相同位置处像元的数值
|
2月前
|
存储 大数据 索引
【Python】NumPy数组和矢量计算
【1月更文挑战第26天】【Python】NumPy数组和矢量计算
|
2月前
|
机器学习/深度学习 数据采集 算法
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
GEE python——基于多源遥感影像和随机森林分类器进行洪水概率预测
78 0
|
2月前
|
API Python
GEE python:创建逐月影像以Landsat 5TOA影像为例
GEE python:创建逐月影像以Landsat 5TOA影像为例
37 0
|
2月前
|
API Python
gee python:利用核函数对影像进行平滑处理和边缘提取分析
gee python:利用核函数对影像进行平滑处理和边缘提取分析
32 0
|
2月前
|
机器学习/深度学习 定位技术 索引
Python读取栅格遥感影像并加以辐射校正后导出为Excel的一列数据
Python读取栅格遥感影像并加以辐射校正后导出为Excel的一列数据