14.3. Esplorare Formati Dati e Campi
14.3.1. Dati Raster
I dati raster GIS sono matrici di celle discrete che rappresentano caratteristiche/fenomeni su, sopra o sotto la superficie terrestre. Ogni cella nella griglia raster ha la stessa dimensione, e le celle sono solitamente rettangolari (in QGIS saranno sempre rettangolari). I tipici insiemi di dati raster includono dati di telerilevamento, come fotografie aeree, o immagini satellitari e dati modellati, come l’elevazione o la temperatura.
A differenza dei dati vettoriali, i dati raster in genere non hanno un record di database associato per ogni cella. Sono geocodificati dalla risoluzione del pixel e dalla coordinata X/Y di un pixel d’angolo del layer raster. Questo permette a QGIS di posizionare correttamente i dati sulla mappa.
Il formato GeoPackage è ideale per memorizzare dati raster quando si lavora con QGIS. Il popolare e potente formato GeoTiff è una buona alternativa.
QGIS fa uso di informazioni di georeferenziazione all’interno del layer raster (ad esempio, GeoTiff) o di un world file associato per visualizzare correttamente i dati.
14.3.2. Dati vettoriali
Molte delle funzionalità e degli strumenti disponibili in QGIS operano allo stesso modo, indipendentemente dall’origine dei dati vettoriali. Tuttavia, a causa delle differenze nelle specifiche dei formati (GeoPackage, ESRI Shapefile, MapInfo e MicroStation, AutoCAD DXF, PostGIS, SpatiaLite, Oracle Spatial, MSSQL Spatial, SAP HANA Spatial e molti altri), QGIS può gestire alcune proprietà in modo diverso. Il supporto è fornito dalla OGR Simple Feature Library. Questa sezione descrive come lavorare con queste specifiche.
Nota
QGIS supporta (multi)punto, (multi)linea, (multi)poligono, CircularString, CurvaComposta, CurvePolygon, MultiCurve, MultiSurface, tutti opzionalmente con valori Z e/o M.
Dovresti anche tener presente che alcuni driver non supportano alcuni di questi formati, come CircularString, CurvaComposta, CurvePolygon, MultiCurve, MultiSurface. QGIS li convertirà.
14.3.2.1. GeoPackage
Il formato GeoPackage (GPKG) è indipendente dalla piattaforma, ed è implementato come un contenitore di database SQLite, e può essere usato per memorizzare sia dati vettoriali che raster. Il formato è stato definito dall’Open Geospatial Consortium (OGC), ed è stato pubblicato nel 2014.
GeoPackage può essere utilizzato per memorizzare quanto segue in un database SQLite:
elementi vettore
insiemi di immagini di matrici di tasselli e mappe raster
attributi (dati non-spaziali)
estensioni
Dalla versione 3.8 di QGIS, GeoPackage può anche memorizzare progetti QGIS. I layer di GeoPackage possono avere campi JSON.
GeoPackage è il formato predefinito per i dati vettoriali in QGIS.
14.3.2.2. Formato ESRI Shapefile
Il formato ESRI Shapefile è ancora uno dei formati di file vettoriali più utilizzati, anche se ha alcune limitazioni rispetto ad esempio a GeoPackage e SpatiaLite.
Un insieme di dati in formato ESRI Shapefile è composto da diversi file. I tre seguenti sono obbligatori:
.shp
file contenente le geometrie.dbf
file contenente gli attributi in formato dBase.shx
file indici
Un set di dati in formato ESRI Shapefile può anche includere un file con suffisso .prj
, che contiene informazioni sulla proiezione. Sebbene sia molto utile avere un file di proiezione, non è obbligatorio. Un set di dati in formato Shapefile può contenere altri file. Per ulteriori dettagli, consultare le `specifiche tecniche ESRI <https://www.esri.com/content/dam/esrisites/sitecore-archive/Files/Pdfs/library/whitepapers/pdfs/shapefile.pdf>_.
GDAL 3.1 ha il supporto in lettura e scrittura per il formato compresso ESRI Shapefile (shz
e shp.zip
).
Migliorare le prestazioni per i insiemi di dati in formato ESRI Shapefile
Per migliorare le prestazioni di visualizzazione di un insieme di dati in formato ESRI Shapefile, puoi creare un indice spaziale. Un indice spaziale migliorerà la velocità di zoom e di spostamento. Gli indici spaziali usati da QGIS hanno un’estensione .qix
.
Segui questi passi per creare un indice spaziale:
Carica un insieme di dati in formato ESRI Shapefile (vedi Il Pannello Browser)
Apri la finestra di dialogo Proprietà Layer facendo doppio clic sul nome del layer nella legenda o facendo clic destro e scegliendo dal menu contestuale
Nella scheda Sorgente, clicca sul pulsante Crea Indice Spaziale.
Problemi nel caricare un file .prj
Se carichi un dataset in formato ESRI Shapefile con un file .prj
e QGIS non è in grado di leggere il sistema di riferimento delle coordinate da quel file, sarà necessario definire manualmente la proiezione corretta nella scheda del layer cliccando il pulsante Seleziona SR. Questo è dovuto al fatto che i file .prj
spesso non forniscono i parametri di proiezione completi come usati in QGIS ed elencati nella finestra di dialogo SR.
Per lo stesso motivo, se crei un nuovo dataset in formato ESRI Shapefile con QGIS, vengono creati due diversi file di proiezione: un file .prj
con parametri di proiezione limitati, compatibili con il software ESRI, e un file .qpj
, che fornisce tutti i parametri del SR. Ogni volta che QGIS trova un file .qpj
, questo sarà usato al posto del .prj
.
14.3.2.3. Files Testo Limitato
I file di testo delimitati sono molto comuni e ampiamente utilizzati a causa della loro semplicità e leggibilità - i dati possono essere visualizzati e modificati in un semplice editor di testo. Un file di testo delimitato è costituito da dati tabulari con colonne separate da un determinato carattere e righe separate da interruzioni 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 colonne separate da virgole. I file di testo delimitati possono anche contenere informazioni di posizione (vedi Memorizzazione di informazioni sulla geometria in un file di testo delimitato).
QGIS ti permette di caricare un file di testo delimitato come layer o come tabella ordinaria (vedi Il Pannello Browser o Importare file di testo delimitato). Prima controlla che il file soddisfi i seguenti requisiti:
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).
Se la geometria deve essere abilitata, il file deve contenere campo(i) per definire la geometria. Questo campo(i) può avere qualsiasi nome.
Le coordinate X e Y (se la geometria è identificata da coordinate) devono essere specificate come numeri. Il sistema di coordinate non è importante.
Se hai un file CSV con colonne non contenenti stringhe, devi avere un file CSVT di accompagnamento (vedi la sezione Utilizzo di file CSVT per controllare la formattazione del campo).
Il file di dati di elevazione elevp.csv
nell” insieme dei dati campione di QGIS (vedi la sezione Installare dati campione) è un esempio di un file di testo valido:
X;Y;ELEV
-300120;7689960;13
-654360;7562040;52
1640;7512840;3
[...]
Alcune cose da notare sul file di testo:
Il file di testo di esempio usa
;
(punto e virgola) come delimitatore (qualsiasi carattere può essere usato per delimitare i campi).La prima riga è la riga di intestazione. Questa contiene i campi
X
,Y
eELEV
.Non si usano virgolette (
"
) per delimitare i campi di testoLe coordinate X sono contenute nel campo
X
.Le coordinate Y sono contenute nel campo
Y
.
Memorizzazione di informazioni sulla geometria 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
… ), per geometrie puntuali di dati;Come well-known text (WKT) rappresentazione della geometria in una singola colonna, per qualsiasi tipo di geometria.
Sono supportati gli elementi con geometrie curve (CircularString, CurvePolygon e CompoundCurve) . Ecco alcuni esempi di tipi di geometria in un file di testo delimitato con geometrie codificate come 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))
I file di testo delimitati supportano anche le coordinate Z e M nelle geometrie:
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 si caricano i file CSV, il driver OGR assume che tutti i campi siano stringhe (cioè testo) a meno che non gli venga detto altrimenti. Puoi creare un file CSVT per dire all’OGR (e a QGIS) il tipo di dati delle 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 in GDAL CSV Driver.
14.3.2.4. Layer PostGIS
I layer PostGIS sono memorizzati in un database PostgreSQL. I vantaggi di PostGIS sono l’indicizzazione spaziale, il filtraggio e le possibilità di interrogazione. Usando PostGIS, le funzioni vettoriali come selezionare e identificare funzionano più accuratamente di quanto non avvenga con i layer OGR in QGIS.
Suggerimento
Layer PostGIS
Normalmente, un layer PostGIS è identificato da una voce nella tabella geometry_columns. QGIS può caricare layer che non hanno una voce nella tabella geometry_columns. Questo include sia tabelle che viste. Fai riferimento al tuo manuale PostgreSQL per informazioni sulla creazione di viste.
Questa sezione contiene alcuni dettagli su come QGIS accede ai layer PostgreSQL. La maggior parte delle volte, QGIS dovrebbe semplicemente fornirti una lista di tabelle di database che possono essere caricate, e le caricherà su richiesta. Tuttavia, se hai problemi a caricare una tabella PostgreSQL in QGIS, le informazioni che seguono possono aiutarti a capire i messaggi di QGIS e darti indicazioni per modificare la tabella PostgreSQL o la definizione della vista per permettere a QGIS di caricarla.
Nota
Un database PostgreSQL può memorizzare anche i progetti QGIS.
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 offre una casella di controllo Select at id che è attivata di default. 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.
Nota
Tabella esterna PostgreSQL
Le tabelle esterne PostgreSQL non sono esplicitamente supportate dal provider PostgreSQL e saranno gestite come una vista.
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 DOCUMENT
prima del comando di ripristino.
Eseguire un backup PLAIN della tabella ``layer_style””.
Aprire il file in un editor di testo
Modificare la riga
SET xmloption = content;
inSET XML OPTION DOCUMENT;
Salvare il file
Utilizzare psql per ripristinare la tabella nel nuovo database
Filtro lato server
QGIS permette di filtrare gli elementi già sul lato server. Controlla per farlo. Solo le espressioni supportate saranno inviate al database. Le espressioni che usano operatori o funzioni non supportate saranno restituita alla esecuzione in locale.
Supporto di PostgreSQL alle diverse tipologie di dati
I tipi di dati supportati da PostgreSQL includono: intero, numero in virgola mobile, booleano, oggetto binario, dati stringa a lunghezza variabile, geometria, timestamp, array, hstore e json.
14.3.2.5. Importare dati in PostgreSQL
I dati possono essere importati in PostreSQL/PostGIS usando diversi strumenti, come il plugin DB Manager e gli strumenti da riga di comando shp2pgsql e ogr2ogr
DB Manager
QGIS ha un plugin di base chiamato DB Manager. Si può utilizzare per caricare dati, e include il supporto per gli schemi. Vedi la sezione Plugin DB Manager per ulteriori informazioni.
shp2pgsql
PostGIS include uno strumento chiamato shp2pgsql, che può essere usato per importare set di dati in formato Shapefile in un database compatibile con PostGIS. Per esempio, per importare un set di dati in formato Shapefile chiamato lakes.shp
in un database PostgreSQL chiamato gis_data
, usa il seguente comando:
shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data
Questo crea un nuovo layer chiamato lakes_new
nel database gis_data
. Il nuovo layer avrà un identificatore di riferimento spaziale (SRID) di 2964. Vedi la sezione Lavorare con le proiezioni per maggiori informazioni sui sistemi di riferimento spaziale e le proiezioni.
Suggerimento
Esportare dati da PostGIS
C’è anche uno strumento per esportare insiemi di dati PostGIS in formato Shapefile: pgsql2shp. Viene fornito all’interno della tua distribuzione PostGIS.
ogr2ogr
Oltre a shp2pgsql e DB Manager, esiste un altro strumento per alimentare i dati geografici in PostGIS: ogr2ogr. Fa parte dell’installazione di GDAL.
Per importare un insieme di dati in formato Shapefile in PostGIS, fai come segue:
ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres
password=topsecret" alaska.shp
Questo importerà l’insieme dei dati in formato Shapefile alaska.shp
nel database PostGIS postgis usando l’utente postgres con la password topsecret sul server host myhost.de.
Nota che OGR deve essere costruito con PostgreSQL per supportare PostGIS. Puoi verificarlo digitando (in ):
ogrinfo --formats | grep -i post
Se preferisci usare il comando COPY di PostgreSQL invece del metodo predefinito INSERT INTO, puoi esportare la seguente variabile d’ambiente (disponibile solo su e ):
export PG_USE_COPY=YES
ogr2ogr non crea indici spaziali come fa shp2pgsl. Devi crearli manualmente, usando successivamente il normale comando SQL CREATE INDEX, come passo extra (come descritto nella prossima sezione Migliorare le prestazioni).
Migliorare le prestazioni
Recuperare elementi da un database PostgreSQL può essere dispendioso in termini di tempo, specialmente su una rete. Puoi migliorare le prestazioni di estrazione dei layer PostgreSQL assicurandoti che esista un indice spaziale PostGIS su ogni layer nel database. PostGIS supporta la creazione di un indice GiST (Generalized Search Tree) per velocizzare la ricerca spaziale (le informazioni sull’indice GiST sono prese dalla documentazione di PostGIS disponibile all’indirizzo https://postgis.net).
Suggerimento
Puoi usare il DB Manager per creare un indice per il tuo layer. Dovresti prima selezionare il layer e cliccare su Aggiungi indice spaziale.
, andare alla scheda e cliccare suLa sintassi per creare un indice GiST è:
CREATE INDEX [indexname] ON [tablename]
USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );
Nota che per tabelle grandi, la creazione dell’indice può richiedere molto tempo. Una volta che l’indice è stato creato, si dovrebbe eseguire un VACUUM ANALYZE
. Vedi la documentazione di PostGIS (POSTGIS-PROJECT in Letteratura e riferimenti web) per maggiori informazioni.
Il seguente esempio crea un indice GiST:
gsherman@madison:~/current$ psql gis_data
Welcome to psql 8.3.0, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
gis_data=# CREATE INDEX sidx_alaska_lakes ON alaska_lakes
gis_data-# USING GIST (the_geom GIST_GEOMETRY_OPS);
CREATE INDEX
gis_data=# VACUUM ANALYZE alaska_lakes;
VACUUM
gis_data=# \q
gsherman@madison:~/current$
14.3.2.6. Vettori a cavallo dei 180° di longitudine
Molti pacchetti GIS non includono mappe vettoriali con un sistema di riferimento geografico (lat/lon) che attraversa la linea di longitudine di 180 gradi (https://postgis.net/docs/ST_Shift_Longitude.html). Di conseguenza, se apriamo una mappa di questo tipo in QGIS, potremmo vedere due località molto separate, che dovrebbero apparire vicine. In Fig. 14.26, il piccolo punto all’estrema sinistra della mappa (Chatham Islands) dovrebbe trovarsi all’interno della griglia, a destra delle isole principali della Nuova Zelanda.
Una soluzione consiste nel trasformare i valori di longitudine utilizzando PostGIS e la funzione ST_Shift_Longitude. Questa funzione legge i punti/vertici di ogni elemento di una geometria e se la coordinata di longitudine è < 0° , aggiunge 360°. Il risultato sarà una versione 0° - 360° dei dati, che verranno poi visualizzati su una mappa centrata a 180°.
Guida all’uso
Importa i dati in PostGIS (Importare dati in PostgreSQL) usando, per esempio, il plugin DB Manager.
Usa l’interfaccia da linea di comando di PostGIS per dare il seguente comando (nell’esempio “TABLE” è il nome della tua tabella PostGIS):
gis_data=# update TABLE set the_geom=ST_Shift_Longitude(the_geom);
Se tutto è andato a buon fine, riceverai la conferma sul numero di geometrie che sono state aggiornate. Potrai cosi caricare la mappa e vedere le differenze (Figure_vector_crossing_map).
14.3.2.7. Vettori SpatiaLite
Se vuoi salvare un vettore usando il formato SpatiaLite, puoi farlo seguendo le istruzioni in Creare nuovi layer da layer esistente. Seleziona SpatiaLite
come Formato e inserisci sia Nome file che Nome layer.
Inoltre, puoi selezionare SQLite
come formato e poi aggiungere SPATIALITE=YES
nel campo . Questo dice a GDAL di creare un database SpatiaLite. Vedi anche https://gdal.org/drivers/vector/sqlite.html.
QGIS supporta anche le viste modificabili in SpatiaLite. Per la gestione dei dati di SpatiaLite, puoi anche usare il plugin di base DB Manager.
Se vuoi creare un nuovo layer SpatiaLite, fai riferimento alla sezione Creare un nuovo layer SpatiaLite.
14.3.2.8. Parametri specifici di GeoJSON
Con exporting layers in GeoJSON, sono disponibili alcune specifiche Opzioni del layer. Queste opzioni provengono da GDAL che è responsabile della scrittura del file:
COORDINATE_PRECISION il numero massimo di cifre dopo il separatore decimale da inserire in coordinate. I valori predefiniti sono 15 (nota: per le coordinate Lat Lon 6 è considerato sufficiente). La troncatura si verifica per rimuovere gli zeri finali.
RFC7946 di default verrà usato GeoJSON 2008. Se impostato su YES, verrà usato lo standard aggiornato RFC 7946. Il default è NO (quindi GeoJSON 2008). Vedi https://gdal.org/drivers/vector/geojson.html#rfc-7946-write-support per le principali differenze, in breve: solo EPSG:4326 è permesso, altri SR saranno trasformati, i poligoni saranno scritti in modo da seguire la regola della mano destra per l’orientamento, i valori di un array «bbox» sono [west, south, east, north], non [minx, miny, maxx, maxy]. Alcuni nomi di estensioni sono vietati negli oggetti FeatureCollection, Feature e Geometry, la precisione predefinita delle coordinate è di 7 cifre decimali
WRITE_BBOX impostato su YES per includere il perimetro di delimitazione delle geometrie a livello di elemento e insieme di elementi
Oltre a GeoJSON c’è anche un’opzione per esportare in «GeoJSON - Newline Delimited» (vedi https://gdal.org/drivers/vector/geojsonseq.html). Invece di una FeatureCollection con Features, puoi esportare un tipo (probabilmente solo Features) separato sequenzialmente con newline.
GeoJSON - Newline Delimited ha anche alcune opzioni specifiche per i Layer:
COORDINATE_PRECISION vedi sopra (come per GeoJSON)
RS se iniziare i record con il carattere RS=0x1E. La differenza è come gli elementi sono separati: solo da un carattere newline (LF) (Newline Delimited JSON, geojsonl) o aggiungendo anche un carattere record-separator (RS) (dando GeoJSON Text Sequences, geojsons). Il valore predefinito è NO. Ai file viene data l’estensione
.json
se l’estensione non è fornita.
14.3.2.9. SAP HANA Layer Spaziali
Questa sezione contiene alcuni dettagli su come QGIS accede ai layer di SAP HANA. Nella maggior parte dei casi, QGIS dovrebbe semplicemente fornire un elenco di tabelle e viste del database che possono essere caricate e le caricherà su richiesta. Tuttavia, se si riscontrano problemi nel caricamento di una tabella o di una vista SAP HANA in QGIS, le informazioni riportate di seguito possono aiutare a capire la causa principale e a risolvere il problema.
Identificazione degli elementi
Se vuoi utilizzare tutte le funzionalità di modifica degli elementi di QGIS, è necessario che QGIS sia in grado di identificare senza ambiguità ogni elemento di un layer. Internamente, QGIS utilizza un intero con segno a 64 bit per identificare gli elementi, mentre l’intervallo negativo è riservato a scopi speciali.
Pertanto, il provider SAP HANA richiede una chiave univoca che possa essere mappata su un numero intero positivo a 64 bit per supportare pienamente le funzionalità di modifica degli elementi di QGIS. Se non è possibile creare tale mappatura, puoi visualizzare gli elementi, ma la modifica potrebbe non funzionare.
Aggiungere tabelle
Quando si aggiunge una tabella come layer, il provider SAP HANA utilizza la chiave primaria della tabella per mapparla a un id univoco dell’elemento. Pertanto, per avere un supporto completo per la modifica delle caratteristiche, devi avere una chiave primaria per la definizione della tua tabella.
Il provider SAP HANA supporta chiavi primarie a più colonne, ma se vuoi ottenere migliori prestazioni, la chiave primaria deve essere una singola colonna di tipo INTEGER
.
Aggiungere viste
Quando si aggiunge una vista come layer, il provider SAP HANA non è in grado di identificare automaticamente le colonne che identificano senza ambiguità un elemento. Inoltre, alcune viste sono di sola lettura e non possono essere modificate.
Per avere un supporto completo per la modifica degli elementi, la vista deve essere aggiornabile (controllare la colonna IS_READ_ONLY
nella vista di sistema SYS.VIEWS
per la vista in questione) e devi fornire manualmente a QGIS una o più colonne che identificano un elemento. Le colonne possono essere fornite utilizzando e quindi selezionando le colonne nella colonna Feature id. Per ottenere prestazioni ottimali, il valore Feature id dovrebbe essere una singola colonna INTEGER
.