??本文介紹基于Python中的ArcPy模塊,依據(jù)漁網(wǎng)的矢量數(shù)據(jù)文件或通過手動(dòng)劃分小方格的方法,批量將大量柵格圖像分割為多個(gè)矩形小柵格的方法。
??首先明確一下我們的需求?,F(xiàn)有同一區(qū)域內(nèi)的多張柵格遙感影像,我們希望對(duì)于每一景柵格遙感影像而言,都將其分割為多個(gè)小矩形;其中,分割后的每一個(gè)小矩形就是一個(gè)新的小的柵格文件。
??知道了需求,我們便可以開始具體的實(shí)踐操作。其中,有2種實(shí)現(xiàn)這一需求的方法——首先第一種方法,我們可以創(chuàng)建一個(gè)漁網(wǎng)的矢量文件,并依據(jù)這一漁網(wǎng)矢量文件對(duì)每一景柵格加以分割,如下圖所示;其中,關(guān)于漁網(wǎng)矢量文件的創(chuàng)建,大家可以參考文章ArcMap創(chuàng)建指定大小的漁網(wǎng)(http://www.itdecent.cn/p/33da2c527de5),關(guān)于接下來用漁網(wǎng)中的格網(wǎng)去裁剪柵格圖像,大家可以參考文章依據(jù)矢量圖層批量將柵格圖像切分為多個(gè):Python ArcPy(http://www.itdecent.cn/p/03ec09a353d3)。

??本文主要介紹第二種方法——基于ArcPy模塊中的SplitRaster_management()函數(shù),手動(dòng)劃定每一個(gè)小矩形的范圍與大小,并直接裁剪每一景柵格遙感影像(也就是不再基于矢量文件來裁剪了)。
??其中,本文所需要的代碼如下。
# -*- 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")
??可以看到,上述代碼與文章依據(jù)矢量圖層批量將柵格圖像切分為多個(gè):Python ArcPy(http://www.itdecent.cn/p/03ec09a353d3)中的代碼整體思路是比較類似的;因此,關(guān)于代碼整體含義的講解,大家直接參考上述文章即可;我們這里主要對(duì)本文代碼與上述文章中不一致的地方加以介紹。
??其中,我們前面也提到了,本文代碼與上述文章代碼不一致的地方在于,這里是在SplitRaster_management()函數(shù)中手動(dòng)劃定每一個(gè)小矩形的具體大小,而上述文章則是用一個(gè)已經(jīng)得到的矢量要素文件去分割柵格。因此,我們需要對(duì)SplitRaster_management()函數(shù)的一些參數(shù)加以修改。其中,第四個(gè)參數(shù)"SIZE_OF_TILE"表示我們這里將通過指定每一個(gè)小矩形的長度與寬度,來決定大柵格遙感影像將如何分割;第八個(gè)參數(shù)"100 100"表示我們將每一個(gè)小矩形的長度與寬度都設(shè)置為100,并在隨后的第十個(gè)參數(shù)中設(shè)置為"PIXELS",表示這里100的單位是像元個(gè)數(shù)。
??此外,其他的參數(shù)就和前述文章比較一致了(當(dāng)然也要記得將前述文章中關(guān)于矢量要素的幾個(gè)參數(shù)設(shè)置為空白)。
??在 IDLE (Python GUI) 中運(yùn)行代碼。代碼運(yùn)行完畢后,我們即可在結(jié)果保存路徑result_file_path中找到如下圖所示的結(jié)果文件;其中,原本的每一景大的柵格遙感影像文件(以及其各自的輔助信息文件)都被分為了很多部分,每一個(gè)部分在其名稱后通過一個(gè)數(shù)字后綴加以區(qū)別,每一個(gè)部分就是我們分割后得到的每一個(gè)小矩形柵格文件。

??至此,大功告成。