首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

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

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

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

1# -*- coding: utf-8 -*-

2"""

3Created on Mon Feb 13 19:40:39 2023

4

5@author: fkxxgis

6"""

7

8import arcpy

9

10tif_file_path = r"E:\02_Project\01_Chlorophyll\Fishnet\OriginalTIFF"

11result_file_path = r"E:\02_Project\01_Chlorophyll\Fishnet\Result"

12arcpy.env.workspace = tif_file_path

13arcpy.env.parallelProcessingFactor = 0

14

15tif_file_list = arcpy.ListRasters("*", "tif")

16

17for tif_file in tif_file_list:

18    arcpy.SplitRaster_management(tif_file,

19                                 result_file_path,

20                                 tif_file.split(".tif")[0] + "_",

21                                 "SIZE_OF_TILE",

22                                 "TIFF",

23                                 "BILINEAR",

24                                 "#",

25                                 "100 100",

26                                 "#",

27                                 "PIXELS",

28                                 "#",

29                                 "#",

30                                 "#",

31                                 "#",

32                                 "#",

33                                 "0")

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

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

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

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

  至此,大功告成。

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

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O11kUVo9XZ_7m7TX7hJwGNKw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券