[GIS] Select by location in Python

pyqgispythonqgis

I have a polygon layer and a point layer (with coordinates for each point).
The polygon layer got created using the MMQGIS plugin (Hexagonal Polygons).
I want to select all the points inside each polygon.

I worked with ArcGIS before but I want to change to open source.
Furthermore, I want to approach that through a Python script since I want to analyse the extracted data. I have QGIS 2.8 installed. I am a bit overwhelmed by all the GIS libraries there are for Python.

Can I approach that sort of selection with a GIS library that is already installed with QGIS? If so, could anyone pin point me into the right direction?

Best Answer

Assuming you want to run your script within QGIS (from a script file or Python console), you can use the following:

import processing

processing.runalg("qgis:selectbylocation", INPUT, INTERSECT, METHOD, OUTPUT)

Here is the help description provided by the Python console which defines each parameter:

processing.alghelp("qgis:selectbylocation")
ALGORITHM: Select by location
    INPUT <ParameterVector>
    INTERSECT <ParameterVector>
    METHOD <ParameterSelection>
    OUTPUT <OutputVector>

METHOD(Modify current selection by)
    0 - creating new selection
    1 - adding to current selection
    2 - removing from current selection

To create a script entirely from scratch which doesn't call on QGIS functions, the following links might help in developing similar functionality:


EDIT:

There are a couple of posts which might be of some use with writing scripts outside QGIS for Mac:

Related Question