3.3. Lesson: Classificazione

L’etichettatura è un buon metodo per comunicare informazione come i nomi di singoli luoghi, ma non può essere usata per ogni cosa. Per esempio, mettiamo che qualcuno voglia sapere per cosa viene usata ogni area di landuse. Utilizzando le etichette, si otterrebbe questo:

../../../_images/bad_landuse_labels.png

Questo rende la mappa difficile da leggere ed anche sovraccaricata se ci sono numerose aree landuse sulla mappa.

Obiettivo di questa lezione: Imparare come classificare efficacemente i dati vettore.

3.3.1. basic Follow Along: Classificare i dati nominali

  1. Apri la finestra di dialogo Proprietà… per il vettore landuse

  2. Vai alla scheda Simbologia

  3. Clicca sulla lista a scomparsa che dice Simbolo Singolo e cambialo in Categorizzato:

    ../../../_images/categorised_styles.png
  4. Nel nuovo pannello, cambia Value in landuse e la Scala colore in Random colors

  5. Clicca il pulsante etichettato Classifica

    ../../../_images/categorised_style_settings.png
  6. Clicca su OK

    Vedrai qualcosa simile a questo:

    ../../../_images/categorisation_result.png
  7. Clicca la freccia (o segno più) vicino a landuse nel pannello Layer, vedrai le categorie elencate:

    ../../../_images/categories_explained.png

    Ora i poligoni landuse sono colorati e classificati in modo che aree con lo stesso utilizzo hanno lo stesso colore.

  8. Se vuoi, puoi cambiare il simbolo di ogni area facendo doppio clic sul blocco colore relativo nel pannello Layer o nella finestra di dialogo Proprietà… del layer:

    ../../../_images/change_layer_color.png

Nota che c’è una categoria vuota:

../../../_images/empty_category.png

Questa categoria vuota è usata per colorare tutti gli oggetti che non hanno il valore landuse definito o che hanno un valore NULL. Può essere utile tenere questa categoria vuota così le aree con un valore NULL vengono ancora rappresentate sulla mappa. Puoi voler cambiare il colore in qualcosa di più rappresentativo per un valore NULL.

Ricorda di salvare la mappa ora così non perdi tutte le modifiche duramente ottenute!

3.3.2. basic Try Yourself Ancora classificazione

Utilizza quanto imparato per classificare il vettore buildings. Imposta la categorizzazione in base al campo building e usa una scala colore Spectral.

Nota

Ricorda di ingrandire l’area urbana per vedere i risultati.

3.3.3. moderate Follow Along: Classificazione proporzionale

Ci sono quattro tipo di classificazione: nominale, seriale, intervallo e proporzionale.

Nella classificazione nominale, le categorie in cui vengono classificati gli oggetti sono basate sul nome; non sono ordinate. Per esempio: nomi di città, codici distrettuali, ecc. I simboli utilizzati per dati nominali non dovrebbero implicare un ordinamento o grandezza.

  • Per i punti, possiamo usare simboli di diverse forme.

  • Per i poligoni, possiamo usare diversi tipi di tratteggio o diversi colori (evitando di mescolare colori chiari e scuri).

  • Per le linee, possiamo usare diversi tratteggi, diversi colori (evitando di mescolare colori chiari e scuri) e diversi simboli lungo le linee.

Nella classificazione seriale, le categorie sono organizzate in un determinato ordine. Per esempio, alle città del mondo viene dato un punteggio dipendente dalla loro importanza per il commercio mondiale, viaggi, cultura, ecc. I simboli utilizzati per dati ordinali dovrebbero implicare un ordine, ma non una grandezza.

  • Per i punti, possiamo usare simboli con colori dal chiaro allo scuro.

  • Per i poligoni, possiamo usare gradienti di colori (dal chiaro allo scuro).

  • Per le linee, possiamo usare gradienti di colori (dal chiaro allo scuro).

Nella classificazione intervallo, i numero sono in una scala con valori positivi, negativi e zero. Per esempio: altezza sopra/sotto il livello del mare, temperatura in gradi. I simboli utilizzati per i dati di intervallo dovrebbero implicare un ordine e una grandezza.

  • Per i punti, possiamo usare simboli con dimensione variabile (da piccolo a grande).

  • Per i poligoni, possiamo usare gradienti di colore (dal chiaro allo scuro) o aggiungere diagrammi di varia grandezza.

  • Per le linee, possiamo usare lo spessore (da sottile a spesso).

Nella classificazione proporzionale, i numeri sono in una scala con valori solo positivi o zero. Per esempio: temperatura sopra lo zero assoluto (0 gradi Kelvin), distanza da un punto, il traffico medio per mese in una data strada, ecc. I simboli utilizzati per dati proporzionali dovrebbero implicare un ordine e una grandezza.

  • Per i punti, possiamo usare simboli con dimensione variabile (da piccolo a grande).

  • Per i poligoni, possiamo usare gradienti di colore (dal chiaro allo scuro) o aggiungere diagrammi di varia grandezza.

  • Per le linee, possiamo usare lo spessore (da sottile a spesso).

Nell’esempio precedente, abbiamo usato la classificazione nominale per colorare ogni record nel vettore landuse in base al suo attributo landuse. Ora useremo la classificazione proporzionale per classificare i record in base all’area.

Stiamo per riclassificare il vettore, quindi le classi esistenti andranno perse se non salvate. Per memorizzare la classificazione corrente:

  1. Apri la finestra di dialogo proprietà del vettore

  2. Clicca sul pulsante Salva Stile … nel menu a scomparsa Stile.

  3. Seleziona Rinomina stile corrente…, inserisce land usage e premi OK.

    Le categorie ed i loro simboli sono salvate nelle proprietà del vettore.

  4. Ora clicca sulla voce Aggiungi… del menu a scomparsa Stile e crea un nuovo stile chiamato ratio. Questo memorizzerà la nuova classificazione.

  5. Chiudi la finestra di dialogo Proprietà Layer

Vogliamo classificare le aree landuse in base alla dimensione, ma c’è un problema: non hanno campo dimensione, quindi dobbiamo farne uno.

  1. Apri la Tabella Attributi per il vettore landuse.

  2. Entra in modalità modifica cliccando il pulsante toggleEditing Attiva modifiche

  3. Aggiungi una nuova colonna di tipo decimale, chiamata AREA, usando il pulsante newAttribute Nuovo campo

    ../../../_images/add_area_column.png
  4. Clicca su OK

    Il nuovo campo sarà aggiunto (all’estrema destra della tabella; potresti dover scorrere orizzontalmente per vederlo). Comunque, al momento non è popolato, ha tutti valori NULL.

    Per risolvere il problema, dobbiamo calcolare le aree.

    1. Apri il calcolatore di campo con il pulsante calculateField.

      Vedrai questa finestra di dialogo:

      ../../../_images/calculate_field_dialog.png
    2. Clicca checkbox Aggiorna un campo esistente

    3. Seleziona AREA nel menu a scomparsa dei campi

      ../../../_images/field_calculator_top.png
    4. Sotto la scheda Espressione. espandi il gruppo funzioni Geometria dalla lista e trova $area

    5. Fai doppio click su di esso in modo che appaia nel campo Espressione

      ../../../_images/geometry_area_select.png
    6. Clicca su OK

    7. Scorri al campo AREA nella tabella attributi e noterai che è stato popolato con i valori (potresti dover cliccare sull’intestazione di colonna per aggiornare i dati).

    Nota

    Queste aree rispecchiano le impostazioni per le unità di misura del progetto, quindi possono apparire in metri quadrati e gradi quadrati.

  5. Premi saveEdits per salvare le modifiche ed esci dalla modalità modifica con toggleEditing Attiva modifiche

  6. Chiudi la tabella attributi

Ora che abbiamo i dati, utilizziamoli per rappresentare il vettore landuse.

  1. Apri la scheda Simbologia della finestra di dialogo Proprietà Layer per il vettore landuse

  2. Cambia lo stile di classificazione da Categorizzato a Graduato

  3. Cambia il Valore in AREA

  4. Sotto Scala colore, scegli l’opzione Crea Nuova Scala Colore…:

    ../../../_images/area_gradient_select.png
  5. Scegli Gradiente (se non è già selezionata) e clicca OK. Vedrai questo:

    ../../../_images/gradient_color_select.png

    Useremo questo per denotare l’area, piccole aree con Colore 1 e grandi aree con Colore 2.

  6. Scegli dei colori appropriati

    Nell’esempio, il risultato è come questo:

    ../../../_images/gradient_color_example.png
  7. Clicca su OK

  8. Puoi salvare la scala di colori selezionando Salva Scala Colore… sotto Scala colore. Scegli un nome appropriato per la scala e clicca Salva. Ora sarai in grado di selezionare la stessa scala di colori in Tutte le Scale Colore.

  9. Clicca Classifica

    Ora dovresti avere qualcosa come questo:

    ../../../_images/landuse_gradient_selected.png

    Lascia tutto il resto com’è.

  10. Clicca OK:

../../../_images/gradient_result_map.png

3.3.4. moderate Try Yourself Affinare la classificazione

  • Cambia i valori di Modalità e Classi finché avrai una classificazione che abbia senso.

3.3.5. hard Follow Along: Classificazione basata su regole

È spesso utile combinare criteri multipli per una classificazione, ma sfortunatamente la classificazione normale tiene conto di un solo attributo. Qui viene in aiuto la classificazione basata su regole.

In questa lezione, rappresenteremo il vettore landuse in modo da identificare facilmente la città Swellendam rispetto le altre aree residenziali, e dagli altri tipi di landuse (in base alla loro area).

  1. Apri la finestra di dialogo Proprietà… per il vettore landuse

  2. Vai alla scheda Simbologia

  3. Cambia lo stile di classificazione in Tramite regole

    QGIS mostra automaticamente le regole che rappresentano la classificazione attuale implementata per questo vettore. Per esempio, dopo aver completato l’esercizio precedente, dovresti avere qualcosa come questo:

    ../../../_images/rule_based_classification.png
  4. Clicca e trascina per selezionare tutte le regole

  5. Usa il pulsante symbologyRemove Rimuovi regole selezionate per rimuovere tutte le regole esistenti

Ora aggiungiamo le nostre regole.

  1. Clicca il pulsante symbologyAdd Aggiungi regola

  2. Appare il dialogo Edit rule

  3. Inserisci Swellendam city come Etichetta

  4. Clicca il pulsante expression vicino all’area di testo Filtro per aprire il Costruttore stringhe espressione

  5. Inserisci il criterio "name" = 'Swellendam' e conferma

    ../../../_images/query_builder_example.png
  6. Tornando alla finestra di dialogo Modifica regola, assegna un colore grigio-blu più scuro per indicare l’importanza della città nella regione e rimuovi il bordo

    ../../../_images/rule_style_result.png
  7. Premi OK

  8. Ripeti i passi precedente per aggiungere le seguenti regole:

    1. Etichetta Other residential con criterio "landuse" = 'residential' AND "name" <> 'Swellendam' (o "landuse" = 'residential' AND "name" != 'Swellendam'). Scegli un Fill color blu grigiastro pallido

    2. Etichetta Big non residential areas con criterio "landuse" <> 'residential' AND "AREA" >= 605000. Scegli un colore verde medio.

      ../../../_images/criterion_refined_midway.png

      Questi filtri sono escludenti, nel senso che escludono aree della mappa (aree non residenziali che sono più piccole di 605000 (metri quadrati) e non incluse in altre regole).

    3. Comprenderemo gli elementi rimanenti utilizzando una nuova regola etichettata Small non residential areas. Invece di un’espressione filtro, seleziona radioButtonOn Else. Dai a questa categoria un colore verde tenue.

      ../../../_images/criterion_else.png

    Le tue regole dovrebbero apparire così:

    ../../../_images/criterion_refined_list.png
  9. Applica la simbologia

La tua mappa dovrebbe apparire come questa:

../../../_images/rule_based_map_result.png

Ora hai una mappa con Swellendam area residenziale principale e altre aree non residenziali colorate in base alla loro dimensione.

3.3.6. In Conclusion

La simbologia ci permette di rappresentare gli attributi di un vettore in un modo facile da leggere. Permette a noi ed al lettore della mappa di comprendere il significato degli elementi, utilizzando gli attributi rilevanti che abbiamo scelto. A secondo del problema che affronti, applicherai diverse tecniche di classificazione per risolverlo.

3.3.7. What’s Next?

Ora abbiamo una bella mappa, ma come faremo per averla fuori da QGIS in un formato che possa essere stampato, o farlo diventare un’immagine o un PDF? È l’argomento della prossima lezione!