Accesso ai dati > Dataset: façade
Contenuto dataset:
- facade.gpkg
- PNE_usm 47-b.dxf
- styles/distance-from-half-foot-multiple.qml
- styles/perimeter-difference-from-bbox.qml
- styles/relative-area-difference-from-bbox.qml
- styles/w-h-st-dev.qml
- styles/width-mapped-to-roman-standards.qml
Questo modulo è finalizzato all’utilizzo non geografico di QGIS per l’analisi statistica ed automatizzata delle tessiture murarie. Come dato di partenza verrà utilizzato un file AutoCAD con il rilievo di dettaglio di un prospetto murario, per comodità, con grandi superfici in laterizio, che verrà trasformato per rendere possibili analisi quantitative. Per questo motivo verrà usato il prospetto PNE_usm 47-b degli scavi del Palatino (dir. prof.ssa M.Teresa D’Alessio).

Per l’uso di file CAD in QGIS è necessario salvare il file in formato AutoCAD DWG in formato AutoCAD DXF utilizzando un programma CAD capace di leggere i file DWG.
QGIS, per motivi di licenza, non gestisce i file proprietari DWG.
Come risultato si ha il file di output PNE_usm 47-b.dxf
Attenzione: si tratta di una semplificazione del prospetto originario.
Vettore > Strumenti di geometria > Da linee a poligoni
Se fallisce, andare su impostazioni e selezionare
Salta (Ignora) Elementi con Geometrie non valide.
Vettore > Strumenti di geometria > Controllo di validità...Ripara geometrielimite dagli altri.
Con il nostro esempio, oriented bounding box e :
Bounding box non orientato:

Formula per calcolare al volo la lunghezza:
round(
array_max(
array(
distance(
point_n( oriented_bbox($geometry), 1),
point_n( oriented_bbox($geometry), 2)
),
distance(
point_n( oriented_bbox($geometry), 2),
point_n( oriented_bbox($geometry), 3)
)
)
),
3
)
Spiegazione:
oriented_bbox: Restituisce una geometria che rappresenta il perimetro di delimitazione minimo orientato di una geometria.point_n: Restituisce un nodo specifico da una geometria.distance: Restituisce la distanza minima (basata sul riferimento spaziale) tra due geometrie in unità proiettate.array: Restituisce un array contenente tutti i valori passati come parametro, es.:
array(2, 10) → [ 2, 10 ]
array_max: Restituisce il valore massimo di un array (nel nostro caso la lunghezza), es.:
array_max(array(0, 42, 4, 2)) → 42
round: Arrotonda un numero ad un numero di cifre decimaliFormula per calcolare al volo l’altezza:
La formula è la stessa rispetto alla lunghezza, ma dalla lista prendo il valore più piccolo (array_min).
round(
array_min(
array(
distance(
point_n( oriented_bbox($geometry), 1),
point_n( oriented_bbox($geometry), 2)
),
distance(
point_n( oriented_bbox($geometry), 2),
point_n( oriented_bbox($geometry), 3)
)
)
),
3
)
Sulla base dell’assioma che la distanza più corta tra due punti è la retta che li collega, possiamo usare il perimetro per calcolare la regolarità della muratura.
Questo indice funziona bene con forme sub-quadrangolari:
Di contro, ci si aspetta che non funzioni altrettanto bene con forme tendenti al triangolare:

Quindi, la formula per ricavare la differenza di perimetro in termini assoluti potrebbe essere calcolato dalla formula:
perimetro della rettangolo regolare orientato (oriented_bbox) - perimetro del poligono attuale
Ovvero:
perimeter(
oriented_bbox( $geometry )
)
-
perimeter( $geometry )
L’uso della superficie, invece, ci permette di calcolate con maggiore precisione le aree di differenza tra il poligono regolare (bbox) e quello attuale:
area del poligono regolare - area della geometria corrente
Questa differenza può essere resa relativa se la dividiamo per l’area del poligono regolare:
(
area del poligono regolare - area della geometria corrente
) / area del poligono regolare
Ovvero:
(
area(
oriented_bbox( $geometry )
)
-
area( $geometry )
)
/
area(
oriented_bbox($geometry)
)
round( "bbw" / "bbh" , 3)
Simbologia: graduato, usando come valore la formula round( "bbw" / "bbh" , 3) e come modalità la Deviazione Standard.
📖 Approfondimento: QGIS – Modalità di classificazione
round( "bbw" % @pes , 2)
Attenzione: % è il simbolo dell’operazione modulo, sinonimo di mod.
Da Wikipedia:
Tra i numeri interi è definita la funzione modulo, indicato con
mod, che dà come risultato il resto della divisione euclidea del primo numero per il secondo. … Per esempio, si ha13 mod 3 = 1, perché⌊ 13 / 3 ⌋ = 4quindi13 − ( 3 x 4 ) = 1e dunque il resto è1.

Dalla figura, ricavo le principali dimensioni dei laterizi per ogni prodotto
| Intero | spezzato 2 | spezzato 4 | spezzato 8 | spezzato 9 | spezzato 18 | ||
|---|---|---|---|---|---|---|---|
| piedi | lato | diagonale | 1/2 di diagonale | 1/2 di lato | 1/3 di lato | 1/3 di diagonale | |
| bessales | 0.67 | 0.198 | 0.28 | 0.14 | |||
| 0.296 | 0.419 | ||||||
| sesquipedales | 1.5 | 0.444 | 0.628 | 0.314 | 0.222 | ||
| bipedales | 2 | 0.592 | 0.837 | 0.419 | 0.296 | 0.197 | 0.279 |
Le elenco in una tabella in ordine:
| prec. al millimetro | prec. al centimetro (arrotondamento al terzo decimale) |
|
|---|---|---|
| bessales | 0.14 | 0.14 |
| bipedales | 0.197 | 0.2 |
| bessales | 0.198 | ↑ |
| sesquipedales | 0.222 | 0.22 |
| bipedales | 0.279 | 0.28 |
| bessales | 0.28 | ↑ |
| pedales | 0.296 | 0.3 |
| bipedales | ↑ | ↑ |
| sesquipedales | 0.314 | 0.31 (↑) |
| pedales | 0.419 | 0.42 |
| bipedales | ↑ | ↑ |
| sesquipedales | 0.444 | 0.44 |
| bipedales | 0.592 | 0.59 |
| sesquipedales | 0.628 | 0.63 |
Rule based styles, dove n è una misura di tolleranza definita come variabile di layer:
"bbw" BETWEEN (0.14-@tollerance) AND (0.14+@tollerance)"bbw" BETWEEN (0.2-@tollerance) AND (0.2+@tollerance)"bbw" BETWEEN (0.22-@tollerance) AND (0.22+@tollerance)"bbw" BETWEEN (0.28-@tollerance) AND (0.28+@tollerance)"bbw" BETWEEN (0.3-@tollerance) AND (0.3+@tollerance)"bbw" BETWEEN (0.31-@tollerance) AND (0.31+@tollerance)"bbw" BETWEEN (0.42-@tollerance) AND (0.42+@tollerance)"bbw" BETWEEN (0.44-@tollerance) AND (0.44+@tollerance)"bbw" BETWEEN (0.59-@tollerance) AND (0.59+@tollerance)"bbw" BETWEEN (0.63-@tollerance) AND (0.63+@tollerance)"bbw" BETWEEN (0.84-@tollerance) AND (0.84+@tollerance)