[QGIS-it-user] formato di output nei processi in serie

Nelle opzioni di Processing, tab Processing, è possibile impostare ‘Estensione predefinita del vettore in uscita’: nonostante lo modifichi a shp, gli output di processi in serie sono sempre in gpkg.

Come riprodurre:

  1. caricare un paio di layer vettoriali in QGIS;
  2. Avviare l’algoritmo Centroide in modalità Esegui Processo in Serie’;
  3. popolare il primo campo Layer in ingresso utilizzando il riempimento automatico… | Riempimento in basso | Seleziona Layer Aperti;
  4. il secondo campo lasciarlo per come è;
  5. il terzo campo Centroidi, popolarlo con Riempimento automatico…| Riempimento in basso | Calcola con espressione e utilizzare:
  6. espressione: file_path(@INPUT )||‘/’||@row_number;
  7. i file di output hanno estensione gpkg

ricordo qualcosa legato a questo problema, ma non ricordo se è un bug oppure se i developer lo hanno lasciato volutamente così.

saluti

···

Ing. Salvatore Fiandaca
mobile.:+39 327.493.8955
m: pigrecoinfinito@gmail.com
C.F.: FNDSVT71E29Z103G
P.IVA: 06597870820
membro QGIS Italia - http://qgis.it/
socio GFOSS.it - http://gfoss.it/
blog:**** https://pigrecoinfinito.com/
FB: Co-admin - https://www.facebook.com/qgis.it/****
TW: ****https://twitter.com/totofiandaca

43°51’0.54"N 10°34’27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E’ vietata qualsiasi forma di riproduzione o divulgazione senza l’esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso.

Ciao Salvatore,
l’opzione “Default output vector layer extension” (insieme a “Default output raster layer extension”) era stata introdotta in QGIS 2 nel 2015 [1] e poi, con il passaggio a QGIS 3, la funzionalità pare fosse usata solo dall’e quindi è stata rimossa a partire da QGIS 3.6 [2].
Poi è stata reintrodotta a partire da QGIS 3.10 [3] principalmente per l’algoritmo “Split vector layer”.

L’anno scorso avevo segnalato un’anomalia [4] relativa al fatto che mentre l’opzione “Default output raster layer extension” veniva presa in considerazione sia dagli algoritmi di GDAL che da quelli di GRASS come estensione del layer temporaneo di output, lo stesso non avviene per l’opzione “Default output vector layer extension” in quanto questa viene presa in considerazione solo dagli algoritmi di GDAL, mentre per quelli di GRASS il formato del layer temporaneo di output è sempre gpkg.

Non che questo possa risolvere il problema, ma dovrebbe dare l’idea del fatto che sembra che queste opzioni abbiano una funzionalità limitata che eventualmente potrebbe essere estesa e che comunque non è specificata nella documentazione.

Ho dato un’occhiata al codice, ma, non conoscendolo bene, mi pare un po’ incasinato tra le parti in Python e quello in C++ forse proprio a causa dei vari rimaneggiamenti.

Comunque, nel tuo caso, penso che sarebbe sempre buona norma generare il percorso e il nome del file comprensivo dell’estensione.

A presto.

Andrea

[1] https://github.com/qgis/QGIS/commit/4f8a27dd64fbfa527984515d31f477202856eb87
[2] https://github.com/qgis/QGIS/pull/8997
[3] https://github.com/qgis/QGIS/pull/31973
[4] https://github.com/qgis/QGIS/issues/43988

···

Il 02/04/2022 20:45, Totò Fiandaca ha scritto:

Nelle opzioni di Processing, tab Processing, è possibile impostare ‘Estensione predefinita del vettore in uscita’: nonostante lo modifichi a shp, gli output di processi in serie sono sempre in gpkg.

Buongiorno,
vero, è sempre meglio generare il percorso e il nome del file comprensivo dell’estensione, ma non è sempre così semplice, esempio: se avessimo un algoritmo che richieda una cartella di output al post del nome file, il problema rimane.

grazie per la conferma.

saluti

···

Ing. Salvatore Fiandaca
mobile.:+39 327.493.8955
m: pigrecoinfinito@gmail.com
C.F.: FNDSVT71E29Z103G
P.IVA: 06597870820
membro QGIS Italia - http://qgis.it/
socio GFOSS.it - http://gfoss.it/
blog:**** https://pigrecoinfinito.com/
FB: Co-admin - https://www.facebook.com/qgis.it/****
TW: ****https://twitter.com/totofiandaca

43°51’0.54"N 10°34’27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E’ vietata qualsiasi forma di riproduzione o divulgazione senza l’esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso.

Il 06/04/2022 09:34, Totò Fiandaca ha scritto:

Buongiorno,
vero, è sempre meglio generare il percorso e il nome del file comprensivo dell’estensione, ma non è sempre così semplice, esempio: se avessimo un algoritmo che richieda una cartella di output al post del nome file, il problema rimane.

Quella impostazione dovrebbe funzionare proprio in questo caso, come nel caso dell’algoritmo Split Vector Layer quando non viene indicato il parametro opzionale “FILE_TYPE” (“Output file type”).
Hai fatto qualche prova con questo algoritmo o con altri simili?

A presto.

Andrea

rieccomi,
sì, ho fatto dei test proprio con questo algoritmo Dividi layer,
se utilizzassi l’algoritmo normalmente, c’è l’opzione avanzata per selezionare il tipo di output, ma se fosse avviato in serie non ho possibilità di selezionare il tipo di output (almeno io non ho capito come fare)

saluti

Il giorno mer 6 apr 2022 alle ore 11:32 Andrea Giudiceandrea <andreaerdna@libero.it> ha scritto:

Il 06/04/2022 09:34, Totò Fiandaca ha scritto:

Buongiorno,
vero, è sempre meglio generare il percorso e il nome del file comprensivo dell’estensione, ma non è sempre così semplice, esempio: se avessimo un algoritmo che richieda una cartella di output al post del nome file, il problema rimane.

Quella impostazione dovrebbe funzionare proprio in questo caso, come nel caso dell’algoritmo Split Vector Layer quando non viene indicato il parametro opzionale “FILE_TYPE” (“Output file type”).
Hai fatto qualche prova con questo algoritmo o con altri simili?

A presto.

Andrea


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user

Ing. Salvatore Fiandaca
mobile.:+39 327.493.8955
m: pigrecoinfinito@gmail.com
C.F.: FNDSVT71E29Z103G
P.IVA: 06597870820
membro QGIS Italia - http://qgis.it/
socio GFOSS.it - http://gfoss.it/
blog:**** https://pigrecoinfinito.com/
FB: Co-admin - https://www.facebook.com/qgis.it/****
TW: ****https://twitter.com/totofiandaca

43°51’0.54"N 10°34’27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E’ vietata qualsiasi forma di riproduzione o divulgazione senza l’esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso.

I parametri avanzati, nella modalità batch, si attivano cliccando sul pulsante con il simbolo della rotellina delle impostazioni in alto a sinistra (“Toggle advanced mode” / “Attiva modalità avanzata”).

Comunque ho notato che per questo algoritmo, mentre l’intenzione [1] era quella che il parametro “FILE_TYPE” fosse opzionale e che se non specificato o se non valido venisse usato il formato indicato nell’impostazione “Default output vector layer extension”, in realtà il parametro non si comporta come un parametro opzionale e viene generato un errore se il parametro non è specificato (usando l’agoritmo in Python).

Anche questo aspetto andrebbe sistemato, oltre al fatto che la documentazione non menziona tale parametro.

Ma forse stiamo divagando, e il problema da te sollevato inizialmente non ha comunque soluzione e andrebbe affrontata da qualche sviluppatore che conosca a fondo il codici di tutti gli strumenti di processing.

A presto.

Andrea

[1] https://github.com/qgis/QGIS/commit/b99fe4e51f2cd79ad8922e765ad4d7125216259e

···

Il 06/04/2022 12:28, Totò Fiandaca ha scritto:

rieccomi,
sì, ho fatto dei test proprio con questo algoritmo Dividi layer,
se utilizzassi l’algoritmo normalmente, c’è l’opzione avanzata per selezionare il tipo di output, ma se fosse avviato in serie non ho possibilità di selezionare il tipo di output (almeno io non ho capito come fare)

wow, grazie Andrea
non avevo mai visto quella rotellina prima, almeno in questo contesto

saluti

···

Ing. Salvatore Fiandaca
mobile.:+39 327.493.8955
m: pigrecoinfinito@gmail.com
C.F.: FNDSVT71E29Z103G
P.IVA: 06597870820
membro QGIS Italia - http://qgis.it/
socio GFOSS.it - http://gfoss.it/
blog:**** https://pigrecoinfinito.com/
FB: Co-admin - https://www.facebook.com/qgis.it/****
TW: ****https://twitter.com/totofiandaca

43°51’0.54"N 10°34’27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E’ vietata qualsiasi forma di riproduzione o divulgazione senza l’esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso.

Il 06/04/2022 12:47, Andrea Giudiceandrea ha scritto:

Comunque ho notato che per questo algoritmo, mentre l'intenzione [1] era quella che il parametro "FILE_TYPE" fosse opzionale e che se non specificato o se non valido venisse usato il formato indicato nell'impostazione "Default output vector layer extension", in realtà il parametro non si comporta come un parametro opzionale e viene generato un errore se il parametro non è specificato (usando l'agoritmo in Python).

Anche questo aspetto andrebbe sistemato, oltre al fatto che la documentazione non menziona tale parametro.

Salve a tutti,
durante una discussione [1] con Salvatore Fiandaca, avevo notato che il parametro "FILE_TYPE" dell'algoritmo "Split Vector Layer" / "Dividi Vettore" ("native:splitvectorlayer") non fosse effettivamente opzionale, come invece doveva essere, e non rispettasse l'impostazione di Processing "Default output vector layer extension" / "Estensione predefinita del vettore in uscita".

All'epoca avevo riportato il bug nel repository di QGIS su GitHub [2], ma solo ora o avuto modo di controllare il codice e di di capire quale fosse l'errore di programmazione e di proporre una patch [3] che (spero) lo corregga.

A presto.

Andrea

P.S. per Stefano Campus: mi pare che la traduzione in italiano del nome anche di questo algoritmo "Split Vector Layer" sia ballerina...

Docs 3.16: "Dividi vettore"
QGIS 3.16: "Dividi vettore"
Docs 3.22: "Dividi vettore"
QGIS 3.22: "Dividere layer vettoriale"
QGIS 3.24: "Dividere layer vettoriale"
QGIS master: "Dividi vettore"

[1] https://lists.osgeo.org/pipermail/qgis-it-user/2022-April/009802.html
[2] https://github.com/qgis/QGIS/issues/48108
[3] https://github.com/qgis/QGIS/pull/48781

Grazie mille Andrea.

saluti

···

Ing. Salvatore Fiandaca
mobile.:+39 327.493.8955
m: pigrecoinfinito@gmail.com
C.F.: FNDSVT71E29Z103G
P.IVA: 06597870820
membro QGIS Italia - http://qgis.it/
socio GFOSS.it - http://gfoss.it/
blog:**** https://pigrecoinfinito.com/
FB: Co-admin - https://www.facebook.com/qgis.it/****
TW: ****https://twitter.com/totofiandaca

43°51’0.54"N 10°34’27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario in relazione alle finalità per le quali è stato ricevuto. E’ vietata qualsiasi forma di riproduzione o divulgazione senza l’esplicito consenso di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di informare tempestivamente il mittente e distruggere la copia in proprio possesso.