Outdated version of the documentation. Find the latest one here.

` `

Gegevensindelingen en velden verkennen

Rastergegevens

Rastergegevens in GIS bestaan uit cellen die gerangschikt zijn in rijen en kolommen en die objecten op, boven of onder het aardoppervlak representeren. Alle cellen in het raster hebben dezelfde grootte en de cellen zijn meestal rechthoekig (in QGIS zijn ze altijd rechthoekig). Typische voorbeelden van raster datasets zijn Remote Sensing data zoals luchtfoto’s, satellietbeelden en gemodelleerde gegevens zoals een hoogtemodel.

Unlike vector data, raster data typically do not have an associated database record for each cell. They are geocoded by pixel resolution and the x/y coordinate of a corner pixel of the raster layer. This allows QGIS to position the data correctly in the map canvas.

QGIS maakt gebruik van informatie over geo-verwijzingen in het rasterbestand zelf (bijvoorbeeld GeoTiff) of in een bijbehorend ‘world file’ om de rastergegevens correct weer te geven.

Vectorgegevens

Many of the features available in QGIS work the same, regardless the vector data source. However, because of the differences in formats specifications (ESRI shapefiles, MapInfo and MicroStation file formats, AutoCAD DXF, PostGIS, SpatiaLite, DB2, Oracle Spatial and MSSQL Spatial databases, and many more), QGIS may handle differently some of their properties. This section describes how to work with these specificities.

Notitie

QGIS ondersteunt objecttypen (multi)punt, (multi)lijn, (multi)polygoon, CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface, alle met Z- en/of M-waarden.

U zult merken dat sommige stuurprogramma’s enkele van deze objecttypen niet ondersteunen: CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface. QGIS zal ze converteren naar het object (multi)polygoon.

ESRI Shapefiles

The ESRI shapefile is still one of the most used vector file format in QGIS. However, this file format has some limitation that some other file format have not (like Geopackage, spatialite). Support is provided by the OGR Simple Feature Library.

A shapefile actually consists of several files. The following three are required:

  1. .shp bestand dat de geometrieën van de objecten bevat

  2. .dbf bestand dat de attribuutwaarden bevat in de indeling voor dBase

  3. .shx het indexbestand

Shapefiles also can include a file with a .prj suffix, which contains the projection information. While it is very useful to have a projection file, it is not mandatory. A shapefile dataset can contain additional files. For further details, see the ESRI technical specification at http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf.

Improving Performance for Shapefiles

To improve the performance of drawing a shapefile, you can create a spatial index. A spatial index will improve the speed of both zooming and panning. Spatial indexes used by QGIS have a .qix extension.

Gebruik de volgende stappen om de index te maken:

  • Load a shapefile (see Het paneel Browser);
  • Open the Layer Properties dialog by double-clicking on the shapefile name in the legend or by right-clicking and choosing Properties from the context menu.
  • In the General tab, click the [Create Spatial Index] button.

Problem loading a shape .prj file

If you load a shapefile with a .prj file and QGIS is not able to read the coordinate reference system from that file, you will need to define the proper projection manually within the General tab of the Layer Properties dialog of the layer by clicking the [Specify...] button. This is due to the fact that .prj files often do not provide the complete projection parameters as used in QGIS and listed in the CRS dialog.

For the same reason, if you create a new shapefile with QGIS, two different projection files are created: a .prj file with limited projection parameters, compatible with ESRI software, and a .qpj file, providing the complete parameters of the used CRS. Whenever QGIS finds a .qpj file, it will be used instead of the .prj.

Tekstgescheiden bestanden

Tabular data is a very common and widely used format because of its simplicity and readability – data can be viewed and edited even in a plain text editor. A delimited text file is an attribute table with each column separated by a defined character and each row separated by a line break. The first row usually contains the column names. A common type of delimited text file is a CSV (Comma Separated Values), with each column separated by a comma.

Such data files can also contain positional information in two main forms:

  • As point coordinates in separate columns
  • As well-known text (WKT) representation of geometry

QGIS allows you to load a delimited text file as a layer or ordinal table. But first check that the file meets the following requirements:

  1. The file must have a delimited header row of field names. This must be the first line in the text file.
  2. The header row must contain field(s) with geometry definition. These field(s) can have any name.
  3. The X and Y coordinates (if geometry is defined by coordinates) must be specified as numbers. The coordinate system is not important.
  4. Als u gegevens hebt die geen string (tekst) zijn en het bestand is een CSV-bestand, dient u een CSVT-bestand te hebben (zie gedeelte CSVT Files).

Als voorbeeld van een geldig tekstbestand importeren wij het hoogtepunten tekstbestand elevp.csv dat onderdeel is van de QGIS voorbeeld gegevensset (zie gedeelte Sample Data):

X;Y;ELEV
-300120;7689960;13
-654360;7562040;52
1640;7512840;3
[...]

Enkele opmerkingen over het tekstbestand:

  1. Het voorbeeld tekstbestand gebruikt ; (puntkomma) als scheidingsteken. Elk teken mag gebruikt worden om de velden te scheiden.

  2. De eerst rij is de kopregel. Deze bevat de velden X, Y en ELEV.

  3. Er zijn geen aanhalingstekens (") gebruikt om tekstvelden te begrenzen.

  4. De X-coördinaten staan onder het veld X.

  5. De Y-coördinaten staan onder het veld Y.

CSVT Files

Bij het laden van CSV-bestanden gaat het stuurprogramma van OGR er van uit dat alle velden strings (d.i. tekst) zijn, tenzij het is vertelt dat het anders is. U kunt een CSVT-bestand maken om OGR (en QGIS) te vertellen van welk gegevenstype de verschillende kolommen zijn:

Type

Naam

Voorbeeld

Geheel getal

Integer 4

Decimaal getal

Real 3.456

Datum

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

Tijd

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

Datum & Tijd

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

Het CSVT-bestand is een ÉÉNREGELIG platte tekstbestand met de gegevenstypes tussen aanhalingstekens en gescheiden door komma’s, bijv.:

"Integer","Real","String"

U mag zelfs de breedte en precisie van elke kolom specificeren, bijv.:

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

Dit bestand dient te worden opgeslagen in dezelfde map als het .csv-bestand, met dezelfde naam, maar met de extensie .csvt.

You can find more information at GDAL CSV Driver.

Others valuable informations for advanced users

Features with curved geometries (CircularString, CurvePolygon and CompoundCurve) are supported. Here are three examples of such geometry types as a delimited text with WKT geometries:

Label;WKT_geom
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))

Tekengescheiden tekst ondersteunt ook Z- en M-coördinaten in geometrieën:

LINESTRINGM(10.0 20.0 30.0, 11.0 21.0 31.0)

PostGIS-lagen

PostGIS-lagen zijn opgeslagen in een database van PostgreSQL. De voordelen van PostGIS zijn de ruimtelijke indexering, filters en de uitgebreidere bevragingsmogelijkheden waarin PostGIS voorziet. Wanneer men gebruik maakt van PostGIS, werken vectorfuncties zoals selecteren en het identificeren nauwkeuriger dan dat zij doen met OGR-lagen in QGIS.

Tip

PostGIS-lagen

Normaal gesproken wordt een PostGIS-laag gedefinieerd door een item in de tabel geometry_columns. QGIS kan lagen laden die geen item in de tabel geometry_columns hebben. Dit geldt voor zowel tabellen als voor weergaven. Definiëren van een ruimtelijke weergave biedt krachtige mogelijkheden om gegevens visueel weer te geven. Bekijk de handleiding van PostgreSQL voor informatie over het maken van weergaven.

Dit gedeelte bevat enkele details over de toegang van QGIS tot PostgreSQL-lagen. Meestal geeft QGIS een lijst van databasetabellen die geladen kunnen worden en laad deze wanneer u deze selecteert. Maar wanneer u problemen heeft om een tabel van PostgreSQL te laden in QGIS, kan de onderstaande informatie helpen om de meldingen van QGIS te begrijpen zodat u een aanwijzing hebt wat u moet veranderen aan de tabel van PostgreSQL of aan de definitie van de weergave zodat QGIS deze alsnog kan laden.

Primaire sleutel

QGIS vereist dat tabellen van PostgreSQL een uniek sleutelveld bevatten voor de te laden laag. In QGIS, moet deze tabel van het type int4 zijn, een integer (geheel getal) met een grootte van 4 bytes. Als een alternatief kan het veld CTID gebruikt worden als sleutelveld. Wanneer in een tabel een van deze velden ontbreekt zal in plaats daarvan het veld OID worden gebruikt. De uitvoering zal verbeteren door een index te definiëren op het sleutelveld. (onthoud dat sleutelvelden automatisch een index krijgen in PostgreSQL).

QGIS biedt het keuzevak Select at id dat standaard is geactiveerd. Met deze opties worden de ID’s opgehaald zonder attributen wat in de meeste gevallen sneller is.

Weergave

Wanneer de PostgreSQL-laag een weergave betreft, bestaan dezelfde vereisten, maar weergaven hebben geen sleutelvelden of velden met regels die ervoor zorgen dat deze uniek zijn. Er moet eerst een sleutelveld (van het type integer) in het dialoogvenster van QGIS gedefinieerd zijn voordat de weergave geladen kan worden. Wanneer er niet een daarvoor geschikte kolom bestaat in de weergave zal de laag niet geladen worden in QGIS. Wanneer dat gebeurd kunt u dat oplossen door de weergave te veranderen zodat deze een geschikte kolom bevat (een type integer en ofwel een primaire sleutel of met een unieke beperking, bij voorkeur geïndexeerd).

Net als voor een tabel is standaard een keuzevak Select at id geactiveerd (zie boven voor de betekenis van het keuzevak). Het kan zin hebben deze optie uit te schakelen als u hele uitgebreide weergaven gebruikt.

QGIS tabel layer_style en back-up database

If you want to make a backup of your PostGIS database using the pg_dump and pg_restore commands, and the default layer styles as saved by QGIS fail to restore afterwards, you need to set the XML option to DOCUMENT and the restore will work.

SET XML OPTION DOCUMENT;

Filteren aan de kant van de database

In QGIS kunt u objecten al aan de kant van de server filteren. Selecteer het keuzevak Extra ‣ Opties ‣ Databronnen ‣ checkbox Expressies aan zijde van de server uitvoeren indien mogelijk om dat te kunnen doen. Alleen ondersteunde expressies zullen naar de database worden gezonden. Expressies die niet ondersteunde operatoren of functies gebruiken zullen ongemerkt terugvallen naar lokale evaluatie.

Ondersteuning van gegevenstypen van PostgreSQL

Most of common data types are supported by the PostgreSQL provider: integer, float, varchar, geometry and timestamp.

Array data types are not supported.

Importeren van gegevens in PostgreSQL

Gegevens kunnen worden geïmporteerd in PostgreSQL/PostGIS met behulp van verscheidene programma’s, waaronder de plug-in DB Manager en de programma’s voor de opdrachtregel shp2pgsql en ogr2ogr.

DB Manager

QGIS comes with a core plugin named dbManager DB Manager. It can be used to load shapefiles and other data formats, and it includes support for schemas. See section Plug-in DB Manager for more information.

shp2pgsql

PostGIS includes an utility called shp2pgsql that can be used to import shapefiles into a PostGIS-enabled database. For example, to import a shapefile named lakes.shp into a PostgreSQL database named gis_data, use the following command:

shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data

Dit maakt een nieuwe tabel aan, genaamd lakes_new, in de database gis_data. De nieuwe tabel zal een ruimtelijke referentie ID (SRID) bevatten van 2964. Zie Werken met projecties voor meer informatie over Ruimtelijke Referentie Systemen en projecties.

Tip

Exporteren van gegevens uit PostGIS

Like the import tool shp2pgsql, there is also a tool to export PostGIS datasets as shapefiles: pgsql2shp. This is shipped within your PostGIS distribution.

ogr2ogr

Naast shp2pgsql en DB Manager is er nog een manier om geografische gegevens in PostGIS in te lezen: ogr2ogr. Dit is een onderdeel van GDAL.

To import a shapefile into PostGIS, do the following:

ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres
password=topsecret" alaska.shp

This will import the shapefile alaska.shp into the PostGIS database postgis using the user postgres with the password topsecret on host server myhost.de.

Onthoud dat OGR moet gebouwd zijn met PostgreSQL om ondersteuning te kunnen geven aan PostGIS. U kunt dit controleren m.b.v. volgende opdracht (in nix)

ogrinfo --formats | grep -i post

Wanneer u de opdracht van PostgreSQL COPY wilt gebruiken in plaats van de standaard opdracht INSERT INTO kunt u dat doen door de volgende omgevingsvariabele in te stellen (tenminste beschikbaar op nix en osx):

export PG_USE_COPY=YES

ogr2ogr maakt geen ruimtelijke indexen aan zoals shp2pgsl dat wel doet. U dient ze handmatig te maken met de normale opdracht voor SQL CREATE INDEX (zoals beschreven in het volgende gedeelte Verbeteren van de uitvoering).

Verbeteren van de uitvoering

Retrieving features from a PostgreSQL database can be time-consuming, especially over a network. You can improve the drawing performance of PostgreSQL layers by ensuring that a PostGIS spatial index exists on each layer in the database. PostGIS supports creation of a GiST (Generalized Search Tree) index to speed up spatial searches of the data (GiST index information is taken from the PostGIS documentation available at http://postgis.net).

Tip

You can use the DBManager to create an index to your layer. You should first select the layer and click on Table ‣ Edit table, go to Indexes tab and click on [Add spatial index].

De opdracht voor het aanmaken van een GiST index is:

CREATE INDEX [indexname] ON [tablename]
  USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );

Onthoud dat voor grote tabellen het aanmaken van een index veel tijd kan kosten. Wanneer de index is aangemaakt zou deze gevolgd dienen te worden door de opdracht VACUUM ANALYZE. Bekijk de PostGIS documentatie (POSTGIS-PROJECT Verwijzingen naar literatuur en web) voor meer informatie.

Hier volgt een voorbeeld hoe u een GiST index kunt maken:

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$

Vectorlagen die de 180° lengtegraad overschrijden

Many GIS packages don’t wrap vector maps with a geographic reference system (lat/lon) crossing the 180 degrees longitude line (http://postgis.refractions.net/documentation/manual-2.0/ST_Shift_Longitude.html). As result, if we open such a map in QGIS, we will see two far, distinct locations, that should appear near each other. In Figure_vector_crossing, the tiny point on the far left of the map canvas (Chatham Islands) should be within the grid, to the right of the New Zealand main islands.

../../../_images/vectorNotWrapping.png

Kaarten maken voor lat/lon die de 180° lengtegraad overschrijden

Een oplossing is om de lengtegraden te transformeren met behulp van PostGIS, en de functie ST_Shift_Longitude. Deze functie leest elk punt/vertex in elke component van elk object in de geometrie en als de lengtegraad < 0° is, telt deze er 360° bij op. Het resultaat zal een versie 0° - 360° zijn van de gegevens die afgedrukt worden op een 180° gecentreerde kaart.

../../../_images/vectorWrapping.png

Het overschrijden van de 180° lengtegraad met het toepassen van de functie ST_Shift_Longitude

Gebruik

  • Importeer gegevens in PostGIS (Importeren van gegevens in PostgreSQL), bijvoorbeeld door gebruik te maken van de plug-in DB Manager.

  • Geef de volgende opdracht op de opdrachtregel voor SQL van PostGIS (dit is een voorbeeld waar “TABEL” de echte naam is van uw tabel in PostGIS): gis_data=# update TABEL set the_geom=ST_Shift_Longitude(the_geom);

  • Als alles goed ging, zou u nu een bevestiging moeten ontvangen van het aantal objecten die bijgewerkt zijn. Daarna kan deze tabel geladen worden en ziet u het verschil (Figure_vector_crossing_map).

SpatiaLite-lagen

If you want to save a vector layer to SpatiaLite format, you can do this by right clicking the layer in the legend. Then, click on Save as..., define the name of the output file, and select ‘SpatiaLite’ as format and the CRS. Also, you can select ‘SQLite’ as format and then add SPATIALITE=YES in the OGR data source creation option field. This tells OGR to create a SpatiaLite database. See also http://www.gdal.org/ogr/drv_sqlite.html.

QGIS ondersteund ook het bewerken van gegevens via weergaven in SpatiaLite.

Als u een nieuwe SpatiaLite laag wilt maken, ga naar het gedeelte Het maken van een nieuwe SpatiaLite-aag.

Tip

Plug-ins SpatiaLite gegevensbeheer

Voor het beheren van gegevens van SpatiaLite kunt u een aantal plug-ins voor Python gebruiken: QSpatiaLite, SpatiaLite Manager of DB Manager (bronplug-in, aanbevolen). Indien nodig kunnen zij gedownload en geïnstalleerd worden met Plug-ins beheren en installeren.

DB2 Spatial-lagen

De producten IBM DB2 voor Linux, Unix en Windows (DB2 LUW), IBM DB2 voor z/OS (mainframe) en IBM DashDB stellen gebruikers in staat ruimtelijke gegevens op te slaan en te analyseren in relationele tabelkolommen. De provider DB2 voor QGIS ondersteunt het volledige bereik aan visualisatie, analyses en bewerken van ruimtelijke gegevens in deze databases.

Gebruikersdocumentatie voor deze mogelijkheden kunnen worden gevonden in de DB2 z/OS KnowledgeCenter, DB2 LUW KnowledgeCenter en DB2 DashDB KnowledgeCenter.

Bekijk de DB2 Spatial Tutorial op IBM DeveloperWorks voor meer informatie over het werken met ruimtelijke mogelijkheden voor DB2.

De provider DB2 ondersteunt momenteel alleen de omgeving van Windows door middel van het stuurprogramma Windows ODBC.

De cliënt waarop QGIS wordt uitgevoerd dient een van de volgende te hebben geïnstalleerd:

  • DB2 LUW
  • IBM Data Server Driver Package
  • IBM Data Server Client

Wanneer u een database van DB2 LUW benadert op dezelfde machine of DB2 LUW gebruikt als een cliënt, dienen de uitvoerbare bestanden en ondersteunende bestanden voor DB2 te zij opgenomen in het pad voor Windows. Dat kan worden gedaan door een batchbestand te maken zoals het volgende met de naam db2.bat en dat op te nemen in de map %OSGEO4W_ROOT%/etc/ini.

@echo off
REM Point the following to where DB2 is installed
SET db2path=C:\Program Files (x86)\sqllib
REM This should usually be ok - modify if necessary
SET gskpath=C:\Program Files (x86)\ibm\gsk8
SET Path=%db2path%\BIN;%db2path%\FUNCTION;%gskpath%\lib64;%gskpath%\lib;%path%