Hasta que llegue a trabajar de la forma genérica de hacerlo, le diré una solución alternativa.
Uso el plugin de procesamiento versión 2.2.0-2 (le sugiero que use esta versión), que está instalado en /home/germap/.qgis2/python/plugins/
mi computadora. Debe conocer la ubicación de esta carpeta, porque importa el módulo de procesamiento desde allí.
Como conoce el proveedor ( qgis
) y el algoritmo ( explodelines
), puede mirar /home/germap/.qgis2/python/plugins/processing/algs/qgis/
para tomar el nombre del script de líneas de explosión: Explode.py
esta información le permite importar el algoritmo directamente a su script independiente de Python.
Entonces, abra una consola Python y copie el siguiente script (uso GNU / Linux, por lo que las variables de entorno están configuradas de manera predeterminada, lo que me permite importar bibliotecas qgis y PyQt4 en un instante):
# 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)
Si no recibe mensajes de error, eso es todo. La capa de salida se ha guardado en la ruta de salida que especificó ( /home/user/data/out.shp
)
Nota: Con respecto a una forma genérica (es decir, llamar a algoritmos por nombre), he encontrado algunos problemas que necesito resolver antes de publicarlo. Tan pronto como lo haga funcionar, lo publicaré.
import processing
.