<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hola,</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Por lo visto no es sencillo pero quizá alguien ya lo intentó y resolvió con anterioridad.</div><div><br></div><div>He intentado seguir las indicaciones de esta entrada de Stackoverflow pero no no me funciona:</div><div><br></div><div><a href="https://gis.stackexchange.com/questions/279874/using-qgis3-processing-algorithms-from-standalone-pyqgis-scripts-outside-of-gui/279937#279937">https://gis.stackexchange.com/questions/279874/using-qgis3-processing-algorithms-from-standalone-pyqgis-scripts-outside-of-gui/279937#279937</a><br></div><div><br></div><div>Pego de lo comenté en Telegram aquí:</div><div><br></div><div>Miguel Sevilla-Callejo, [09.10.18 17:40]<br>entiendo que he de importar los paquetes de qgis3:</div><div></div><div class="gmail-markdown-here-wrapper"><pre style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="gmail-hljs gmail-language-python" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248) none repeat scroll 0% 0%"><span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">from</span> qgis.core <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> (
     QgsApplication, 
     QgsProcessingFeedback, 
     QgsVectorLayer
)
</code></pre>
<div title="MDH:PGRpdj5gYGBweXRob248YnI+PC9kaXY+PGRpdj5mcm9tIHFnaXMuY29yZSBpbXBvcnQgKDxicj4m
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgUWdzQXBwbGljYXRpb24sIDxicj4mbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsgUWdzUHJvY2Vzc2luZ0ZlZWRiYWNrLCA8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7IFFnc1ZlY3RvckxheWVyPGJyPik8YnI+YGBgPGJyPjwvZGl2Pg==" style="height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px"></div></div><div>Miguel Sevilla-Callejo, [09.10.18 17:40]<br>pero no se como cargar el processing<br><br>Miguel Sevilla-Callejo, [09.10.18 17:41]<br>el post de stackoverflow en cuestion sigue con este código:</div><div></div><div class="gmail-markdown-here-wrapper"><pre style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="gmail-hljs gmail-language-python" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248) none repeat scroll 0% 0%"><span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic"># See <a href="https://gis.stackexchange.com/a/155852/4972">https://gis.stackexchange.com/a/155852/4972</a> for details about the prefix </span>

QgsApplication.setPrefixPath(<span class="gmail-hljs-string" style="color:rgb(221,17,68)">'/usr'</span>, <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">True</span>)
qgs = QgsApplication([], <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">False</span>)
qgs.initQgis()

<span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic"># Append the path where processing plugin can be found</span>
<span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic">#sys.path.append('/docs/dev/qgis/build/output/python/plugins')</span>

<span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> processing
<span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">from</span> processing.core.Processing <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> Processing
Processing.initialize()
</code></pre>
<div title="MDH:PGRpdj48YnI+PC9kaXY+PGRpdj5gYGBweXRob248L2Rpdj48ZGl2PiMgU2VlIGh0dHBzOi8vZ2lz
LnN0YWNrZXhjaGFuZ2UuY29tL2EvMTU1ODUyLzQ5NzIgZm9yIGRldGFpbHMgYWJvdXQgdGhlIHBy
ZWZpeCA8YnI+PGJyPlFnc0FwcGxpY2F0aW9uLnNldFByZWZpeFBhdGgoJy91c3InLCBUcnVlKTxi
cj5xZ3MgPSBRZ3NBcHBsaWNhdGlvbihbXSwgRmFsc2UpPGJyPnFncy5pbml0UWdpcygpPGJyPjxi
cj4jIEFwcGVuZCB0aGUgcGF0aCB3aGVyZSBwcm9jZXNzaW5nIHBsdWdpbiBjYW4gYmUgZm91bmQ8
YnI+I3N5cy5wYXRoLmFwcGVuZCgnL2RvY3MvZGV2L3FnaXMvYnVpbGQvb3V0cHV0L3B5dGhvbi9w
bHVnaW5zJyk8YnI+PGJyPmltcG9ydCBwcm9jZXNzaW5nPGJyPmZyb20gcHJvY2Vzc2luZy5jb3Jl
LlByb2Nlc3NpbmcgaW1wb3J0IFByb2Nlc3Npbmc8YnI+UHJvY2Vzc2luZy5pbml0aWFsaXplKCk8
L2Rpdj48ZGl2PmBgYDwvZGl2Pg==" style="height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px"></div></div><div><br>Miguel Sevilla-Callejo, [09.10.18 17:42]<br>pero la cosa es que no termino de entender el sys.path.append que indica pues ahí no hay nada en mi instalación 😞<br><br>Miguel Sevilla-Callejo, [09.10.18 17:42]<br>alguna idea?</div><div><br></div><div>Continúa aquí: <a href="https://t.me/qgis_es/13895">https://t.me/qgis_es/13895</a><br></div><div></div><div><br></div><div></div><div class="gmail-markdown-here-wrapper"><p style="margin:0px 0px 1.2em">Miguel Sevilla-Callejo, [09.10.18 18:15]<br>parece que ya se me carga aquí la cabecera:</p>
<pre style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="gmail-hljs gmail-language-python" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248) none repeat scroll 0% 0%"><span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> sys
<span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">from</span> qgis.core <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> (
     QgsApplication, 
     QgsProcessingFeedback, 
     QgsVectorLayer
)

QgsApplication.setPrefixPath(<span class="gmail-hljs-string" style="color:rgb(221,17,68)">'/usr'</span>, <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">True</span>)
qgs = QgsApplication([], <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">False</span>)
qgs.initQgis()

sys.path.append(<span class="gmail-hljs-string" style="color:rgb(221,17,68)">'/usr/share/qgis/python/plugins/'</span>)

<span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> processing
<span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">from</span> processing.core.Processing <span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> Processing
Processing.initialize()
</code></pre>
<p style="margin:0px 0px 1.2em">Miguel Sevilla-Callejo, [09.10.18 18:19]<br>la cosa es que ahora no me carga el proceso:</p>
<pre style="font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="gmail-hljs gmail-language-python" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248) none repeat scroll 0% 0%">processing.run(
    <span class="gmail-hljs-string" style="color:rgb(221,17,68)">"native:buffer"</span>, {
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'INPUT'</span>:dir_base + archivo_entrada, <span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic"># archivo de entrada</span>
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'DISTANCE'</span>:<span class="gmail-hljs-number" style="color:rgb(0,128,128)">0.002</span>, <span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic"># distancia del buffer 0.002 grados geográficos</span>
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'SEGMENTS'</span>:<span class="gmail-hljs-number" style="color:rgb(0,128,128)">99</span>, <span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic"># aproximación en los giros</span>
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'END_CAP_STYLE'</span>:<span class="gmail-hljs-number" style="color:rgb(0,128,128)">0</span>,
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'JOIN_STYLE'</span>:<span class="gmail-hljs-number" style="color:rgb(0,128,128)">0</span>,
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'MITER_LIMIT'</span>:<span class="gmail-hljs-number" style="color:rgb(0,128,128)">2</span>,
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'DISSOLVE'</span>:<span class="gmail-hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">False</span>, <span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic"># no disolver</span>
        <span class="gmail-hljs-string" style="color:rgb(221,17,68)">'OUTPUT'</span>:dir_base + archivo_salida <span class="gmail-hljs-comment" style="color:rgb(153,153,136);font-style:italic"># archivo de salida</span>
        }
    )
</code></pre>
<p style="margin:0px 0px 1.2em">Miguel Sevilla-Callejo, [09.10.18 18:20]<br>mensaje:<br><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">QgsProcessingException: Error: Algorithm native:buffer not found</code></p>
<div title="MDH:PGRpdj5NaWd1ZWwgU2V2aWxsYS1DYWxsZWpvLCBbMDkuMTAuMTggMTg6MTVdPGJyPnBhcmVjZSBx
dWUgeWEgc2UgbWUgY2FyZ2EgYXF1w60gbGEgY2FiZWNlcmE6PGJyPjwvZGl2PjxkaXY+YGBgcHl0
aG9uPGJyPjwvZGl2PjxkaXY+aW1wb3J0IHN5czxicj5mcm9tIHFnaXMuY29yZSBpbXBvcnQgKDxi
cj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgUWdzQXBwbGljYXRpb24sIDxicj4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgUWdzUHJvY2Vzc2luZ0ZlZWRiYWNrLCA8YnI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IFFnc1ZlY3RvckxheWVyPGJyPik8YnI+PGJyPlFnc0FwcGxpY2F0aW9uLnNldFBy
ZWZpeFBhdGgoJy91c3InLCBUcnVlKTxicj5xZ3MgPSBRZ3NBcHBsaWNhdGlvbihbXSwgRmFsc2Up
PGJyPnFncy5pbml0UWdpcygpPGJyPjxicj5zeXMucGF0aC5hcHBlbmQoJy91c3Ivc2hhcmUvcWdp
cy9weXRob24vcGx1Z2lucy8nKTxicj48YnI+aW1wb3J0IHByb2Nlc3Npbmc8YnI+ZnJvbSBwcm9j
ZXNzaW5nLmNvcmUuUHJvY2Vzc2luZyBpbXBvcnQgUHJvY2Vzc2luZzxicj5Qcm9jZXNzaW5nLmlu
aXRpYWxpemUoKTxicj5gYGA8YnI+TWlndWVsIFNldmlsbGEtQ2FsbGVqbywgWzA5LjEwLjE4IDE4
OjE5XTxicj5sYSBjb3NhIGVzIHF1ZSBhaG9yYSBubyBtZSBjYXJnYSBlbCBwcm9jZXNvOjwvZGl2
PjxkaXY+YGBgcHl0aG9uPC9kaXY+PGRpdj5wcm9jZXNzaW5nLnJ1big8YnI+Jm5ic3A7Jm5ic3A7
Jm5ic3A7ICJuYXRpdmU6YnVmZmVyIiwgezxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgJ0lOUFVUJzpkaXJfYmFzZSArIGFyY2hpdm9fZW50cmFkYSwgIyBhcmNo
aXZvIGRlIGVudHJhZGE8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i
c3A7ICdESVNUQU5DRSc6MC4wMDIsICMgZGlzdGFuY2lhIGRlbCBidWZmZXIgMC4wMDIgZ3JhZG9z
IGdlb2dyw6FmaWNvczxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz
cDsgJ1NFR01FTlRTJzo5OSwgIyBhcHJveGltYWNpw7NuIGVuIGxvcyBnaXJvczxicj4mbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgJ0VORF9DQVBfU1RZTEUnOjAsPGJy
PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAnSk9JTl9TVFlMRSc6
MCw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICdNSVRFUl9M
SU1JVCc6Miw8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICdE
SVNTT0xWRSc6RmFsc2UsICMgbm8gZGlzb2x2ZXI8YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7ICdPVVRQVVQnOmRpcl9iYXNlICsgYXJjaGl2b19zYWxpZGEgIyBh
cmNoaXZvIGRlIHNhbGlkYTxicj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsgfTxicj4mbmJzcDsmbmJzcDsmbmJzcDsgKTxicj5gYGA8L2Rpdj48ZGl2Pjxicj48L2Rp
dj48ZGl2Pk1pZ3VlbCBTZXZpbGxhLUNhbGxlam8sIFswOS4xMC4xOCAxODoyMF08YnI+bWVuc2Fq
ZTo8YnI+YFFnc1Byb2Nlc3NpbmdFeGNlcHRpb246IEVycm9yOiBBbGdvcml0aG0gbmF0aXZlOmJ1
ZmZlciBub3QgZm91bmRgPC9kaXY+" style="height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px"></div></div><div>Fran Raga me dijo que me faltaba</div><div><div class="gmail-markdown-here-wrapper"><p style="margin:0px 0px 1.2em"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">import from qgis.analysis import QgsNativeAlgorithms</code></p>
<div title="MDH:YGltcG9ydCBmcm9tIHFnaXMuYW5hbHlzaXMgaW1wb3J0IFFnc05hdGl2ZUFsZ29yaXRobXNg" style="height:0px;width:0px;max-height:0px;max-width:0px;overflow:hidden;font-size:0em;padding:0px;margin:0px"></div></div>Y Luiggi que:</div><div> "cuando carga qgis desde script processing esta vacio, en el sentido que no hay provedores registrados</div><div><br></div><div>hay que cargar el provedore de los native algorithms</div><div><br></div><div>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<br><br>LD_LIBRARY_PATH donde encontrar los .so de qgis<br><br>y PYTHONPATH donde encontrar los modulos de python (sumento que PYTHONHOME esta ya bien por defecto)<br><br>en el script clasico de qgis.bat en winzozz seria la varable PATH la equivalente de LD_LIBRARY_PATH<br></div><div>"</div><div>Más delentante también me dijo que: "no... no es suficiente hacer import de QgsNativeAlgorithms hay que registrar el provider"<br></div><div>... <br></div><div><br></div><div>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?)...</div><div><br></div><div>Luiggi me facilitó esto: <a href="https://github.com/luipir/QGIS/blob/bf6162f376fad6dd44fb2f540c536b7f2371a2a3/tests/src/analysis/testqgsprocessing.cpp">https://github.com/luipir/QGIS/blob/bf6162f376fad6dd44fb2f540c536b7f2371a2a3/tests/src/analysis/testqgsprocessing.cpp</a>  pero, sinceremente me pierdo :-(<br></div><div><br></div><div>Agradecería si alguien se toma la molestia de indicarme una fuente clara o indicarme cómo podría hacerlo.</div><div><br></div><div>Si no siempre me queda correr la GUI indicándole que tras abrir ejecute el código del scritp con: <div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important"><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline">qgis --code scriptname.py</code></p>
<div title="MDH:YHFnaXMgLS1jb2RlIHNjcmlwdG5hbWUucHlg" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div></div><div></div><div class="markdown-here-wrapper" style=""><p style="margin:0px 0px 1.2em!important">y quizá podría añadir al script (para cerrar la GUI) esto:</p>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px"><code class="hljs language-python" style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);background-color:rgb(248,248,248);border-radius:3px;display:inline;white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block!important;display:block;overflow-x:auto;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,248) none repeat scroll 0% 0%"><span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">from</span> qgis.utils <span class="hljs-keyword" style="color:rgb(51,51,51);font-weight:bold">import</span> iface <br>iface.actionExit().trigger()
</code></pre>
<div title="MDH:PGRpdj55IGHDsWFkaXIgYWwgc2NyaXB0IChwYXJhIGNlcnJhciBsYSBHVUkpIGVzdG86PC9kaXY+
PGRpdj5gYGBweXRob248L2Rpdj48ZGl2PjxzcGFuIGNsYXNzPSJnbWFpbC1qcy1hYm91dC1pdGVt
LWFic3RyIj48cHJlIGNsYXNzPSJnbWFpbC1wcmV0dHlwcmludCBnbWFpbC1wcmV0dHlwcmludGVk
Ij48Y29kZT48c3BhbiBjbGFzcz0iZ21haWwta3dkIj5mcm9tPC9zcGFuPjxzcGFuIGNsYXNzPSJn
bWFpbC1wbG4iPiBxZ2lzPC9zcGFuPjxzcGFuIGNsYXNzPSJnbWFpbC1wdW4iPi48L3NwYW4+PHNw
YW4gY2xhc3M9ImdtYWlsLXBsbiI+dXRpbHMgPC9zcGFuPjxzcGFuIGNsYXNzPSJnbWFpbC1rd2Qi
PmltcG9ydDwvc3Bhbj48c3BhbiBjbGFzcz0iZ21haWwtcGxuIj4gaWZhY2U8L3NwYW4+PHNwYW4g
Y2xhc3M9ImdtYWlsLXBsbiI+CmlmYWNlPC9zcGFuPjxzcGFuIGNsYXNzPSJnbWFpbC1wdW4iPi48
L3NwYW4+PHNwYW4gY2xhc3M9ImdtYWlsLXBsbiI+YWN0aW9uRXhpdDwvc3Bhbj48c3BhbiBjbGFz
cz0iZ21haWwtcHVuIj4oKS48L3NwYW4+PHNwYW4gY2xhc3M9ImdtYWlsLXBsbiI+dHJpZ2dlcjwv
c3Bhbj48c3BhbiBjbGFzcz0iZ21haWwtcHVuIj4oKTwvc3Bhbj48L2NvZGU+PC9wcmU+PC9zcGFu
PjwvZGl2PjxkaXY+YGBgPC9kaXY+" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0"></div></div><div></div><div>Aunque esto no lo he hecho funcionar (se me queda la GUI abierta).<br></div><div><br></div><div>Un saludo<br></div><div><br></div><div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">--<br><b>Miguel Sevilla-Callejo</b><br>Doctor en Geografía<br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>