Ciao una possibile soluzione potrebbe essere:
1)Creare con l'algoritmo "da punti a linea" il percorso che avrà come nome
layer "Percorsi" per esempio.
2) sul layer puntuale aggiungere il seguente nuovo campo:
grazie della risposta. Pensavo cmq ci fosse un modo un po' più
immediato, immaginavo anche per fare operazioni iterative di
quell'attributo di quella feature rispetto alla feature precedente (e.
differenza di tempo in secondi).
Pensavo cmq ci fosse un modo un po' più
immediato, immaginavo anche per fare operazioni iterative di
quell'attributo di quella feature rispetto alla feature precedente (e.
differenza di tempo in secondi).
Se può essere ancora utile per qualcuno, la procedura è molto semplice:
dato un layer "nome_layer", con un campo "campo_valore" che contiene i
valori da sommare cumulativamente, si aggiunge un campo "campo_cumulativo"
alla tabella e si usa il calcolatore di campi per aggiornare i valori di
tale campo con la seguente espressione:
Nella maggior parte dei casi il primo record di un layer ha $id =1; in
alcuni casi, per esempio gli shapefile, il primo record ha $id = 0, quindi
la condizione di test di if dovrebbe essere modificata di conseguenza
affinché l'espressione funzioni come previsto.
Alternativamente si potrebbe usare, invece che la funzione $id, la variabile @row_number, in quanto quest'ultima dovrebbe iniziare sempre da 1 e quindi
la seguente espressione dovrebbe funzionare in ogni caso :
La somma cumulativa avviene in ordine per feature id, quindi i record del
layer devono essere già intrinsecamente ordinati secondo l'ordine con cui si
vuole che i valori vengano sommati.
Ciao,
per avere la distanza cumulativa si può fare senza scomodare python o il calcolatore di campi,
basta convertire i punti in una linea, poi con lo strumento di processing “Estrai vertici” si riconverte la linea in punti ed in automatico viene aggiunto un campo “distance” con la distanza cumulativa.
Se ci sono dati nella tabella attributi originaria ovviamente vengono persi durante la conversione il linea ma si possono recuperare dai punti iniziali con “Unisci attributi per posizione”.
(Provato su QGIS 3.4)
···
Il 12/10/2019 23:18, andreaerdna ha scritto:
Se può essere ancora utile per qualcuno, la procedura è molto semplice:
dato un layer "nome_layer", con un campo "campo_valore" che contiene i
valori da sommare cumulativamente, si aggiunge un campo "campo_cumulativo"
alla tabella e si usa il calcolatore di campi per aggiornare i valori di
tale campo con la seguente espressione:
if($id = 1, attribute($currentfeature, 'campo_valore'),
attribute($currentfeature, 'campo_valore') +
attribute(get_feature_by_id('nome_layer', $id-1), 'campo_cumulativo'))
Nella maggior parte dei casi il primo record di un layer ha $id =1; in
alcuni casi, per esempio gli shapefile, il primo record ha $id = 0, quindi
la condizione di test di if dovrebbe essere modificata di conseguenza
affinché l'espressione funzioni come previsto.
Alternativamente si potrebbe usare, invece che la funzione $id, la variabile
@row_number, in quanto quest'ultima dovrebbe iniziare sempre da 1 e quindi
la seguente espressione dovrebbe funzionare in ogni caso :
if(@row_number = 1, attribute($currentfeature, 'campo_valore'),
attribute($currentfeature, 'campo_valore') +
attribute(get_feature_by_id('nome_layer', @row_number-1),
'campo_cumulativo'))
La somma cumulativa avviene in ordine per feature id, quindi i record del
layer devono essere già intrinsecamente ordinati secondo l'ordine con cui si
vuole che i valori vengano sommati.
Andrea
--
Sent from: [http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html](http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html)
_______________________________________________
QGIS-it-user mailing list
[QGIS-it-user@lists.osgeo.org](mailto:QGIS-it-user@lists.osgeo.org)
[https://lists.osgeo.org/mailman/listinfo/qgis-it-user](https://lists.osgeo.org/mailman/listinfo/qgis-it-user)