QGIS根据行政区边界,批量裁剪栅格

news/2024/11/14 20:14:11/

要使用QGIS编程实现根据行政区边界批量裁剪栅格,可以利用PyQGIS库来完成。


from qgis.core import QgsRasterLayer, QgsProject, QgsRectangle

# 设置行政区边界文件路径
boundary_file = '/path/to/admin_boundary.shp'
# 设置待裁剪的栅格文件夹路径
input_folder = '/path/to/input_rasters/'
# 设置输出文件夹路径
output_folder = '/path/to/output_rasters/'

# 加载行政区边界图层
boundary_layer = QgsVectorLayer(boundary_file, 'Admin Boundary', 'ogr')

# 遍历待裁剪的栅格文件夹中的所有文件
for filename in os.listdir(input_folder):
    if filename.endswith('.tif'):  # 只处理GeoTIFF格式的文件
        input_file = os.path.join(input_folder, filename)
        output_file = os.path.join(output_folder, filename)
        
        # 加载待裁剪的栅格图层
        input_layer = QgsRasterLayer(input_file, 'Input Raster')
        
        # 获取行政区边界的空间范围
        boundary_extent = boundary_layer.extent()
        
        # 设置裁剪后的输出范围为行政区边界的范围
        output_extent = QgsRectangle(
            boundary_extent.xMinimum(),
            boundary_extent.yMinimum(),
            boundary_extent.xMaximum(),
            boundary_extent.yMaximum()
        )
        
        # 根据输出范围裁剪栅格数据
        processing.run("gdal:cliprasterbyextent", {
            'INPUT': input_file,
            'PROJWIN': f'{output_extent.xMinimum()} {output_extent.xMaximum()} {output_extent.yMinimum()} {output_extent.yMaximum()}',
            'OUTPUT': output_file
        })

# 注意,上述代码需要确保已经安装并正确配置了QGIS Python环境,并导入了所需的库。请根据实际情况修改代码中的文件路径。

该代码使用了QGIS中的`gdal:cliprasterbyextent`算法来裁剪栅格数据,裁剪后的输出栅格范围根据行政区边界的范围进行设置。请注意修改代码中的文件路径以适应你的实际情况,并确保已经安装所需的依赖库。


http://www.ppmy.cn/news/511760.html

相关文章

ipad触摸测试软件,平板电脑屏幕灵敏度测试:iPad系列最出色

【搜狐数码消息】10月10日消息,在发布了有关手机屏幕灵敏度的测试结果之后,Agawi的研究人员最近就对平板电脑的触控灵敏度进行了一次测试。结果发现,苹果iPad和iPad mini是所有平板电脑当中屏幕灵敏度最高的,超过了Android平板以及…

苹果平板爱思助手检验安兔兔

苹果平板爱思助手检验安兔兔 基本的检测机子的真伪,是不是水货 沙漏验机助手爱思助手7.0安兔兔跑分28万以上淘宝gsx 查询序列号 查看激活策略,淘宝上基本上20左右一次 电池寿命 苹果铅笔型号 鲁大师检测 爱思助手测试 沙漏验机助手测试 安兔兔测评 故障…

Android手机哪个悬浮好用,安卓手机哪个悬浮窗便签好,是否支持云服务便签?...

原标题:安卓手机哪个悬浮窗便签好,是否支持云服务便签? 安卓系统的手机品牌有很多,常见的比如有华为、小米、OPPO、vivo、魅族等等,这些手机上无一例外都有手机便签的功能,打开便签(备忘录)程序后&#xff…

手机进程设置多少个最好_手机卡顿和耗电,1秒关闭这8个设置,流畅到2025年,网友:真心强...

阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到文章了。每天都会有分享,都是免费订阅,请您放心关注。 …

邮箱哪个好?手机邮箱下载渠道

本人自己也用过许多邮箱,但也不敢说哪个邮箱最好,国内众多邮箱中,基本功能都是一样的,只有少许功能是有差异的,我最近刚刚用的TOM企业邮箱,其中大附件功能就很让我中意,带大家一起看看吧&#x…

C语言经典一百题(六)用*号输出字母C的图案。

用*号输出字母C的图案。 #include<stdio.h> int main() {printf("*****\n");printf("*\n");printf("*\n");printf("*\n");printf("*****");return 0; }

安卓adb在拨号键盘上输入井号(#)星号(*)

安卓系统下由于#号是属于内定字符&#xff0c;需要转义为%23 第一种方式&#xff1a; adb shell service call phone 1 s16 “%23” 第二种方式&#xff1a; adb shell am start -a android.intent.action.DIAL -d tel:%23 如果拨号则为&#xff1a; adb shell am start -a and…

树莓派系统无法打出艾特符号井号双引号(@#“)

在terminal里输入 // 编辑映射文件 sudo nano /etc/default/keyboard可以看到有行 XKBLAYOUT"gb"将gb改成us&#xff0c;ctrlo再回车保存&#xff0c;ctrlx退出 然后重启设备即可 // 重启设备 sudo reboot