17.11. Calcolatore Campi per i Vettori

Nota

In questa lezione vedremo come aggiungere nuovi attributi ad un layer vettoriale basato su un’espressione matematica, usando il calcolatore campi per i vettori.

Sappiamo già come usare il calcolatore raster per creare nuovi layer raster usando espressioni matematiche. Un algoritmo simile è disponibile per i layer vettoriali e genera un nuovo layer con gli stessi attributi del layer in ingresso, più uno aggiuntivo con il risultato dell’espressione inserita. L’algoritmo si chiama Calcolatore Campi e ha la seguente finestra di dialogo dei parametri.

../../../_images/field_calculator.png

Nota

Nelle versioni più recenti di Processing l’interfaccia è cambiata considerevolmente, è più potente e più facile da usare.

Ecco alcuni esempi di utilizzo di questo algoritmo.

Per prima cosa, calcoliamo la densità di popolazione bianca in ogni poligono, che rappresenta un censimento. Abbiamo due campi nella tabella degli attributi che possiamo usare per questo, cioè WHITE e SHAPE_AREA. Dobbiamo solo dividerli e moltiplicarli per un milione (per avere la densità per km quadrato), quindi possiamo usare la seguente formula nel campo corrispondente

( "WHITE" / "SHAPE_AREA" ) * 1000000

La finestra di dialogo dei parametri dovrebbe essere riempita come mostrato qui sotto.

../../../_images/density1.png

Questo genererà un nuovo campo chiamato WHITE_DENS.

Ora calcoliamo il rapporto tra i campi MALES e FEMALES per crearne uno nuovo che indichi se la popolazione maschile è numericamente predominante su quella femminile.

Inserisci la seguente formula

"MALES" / "FEMALES"

Questa volta la finestra di dialogo dei parametri dovrebbe assomigliare a questa prima di premere il pulsante OK.

../../../_images/ratio.png

Nella versione precedente, poiché entrambi i campi sono di tipo intero, il risultato sarebbe troncato a un intero. In questo caso la formula dovrebbe essere: 1.0 * "MALES" / "FEMALES", per indicare che vogliamo un risultato in virgola mobile.

Possiamo usare le funzioni condizionali per avere un nuovo campo con stringhe di testo male o female al posto di quei valori di rapporto, usando la seguente formula:

CASE WHEN  "MALES" > "FEMALES"  THEN 'male' ELSE 'female' END

La finestra di dialogo dei parametri dovrebbe assomigliare a questa.

../../../_images/predominance.png

Un calcolatore di campi python è disponibile nel Calcolatore di campi Python avanzato, che non sarà dettagliato qui

../../../_images/advanced.png