前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ArcPy切分大量遥感影像为多个网格区域的方法

ArcPy切分大量遥感影像为多个网格区域的方法

作者头像
疯狂学习GIS
发布2023-12-26 15:40:44
1620
发布2023-12-26 15:40:44
举报
文章被收录于专栏:疯狂学习GIS疯狂学习GIS

  本文介绍基于Python中的ArcPy模块,依据渔网的矢量数据文件或通过手动划分小方格的方法,批量将大量栅格图像分割为多个矩形小栅格的方法。

  首先明确一下我们的需求。现有同一区域内的多张栅格遥感影像,我们希望对于每一景栅格遥感影像而言,都将其分割为多个小矩形;其中,分割后的每一个小矩形就是一个新的小的栅格文件

  知道了需求,我们便可以开始具体的实践操作。其中,有2种实现这一需求的方法——首先第一种方法,我们可以创建一个渔网的矢量文件,并依据这一渔网矢量文件对每一景栅格加以分割,如下图所示;其中,关于渔网矢量文件的创建,大家可以参考文章ArcGIS创建渔网并批量获得指定大小的网格矢量,关于接下来用渔网中的格网去裁剪栅格图像,大家可以参考文章依据矢量要素批量分割栅格为多部分:ArcPy

  本文主要介绍第二种方法——基于ArcPy模块中的SplitRaster_management()函数,手动划定每一个小矩形的范围与大小,并直接裁剪每一景栅格遥感影像(也就是不再基于矢量文件来裁剪了)。

  其中,本文所需要的代码如下。

代码语言:javascript
复制
# -*- coding: utf-8 -*-
"""
Created on Mon Feb 13 19:40:39 2023

@author: fkxxgis
"""

import arcpy

tif_file_path = r"E:\02_Project\01_Chlorophyll\Fishnet\OriginalTIFF"
result_file_path = r"E:\02_Project\01_Chlorophyll\Fishnet\Result"
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] + "_",
                                 "SIZE_OF_TILE",
                                 "TIFF",
                                 "BILINEAR",
                                 "#",
                                 "100 100",
                                 "#",
                                 "PIXELS",
                                 "#",
                                 "#",
                                 "#",
                                 "#",
                                 "#",
                                 "0")

  可以看到,上述代码与文章依据矢量要素批量分割栅格为多部分:ArcPy中的代码整体思路是比较类似的;因此,关于代码整体含义的讲解,大家直接参考上述文章即可;我们这里主要对本文代码与上述文章中不一致的地方加以介绍。

  其中,我们前面也提到了,本文代码与上述文章代码不一致的地方在于,这里是在SplitRaster_management()函数中手动划定每一个小矩形的具体大小,而上述文章则是用一个已经得到的矢量要素文件去分割栅格。因此,我们需要对SplitRaster_management()函数的一些参数加以修改。其中,第四个参数"SIZE_OF_TILE"表示我们这里将通过指定每一个小矩形的长度与宽度,来决定大栅格遥感影像将如何分割;第八个参数"100 100"表示我们将每一个小矩形的长度与宽度都设置为100,并在随后的第十个参数中设置为"PIXELS",表示这里100的单位是像元个数

  此外,其他的参数就和前述文章比较一致了(当然也要记得将前述文章中关于矢量要素的几个参数设置为空白)。

  在 IDLE (Python GUI) 中运行代码。代码运行完毕后,我们即可在结果保存路径result_file_path中找到如下图所示的结果文件;其中,原本的每一景大的栅格遥感影像文件(以及其各自的辅助信息文件)都被分为了很多部分,每一个部分在其名称后通过一个数字后缀加以区别,每一个部分就是我们分割后得到的每一个小矩形栅格文件

  至此,大功告成。

欢迎关注(几乎)全网:疯狂学习GIS

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 疯狂学习GIS 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档