I've been trying to run QGIS procedures from python scripts via terminal on Ubuntu (ultimately I want to automate a process via cron). The first task I have tried to script is the "explode lines" function. In particular, I have input QGIS with a roads shapefile that I hope to split into smaller segments.
I've been following several stackexchange links to get to where I am, but can't seem to get the last step to work. In the following bit of code, I get through the statement print("6") in the print statements, but fail correctly use alg.processAlgorithm(process). There is no error provided and the code seemingly exits.
#!/usr/bin/env python import sys from qgis.core import * import qgis.utils from qgis.gui import * # QgsMapCanvas from PyQt4.QtGui import * app = QApplication() QgsApplication.setPrefixPath("/usr", True) QgsApplication.initQgis() # Prepare processing framework sys.path.append('/usr/share/qgis/python/plugins') from processing.core.Processing import Processing Processing.initialize() from processing.tools import * from processing.algs.Explode import * from processing.core.SilentProgress import SilentProgress progress = SilentProgress() # Run the algorithm print("1") map = QgsMapCanvas() print("2") layerInput = QgsVectorLayer('/home/user/Downloads/input.shp', 'test', 'ogr') print("3") #map.setLayerSet([layerInput]) outLayer = '/home/user/out.shp' print("4") alg = Explode() alg.setParameterValue('INPUT', layerInput) print("5") alg.setOutputValue('OUTPUT', outLayer) print("6") alg.processAlgorithm(progress) print("7") QgsApplication.exitQgis() QApplication.exit()
Can anyone see what I've done incorrectly? I've been using the following link for help: How can I access `processing` with Python?