使用QGIS的脚本批量进行clip操作

在QGIS中本身提供了批量执行clip的工具,但是在设置输出参数的时候需要一个一个的输入,很麻烦,并且容易出错,特别是在图层要按地区不停的clip的时候,简直是无法忍受,还好可以自定义脚本,脚本如下:

input=r'/Users/a/Documents/data/shp/'
output=r'/Users/a/Documents/data/clip/'
admin=r'/Users/a/Documents/data/admin.shp'
processing.runalg("qgis:clip", admin,input+'a.shp',output+'a.shp')
processing.runalg("qgis:clip", admin,input+'b.shp',output+'b.shp')
processing.runalg("qgis:clip", admin,input+'c.shp',output+'c.shp')
processing.runalg("qgis:clip", admin,input+'d.shp',output+'d.shp')
processing.runalg("qgis:clip", admin,input+'e.shp',output+'e.shp')
processing.runalg("qgis:clip", admin,input+'f.shp',output+'f.shp')
processing.runalg("qgis:clip", admin,input+'g.shp',output+'g.shp')
processing.runalg("qgis:clip", admin,input+'h.shp',output+'h.shp')

使用该脚本的时候,只要重新设置一下目录和clip图层即可批量完成。 同样的对于批量投影等操作也可以这么操作。

使用ogr2ogr工具也可以实现通过python脚本批量clip,但由于实在是太慢,无法忍受,遂放弃。



查看原文:http://www.giser.net/?p=1324
使用说明 本程序可以一次性对多个SHP文件增加相 同字段.增加多个字段请输入字段名和类 型,长度等不同参数即可实现. 要注意的 是, 存放SHP的文件夹一定不能中文命名 1. 请把本程序复制到 SHP 的文件夹中运行 例如复制到D:\123,将对D盘下123目录中 的所有SHP文件进行运算(包括子文件夹) 2. 因为 ARCMAP 的命令不支持中文文件名 所以存放SHP 的文文件夹请不要以中文 命名或特殊符号命名 3. ARCMAP的命令行不支持以数字开头.但可 在字段后面加数字,如CODE1,CODE2.所以 字段名不要用到数字开头,确实要用到数 字的请把SHP文转成TAB在MAPINFO里修改 但奇怪的是,直接在属性列表中却可以添 加以数字开头的字段 4. 在运行程序后,请把弹出的记事本内容复 制到ARCMAP的命令行里粘帖后回车即可 5. 在XPSP2和2003SERVER系统中可以执行 不能在98中运行,2000的系统没测试 6.(还请哪位精通批处理的大侠指点一下) 目前尚有一个问题没有解决,就是同一类型 的字段如果要加二个,不能连着加.得关了程 序再开才能进行.否则弹的记事本内容中,前 面的内容还是上次的字段路径. 但可以连着加不同的字段类型. 比如加完TEXT类型的字段.不能接着加TEXT 类型的字段,但可以加DATE/FLOAT等其他类型 ___________________________________ 如果不能运行或出现其他错误,请到我的 百度空间留言说明你的情况及建议: http://hi.baidu.com/lgx8280998 -----为解决问题而学习 BY 千浪 2009-03-12
您好!要使用Python批量处理QGIS,您可以使用QGIS的Python API来完成。下面是一些基本步骤: 1. 安装QGIS软件:首先,您需要安装QGIS软件,确保您已经安装了适当的版本。 2. 导入必要的模块:在Python脚本中,您需要导入必要的QGIS模块,例如`qgis.core`和`qgis.utils`。可以使用以下代码进行导入: ```python from qgis.core import * from qgis.utils import * ``` 3. 初始化QGIS应用程序:在使用QGIS API之前,需要初始化QGIS应用程序。可以使用以下代码进行初始化: ```python QgsApplication.setPrefixPath("/path/to/qgis/installation", True) qgs = QgsApplication([], False) qgs.initQgis() ``` 确保将`/path/to/qgis/installation`替换为您的QGIS安装路径。 4. 加载矢量图层:使用`QgsVectorLayer`类加载矢量图层。例如,要加载一个Shapefile,可以使用以下代码: ```python layer = QgsVectorLayer('/path/to/shapefile.shp', 'layer_name', 'ogr') if not layer.isValid(): print('图层加载失败!') ``` 确保将`/path/to/shapefile.shp`替换为您的Shapefile路径。 5. 批量处理:一旦加载了图层,您可以使用QGIS API执行各种批量处理操作。例如,您可以遍历图层的要素,并对每个要素执行某些操作。以下是一个示例代码: ```python for feature in layer.getFeatures(): # 执行某些操作 pass ``` 您可以根据需要编写自己的操作代码。 6. 清理工作:在脚本结束时,确保进行适当的清理工作。可以使用以下代码进行清理: ```python qgs.exitQgis() ``` 以上是一个基本的框架,您可以根据具体需求来编写自己的代码。希望这对您有所帮助!如有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值