[QGIS-it-user] New standalone console tool for running processing algorithms

Andrea Giudiceandrea andreaerdna a libero.it
Mer 8 Lug 2020 05:32:23 PDT


Totò wrote
> Rieccomi,
> 
> ho scaricato lo shapefile regioni ISTAT e lanciato la seguente nella OSGeo 
> shell
> 
> qgis_process.exe run native:centroids
> --INPUT="/Reg01012020_g/Reg01012020_g.shp"
> --OUTPUT="/Reg01012020_g/centroid.kml"
> 
> non ho nessun messaggio e non trovo il file di output

Ciao Salvatore,
siccome su Windows non puoi vedere direttamente nella shell i messaggi
testuali prodotti da qgis_process, ti conviene sempre redirigere l'output su
file di log, come avevo suggerito precedentemente, usando:

>stdout.txt 2>stderr.txt

(in modo da generare il file stdout.txt per i messaggi di output e
stderr.txt per i messaggi di errore) 

per esempio
qgis_process list >stdout.txt 2>stderr.txt


oppure

>stdout.txt 2>&1

(per redirigere sia lo standard output che i messaggi di errore in un unico
file).

per esempio
qgis_process list >stdout.txt 2>&1


Se l'algoritmo di processing eseguito tramite qgis_process non ha prodotto
risultati, probabilmente è perché c'è un problema nel layer di input o nei
parametri specificati o perché necessita di parametri che non sono stati
specificati. Puoi capirlo solo leggendo il log degli errori.

Da alcune prove che ho fatto, mi pare che gli algoritmi eseguiti tramite
qgis_process necessitino che tutti i parametri siano specificati, anche
quelli facoltativi...

In particolare per l'algoritmo native:centroids bisogna specificare anche il
parametro booleano ALL_PARTS, oltre a INPUT e OUTPUT.

Inoltre considera che qgis_process viene eseguito in background su Windows,
quindi ti sembra che l'esecuzione sia terminata immediatamente dopo aver
premuto invio, invece l'esecuzione continua in background. Per altro su
Windows non viene visualizzata "a text-based feedback bar is shown" come
invece indicato nella Pull Request.

Per tanto ti conviene, oltre ad appendere, alla fine del comando, la stringa
per la redirezione dell'output, anche anteporre il comando start /b /wait in
modo che il prompt dei comandi venga messo in attesa che il processo
termini: così potrai capire più facilmente quando l'esecuzione è terminata:

start /b /wait qgis_process list >stdout.txt 2>stderr.txt

oppure

start /b /wait qgis_process list >stdout.txt 2>&1


Mi sa che ci sono vari problemi da risolvere per l'uso su Windows...

A presto.

Andrea



--
Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html


Maggiori informazioni sulla lista QGIS-it-user