Até que eu comece a trabalhar da maneira genérica de fazê-lo, eu direi uma solução alternativa.
Eu uso o plugin Processing versão 2.2.0-2 (sugiro que você use esta versão), instalada no /home/germap/.qgis2/python/plugins/
meu computador. Você precisa conhecer o local desta pasta, porque você importa o módulo de processamento a partir daí.
Como você conhece o provedor ( qgis
) e o algoritmo ( explodelines
), pode /home/germap/.qgis2/python/plugins/processing/algs/qgis/
usar o nome do script das linhas de explosão: Explode.py
Essas informações permitem importar o algoritmo diretamente para o script independente do Python.
Portanto, abra um console Python e copie o seguinte script (eu uso o GNU / Linux, para que as variáveis de ambiente sejam definidas por padrão, permitindo que eu importe as bibliotecas qgis e PyQt4 com facilidade):
# Prepare the environment
import sys
from PyQt4.QtGui import *
from qgis.core import *
app = QApplication([])
QgsApplication.setPrefixPath("/usr", True)
QgsApplication.initQgis()
# Tell Python where you will get processing from
sys.path.append('/home/germap/.qgis2/python/plugins')
# Reference the algorithm you want to run
from processing.algs.qgis.Explode import *
alg = Explode()
# Set input and output
inLayer = QgsVectorLayer('/home/user/data/in.shp', 'input', 'ogr')
outLayer = '/home/user/data/out.shp'
alg.setParameterValue('INPUT', inLayer)
alg.setOutputValue('OUTPUT', outLayer)
# Run the algorithm
from processing.core.SilentProgress import SilentProgress
progress = SilentProgress()
alg.processAlgorithm(progress)
Se você não receber mensagens de erro, é isso. A camada de saída foi salva no caminho de saída que você especificou ( /home/user/data/out.shp
)
Nota: Em relação a uma maneira genérica (ou seja, chamar algoritmos pelo nome), encontrei alguns problemas que preciso resolver antes de publicá-lo. Assim que eu funcionar, eu a publicarei.
import processing
.