Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Grazie di cuore, Totò! Saluti e grazie ancora,Gabriela Il mercoledì 2 settembre 2020, 16:23:25 EEST, Totò ha scritto: Gabriela Osaci-Costache wrote > Credo che sia utile un esempio di questo tipo (con entrambe le soluzioni) > nel manuale del calcolatore di campi per ignoranti come me. > Saluti e grazie di cuore,Gabriela Ciao Gabriela, ecco esaudito anche questo desiderio, qui l'esempio [0] Grazie mille Andrea, al tua soluzione è molto più elegante! :-) [0] http://hfcqgis.opendatasicilia.it/it/latest/esempi/conteggio_caratteri_diversi.html - https://pigrecoinfinito.wordpress.com/ -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Grazie mille! Funziona anche la seconda soluzione! Credo che sia utile un esempio di questo tipo (con entrambe le soluzioni) nel manuale del calcolatore di campi per ignoranti come me. Saluti e grazie di cuore,Gabriela Il mercoledì 2 settembre 2020, 14:44:21 EEST, Andrea Giudiceandrea ha scritto: Totò wrote > array_length( > array_distinct( > string_to_array( > regexp_replace(regexp_replace( "pippo",'(.)','\\1,'),',$','' Ciao Salvatore, bella soluzione! Si può anche evitare il doppio regexp_replace in questa maniera: array_length( array_distinct( string_to_array( substr(regexp_replace( "pippo",'(.)',',\\1'),2 A presto. Andrea -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Totò wrote > array_length( > array_distinct( > string_to_array( > regexp_replace(regexp_replace( "pippo",'(.)','\\1,'),',$','' Ciao Salvatore, bella soluzione! Si può anche evitare il doppio regexp_replace in questa maniera: array_length( array_distinct( string_to_array( substr(regexp_replace( "pippo",'(.)',',\\1'),2 A presto. Andrea -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Ciao, Totò! Sei fenomenalee! Un vero guru di QGIS! Ha funzionato! Grazie di cuore! Saluti e grazie di nuovo, Gabriela Il mercoledì 2 settembre 2020, 13:55:29 EEST, Totò ha scritto: Gabriela Osaci-Costache wrote > Ora il problema: come posso classificare in automatico i codici (tipo > 133114 ecc.) per identificare il numero dei cambiamenti, cioè il numero di > caratteri diversi? Per esempio, nella stringa 133114 ci sono "1" tre > volte, "3" due volte, "4" una volta, dunque ci sono tre caratteri > diversi. Nella stringa 22 (sempre bosco) c'è un solo carattere ("2") > ecc. > E' meglio riclassificare tutto e usare delle lettere (AA, ABBACD > ecc.)? E poi? > Grazie mille,Gabriela > ___ > QGIS-it-user mailing list > QGIS-it-user@.osgeo > https://lists.osgeo.org/mailman/listinfo/qgis-it-user Ciao Gabriela, sperando di aver capito il quesito, la mia soluzione passa per l'uso degli ARRAY crea un nuovo campo e lo popoli con la seguente espressione: array_length( array_distinct( string_to_array( regexp_replace(regexp_replace( 133114,'(.)','\\1,'),',$','' → 3 l'espressione calcola il numero di elementi distinti dopo aver trasformato il valore del campo da stringa a array. devi solo sostituire a 133114 il nome del campo che contiene i tuoi valori, esempio se il tuo campo fosse: pippo l'espresione diventerebbe: array_length( array_distinct( string_to_array( regexp_replace(regexp_replace( "pippo",'(.)','\\1,'),',$','' fammi sapere saluti - https://pigrecoinfinito.wordpress.com/ -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Andrea Giudiceandrea wrote > array_length( > array_distinct( > string_to_array( > substr(regexp_replace( "pippo",'(.)',',\\1'),2 ciao, si puo' evitare anche l'uso della funzione substr: array_length( array_distinct( string_to_array( regexp_replace( "field",'(.)\\B','\\1,' w regex https://regex101.com/r/XkpsXl/1/ - https://pigrecoinfinito.wordpress.com/ -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Mi sono dimenticata di dire che lo stato e .shp. Uso QGIS 3.14 Pi (tramite osgeo4w) sotto W10. Grazie mille,Gabriela Il mercoledì 2 settembre 2020, 12:24:45 EEST, Gabriela Osaci-Costache ha scritto: Ciao! Ho bisogno di aiuto con il calcolatore di campi, per trovare la formula e il modulo da usare. Situazione: sto analizzando il cambiamento dell'uso del suolo tra 1790 e il 20201) ho stabilito sei momenti nel tempo: T1, T2, T3... T62) per ogni momento ho quattro usi: spazio costruito, bosco ecc.3) ho codificato: 1= spazio costruito; 2= bosco ecc.4) ho fatto la intersezione tra gli strati e ho creato un attributo de tipo stringa (una colonna) che raccoglie tutti i cambiamenti, per ogni area. Per esempio: 11 (rimasto per sempre spazio costruito); 21 (T1=bosco; T2-T6=spazio costruito); 342211; 334441 ecc. Ora il problema: come posso classificare in automatico i codici (tipo 133114 ecc.) per identificare il numero dei cambiamenti, cioè il numero di caratteri diversi? Per esempio, nella stringa 133114 ci sono "1" tre volte, "3" due volte, "4" una volta, dunque ci sono tre caratteri diversi. Nella stringa 22 (sempre bosco) c'è un solo carattere ("2") ecc. E' meglio riclassificare tutto e usare delle lettere (AA, ABBACD ecc.)? E poi? Grazie mille,Gabriela ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
[QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Ciao! Ho bisogno di aiuto con il calcolatore di campi, per trovare la formula e il modulo da usare. Situazione: sto analizzando il cambiamento dell'uso del suolo tra 1790 e il 20201) ho stabilito sei momenti nel tempo: T1, T2, T3... T62) per ogni momento ho quattro usi: spazio costruito, bosco ecc.3) ho codificato: 1= spazio costruito; 2= bosco ecc.4) ho fatto la intersezione tra gli strati e ho creato un attributo de tipo stringa (una colonna) che raccoglie tutti i cambiamenti, per ogni area. Per esempio: 11 (rimasto per sempre spazio costruito); 21 (T1=bosco; T2-T6=spazio costruito); 342211; 334441 ecc. Ora il problema: come posso classificare in automatico i codici (tipo 133114 ecc.) per identificare il numero dei cambiamenti, cioè il numero di caratteri diversi? Per esempio, nella stringa 133114 ci sono "1" tre volte, "3" due volte, "4" una volta, dunque ci sono tre caratteri diversi. Nella stringa 22 (sempre bosco) c'è un solo carattere ("2") ecc. E' meglio riclassificare tutto e usare delle lettere (AA, ABBACD ecc.)? E poi? Grazie mille,Gabriela___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Gabriela Osaci-Costache wrote > Credo che sia utile un esempio di questo tipo (con entrambe le soluzioni) > nel manuale del calcolatore di campi per ignoranti come me. > Saluti e grazie di cuore,Gabriela Ciao Gabriela, ecco esaudito anche questo desiderio, qui l'esempio [0] Grazie mille Andrea, al tua soluzione è molto più elegante! :-) [0] http://hfcqgis.opendatasicilia.it/it/latest/esempi/conteggio_caratteri_diversi.html - https://pigrecoinfinito.wordpress.com/ -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user
Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi
Gabriela Osaci-Costache wrote > Ora il problema: come posso classificare in automatico i codici (tipo > 133114 ecc.) per identificare il numero dei cambiamenti, cioè il numero di > caratteri diversi? Per esempio, nella stringa 133114 ci sono "1" tre > volte, "3" due volte, "4" una volta, dunque ci sono tre caratteri > diversi. Nella stringa 22 (sempre bosco) c'è un solo carattere ("2") > ecc. > E' meglio riclassificare tutto e usare delle lettere (AA, ABBACD > ecc.)? E poi? > Grazie mille,Gabriela > ___ > QGIS-it-user mailing list > QGIS-it-user@.osgeo > https://lists.osgeo.org/mailman/listinfo/qgis-it-user Ciao Gabriela, sperando di aver capito il quesito, la mia soluzione passa per l'uso degli ARRAY crea un nuovo campo e lo popoli con la seguente espressione: array_length( array_distinct( string_to_array( regexp_replace(regexp_replace( 133114,'(.)','\\1,'),',$','' → 3 l'espressione calcola il numero di elementi distinti dopo aver trasformato il valore del campo da stringa a array. devi solo sostituire a 133114 il nome del campo che contiene i tuoi valori, esempio se il tuo campo fosse: pippo l'espresione diventerebbe: array_length( array_distinct( string_to_array( regexp_replace(regexp_replace( "pippo",'(.)','\\1,'),',$','' fammi sapere saluti - https://pigrecoinfinito.wordpress.com/ -- Sent from: http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html ___ QGIS-it-user mailing list QGIS-it-user@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/qgis-it-user