17. Lavorare con i dati Mesh

17.1. Cos’è una mesh?

Una mesh è una griglia non strutturata di solito con componenti temporali e altre componenti. La componente spaziale contiene un insieme di vertici, bordi e/o facce, nello spazio 2D o 3D:

  • vertici - punti XY(Z) (nel sistema di riferimento delle coordinate del layer)

  • bordi - collegano coppie di vertici

  • Facce - una faccia è un insieme di bordi che formano una forma chiusa - tipicamente un triangolo o un poligono a quattro lati (quadrilatero), raramente poligoni con più vertici.

In base a quanto detto sopra, i layer mesh possono quindi avere diversi tipi di struttura:

  • Mesh 1D: sono costituite da vertici e bordi. Un bordo collega due vertici e può contenere dati assegnati (scalari o vettori). La rete mesh 1D può essere utilizzata, ad esempio, per la modellazione di un sistema di drenaggio urbano.

  • Mesh 2D: sono costituite da facce con triangoli, quadrilateri regolari o non strutturati.

  • Mesh 3D stratificate: consistono in più mesh 2D non strutturate impilate, ciascuna estrusa in direzione verticale (livelli) per mezzo di una coordinata verticale. I vertici e le facce hanno la stessa topologia in ogni livello verticale. La definizione della mesh (estrusione dei livelli verticali) può in generale cambiare nel tempo. I dati sono solitamente definiti in base ai centri di volume o a qualche funzione parametrica.

../../../_images/mesh_grid_types.png

Fig. 17.1 Differenti tipologie di dati mesh

Mesh contiene le informazioni sulla struttura spaziale. Inoltre, la mesh può avere set di dati (gruppi) che assegnano un valore ad ogni vertice. Ad esempio, avere una mesh triangolare con vertici numerati come mostrato nell’immagine seguente:

../../../_images/triangual_grid_with_numered_vertices.png

Fig. 17.2 Griglia triangolare con vertici numerati

Ogni vertice può memorizzare insiemi di dati diversi (tipicamente quantità multiple), e questi insiemi di dati possono anche avere una dimensione temporale. Pertanto un singolo file può contenere insiemi di dati multipli.

La tabella seguente dà un’idea delle informazioni che possono essere memorizzate nei set di dati delle mesh. Le colonne della tabella rappresentano gli indici dei vertici delle mesh, ogni riga rappresenta un set di dati. I set di dati possono avere diversi tipi di dati. In questo caso, memorizza la velocità del vento a 10m in momenti particolari (t1, t2, t3).

In modo simile, il set di dati della mesh può anche memorizzare valori vettoriali per ogni vertice. Ad esempio, il vettore della direzione del vento in corrispondenza degli orari indicati:

Velocità del vento a 10 metri

1

2

3

Velocità del vento a 10 metri al tempo=t1

17251

24918

32858

Velocità del vento a 10 metri al tempo=t2

19168

23001

36418

Velocità del vento a 10 metri al tempo=t3

21085

30668

17251

Direzione del vento a 10 metri al tempo=t1

[20,2]

[20,3]

[20,4.5]

Direzione del vento a 10 metri al tempo=t2

[21,3]

[21,4]

[21,5.5]

Direzione del vento a 10 metri al tempo=t3

[22,4]

[22,5]

[22,6.5]

Possiamo visualizzare i dati assegnando i colori ai valori (analogamente a come viene fatto con visualizzazione raster Singleband pseudocolor) e interpolando i dati tra i vertici secondo la topologia della mesh. Generalmente alcune grandezze sono vettori 2D piuttosto che semplici valori scalari (ad esempio direzione del vento). Per tali quantità è utile visualizzare le frecce che indicano le direzioni.

../../../_images/mesh_visualisation.png

Fig. 17.3 Possibile visualizzazione di dati mesh

17.2. Formati supportati

QGIS accesses mesh data using the MDAL drivers, and natively supports a variety of formats. Whether QGIS can edit a mesh layer depends on the format and the mesh structure type.

Per caricare un set di dati mesh in QGIS, usa la scheda addMeshLayer Mesh nella finestra di dialogo Gestore della Sorgenti Dati. Leggi Caricare un layer mesh per maggiori dettagli.

17.3. Proprietà del Dataset Mesh

La finestra di dialogo Proprietà del layer per un layer mesh fornisce le impostazioni generali per gestire i gruppi di dati del layer e la loro visualizzazione (gruppi di dati attivi, simbologia, visualizzazione 2D e 3D). Fornisce inoltre informazioni sul layer.

Per accedere alla finestra di dialogo Proprietà del layer:

  • Nel pannello Layer, fai doppio clic sul layer o fai clic con il pulsante destro del mouse e seleziona Proprietà… dal menu a comparsa;

  • Vai al menu Layer ► Proprietà… quando il layer è selezionato.

La finestra di dialogo della mesh Proprietà Layer contiene le seguenti sezioni:

Metadati Information

Sorgente Source

Simbologia Symbology[1]

Vista 3d 3D View[1]

Temporale Temporal

Visualizzazione Rendering

editMetadata Metadata

[1] Disponibile anche nel Layer styling panel

Nota

La maggior parte delle proprietà di un layer mesh può essere salvata o caricata da un .qml usando il menu Stile in fondo alla finestra di dialogo. Maggiori dettagli in Gestione stili personalizzati.

17.3.1. Proprietà Informazioni

../../../_images/mesh_info_properties.png

Fig. 17.4 Proprietà Informazioni sul layer mesh

La scheda |metadati| Informazioni è di sola lettura e rappresenta un luogo interessante per ottenere rapidamente informazioni sintetiche e metadati sul layer corrente. Le informazioni fornite sono:

  • di tipo generale, come il nome nel progetto, il percorso del sorgente, l’elenco dei file ausiliari, l’ora e la dimensione dell’ultimo salvataggio, il provider utilizzato.

  • in base al fornitore del layer: estensione, vertice, faccia, bordi e/o conteggio dei gruppi di dati

  • il sistema di riferimento delle coordinate: nome, unità, metodo, precisione, riferimento (cioè se è statico o dinamico)

  • estratti da metadata: accesso, estensioni, link, contatti, storia…

17.3.2. Proprietà Sorgente

La scheda Sorgente Sorgente visualizza le informazioni di base sulla mesh selezionata, tra cui:

../../../_images/mesh_source.png

Fig. 17.5 Proprietà Sorgente del layer mesh

  • il nome del layer da visualizzare nel pannello Layer.

  • impostazione del sistema di riferimento delle coordinate: Visualizza il Assigned Coordinate Reference System (CRS) del layer. Puoi modificare il SR del layer selezionandone uno usato di recente nell’elenco a discesa o facendo clic sul pulsante Seleziona SR (vedi Scelta del sistema di riferimento delle coordinate). Utilizza questa procedura solo se il SR applicato al layer è sbagliato o se non ne è stato applicato nessuno.

  • Il riquadro :guilabel: Dataset disponibili elenca tutti i gruppi (e sottogruppi) di dataset nel layer mesh, con il loro tipo e la loro descrizione in una vista ad albero. Sono elencati sia i dataset regolari (cioè i cui dati sono memorizzati nel file) sia i dataset virtuali (che sono calculated on the fly).

    • Usa il pulsante add Assegna Extra Dataset a Mesh per aggiungere altri gruppi al layer della mesh corrente.

    • collapseTree Racchiudi Tutto” e |expandTree| :guilabel:`Espandi Tutto l’albero dei dataset, in caso di gruppi incorporati

    • Se sei interessato a pochi dataset, puoi deselezionare gli altri e renderli non disponibili nel progetto.

    • Facendo doppio clic su un nome puoi rinominare il dataset.

    • |Ripristina ai Valori Predefiniti: controlla tutti i gruppi e li rinomina con il loro nome originale del provider.

    • Facendo clic con il tasto destro del mouse su un gruppo di dataset virtuali, puoi:

      • Rimuovi gruppo di dati dal progetto

      • Salva il gruppo di dataset come… un file su disco, in qualsiasi formato supportato. Il nuovo file viene mantenuto assegnato al layer mesh corrente del progetto.

  • Selezionando il gruppo unchecked Tratta come un Dataset Statico puoi ignorare le proprietà di navigazione temporale della mappa durante la visualizzazione del layer mesh. Per ogni gruppo di dataset attivo (come selezionato nella scheda Simbologia Simbologia ► generale Dataset), puoi:

    • imposta su :guilabel: Nessuno: il gruppo di dati non viene visualizzato affatto.

    • Display dataset: ad esempio, per il dataset «bed elevation» che non è basato sul tempo

    • estrarre una data e un’ora particolari: il dataset corrispondente all’ora fornita viene reso e rimane fisso durante la navigazione della mappa.

17.3.3. Proprietà Simbologia

Fai clic sul pulsante Simbologia Simbologia per attivare la finestra di dialogo. Le proprietà della simbologia sono suddivise in diverse schede:

17.3.3.1. Dataset

La scheda generale :sup: Dataset è il luogo principale per controllare e impostare quali dataset saranno utilizzati per il layer. Presenta le seguenti sezioni:

  • Gruppi disponibili nel dataset della mesh, con l’indicazione se forniscono o meno:

    • meshcontoursoff dataset scalari

    • o meshvectorsoff dataset vettoriale: per impostazione predefinita, ogni dataset vettoriale ha un dataset scalare che rappresenta la sua ampiezza generata automaticamente.

    Fai clic sull’icona accanto al nome del dataset per selezionare il gruppo e il tipo di dati da rappresentare.

  • Metadati del(i) gruppo di dati selezionato, con dettagli su:

    • il tipo di mesh: bordi o facce

    • il tipo di dati: vertici, bordi, facce o volume

    • se è di tipo vettoriale o no

    • il nome originale nel layer mesh

    • l’unità, se applicabile

  • blending mode disponibile per i dataset selezionati.

../../../_images/mesh_symbology_datasets.png

Fig. 17.6 Dataset Layer Mesh

Puoi applicare la simbologia al gruppo vettoriale e/o scalare selezionato utilizzando le schede successive.

17.3.3.2. Simbologia delle curve di livello

Nota

La scheda meshcontours Contours può essere attivata solo se nella scheda generale Dataset è stato selezionato un set di dati scalari.

Nella scheda meshcontours Contours puoi vedere e modificare le opzioni di visualizzazione corrente delle curve di livello per il gruppo selezionato, come mostrato in Fig. 17.7 qui di seguito:

../../../_images/mesh_symbology_contours.png

Fig. 17.7 Stile dei contorni in un layer Mesh

  • Per le mesh 1D, imposta la Larghezza del tratto dei bordi. Questa può essere una dimensione fissa per l’intero set di dati o variare lungo la geometria (maggiori dettagli con il interpolated line renderer).

  • Usa il cursore o la casella di selezione per impostare la Opacità del gruppo corrente, se di tipo mesh 2D.

  • Inserisci l’intervallo di valori che vuoi rappresentare nel gruppo corrente: usa refresh Carica per recuperare i valori minimi e massimi del gruppo corrente o inserisci valori personalizzati se vuoi escluderne alcuni.

  • Per le mesh 2D/3D, seleziona Metodo di ricampionamento per interpolare i valori sui vertici circostanti alle facce (o dalle facce circostanti ai vertici) usando il metodo Vicino Medio. A seconda che il set di dati sia definito sui vertici (o sulle facce), QGIS imposta per default il metodo Nessuno (o Vicino Medio) per utilizzare i valori sui vertici e mantenere la visualizzazione uniforme predefinita.

  • Classifica il dataset utilizzando la classificazione color ramp shader.

17.3.3.3. Simbologia Vettori

Nota

La scheda meshvectors Vettori può essere attivata solo se nella scheda generale Dataset è stato selezionato un set di dati vettoriali.

Nella scheda meshvectors Vettori puoi vedere e modificare le opzioni di visualizzazione corrente dei vettori per il gruppo selezionato, come mostrato in Fig. 17.8:

../../../_images/mesh_symbology_vectors.png

Fig. 17.8 Stilizzare i vettori in un layer mesh con frecce

I dataset vettoriali mesh possono essere stilizzati usando vari tipi di Simbologia:

  • Frecce: i vettori vengono rappresentati con frecce nello stesso punto in cui sono definiti nel dataset grezzo (cioè sui nodi o al centro degli elementi) o su una griglia definita dall’utente (quindi, sono distribuiti uniformemente). La lunghezza della freccia è proporzionale alla grandezza della freccia come definita nei dati grezzi, ma può essere dimensionata con vari metodi.

  • Streamlines: i vettori sono rappresentati con linee di flusso che partono da punti iniziali. I punti di partenza possono partire dai vertici della mesh, da una griglia utente o in modo casuale.

  • Tracce: un’animazione più raffinata delle linee di flusso, il tipo di effetto che si ottiene quando si getta a caso della sabbia nell’acqua e si vede dove gli elementi di sabbia scorrono.

Le proprietà disponibili dipendono dalla simbologia selezionata, come mostrato nella tabella seguente.

Etichetta

Descrizione e Proprietà

Freccia

Streamlines

Tracce

Spessore Linea

Larghezza della rappresentazione vettoriale

checkbox

checkbox

checkbox

Metodo di Colorazione

  • un Colore Singolo assegnato a tutti i vettori

  • o un colore variabile basato sull’ampiezza dei vettori, usando una Color ramp shader.

checkbox

checkbox

checkbox

Filtra per magnitudine

Vengono visualizzati solo i vettori la cui lunghezza per il dataset selezionato è compresa tra un intervallo :guilabel:`Min” e :guilabel:`Max

checkbox

checkbox

Visualizza su Reticolo Utente

Posiziona il vettore su una griglia con Spaziatura X e Spaziatura Y personalizzati e ne interpola la lunghezza in base ai vicini.

checkbox

checkbox

Opzioni Intestazione

Lunghezza e Larghezza della punta della freccia, in percentuale rispetto alla lunghezza dell’asta.

checkbox

Lunghezza della Freccia

  • Definito da Minimo e Massimo: puoi specificare la lunghezza minima e massima per le frecce, QGIS interpolerà la loro dimensione in base alla grandezza del vettore corrispondente.

  • Scalato a Magnitudine: la lunghezza della freccia è proporzionale alla magnitudine del relativo vettore.

  • Fisso: tutti i vettori sono mostrati con la stessa lunghezza

checkbox

Metodo di Semina delle Streamlines

  • Su mesh/griglia: si appoggia alla griglia dell’utente per visualizzare i vettori

  • Casuale: il posizionamento dei vettori avviene in modo casuale rispetto a una determinata densità

checkbox

Conteggio Particelle

La quantità di «sabbia» che vuoi immettere nella visualizzazione

checkbox

Massima lunghezza coda

Il tempo per la scomparsa delle particelle

checkbox

17.3.3.4. Visualizzazione

Nella scheda meshframe Visualizzazione, QGIS offre la possibilità di visualizzare e personalizzare la struttura della mesha. Larghezza linea e Colore linea possono essere impostati per rappresentare:

  • i bordi per le mesh 1D

  • Per le mesh 2D:

    • Visualizzazione Mesh Nativa: mostra le facce e i bordi originali del layer.

    • Visualizzazione Mesh Triangolare: aggiunge più bordi e visualizza le facce come triangoli.

../../../_images/mesh_symbology_grid.png

Fig. 17.9 Visualizzazione Mesh 2D

17.3.3.5. Metodo della media delle mesh impilate

Le mesh 3D stratificate sono costituite da più mesh 2D non strutturate impilate, ciascuna estrusa in direzione verticale (livelli) per mezzo di una coordinata verticale. I vertici e le facce hanno la stessa topologia in ogni livello verticale. I valori sono solitamente memorizzati sui volumi che sono regolarmente impilati sulla mesh 2d di base. Per poterli visualizzare su una superficie 2D, è necessario convertire i valori dei volumi (3d) in valori delle facce (2d) che possono essere visualizzati nel layer mesh. Il meshaveraging Metodo della media delle mesh impilate fornisce diversi metodi di mediazione/interpolazione per gestire questo aspetto.

Puoi selezionare il metodo per ricavare il dataset 2D e i parametri corrispondenti (indice livello, valori di profondità o di altezza). Per ogni metodo, nella finestra di dialogo viene mostrato un esempio di applicazione, ma puoi leggere ulteriori informazioni sui metodi sul sito https://fvwiki.tuflow.com/index.php?title=Depth_Averaging_Results.

17.3.4. Proprietà Visualizzazione 3D

I layer mesh possono essere utilizzati come terrain in a 3D map view in base ai valori Z dei loro vertici. Dalla scheda delle proprietà Vista 3d Vista 3D, è anche possibile rappresentare il set di dati del layer mesh nella stessa vista 3D. Pertanto, la componente verticale dei vertici può essere impostata uguale ai valori del set di dati (ad esempio, il livello della superficie dell’acqua) e la trama della maglia può essere impostata per rendere altri valori del set di dati con un’ombreggiatura a colori (ad esempio, la velocità).

../../../_images/mesh_3d.png

Fig. 17.10 Proprietà dataset Mesh 3D

Seleziona checkbox Abilita Visualizzatore 3D e puoi modificare le seguenti proprietà:

  • In Impostazioni Triangoli

    • Levigatura triangoli: Gli angoli tra triangoli consecutivi sono smussati per una migliore rappresentazione 3D.

    • Mostra wireframe di cui è possibile impostare Spessore linea e Colore.

    • Livello di dettaglio: Controlla quanto simplified deve essere il layer mesh da rappresentare. All’estrema destra, è la mesh di base e più si va a sinistra, più il livello è semplificato e viene rappresentato con meno dettagli. Questa opzione è disponibile solo se è attivata l’opzione Semplifica Mesh nella scheda Visualizzazione.

  • Impostazioni Verticali per controllare il comportamento della componente verticale.

    dei vertici dei triangoli rappresentati

    • Gruppo dataset per valore verticale: il gruppo di dataset che verrà utilizzato per la componente verticale della mesh.

    • ||unchecked|:guilabel:Valore dataset relativo al valore Z dei vertici: se considerare i valori del dataset come coordinate Z assolute o relative al valore Z nativo dei vertici.

    • Scala verticale: il fattore di scala da applicare ai valori Z del dataset.

  • Impostazione di Visualizzazione Colore con un Stile di visualizzazione che può essere basato sulla ombreggiatura a rampa di colore impostato in Simbologia delle curve di livello (Colore 2D ombreggiatura rampa colore) o come Colore singolo con un Colore della mesh collegato.

  • Mostra frecce: visualizza le frecce sull’entità 3D del dataset del layer mesh, basandosi sullo stesso gruppo di dataset vettoriali usato nel vector 2D rendering. Vengono visualizzate utilizzando l’impostazione del colore 2D. È anche possibile definire la Spaziatura freccia e, se è di Dimensione fissa o scalata sulla grandezza. Questa impostazione definisce anche la dimensione massima delle frecce, perché le frecce non possono sovrapporsi.

17.3.5. Proprietà Visualizzazione

Poiché i layer mesh possono avere milioni di facce, a volte la loro restituzione può essere molto lenta, soprattutto quando tutte le facce vengono visualizzate nella vista mentre sono troppo piccole per essere visualizzate. Per accelerare il processo di restituzione, puoi semplificare il layer mesh, ottenendo una o più mesh che rappresentano diversi levels of detail e selezionare a quale livello di dettaglio desideri che QGIS esegua il processo di restituzione del layer mesh. Nota che la mesh semplificata contiene solo facce triangolari.

Dalla scheda Visualizzazione Visualizzazione, seleziona checkbox Semplifica Mesh e imposta:

  • un Fattore di riduzione: Controlla la generazione di livelli successivi di mesh semplificate. Ad esempio, se la mesh di base ha 5M facce e il fattore di riduzione è 10, la prima mesh semplificata avrà circa 500 000 facce, la seconda 50 000 facce, la terza 5000,… Se un fattore di riduzione più alto porta rapidamente a maglie più semplici (cioè con triangoli di dimensioni maggiori), produce anche meno livelli di dettaglio.

  • Dimensione minima triangolo: la dimensione media (in pixel) dei triangoli che è consentito visualizzare. Se la dimensione media della mesh è inferiore a questo valore, viene attivata la visualizzazione di una mesh con un livello di dettaglio inferiore.

17.3.6. Proprietà Temporali

La scheda Temporale Temporale fornisce opzioni per controllare la visualizzazione del layer nel tempo. Permette di visualizzare dinamicamente i valori temporali dei gruppi di dati abilitati. Tale visualizzazione dinamica richiede che la temporal navigation sia abilitata sulla mappa.

../../../_images/mesh_temporal.png

Fig. 17.11 Proprietà Temporali Mesh

Impostazioni Layer Temporale

  • Ora di riferimento del gruppo di dati, come data assoluta. Per impostazione predefinita, QGIS analizza il layer di origine e restituisce la prima ora di riferimento valida nel gruppo di dati del layer. Se non è disponibile, il valore sarà impostato dall’intervallo di tempo del progetto o verrà riportato alla data corrente. I valori Ora di inizio e Ora finale da considerare sono quindi calcolati in base al timestamp interno del dataset.

    È possibile impostare una Ora di riferimento personalizzata (e poi l’intervallo di tempo) e ripristinare le modifiche usando il pulsante refresh Ricarica dal sorgente.

  • Metodo di corrispondenza del dataset: determina il dataset da visualizzare all’ora indicata. Le opzioni sono Trova il dataset più vicino prima dell’orario richiesto o Trova il dataset più vicino dall’ora richiesta (dopo o prima).

Impostazioni Tempo Sorgente

  • Unità di tempo estratta dai dati originali o definita dall’utente. Può essere usata per unformare la velocità del layer mesh con gli altri layer del progetto durante la navigazione temporale della mappa. Le unità supportate sono Secondi, Minuti, Ore e Giorni.

17.3.7. Proprietà Metadati

La scheda editMetadata Metadati fornisce le opzioni per creare e modificare un rapporto sui metadati del layer. Per ulteriori informazioni, vedi Metadati.

17.4. Editing a mesh layer

QGIS allows to create a mesh layer from scratch or based on an existing one. You can create/modify the geometries of the new layer whom you can assign datasets afterwards. It’s also possible to edit an existing mesh layer. Because the editing operation requires a frames-only layer, you will be asked to either remove any associated datasets first (make sure you have them available if they still are necessary) or create a copy (only geometries) of the layer.

Nota

QGIS does not allow to digitize edges on mesh layers. Only vertices and faces are mesh elements that can be created. Also not all supported mesh formats can be edited in QGIS (see permissions).

17.4.1. Overview of the mesh digitizing tools

To interact with or edit a base mesh layer element, following tools are available.

Tabella 17.1 Tools for mesh digitizing

Etichetta

Scopo

Location

allEdits Current Edits

Access to save, rollback or cancel changes in all or selected layers simultaneously

Digitizing toolbar

toggleEditing Toggle to Edit

Turn on/off the layer in edit mode

Digitizing toolbar

saveEdits Save Edits

Save changes done to the layer

Digitizing toolbar

undo Undo

Undo the last change(s) - Ctrl+Z

Digitizing toolbar

redo Redo

Redo the last undone action(s) - Ctrl+Shift+Z

Digitizing toolbar

cad Enable Advanced Digitizing tools

Turn on/off the Advanced Digitizing Panel

Advanced Digitizing toolbar

meshReindex Reindex Faces and Vertices

Recreate index and renumber the mesh elements for optimization

Mesh menu

meshDigitizing Digitize Mesh Elements

Select/Create vertices and faces

Mesh Digitizing toolbar

meshSelectPolygon Select Mesh Elements by Polygon

Select vertices and faces overlapped by a drawn polygon

Mesh Digitizing toolbar

meshSelectExpression Select Mesh Elements by Expression

Select vertices and faces using an expression

Mesh Digitizing toolbar

meshTransformByExpression Transform Vertices Coordinates

Modify coordinates of a selection of vertices

Mesh Digitizing toolbar

meshEditForceByVectorLines Force by Selected Geometries

Split faces and constrain Z value using a linear geometry

Mesh Digitizing toolbar

17.4.2. Exploring the Z value assignment logic

When a mesh layer is turned into edit mode, a Vertex Z value widget opens at the top right of the map canvas. By default, its value corresponds to the Default Z value set in Settings ► Options ► Digitizing tab. When there are selected vertices, the widget displays the average Z value of the selected vertices.

During editing, the Vertex Z value is assigned to new vertices. It is also possible to set a custom value: edit the widget, press Enter and you will override the default value and make use of this new value in the digitizing process. Click the clearText icon in the widget to reset its value to the Options default value.

17.4.2.1. Rules of assignment

When creating a new vertex, its Z value definition may vary depending on the active selection in the mesh layer and its location. The following table displays the various combinations.

Tabella 17.2 Matrix of Z value assignment to new vertex

Vertex creation

Are there selected vertices in mesh layer?

Source of assigned value

Assigned Z Value

«Free» vertex, not connected to any

face or edge of a face

No

Vertex Z value

Default or user defined

Advanced Digitizing Panel (if z widget is in locked Locked state)

z widget if in locked Locked state

Yes

Vertex Z value

Average of the selected vertices

Vertex on an edge

Mesh layer

Interpolated from the edge’s vertices

Vertex on a face

Mesh layer

Interpolated from the face’s vertices

Vertex snapped to a 2D vector feature

Vertex Z value

Default or user defined

Vertex snapped to a 3D vector vertex

Vector layer

Vertex

Vertex snapped to a 3D vector segment

Vector layer

Interpolated along the vector segment

Nota

The Vertex Z value widget is deactivated if the Advanced Digitizing Panel is enabled and no mesh element is selected. The latter’s z widget then rules the Z value assignment.

17.4.2.2. Modifying Z value of existing vertices

To modify the Z value of vertices, the most straightforward way is:

  1. Select one or many vertices. The Vertex Z value widget will display the average height of the selection.

  2. Change the value in the widget.

  3. Press Enter. The entered value is assigned to the vertices and becomes the default value of next vertices.

Another way to change the Z value of a vertex is to move and snap it on a vector layer feature with the Z value capability. If more than one vertex are selected, the Z value can’t be changed in this way.

The Transform mesh vertices dialog also provides means to modify the Z value of a selection of vertices (along with their X or Y coordinates).

17.4.3. Selecting mesh elements

17.4.3.1. Using Digitize Mesh Elements

Activate the meshDigitizing Digitize Mesh Elements tool. Hover over an element and it gets highlighted, allowing you to select it.

  • Click on a vertex, and it is selected.

  • Click on the small square at the center of a face or an edge, and it gets selected. Connected vertices are also selected. Conversely, selecting all the vertices of an edge or a face also selects that element.

  • Drag a rectangle to select overlapping elements (a selected face comes with all their vertices). Press Alt key if you want to select only completely contained elements.

  • To add elements to a selection, press Shift while selecting them.

  • To remove an element from the selection, press Ctrl and reselect it. A deselected face will also deselect all their vertices.

17.4.3.2. Using Select Mesh Elements by Polygon

Activate the meshSelectPolygon Select Mesh Elements by Polygon tool and:

  • Draw a polygon (left-click to add vertex, Backspace to undo last vertex, Esc to abort the polygon and right-click to validate it) over the mesh geometries. Any partially overlapping vertices and faces will get selected. Press Alt key while drawing if you want to select only completely contained elements.

  • Right-click over the geometry of a vector layer’s feature, select it in the list that pops up and any partially overlapping vertices and faces of the mesh layer will get selected. Use Alt while drawing to select only completely contained elements.

  • To add elements to a selection, press Shift while selecting them.

  • To remove an element from the selection, press Ctrl while drawing over the selection polygon.

17.4.3.3. Using Select Mesh Elements by Expression

Another tool for mesh elements selection is meshSelectExpression Select Mesh Elements by Expression. When pressed, the tool opens the mesh expression selector dialog from which you can:

  1. Select the method of selection:

    • Select by vertices: applies the entered expression to vertices, and returns matching ones and their eventually associated edges/faces

    • Select by faces: applies the entered expression to faces, and returns matching ones and their associated edges/vertices

  2. Write the expression of selection. Depending on the selected method, available functions in the Meshes group will be filtered accordingly.

  3. Run the query by setting how the selection should behave and pressing:

    • expressionSelect Select: replaces any existing selection in the layer

    • selectAdd Add to current selection

    • selectRemove Remove from current selection

17.4.4. Modifying mesh elements

17.4.4.1. Adding vertices

To add vertices to a mesh layer:

  1. Press the meshDigitizing Digitize mesh elements button

  2. A Vertex Z value widget appears on the top right corner of the map canvas. Set this value to the Z coordinate you would like to assign to the subsequent vertices

  3. Then double-click:

    • outside a face: adds a «free vertex», that is a vertex not linked to any face. This vertex is represented by a red dot when the layer is in editing mode.

    • on the edge of existing face(s): adds a vertex on the edge, splits the face(s) into triangles connected to the new vertex

    • inside a face: splits the face into triangles whose edges connect the surrounding vertices to the new vertex.

17.4.4.2. Adding faces

To add faces to a mesh layer:

  1. Press the meshDigitizing Digitize mesh elements button

  2. A Vertex Z value widget appears on the top right corner of the map canvas. Set this value to the Z coordinate you would like to assign to the subsequent vertices.

  3. Double-click to add a first vertex or move the cursor next to a vertex.

  4. Click the small triangle that appears next to the vertex and move the cursor to the next vertex position; you can snap to existing vertex or double-click to add a new one.

  5. Proceed as above to add as many vertices you wish for the face. Press Backspace button to undo the last vertex.

  6. While moving the mouse, a rubberband showing the shape of the face is displayed. If it is shown in green, then the expected face is valid and you can right-click to add it to the mesh. If in red, the face is not valid (e.g. because it self-intersects, overlaps an existing face or vertex, …) and can’t be added. You’d need to fix the geometry.

  7. Press Esc to abort the face digitizing.

  8. Right-click to validate the face.

17.4.4.3. Removing mesh elements

  1. Select the target elements

  2. Enable the meshDigitizing Digitize mesh elements tool

  3. Right-click and select:

    • Remove Selected Vertices and Fill Hole(s) or press Ctrl+Del: removes vertices and linked faces and fills the hole(s) by triangulating from the neighbor vertices

    • Remove Selected Vertices Without Filling Hole(s) or press Ctrl+Shift+Del: removes vertices and linked faces and do not fill hole(s)

    • Remove Selected Face(s) or press Shift+Del: removes faces but keeps the vertices

These options are also accessible from the contextual menu when hovering over a single item without selecting.

17.4.4.4. Moving mesh elements

To move vertices and faces of a mesh layer:

  1. Select the target elements

  2. Enable the meshDigitizing Digitize mesh elements tool

  3. To start moving the element, click on a vertex or the centroid of a face/edge

  4. Move the cursor to the target location (snapping to vector features is supported).

  5. If the new location does not generate an invalid mesh, the moved elements appear in green. Click again to release them at this location. Faces whose vertices are all selected are translated, their neighbors are reshaped accordingly.

17.4.4.5. Transforming mesh vertices

The meshTransformByExpression Transform Vertices Coordinates tool gives a more advanced way to move vertices, by editing their X, Y and/or Z coordinates thanks to expressions.

  1. Select the vertices you want to edit the coordinates

  2. Press meshTransformByExpression Transform Vertices Coordinates. A dialog opens with a mention of the number of selected vertices. You can still add or remove vertices from the selection.

  3. Depending on the properties you want to modify, you need to check the X coordinate, Y coordinate and/or Z value.

  4. Then enter the target position in the box, either as a numeric value or an expression (using the expression Expression dialog)

  5. With the vertexCoordinates Import Coordinates of the Selected Vertex pressed, the X, Y and Z boxes are automatically filled with its coordinates whenever a single vertex is selected. A convenient and quick way to adjust vertices individually.

  6. Press Preview Transform to simulate the vertices new location and preview the mesh with transformation.

    • If the preview is green, transformed mesh is valid and you can apply the transformation.

    • If the preview is red, the transformed mesh is invalid and you can not apply the transformation until it is corrected.

  7. Press Apply Transform to modify the selected coordinates for the set of vertices.

17.4.4.6. Reshaping mesh geometry

The contextual menu
  1. Enable the meshDigitizing Digitize mesh elements

  2. Select mesh item(s), or not

  3. Hover over a mesh element, it gets highlighted.

  4. Right-click and you can:

    • remove the item(s)

    • Split Selected Face(s) (Split Current Face): splits the face you are hovering over or each selected quad mesh faces into two triangles

    • Delaunay Triangulation with Selected vertices: builds triangular faces using selected free vertices.

    • Refine Selected Face(s) (Refine Current Face): splits the face into four faces, based on vertices added at the middle of each edge (a triangle results into triangles, a quad into quads). Also triangulates adjacent faces connected to the new vertices.

The edge markers

When the meshDigitizing Digitize mesh elements is active and you hover over an edge, the edge is highlighted and it is possible to interact with it. Depending on the context, following markers may be available:

  • a square, at the center of the edge: click on it to select extremity vertices.

  • a cross if the two faces on either side can be merged: click on it to delete the edge and merge the faces.

  • a circle if the edge is between two triangles: Click on it to flip the edge, i.e. connect it instead to the two other «free» vertices of the faces

The Force by Selected Geometries tool

The meshEditForceByVectorLines Force by Selected Geometries tool provides advanced ways to apply break lines using lines geometry. A break line will force the mesh to have edges along the line. Note that the break line will not be considered persistent once the operation is done; resulting edges will not act as constraints anymore and can be modified like any other edge. This can be used for example to locally modify a mesh layer with accurate lines, as river banks or border of road embankments.

  1. Enable the meshEditForceByVectorLines Force by Selected Geometries tool

  2. Indicate the geometry to use as «forcing line»; it can be:

    • picked from a line or polygon feature in the map canvas: right-click over the vector feature and select it from the list in the contextual menu.

    • a virtual line drawn over the mesh frame: left-click to add vertices, right-click for validation. Vertices Z value is set through the Vertex Z value widget or the z widget if the Advanced Digitizing Panel is on. If the line is snapped to a mesh vertex or a 3D vector feature’s vertex or segment, the new vertex takes the snapped element Z value.

Mesh faces that overlap the line geometry or the polygon’s boundary will be affected in a way that depends on options you can set from the meshEditForceByVectorLines Force by Selected Geometries tool drop-down menu:

  • checkbox Add new vertex on intersecting edges: with this option, a new vertex is added each time the forcing line intersect an edge. This option leads to split along the line each encountered faces.

    Without this option, encountered faces are removed and replaced by faces coming from a triangulation with only the existing vertices plus the vertices of the forcing lines (new vertices are also added on the boundary edge intersecting the forcing lines).

    ../../../_images/force_mesh_geometry.png

    Fig. 17.12 Force Mesh using a line geometry - Results without (middle) and with (right) new vertex on edges intersection

  • Interpolate Z value from: set how the new vertices Z value is calculated. It can be from:

    • the Mesh itself: the new vertices Z value is interpolated from vertices of the face they fall within

    • or the Forcing line: if the line is defined by a 3D vector feature or a drawn line then the new vertices Z value is derived from its geometry. In case of 2D line feature, the new vertices Z value is the Vertex Z value.

  • Tolerance: when an existing mesh vertex is closer to the line than the tolerance value, do not create new vertex on the line but use the existing vertex instead. The value can be set in Meters at Scale or in Map Units (more details at Selezione unità).

17.4.5. Reindexing meshes

During edit, and in order to allow quick undo/redo operations, QGIS keeps empty places for deleted elements, which may lead to growing memory use and inefficient mesh structuring. The Mesh ► meshReindex Reindex Faces and Vertices tool is designed to remove these holes and renumber the indices of faces and vertices so that they are continuous and somewhat reasonably ordered. This optimizes relation between faces and vertices and increases the efficiency of calculation.

Nota

The meshReindex Reindex Faces and Vertices tool saves the layer and clear the undo/redo stacks, disabling any rollback.

17.5. Calcolatore Mesh

Lo strumento Calcolatore Mesh del menu superiore Mesh consente di eseguire calcoli aritmetici e logici su gruppi di dati esistenti per generare un nuovo gruppo di dati (vedi Fig. 17.13).

../../../_images/mesh_calculator.png

Fig. 17.13 Calcolatore Mesh

L’elenco Dataset contiene tutti i gruppi di dataset nel layer mesh attivo. Per utilizzare un gruppo di set di dati in un’espressione, fai doppio clic sul suo nome nell’elenco e verrà aggiunto al campo Espressione del Calcolatore Mesh. Puoi quindi utilizzare gli operatori per costruire espressioni di calcolo, oppure digitarli semplicemente nella casella.

La sezione Layer del Risultato ti aiuta a configurare le proprietà del layer in uscita:

  • checkbox Crea un groppo dataset al volo invece che scrivere il layer su disco:

    • Se non è selezionata, l’output viene memorizzato sul disco come un nuovo file semplice. Sono richiesti un percorso File in uscita e un Formato in uscita.

    • Se questa opzione è selezionata, un nuovo gruppo di dataset verrà aggiunto al layer mesh. I valori del gruppo di dataset non vengono memorizzati, ma ogni dataset viene calcolato quando necessario con la formula inserita nel calcolatore mesh. Il gruppo di dataset virtuale viene salvato con il progetto e, se necessario, può essere rimosso o reso persistente nel file dalla scheda delle proprietà del layer :guilabel: Sorgente.

    In entrambi i casi, devi fornire una Nome gruppo per il gruppo di dati in uscita.

  • La Estensione Spaziale da considerare per il calcolo può essere:

    • una Estensione personalizzata, compilata manualmente con le coordinate X min, X max, Y min e Y max, oppure estratta da un gruppo di dataset esistente (selezionarlo nell’elenco e premere Usa Estensione del Layer Selezionato per compilare i campi delle coordinate sopra citate)

    • definito da un layer poligonale (Layer Maschera) del progetto: la geometria degli elementi poligonali viene utilizzata per ritagliare i dataset del layer mesh

  • La Estensione Temporale da prendere in considerazione per le serie di dati può essere impostata con le opzioni Ora di inizio e Ora finale, selezionate dai tempi dei gruppi di dati esistenti. Possono anche essere valorizzati utilizzando il pulsante Usa Orari di Tutti i Dataset Seezionati per prendere l’intero intervallo.

La sezione Operatori contiene tutti gli operatori disponibili. Per aggiungere un operatore alla casella di espressione del calcolatore mesh, fai clic sul pulsante appropriato. Sono disponibili calcoli matematici (+, -, *, … ) e funzioni statistiche (min, max, somma (aggr), media (aggr), …). ) sono disponibili. Le espressioni condizionali (=, !=, <, >=, IF, AND, NOT, … ) restituiscono 0 per il falso e 1 per il vero e possono quindi essere utilizzate con altri operatori e funzioni. Anche il valore NODATA può essere utilizzato nelle espressioni.

Il widget Espressione del Calcolatore Mesh ti mostra e ti consente di modificare l’espressione da eseguire.