Book Image

QGIS Python Programming Cookbook

Book Image

QGIS Python Programming Cookbook

Overview of this book

Table of Contents (16 chapters)
QGIS Python Programming Cookbook
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Calculating length for all selected lines


If you need to calculate the total of a given dataset property, such as length, the easiest thing to do is use Python. In this recipe, we'll total the length of the railways in a dataset.

Getting ready

You will need to download a zipped shapefile from https://geospatialpython.googlecode.com/svn/ms_rails_mstm.zip.

Unzip it and place it in directory named ms in your qgis_data directory.

How to do it...

We will load the layer, loop through the features while keeping a running total of line lengths, and finally convert the result to kilometers. To do this, we need to perform the following steps:

  1. First, we'll set up the path to our shapefile:

    pth = "/Users/joellawhead/qgis_data/ms/ms_rails_mstm.shp"
    
  2. Then, we'll load the layer:

    lyr = QgsVectorLayer(pth, "Railroads", "ogr")
    
  3. Next, we need a variable to total the line lengths:

    total = 0
    
  4. Now, we loop through the layer, getting the length of each line:

    for f in lyr.getFeatures():
      geom = f.geometry()
      total += geom...