import os
import rasterio
from rasterio.windows import Window
# 复制一个文件夹下的所有文件夹名称到另一个文件夹中
# def copy_folder_name(src_folder, dest_folder):
# src_folder_names = os.listdir(src_folder)
# for name in src_folder_names:
#
# dest_folder_name = os.path.join(dest_folder, name)
# if not os.path.exists(dest_folder_name):
# os.mkdir(dest_folder_name)
# print("Folder name copied successfully!")
if __name__ == '__main__':
#把文件夹名字先复制过去
src_folder = 'D:\STFdata\CIA_tiff'
dest_folder = 'D:\STFdata\CIA_tiff_cropping'
src_folder_names = os.listdir(src_folder)
for name in src_folder_names:
dest_folder_name = os.path.join(dest_folder, name)
if not os.path.exists(dest_folder_name):
os.mkdir(dest_folder_name)
print("Folder name copied successfully!")
for name in src_folder_names:
full_name = os.path.join(src_folder, name)
file_names = os.listdir(full_name)
for file_name in file_names:
img = rasterio.open(os.path.join(full_name, file_name))
w = rasterio.windows.Window(100, 100, 1200, 2000)
cropped_image = img.read(window=w)
profile = img.profile
profile.update(width=1200, height=2000)
dst = rasterio.open(os.path.join(dest_folder, name, file_name), 'w', **profile)
dst.write(cropped_image)
dst.close()
img.close()
# img=rasterio.open('D:\\STFdata\\CIA_tiff\\2001_281_08oct\\L71093084_08420011007_HRF_modtran_surf_ref_agd66.tif')
# print(img.profile)
丢硬盘后遗症。
rasterio.windows.Window
是一个用于创建矩形窗口的类,可以用来截取或处理栅格数据中的一部分。其函数参数解释如下:
col_off
: 窗口左侧列的偏移量(通过列号进行计数)。row_off
: 窗口顶部行的偏移量(通过行号进行计数)。width
: 窗口的宽度(以列数计算)。height
: 窗口的高度(以行数计算)。
这些参数共同定义了一个矩形窗口,其左上角位于 (col_off, row_off)
像素处,右下角位于 (col_off+width-1, row_off+height-1)
像素处。可以使用该窗口对栅格数据进行切割、裁剪或提取感兴趣的区域等操作。