Re: [QGIS-it-user] calcolatore di campi_conteggio simboli (numeri/lettere) diversi

2020-09-02 Per discussione Gabriela Osaci-Costache
 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

2020-09-02 Per discussione Gabriela Osaci-Costache
 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

2020-09-02 Per discussione Andrea Giudiceandrea
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

2020-09-02 Per discussione Gabriela Osaci-Costache
 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

2020-09-02 Per discussione Totò
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

2020-09-02 Per discussione Gabriela Osaci-Costache
 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

2020-09-02 Per discussione Gabriela Osaci-Costache
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

2020-09-02 Per discussione Totò
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

2020-09-02 Per discussione Totò
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