Book Image

QGIS Python Programming Cookbook, Second Edition - Second Edition

By : Joel Lawhead
Book Image

QGIS Python Programming Cookbook, Second Edition - Second Edition

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 (16 chapters)
QGIS Python Programming Cookbook - Second Edition
About the Author
About the Reviewer
Customer Feedback

Accessing the script path from within your script

Sometimes, you need to know exactly where the current working directory is so that you can access external resources.

Getting ready

This code uses the Python built-in library, and can be used in any context. We will run this recipe in the QGIS Python console.

How to do it...

In this recipe, we will get the current working directory of the Python console, which can change with the configuration:

  1. Start QGIS.

  2. From the Plugins menu, select Python Console.

  3. In the Python console, run the following code:

            import os 

How it works...

QGIS relies heavily on file system paths to run the application and manage external data. When writing cross-platform QGIS code, you cannot assume the working directory of your script.

There's more...

You can also use Python's __file__ variable, which tells you the path of the script currently being executed. For example, path = os.path.dirname(__file__)

On his blog, one of the QGIS developers, Gary Sherman, has an excellent post about the various aspects of path variables in QGIS beyond just the execution directory. You can check it out at