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 <[email protected]> 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 <[email protected]> > 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 >> [email protected] >> https://lists.osgeo.org/mailman/listinfo/qgis-es >> >
_______________________________________________ QGIS-es mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/qgis-es
