Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • QGIS Python Programming Cookbook, Second Edition
  • Toc
  • feedback
QGIS Python Programming Cookbook, Second Edition

QGIS Python Programming Cookbook, Second Edition

By : Joel Lawhead
1.5 (2)
close
QGIS Python Programming Cookbook, Second Edition

QGIS Python Programming Cookbook, Second Edition

1.5 (2)
By: Joel Lawhead

Overview of this book

QGIS is a desktop geographic information system that facilitates data viewing, editing, and analysis. Paired with the most efficient scripting language—Python, we can write effective scripts that extend the core functionality of QGIS. Based on version QGIS 2.18, this book will teach you how to write Python code that works with spatial data to automate geoprocessing tasks in QGIS. It will cover topics such as querying and editing vector data and using raster data. You will also learn to create, edit, and optimize a vector layer for faster queries, reproject a vector layer, reduce the number of vertices in a vector layer without losing critical data, and convert a raster to a vector. Following this, you will work through recipes that will help you compose static maps, create heavily customized maps, and add specialized labels and annotations. As well as this, we’ll also share a few tips and tricks based on different aspects of QGIS.
Table of Contents (10 chapters)
close

Using the QGIS Python console for interactive control

The Python console allows you to interactively control QGIS; you can test out ideas or just do some quick automation. The console is the simplest way to use the API.

How to do it...

In the following steps, we'll open the console, create a vector layer in the memory, and display it on the map:

  1. Start QGIS.
  2. From the Plugins menu, select Python Console.
  3. The following code will create a point on the map canvas:
            layer =  QgsVectorLayer('Point?crs=epsg:4326','MyPoint',"memory") 
            pr = layer.dataProvider() 
            pt = QgsFeature() 
            point1 = QgsPoint(20,20) 
            pt.setGeometry(QgsGeometry.fromPoint(point1)) 
            pr.addFeatures([pt]) 
            layer.updateExtents() 
            QgsMapLayerRegistry.instance().addMapLayers([layer]) 
    

How it works...

This example uses a memory layer to avoid interacting with any data on either a disk or a network so as to keep things simple. Notice that when we declare the layer type, we add the parameter for the coordinate reference system (CRS) as EPSG:4326. Without this declaration, QGIS will prompt you to choose one. There are three parts, or levels, of abstraction even to create a single point on the map canvas, as shown here:

  1. First, create a layer that is of the type geometry. Next, reference a data provider to accept the data source.
  2. Then, create a generic feature object, followed by the point geometry.
  3. Next, we add the feature to the layer via the underlying data provider, then add the layer to the map canvas.

The layer type is memory, meaning that you can define the geometry and attributes in the code itself rather than an external data source. In this recipe, we just define the geometry and skip defining any attributes.

bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete