QGIS 使用网格切割遥感影像
在QGIS中使用网格切割遥感影像,可以通过编写Python脚本来实现。以下是一个简单的Python脚本示例,该脚本使用QgsRasterLayer
来加载遥感影像,并使用QgsRectangle
来定义网格的边界。
# 导入必要的QGIS模块
from qgis.core import QgsRasterLayer, QgsRectangle, QgsProject
def split_imagery_into_grids(input_raster_path, grid_size, output_folder):
# 加载遥感影像图层
raster_layer = QgsRasterLayer(input_raster_path)
QgsProject.instance().addMapLayer(raster_layer)
# 获取影像的边界
extent = raster_layer.extent()
# 计算网格的行和列数
cols = int((extent.width() / grid_size) + 1)
rows = int((extent.height() / grid_size) + 1)
# 遍历每个网格,并切割影像
for col in range(cols):
for row in range(rows):
# 创建网格的QgsRectangle
xmin = extent.xMinimum() + col * grid_size
xmax = xmin + grid_size
ymin = extent.yMaximum() - row * grid_size
ymax = ymin - grid_size
grid_extent = QgsRectangle(xmin, ymin, xmax, ymax)
# 切割影像
output_raster_path = output_folder + '/imagery_' + str(col) + '_' + str(row) + '.tif'
raster_layer.exportRender(output_raster_path, grid_extent, 'GTiff')
# 使用示例
# 遥感影像文件路径
input_raster_path = 'path/to/your/orthophoto.tif'
# 网格大小
grid_size = 1000
# 输出文件夹
output_folder = 'path/to/output/folder'
split_imagery_into_grids(input_raster_path, grid_size, output_folder)
这个脚本定义了一个函数split_imagery_into_grids
,它接受遥感影像文件路径、网格大小和输出文件夹作为参数。函数加载遥感影像图层,计算网格的边界,并遍历每个网格来导出影像的相应部分。
请确保在运行此脚本之前已经安装了QGIS,并且Python环境中已经安装了PyQGIS库。此外,请根据您的具体需求调整input_raster_path
、grid_size
和output_folder
的值。
评论已关闭