Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »


2. Working with Vector Data in QGIS

Vector data provides a way to represent real world features within the GIS environment. A feature is anything you can see on the landscape.

QGIS can open over 60 file-based data formats (using the OGR library), including ESRI shapefile and MapInfo TAB. It can also connect to spatial database sources including PostgreSQL, SpatiaLite, Oracle, and MSSQL), to Web Feature Service (WFS) and Point Cloud data, and to Arc REST services. QGIS’s default file format is GeoPackage, a file-based database. Most QGIS functionality is available for all vector data sources, though some formats are read-only mode and need to be saved to another format for editing.

In this exercise you will learn how to work with data from different sources.

2.1. Vector Data Sources

GeoPackage

GeoPackage is an OGC standard data format. It has a .gpkg file extension, and it can hold one or many layers, including non-spatial and raster data, and can also store QGIS projects.

  1. All vector data is in ...\QGIS Training\Data\vector - right-click on the Favorites icon in the Browser panel to add this location for quick access

  2. Open the project from the previous exercise

  3. Using the Data Source Manager button, add file-based vector data by clicking the Vector tab on the left and browsing to the file

  4. Add the aonb_england.gpkg GeoPackage layer

  5. Shapefile: add wind_turbines_point.shp by double clicking or right-click to bring up the list of options

  6. MapInfo: add aonb_wales.mif in the same way

ESRI Shapefile

Shapefile is a widely-used legacy format, developed by ESRI, used on many download sites. Shapefiles comprise four or more individual files on disk - all must be available for the file to open.

  1. Use the Browser to navigate to wind_turbines_point.shp in the vector folder (it’s in D:/PhotonUser/My Files/Home Folder/QGIS Training/Data)

  2. Double-click on the file to load it into the map, then right-click > Zoom to Layer(s) to show the layer on the map

  3. Right-click on the layer in the Browser to see the other options available

MapInfo

QGIS can open both MIF and TAB files - these will appear in the browser with other file-based data. Note that MapInfo files can contain multiple geometry types, so QGIS may present a dialog with a choice of geometry types - i.e. line, polygon, point - to load.

  1. Load the aonb_wales.mif layer

Excel

QGIS will open an Excel file as vector data, and will recognise data types (for example string, integer, date). If the data includes coordinates, creating a geometry column which QGIS can use to represent the data spatially requires an extra step.

  1. Add RTC Location 2017_0.xlsx , using the Vector tab in the Data Source Manager

  2. To turn the coordinates into points, use the Search box (in the lower left corner) to find the Create points layer from table process

  3. Complete the dialogue as follows and run the process - this will create a new spatial layer on the map

2.2. Database Layers

Loading database vector layers follows a slightly different process to loading a file-based layer, as you first need to establish a database connection. The process is similar for all databases, but in this example we will use data in a PostGreSQL database.

Database layers

You can load either spatial or non-spatial data from a database - the non-spatial data will be shown in QGIS as a table, which you can join to spatial data as shown below.

To load data from a PostGreSQL database:

  1. Click Open Data Source Manager

  2. Click the PostgreSQL tab

  3. If you haven't connected to the database before, click New to create a new database connection

  4. Complete the dialog:

    1. Name: your name for the connection

    2. Host: the name or IP address of the server the database is running on

    3. Port: the port the database is running on - by default in PostGreSQL this is 5432, but it could be different

    4. Database: the name of the database you want to connect to

  5. Under Authentication, click the Add button to add your credentials

    1. The first time you do this, you will be prompted for a Master password - make sure this is something you can safely store or remember, as it cannot be retrieved later

    2. Once you have done this, you will be able to set the credentials for this connection:

    3. Click Save to save these credentials, then click Test Connection to make sure the connection is OK

    4. If all is well, click OK, then click Connect to establish the connection with the database

    5. Expand the database schemas, and select a table and click Add to add it to the map

    6. Check Also list tables with no geometry to view non-spatial data tables

Once the data is loaded in the Layers panel, it will behave in the same way as file-based vector layers. You only need to set up the connection once - after that, you can connect to the database from the PostGreSQL table in the Data Source Manager, or from the Browser tab.

2.3. Web Feature Service (WFS) Layers

Data available in OGC Web Feature Service (WFS) format can be loaded in QGIS and used in a similar way to any other vector layer. However as the data is online, an Internet connection is required, although once the connection has been made it can be saved locally. WFS data is supplied as GML, and features can be selected, styled and queried in the same way as any other vector data. 

Create a new saved WFS Connection 

The first time you use a WFS source, you will need to create a connection:

  1. Click Open Data Source Manager, then the WFS tab

  2. Click New, then in the Create a New WFS Connection dialog, add the connection details.

    1. Name: your name for the connection

    2. URL: the URL of the WFS, for example http://essex.astuntechnology.com/getows.ashx?mapsource=Essex/Inspire_Colchester&TypeName=allotment&version=1.1.0&request=GetFeature&service=WFS

    3. Authentication: complete as required

  3. Click OK.

Connect to the WFS 

  1. Select the saved WFS

  2. Click Connect to show the layers available in the WFS

  3. Select the layer(s) required - you can select multiple layers

  4. Click Add to load the layer(s) into the map

  5. Note that with large datasets, it can take some time for the layers to load

WFS Queries

  • By default, only features within the current view extent will be downloaded - uncheck Only request features overlapping the view extent to load all features from the source

  • To load only a subset of features (other than by extent), click Build query to bring up the SQL Query Composer, and add a query to select the features you need

Once WFS layers are loaded, they can be managed in the same way as other vector layers.

Transactional Web Feature Service (WFS-T) layers, which are editable, are also supported in QGIS.

2.4. Navigating Vector Layers

There are different approaches to navigating around the layers you have loaded, for example using toolbars, mouse actions and menus - some of the key ones are listed here.

The buttons in the Map Navigation Toolbar will also get you around the map, and change the action of your mouse and cursor - these will help you identify the data and views you need.

View Layer Extents

When a layer has been added to the Layers panel, the features will be visible in the map frame on the right. To see the whole layer in the frame:

  1. Click on the layer to select it

  2. Right-click > Zoom to Layer (or click the icon on the toolbar)

Attribute Table

You can browse the attribute data for each layer by right-clicking on the layer and selecting Open Attribute Table, (or click the  icon in the toolbar). 

Manage the Layer List

Normally, layers at the top of the list in the Layers panel appear on the map in front of layers further down the list. You can change the order of layers in the list by dragging and dropping layers to a new position.

Group Layers 

Layers can be grouped to create a hierarchical layer list, or table of contents.

  1. Click the Add Group button at the top of the Layers panel 

  2. Right-click and Rename the new group

  3. Drag and drop layers into the group 

Remove Layers

To remove a layer from the list, select the layer, then Right-click > Remove. This does not delete the data, just removes it from the map. However you will lose any styling or queries you have applied to the layer.

2.5. Joining Layers

If you want to use data in your map which has no spatial references, you will need to join this to a corresponding spatial dataset. For example, you might have population data for census areas, and a polygon layer of the census areas themselves, and you want to join the two in order to show the population figures for each areas as a label.

  1. Add the non-spatial data table, and the spatial layer you are joining it to, as described earlier

  2. The new table will appear in the Layers panel, but not on the map

  3. Double-click the spatial layer to bring up the Properties dialog, and select the Joins tab

  4. Click the Add button bottom left to add a join

  5. In the Add Vector Join dialog, use the dropdowns to specify:

    1. Join layer: the layer you want to join to the current one

    2. Join field: the field in the target layer (the one you are joining to) that is going to be used for the join (this might be ID, for example, or name, or in the case below, neighbourhood)

    3. Target field: the field in the current layer (the spatial one) which is going to be used for the join - this must contain the same data as the join field

  6. Click OK and OK again, then check the attribute table of the spatial layer - it will have an expanded number of columns to include the data from the non-spatial table

Join definition

The join definition is saved in memory, and is saved in the QGIS project - it does not affect the source data. It will therefore reflect the current data each time the project is loaded. You can edit the join after it has been created - for example to exclude fields from the joined data - in the same dialog you used to create it.

2.6. Exporting Vector Data

To export a layer or part of a layer:

  1. Right-click > Export > Save Features as from the layer

  2. In the dialog, you can simply save the file as a different name - however you can also use other options:

    1. Format: save the data in a different vector format

    2. File name: browse to the location where you want the file to be saved, and give it a name

    3. Layer name: for a GeoPackage, by default this will be the same as the file name, but you can change it (GeoPackages can contain many layers)

    4. Save only selected features: save a subset of the features

    5. CRS: reproject the data on save to a different CRS

    6. Select fields to export: save a subset of fields from the attribute table

    7. Extent: save only features visible in the current extent

Exporting a joined layer

If you export a layer with a join, the exported data will include the fields in the join - this is a way of creating a permanent new dataset from a joined layer.



  • No labels