Filtering a layer by attributes
In addition to the spatial queries outlined in the previous recipe, we can also subset a layer by its attributes. This type of query resembles a more traditional relational database query and, in fact, uses SQL statements. In this recipe, we will filter a point shapefile-based layer by an attribute.
Getting ready
We'll use the same New York City Museums layer used in the previous recipes in this chapter. You can download the layer from https://github.com/GeospatialPython/Learn/raw/master/NYC_MUSEUMS_GEO.zip.
Unzip that file and place the shapefile's contents in a directory named nyc
within your qgis_data
directory, within your root or home directory.
How to do it...
In this recipe, we'll filter the layer by an attribute, select the filtered features, and zoom to them, as follows:
First, we load the point layer:
lyrPts = QgsVectorLayer("/qgis_data/nyc/NYC_MUSEUMS_GEO.shp", "Museums", "ogr")
Next, we add the layer...