[QGIS-es] Correr script de PyQGIS sin correr la GUI de QGIS (Windows y Linux)

Miguel Sevilla-Callejo msevilla00 en gmail.com
Vie Dic 7 08:34:49 PST 2018


No se C++ aunque puedo medio entender el inicio del código.
Pero de ahí a aplicarlo a mi consulta... sigo sin saber.
Gracias de todos modos

--
*Miguel Sevilla-Callejo*
Doctor en Geografía


On Sun, 2 Dec 2018 at 21:51, Luigi Pirelli <luipir en gmail.com> wrote:

> leiste el contenido de initTestCase?
> https://github.com/luipir/QGIS/blob/bf6162f376fad6dd44fb2f540c536b7f2371a2a3/tests/src/analysis/testqgsprocessing.cpp#L577
>
>
> tiene problemas en escribir la version python de este codigo c++?
>
> Luigi Pirelli
>
>
> **************************************************************************************************
> * LinkedIn: https://www.linkedin.com/in/luigipirelli
> * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli
> * GitHub: https://github.com/luipir
> * Mastering QGIS 2nd Edition:
> *
> https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition
> * Hire me: http://goo.gl/BYRQKg
>
> **************************************************************************************************
>
>
> On Sat, 1 Dec 2018 at 13:34, Miguel Sevilla-Callejo <msevilla00 en gmail.com>
> wrote:
>
>> Hola,
>>
>> Hace un tiempo que pregunté esto por el grupo de Telegram y me indicaron
>> algunas maneras para Windows y no terminé de ver la forma para Linux y
>> quería aprovechar la ocasión para crear y dejar este hilo en la lista de
>> correos.
>>
>> La idea es saber qué paquetes de Python o cómo he de configurar el
>> sistema para crear un script de PyQGIS y sin entrar en la GUI de QGIS
>> corran aprovechando los algoritmos de procesamiento que tiene QGIS.
>>
>> Por lo visto no es sencillo pero quizá alguien ya lo intentó y resolvió
>> con anterioridad.
>>
>> He intentado seguir las indicaciones de esta entrada de Stackoverflow
>> pero no no me funciona:
>>
>>
>> https://gis.stackexchange.com/questions/279874/using-qgis3-processing-algorithms-from-standalone-pyqgis-scripts-outside-of-gui/279937#279937
>>
>> Pego de lo comenté en Telegram aquí:
>>
>> Miguel Sevilla-Callejo, [09.10.18 17:40]
>> entiendo que he de importar los paquetes de qgis3:
>>
>> from qgis.core import (
>>      QgsApplication,
>>      QgsProcessingFeedback,
>>      QgsVectorLayer
>> )
>>
>> Miguel Sevilla-Callejo, [09.10.18 17:40]
>> pero no se como cargar el processing
>>
>> Miguel Sevilla-Callejo, [09.10.18 17:41]
>> el post de stackoverflow en cuestion sigue con este código:
>>
>> # See https://gis.stackexchange.com/a/155852/4972 for details about the prefix
>>
>> QgsApplication.setPrefixPath('/usr', True)
>> qgs = QgsApplication([], False)
>> qgs.initQgis()
>> # Append the path where processing plugin can be found#sys.path.append('/docs/dev/qgis/build/output/python/plugins')
>> import processingfrom processing.core.Processing import Processing
>> Processing.initialize()
>>
>>
>> Miguel Sevilla-Callejo, [09.10.18 17:42]
>> pero la cosa es que no termino de entender el sys.path.append que indica
>> pues ahí no hay nada en mi instalación 😞
>>
>> Miguel Sevilla-Callejo, [09.10.18 17:42]
>> alguna idea?
>>
>> Continúa aquí: https://t.me/qgis_es/13895
>>
>> Miguel Sevilla-Callejo, [09.10.18 18:15]
>> parece que ya se me carga aquí la cabecera:
>>
>> import sysfrom qgis.core import (
>>      QgsApplication,
>>      QgsProcessingFeedback,
>>      QgsVectorLayer
>> )
>>
>> QgsApplication.setPrefixPath('/usr', True)
>> qgs = QgsApplication([], False)
>> qgs.initQgis()
>>
>> sys.path.append('/usr/share/qgis/python/plugins/')
>> import processingfrom processing.core.Processing import Processing
>> Processing.initialize()
>>
>> Miguel Sevilla-Callejo, [09.10.18 18:19]
>> la cosa es que ahora no me carga el proceso:
>>
>> processing.run(
>>     "native:buffer", {
>>         'INPUT':dir_base + archivo_entrada, # archivo de entrada
>>         'DISTANCE':0.002, # distancia del buffer 0.002 grados geográficos
>>         'SEGMENTS':99, # aproximación en los giros
>>         'END_CAP_STYLE':0,
>>         'JOIN_STYLE':0,
>>         'MITER_LIMIT':2,
>>         'DISSOLVE':False, # no disolver
>>         'OUTPUT':dir_base + archivo_salida # archivo de salida
>>         }
>>     )
>>
>> Miguel Sevilla-Callejo, [09.10.18 18:20]
>> mensaje:
>> QgsProcessingException: Error: Algorithm native:buffer not found
>> Fran Raga me dijo que me faltaba
>>
>> import from qgis.analysis import QgsNativeAlgorithms
>> Y Luiggi que:
>> "cuando carga qgis desde script processing esta vacio, en el sentido que
>> no hay provedores registrados
>>
>> hay que cargar el provedore de los native algorithms
>>
>> por el script en entorno linux, y esto no es nada de qgis es puro entorno
>> unix... neceista que haya dos variable de entorno bien puestas
>>
>> LD_LIBRARY_PATH donde encontrar los .so de qgis
>>
>> y PYTHONPATH donde encontrar los modulos de python (sumento que
>> PYTHONHOME esta ya bien por defecto)
>>
>> en el script clasico de qgis.bat en winzozz seria la varable PATH la
>> equivalente de LD_LIBRARY_PATH
>> "
>> Más delentante también me dijo que: "no... no es suficiente hacer import
>> de QgsNativeAlgorithms hay que registrar el provider"
>> ...
>>
>> En fin... la verdad es que me he perdido un poco en las últimas
>> explicaciones y leo que he de seguir los test en python (dónde?)...
>>
>> Luiggi me facilitó esto:
>> https://github.com/luipir/QGIS/blob/bf6162f376fad6dd44fb2f540c536b7f2371a2a3/tests/src/analysis/testqgsprocessing.cpp
>> pero, sinceremente me pierdo :-(
>>
>> Agradecería si alguien se toma la molestia de indicarme una fuente clara
>> o indicarme cómo podría hacerlo.
>>
>> Si no siempre me queda correr la GUI indicándole que tras abrir ejecute
>> el código del scritp con:
>>
>> qgis --code scriptname.py
>>
>> y quizá podría añadir al script (para cerrar la GUI) esto:
>>
>> from qgis.utils import iface
>> iface.actionExit().trigger()
>>
>> Aunque esto no lo he hecho funcionar (se me queda la GUI abierta).
>>
>> Un saludo
>>
>> --
>> *Miguel Sevilla-Callejo*
>> Doctor en Geografía
>> _______________________________________________
>> QGIS-es mailing list
>> QGIS-es en lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/qgis-es
>>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.osgeo.org/pipermail/qgis-es/attachments/20181207/993f2945/attachment-0001.html>


Más información sobre la lista de distribución QGIS-es