[QGIS-it-user] Copiare dal padre

Potresti provare a utilizzare le funzioni aggregate e intersects di Qgis. Io la utilizzo per far ereditare in automatico il valore di un campo testo (il nome del comune) da un layer poligono (il confine del comune) in campi testo (sempre il nome del comune) presente in altri layer (solitamente layer puntuali). Ma può essere utilizzata anche al volo e una sola volta inserendola nel calcolatore di campi di Qgis.
La funzione è questa:

aggregate(layer:=‘nome del layer da cui prendo il valore (nel tuo caso Regioni)’, aggregate:=‘Max’, expression:=“nome del campo con il valore da copiare (nel tuo caso name)”, filter:=intersects( $geometry, geometry(@parent))).

In pratica verifica che la geometria puntuale ricada all’interno della geometria poligonale e, se vero, inserisce il valore desiderato nel campo di riferimento della geometria puntuale.

Per prima cosa seleziona le geometrie che vuoi aggiornare. Poi apri il calcolatore di campi (il simbolo del pallottoliere) e inserisci la funzione opportunamente aggiornata con il nome dei campi dei tuoi layer nella finestra “espressione”. Metti la spunta su “aggiorna campo esistente” e seleziona il campo di destinazione dei dati (nel tuo caso Regione).
Attenzione a questa fase che è molto delicata perchè poi, quando lancerai la funzione, verranno sovrascritti i dati di quel campo (Regione) di tutti gli oggetti selezionati in precedenza.
Quindi, conclusa la funzione, prima di salvare i dati controlla che nella tabella ci siano i dati desiderati. Salva tutto e il gioco è fatto.

Ho preso questa funzione, se non ricordo male, dai post del blog di Totò Fiandaca (https://pigrecoinfinito.com/) che ringrazio tantissimo perchè fornisce moltissime informazioni sull’utilizzo delle funzionalità più avanzate di Qgis.

Alberto Poggi

---------- Forwarded message ---------
Da: <qgis-it-user-request@lists.osgeo.org>
Date: mar 2 apr 2024 alle ore 21:03
Subject: Digest di QGIS-it-user, Volume 101, Numero 1
To: <qgis-it-user@lists.osgeo.org>

Invia le richieste di iscrizione alla lista QGIS-it-user all’indirizzo
qgis-it-user@lists.osgeo.org

Per iscriverti o cancellarti attraverso il web, visita
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
oppure, via email, manda un messaggio con oggetto `help’ all’indirizzo
qgis-it-user-request@lists.osgeo.org

Puoi contattare la persona che gestisce la lista all’indirizzo
qgis-it-user-owner@lists.osgeo.org

Se rispondi a questo messaggio, per favore edita la linea dell’oggetto
in modo che sia più utile di un semplice “Re: Contenuti del digest
della lista QGIS-it-user…”

Argomenti del Giorno:

  1. Copiare dal padre (Giovanni Talpone)

Message: 1
Date: Tue, 2 Apr 2024 14:20:47 +0200
From: Giovanni Talpone <giovanni.talpone@gmail.com>
To: qgis-it-user@lists.osgeo.org
Subject: [QGIS-it-user] Copiare dal padre
Message-ID:
<CAP31Rhy+0ztB2gOgPK54a7_408SiN2n_efLu7f1jvoXS7+A3cA@mail.gmail.com>
Content-Type: text/plain; charset=“utf-8”

Ciao, ho girato su molti siti ma non trovo la soluzione per un problema
apparentemente banale.
Ho un layer “Regioni” con un campo “name” che contiene per esempio
‘Lombardia’
Ho un layer figlio “Città” con un campo “Regione” e vorrei un’espressione
tipo:
copy_parent(“nome_campo”). L’unica espressione che ho trovato è aggregate
che però lavora sui figli, non sul padre. @parent non funziona in questo
caso. C’è l’espressione current_parent_value però è riservata a utenti
molto più bravi di me.
Come si fa?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso…
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20240402/fc3e22d0/attachment-0001.htm>


Subject: Chiusura del digest


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


Fine di Digest di QGIS-it-user, Volume 101, Numero 1


Ottimo! Funziona anche senza filtro (perché le città erano già assegnate correttamente alle regioni). Lo segnalerei come esempio nel manuale perché il costrutto " aggregate:=‘Max’, expression:=" " non è esattamente ovvio per un principiante.
Grazie mille

Giovanni

On Wed, 3 Apr 2024 at 09:12, Alberto Poggi <albpoggi@gmail.com> wrote:

Potresti provare a utilizzare le funzioni aggregate e intersects di Qgis. Io la utilizzo per far ereditare in automatico il valore di un campo testo (il nome del comune) da un layer poligono (il confine del comune) in campi testo (sempre il nome del comune) presente in altri layer (solitamente layer puntuali). Ma può essere utilizzata anche al volo e una sola volta inserendola nel calcolatore di campi di Qgis.
La funzione è questa:

aggregate(layer:=‘nome del layer da cui prendo il valore (nel tuo caso Regioni)’, aggregate:=‘Max’, expression:=“nome del campo con il valore da copiare (nel tuo caso name)”, filter:=intersects( $geometry, geometry(@parent))).

In pratica verifica che la geometria puntuale ricada all’interno della geometria poligonale e, se vero, inserisce il valore desiderato nel campo di riferimento della geometria puntuale.

Per prima cosa seleziona le geometrie che vuoi aggiornare. Poi apri il calcolatore di campi (il simbolo del pallottoliere) e inserisci la funzione opportunamente aggiornata con il nome dei campi dei tuoi layer nella finestra “espressione”. Metti la spunta su “aggiorna campo esistente” e seleziona il campo di destinazione dei dati (nel tuo caso Regione).
Attenzione a questa fase che è molto delicata perchè poi, quando lancerai la funzione, verranno sovrascritti i dati di quel campo (Regione) di tutti gli oggetti selezionati in precedenza.
Quindi, conclusa la funzione, prima di salvare i dati controlla che nella tabella ci siano i dati desiderati. Salva tutto e il gioco è fatto.

Ho preso questa funzione, se non ricordo male, dai post del blog di Totò Fiandaca (https://pigrecoinfinito.com/) che ringrazio tantissimo perchè fornisce moltissime informazioni sull’utilizzo delle funzionalità più avanzate di Qgis.

Alberto Poggi

---------- Forwarded message ---------
Da: <qgis-it-user-request@lists.osgeo.org>
Date: mar 2 apr 2024 alle ore 21:03
Subject: Digest di QGIS-it-user, Volume 101, Numero 1
To: <qgis-it-user@lists.osgeo.org>

Invia le richieste di iscrizione alla lista QGIS-it-user all’indirizzo
qgis-it-user@lists.osgeo.org

Per iscriverti o cancellarti attraverso il web, visita
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
oppure, via email, manda un messaggio con oggetto `help’ all’indirizzo
qgis-it-user-request@lists.osgeo.org

Puoi contattare la persona che gestisce la lista all’indirizzo
qgis-it-user-owner@lists.osgeo.org

Se rispondi a questo messaggio, per favore edita la linea dell’oggetto
in modo che sia più utile di un semplice “Re: Contenuti del digest
della lista QGIS-it-user…”

Argomenti del Giorno:

  1. Copiare dal padre (Giovanni Talpone)

Message: 1
Date: Tue, 2 Apr 2024 14:20:47 +0200
From: Giovanni Talpone <giovanni.talpone@gmail.com>
To: qgis-it-user@lists.osgeo.org
Subject: [QGIS-it-user] Copiare dal padre
Message-ID:
<CAP31Rhy+0ztB2gOgPK54a7_408SiN2n_efLu7f1jvoXS7+A3cA@mail.gmail.com>
Content-Type: text/plain; charset=“utf-8”

Ciao, ho girato su molti siti ma non trovo la soluzione per un problema
apparentemente banale.
Ho un layer “Regioni” con un campo “name” che contiene per esempio
‘Lombardia’
Ho un layer figlio “Città” con un campo “Regione” e vorrei un’espressione
tipo:
copy_parent(“nome_campo”). L’unica espressione che ho trovato è aggregate
che però lavora sui figli, non sul padre. @parent non funziona in questo
caso. C’è l’espressione current_parent_value però è riservata a utenti
molto più bravi di me.
Come si fa?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso…
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20240402/fc3e22d0/attachment-0001.htm>


Subject: Chiusura del digest


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


Fine di Digest di QGIS-it-user, Volume 101, Numero 1


No, scusa, hai proprio ragione tu: l’espressione usa la parentela in modo generico senza utlizzare l’effettiva relazione. A maggior ragione è un costrutto non ovvio (e utilissimo)

Grazie ancora di tutto.
G.

On Wed, 3 Apr 2024 at 12:49, Giovanni Talpone <giovanni.talpone@gmail.com> wrote:

Ottimo! Funziona anche senza filtro (perché le città erano già assegnate correttamente alle regioni). Lo segnalerei come esempio nel manuale perché il costrutto " aggregate:=‘Max’, expression:=" " non è esattamente ovvio per un principiante.
Grazie mille

Giovanni

On Wed, 3 Apr 2024 at 09:12, Alberto Poggi <albpoggi@gmail.com> wrote:

Potresti provare a utilizzare le funzioni aggregate e intersects di Qgis. Io la utilizzo per far ereditare in automatico il valore di un campo testo (il nome del comune) da un layer poligono (il confine del comune) in campi testo (sempre il nome del comune) presente in altri layer (solitamente layer puntuali). Ma può essere utilizzata anche al volo e una sola volta inserendola nel calcolatore di campi di Qgis.
La funzione è questa:

aggregate(layer:=‘nome del layer da cui prendo il valore (nel tuo caso Regioni)’, aggregate:=‘Max’, expression:=“nome del campo con il valore da copiare (nel tuo caso name)”, filter:=intersects( $geometry, geometry(@parent))).

In pratica verifica che la geometria puntuale ricada all’interno della geometria poligonale e, se vero, inserisce il valore desiderato nel campo di riferimento della geometria puntuale.

Per prima cosa seleziona le geometrie che vuoi aggiornare. Poi apri il calcolatore di campi (il simbolo del pallottoliere) e inserisci la funzione opportunamente aggiornata con il nome dei campi dei tuoi layer nella finestra “espressione”. Metti la spunta su “aggiorna campo esistente” e seleziona il campo di destinazione dei dati (nel tuo caso Regione).
Attenzione a questa fase che è molto delicata perchè poi, quando lancerai la funzione, verranno sovrascritti i dati di quel campo (Regione) di tutti gli oggetti selezionati in precedenza.
Quindi, conclusa la funzione, prima di salvare i dati controlla che nella tabella ci siano i dati desiderati. Salva tutto e il gioco è fatto.

Ho preso questa funzione, se non ricordo male, dai post del blog di Totò Fiandaca (https://pigrecoinfinito.com/) che ringrazio tantissimo perchè fornisce moltissime informazioni sull’utilizzo delle funzionalità più avanzate di Qgis.

Alberto Poggi

---------- Forwarded message ---------
Da: <qgis-it-user-request@lists.osgeo.org>
Date: mar 2 apr 2024 alle ore 21:03
Subject: Digest di QGIS-it-user, Volume 101, Numero 1
To: <qgis-it-user@lists.osgeo.org>

Invia le richieste di iscrizione alla lista QGIS-it-user all’indirizzo
qgis-it-user@lists.osgeo.org

Per iscriverti o cancellarti attraverso il web, visita
https://lists.osgeo.org/mailman/listinfo/qgis-it-user
oppure, via email, manda un messaggio con oggetto `help’ all’indirizzo
qgis-it-user-request@lists.osgeo.org

Puoi contattare la persona che gestisce la lista all’indirizzo
qgis-it-user-owner@lists.osgeo.org

Se rispondi a questo messaggio, per favore edita la linea dell’oggetto
in modo che sia più utile di un semplice “Re: Contenuti del digest
della lista QGIS-it-user…”

Argomenti del Giorno:

  1. Copiare dal padre (Giovanni Talpone)

Message: 1
Date: Tue, 2 Apr 2024 14:20:47 +0200
From: Giovanni Talpone <giovanni.talpone@gmail.com>
To: qgis-it-user@lists.osgeo.org
Subject: [QGIS-it-user] Copiare dal padre
Message-ID:
<CAP31Rhy+0ztB2gOgPK54a7_408SiN2n_efLu7f1jvoXS7+A3cA@mail.gmail.com>
Content-Type: text/plain; charset=“utf-8”

Ciao, ho girato su molti siti ma non trovo la soluzione per un problema
apparentemente banale.
Ho un layer “Regioni” con un campo “name” che contiene per esempio
‘Lombardia’
Ho un layer figlio “Città” con un campo “Regione” e vorrei un’espressione
tipo:
copy_parent(“nome_campo”). L’unica espressione che ho trovato è aggregate
che però lavora sui figli, non sul padre. @parent non funziona in questo
caso. C’è l’espressione current_parent_value però è riservata a utenti
molto più bravi di me.
Come si fa?
-------------- parte successiva --------------
Un allegato HTML è stato rimosso…
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20240402/fc3e22d0/attachment-0001.htm>


Subject: Chiusura del digest


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


Fine di Digest di QGIS-it-user, Volume 101, Numero 1