<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Ciao,<br>
per avere la distanza cumulativa si può fare senza scomodare
python o il calcolatore di campi,<br>
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.<br>
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".<br>
(Provato su QGIS 3.4)<br>
<br>
</p>
<div class="moz-cite-prefix">Il 12/10/2019 23:18, andreaerdna ha
scritto:<br>
</div>
<blockquote type="cite"
cite="mid:1570915106680-0.post@n6.nabble.com">
<pre class="moz-quote-pre" wrap="">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: <a class="moz-txt-link-freetext" href="http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html">http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html</a>
_______________________________________________
QGIS-it-user mailing list
<a class="moz-txt-link-abbreviated" href="mailto:QGIS-it-user@lists.osgeo.org">QGIS-it-user@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-it-user">https://lists.osgeo.org/mailman/listinfo/qgis-it-user</a>
</pre>
</blockquote>
<div class="moz-signature">-- <br>
Alessandro Perego
<a href="http://www.alspergis.altervista.org/">www.alspergis.altervista.org</a></div>
</body>
</html>