• Non ci sono risultati.

SELECT * FROM vtab

Nel documento QGIS User Guide Release 3.4 (pagine 165-169)

Gestione fonti dati

SELECT * FROM vtab

WHERE _search_frame_=BuildMbr(-2.10,49.38,-1.3,49.99,4326)

I predicati binari spaziali come ST_Intersects consentono significative accelerazioni quando utilizzati in combinazione con questa sintassi dell’indice spaziale.

12.3 Esplorare i formati dati e i campi

12.3.1 Dati Raster

I dati raster sono matrici di celle discrete che rappresentano oggetti della superficie terrestre o dell’ambiente al di sopra o al di sotto di essa. Ogni cella nella matrice ha la stessa dimensione e le celle sono solitamente rettangolari (in QGIS sono sempre rettangolari). Esempi tipici di dati raster sono quelli provenienti dal telerilevamento come le fotografie aeree, le immagini da satellite e i dati modellati come le matrici dell’elevazione.

A differenza dei dati vettoriali, i dati raster in genere non hanno un record di database associato per ogni cella. Sono geocodificati dalla risoluzione dei pixel e dalla coordinata X/Y di un pixel d’angolo del layer raster. Questo permette a QGIS di posizionare correttamente i dati nell’area di disegno della mappa.

The GeoPackage format is convenient for storing raster data when working with QGIS. The popular and powerful GeoTiff format is a good alternative.

QGIS makes use of georeference information inside the raster layer (e.g., GeoTiff) or an associated world file to properly display the data.

12.3.2 Dati vettoriali

Molte delle geometrie disponibili in QGIS funzionano allo stesso modo, indipendentemente dalla fonte dei dati vettoriali. Tuttavia, a causa delle differenze nelle specifiche dei formati (ESRI Shapefile, MapInfo e MicroStation, AutoCAD DXF, PostGIS, SpatiaLite, DB2, Oracle Spatial e MSSQL Spatial database, e molti altri), QGIS può gestire in modo diverso alcune delle loro proprietà. Questa sezione descrive come lavorare con queste specificità.

Nota: QGIS supports (multi)point, (multi)line, (multi)polygon, CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface feature types, all optionally with Z and/or M values.

You should also note that some drivers don’t support some of these feature types, like CircularString, Compound-Curve, CurvePolygon, MultiCompound-Curve, MultiSurface feature type. QGIS will convert them.

GeoPackage

TheGeoPackage(GPKG) format is platform-independent, and is implemented as a SQLite database container, and can be used to store both vector and raster data. The format was defined by the Open Geospatial Consortium (OGC), and was published in 2014.

GeoPackage can be used to store the following in a SQLite database: • vector features

• tile matrix sets of imagery and raster maps • attributes (non-spatial data)

ESRI Shapefile

L’ESRI shapele è ancora uno dei formati di le vettoriali più utilizzati in QGIS. Tuttavia, questo formato ha qualche limitazione che altri formati non hanno (come il Geopackage, SpatiaLite). Il supporto è fornito dalla libreriaOGR Simple Feature Library.

Un formato dati shapele è costituito da diversi le. I seguenti tre sono obbligatori: 1. .shp file contenente le geometrie

2. .dbf file contenente gli attributi in formato dBase 3. .shx file indici

Uno shapele può anche includere un le con suffisso .prj che contiene le informazioni sulla proiezione. Anche se non è obbligatorio, è molto utile avere informazioni sulla proiezione. Uno shapele può contenere anche al-tri les. Per ulteriori informazioni, vedi le specifiche tecniche di ESRI all’indirizzohttp://www.esri.com/library/ whitepapers/pdfs/shapele.pdf.

Ottimizzare le prestazioni per gli shapefile

Per migliorare le prestazioni di visualizzazione di uno shapefile, puoi creare un indice spaziale. L’indice spaziale migliora la velocità di visualizzazione quando usi le funzioni di zoom e di spostamento. Gli indici spaziali usati da QGIS hanno estensione .qix.

Segui questi passi per creare un indice spaziale: 1. Carica uno shapefile (vediIl Pannello Browser).

2. Apri la finestra di dialogo Proprietà vettore facendo doppio click sul nome dello shapefile nella legenda o cliccandoci con il tasto destro e scegliendo Proprietà. . . dal menu contestuale.

3. Nella scheda Sorgente, fai clic sul pulsante Crea Indice Spaziale. Problemi nel caricare un file .prj

Se carichi un dataset in formato Shapefile con un file .prj file e QGIS non è in grado di leggere il sistema di riferimento delle coordinate da quel file, dovrai definire manualmente la proiezione corretta all’interno della scheda Proprietà vettore → Sorgente del layer cliccando sul pulsante Seleziona SR. Ciò è dovuto al fatto che i file .prjspesso non forniscono i parametri di proiezione completi come quelli utilizzati in QGIS ed elencati nella finestra di dialogo SR.

Per lo stesso motivo, se crei un nuovo set di dati in formato Shapefile con QGIS, vengono creati due diversi file di proiezione: un file .prj file con parametri di proiezione limitati, compatibile con il software ESRI, e un file .qpjfile, che fornisce i parametri completi del SR utilizzato. Ogni volta che QGIS trova un file .qpj file, sarà usato al posto del .prj.

Files Testo Limitato

Il file di testo delimitato è un formato molto comune e ampiamente utilizzato per la sua semplicità e leggibilità -i dat-i possono essere v-isual-izzat-i e mod-if-icat-i anche con un ed-itor d-i testo. Un f-ile d-i testo del-im-itato è un dato tabellare con ogni colonna separata da un definito carattere e ogni riga separata da un’interruzione di riga. La prima riga di solito contiene i nomi delle colonne. Un tipo comune di file di testo delimitato è un CSV (Comma Separated Values), con ogni colonna separata da una virgola. Tali file di dati possono contenere anche informazioni sulla posizione (vediMemorizzazione informazioni di geometrie in un file di testo delimitato).

QGIS ti permette di caricare un file in formato di testo delimitato come layer o come semplice tabella (vediIl Pannello BrowseroImportare file di testo delimitato). Prima però verifica che soddisfi questi requisiti:

1. Il file deve avere una riga di intestazione con il nome dei campi. Questa deve essere la prima riga del file di testo (preferibilmente la prima riga del file di testo).

2. Se si deve abilitare la geometria, la riga di intestazione deve contenere uno o più campi con la definizione della geometria. Questi campi possono avere qualsiasi nome.

3. Le coordinate X e Y (se la geometria è identificata da coordinate) devono essere specificate come numeri. Il sistema di coordinate non è importante.

4. Se hai dati che non sono una stringa (testo) e il file è un file CSV, devi avere un file CSVT (vedi sezione

Utilizzo di file CSVT per controllare la formattazione del campo).

Come esempio di un file di testo valido, importa il file di punti quotati elevp.csv presente nell’insieme di dati campione di QGIS (vedi sezioneDati campione):

X;Y;ELEV

-300120;7689960;13 -654360;7562040;52 1640;7512840;3

[...]

Alcune cose da tenere in considerazione in merito al file di testo:

1. Il file di testo usato come esempio usa ; (punto e virgola) come delimitatore. Ma qualsiasi carattere può essere usato per delimitare i campi.

2. La prima riga è la riga di intestazione. Questa contiene i campi X, Y e ELEV. 3. Nessun tipo di virgoletta (") dev’essere usata per delimitare i campi di testo. 4. Le coordinate X sono contenute nel campo X.

5. Le coordinate Y sono contenute nel campo Y.

Memorizzazione informazioni di geometrie in un file di testo delimitato

I file testo delimitato possono contenere informazioni sulla geometria in due forme principali:

• Come coordinate in colonne separate (es. Xcol, Ycol. . . . ), compatibili con i dati geometrici dei punti; • Come well-known text (WKT) rappresentazione della geometria in una singola colonna, per qualsiasi tipo

di geometria.

Sono supportati anche oggetti con geometrie curve (CircularString, CurvePolygon and CompoundCurve). Di seguito tre esempi di tali tipologie geometriche nel formato geometrie WKT:

Label;WKT_geom LineString;LINESTRING(10.0 20.0, 11.0 21.0, 13.0 25.5) CircularString;CIRCULARSTRING(268 415,227 505,227 406) CurvePolygon;CURVEPOLYGON(CIRCULARSTRING(1 3, 3 5, 4 7, 7 3, 1 3)) CompoundCurve;COMPOUNDCURVE((5 3, 5 13), CIRCULARSTRING(5 13, 7 15, 9 13), (9 13, 9 3), CIRCULARSTRING(9 3, 7 1, 5 3))

Il formato testo delimitato supporta anche geometrie che hanno coordinate Z e M:

LINESTRINGZ(10.0 20.0 30.0, 11.0 21.0 31.0, 11.0 22.0 30.0)

Utilizzo di file CSVT per controllare la formattazione del campo

Quando carichi i file CSV, il driver OGR presuppone che tutti i campi siano stringhe (cioè tipo testo) a meno che non sia detto diversamente. Puoi creare un file CSVT per indicare a OGR (e QGIS) quali tipi di dati ci sono nelle diverse colonne:

Type Name Example

Whole number Integer 4

Decimal number Real 3.456

Date Date (YYYY-MM-DD) 2016-07-28

Time Time (HH:MM:SS+nn) 18:33:12+00

Date & Time DateTime (YYYY-MM-DD HH:MM:SS+nn) 2016-07-28 18:33:12+00

Il file CSVT è un file di testo normale di UNA sola riga con i tipi di dati racchiusi da virgolette e separati da virgole, ad esempio:

"Integer","Real","String"

Puoi anche specificare la larghezza e la precisione di ogni colonna, ad esempio:

"Integer(6)","Real(5.5)","String(22)"

Questo file viene salvato nella stessa cartella del file .csv, con lo stesso nome, ma con .csvt come estensione. Puoi trovare maggiori informazioni inGDAL CSV Driver.

Layer PostGIS

I vettori PostGIS sono memorizzati in un database PostgreSQL. PostGIS ha diversi vantaggi: creazione dell’indice spaziale, capacità di filtraggio e di interrogazione molto potenti. Usando PostGIS, le funzioni vettoriali come la selezione e l’identificazione sono più precise che con i vettori OGR in QGIS.

Suggerimento: Layer PostGIS

Normalmente, un vettore PostGIS è definito da una voce nella tabella geometry_columns. QGIS può caricare layers che non dispongono di una voce nella tabella geometry_columns. Ciò include sia tabelle che viste. La definizione di una vista spaziale fornisce un potente mezzo per visualizzare i tuoi dati. Consulta il tuo manuale PostgreSQL per informazioni sulla creazione di viste.

Questa sezione contiene alcuni dettagli su come QGIS accede ai vettori PostgreSQL. La maggior parte delle volte QGIS dovrebbe semplicemente fornirti un elenco di tabelle del database che possono essere caricate e dovrebbe poi caricarle in base alla tua richiesta. Comunque se hai difficoltà a caricare una tabella di PostgreSQL in QGIS, le informazioni seguenti ti possono aiutare a capire tutti i messaggi di QGIS e ti possono dare un’indicazione di come cambiare le tabelle o le definizioni delle viste di PostgreSQL in modo che QGIS le possa caricare.

Chiave primaria

QGIS richiede che i vettori PostgreSQL contengano una colonna che possa essere usata come chiave univoca per il vettore. Le tabelle devono contenere una chiave primaria o una colonna con un vincolo univoco. Questa colonna deve essere di tipo int4 (un numero intero di 4 byte). Alternativamente, la colonna ctid può essere usata come chiave primaria. Se a una tabella mancano queste informazioni, verrà usata la colonna oid. Le prestazioni saranno migliori se la colonna è indicizzata (le chiavi primarie sono indicizzate automaticamente in PostgreSQL). QGIS prevede una casella di controllo Seleziona all’ID che viene attivata per impostazione predefinita. Questa opzione ottiene gli id senza gli attributi il che è più veloce nella maggior parte dei casi.

Viste

Se il layer di PostgreSQL è una vista sussistono gli stessi requisiti, ma non sempre necessitano chiavi primarie o colonne con vincoli univoci. Devi definire un campo della chiave primaria (deve essere un intero) nella finestra di dialogo di QGIS prima di caricare la vista. Se non c’è una colonna adatta nella vista, QGIS non caricherà il

vettore. Se succede la soluzione è di modificare la vista in modo che contenga una colonna adatta (un intero e una chiave primaria con un vincolo univoco, preferibilmente indicizzato).

Come per le tabelle, una casella di controllo Seleziona all’ID è attiva per impostazione predefinita (vedere sopra per il significato della casella di controllo). Può aver senso disattivare questa opzione quando si utilizzano viste impegnative.

Stili di default dei layer QGIS e backup del database

Se vuoi fare una copia di backup del tuo database PostGIS usando i comandi pg_dump e pg_restore, e gli stili di default dei layer come salvati da QGIS non ripristinabili in seguito, devi impostare l’opzione XML su DOCUMENTprima del comando di ripristino.

Nel documento QGIS User Guide Release 3.4 (pagine 165-169)