[英]QGIS 3 python loop through layers and run algorithm
我試圖遍歷層並在每一層上運行處理算法但輸入錯誤:
代碼
feedback = QgsProcessingFeedback()
# Get current layers
layers = QgsProject.instance().mapLayers().values()
# Loop through layer and run algorithm
for layer in layers:
processing.run("qgis:pointstopath", {'INPUT': layer, 'ORDER_FIELD': 'name', 'GROUP_FIELD': 'name','OUTPUT': layer+'.gpkg'},feedback)
錯誤
Traceback (most recent call last):
File "C:\OSGEO4~1\apps\Python37\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 2, in <module>
File "C:/OSGEO4~1/apps/qgis-rel-
dev/./python/plugins\processing\tools\general.py", line 105, in run
return Processing.runAlgorithm(algOrName, parameters, onFinish, feedback,
context)
File "C:/OSGEO4~1/apps/qgis-rel-
dev/./python/plugins\processing\core\Processing.py", line 183, in
runAlgorithm
raise QgsProcessingException(msg)
_core.QgsProcessingException: There were errors executing the algorithm.
你如何正確解析從 map 到算法的輸入層?
您不需要使用“值”方法。
正確的方法是layers = QgsProject.instance().mapLayers()
完整代碼是:
feedback = QgsProcessingFeedback()
# Get current layers
layers = QgsProject.instance().mapLayers()
# Loop through layer and run algorithm
for layer in layers:
processing.run("qgis:pointstopath", {'INPUT': layer, 'ORDER_FIELD': 'name', 'GROUP_FIELD': 'name','OUTPUT': layer+'.gpkg'},feedback)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.