Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

A pure Python quad tree spatial index for GIS or rendering usage.

Project Description

Pyqtree is a pure Python spatial index for GIS or rendering usage. It stores and quickly retrieves items from a 2x2 rectangular grid area, and grows in depth and detail as more items are added. The actual quad tree implementation is adapted from Matt Rasmussen’s compbio library and extended for geospatial use.


Python 2 and 3.


Pyqtree is written in pure Python and has no dependencies.

Installing It

Installing Pyqtree can be done by opening your terminal or commandline and typing:

pip install pyqtree

Alternatively, you can simply download the “” file and place it anywhere Python can import it, such as the Python site-packages folder.

Example Usage

Start your script by importing the module.

import pyqtree

Setup the spatial index, giving it a bounding box area to keep track of. The bounding box being in a four-tuple: (xmin,ymin,xmax,ymax).

spindex = pyqtree.Index(bbox=[0,0,100,100])

Populate the index with items that you want to be retrieved at a later point, along with each item’s geographic bbox.

# this example assumes you have a list of items with bbox attribute
for item in items:
    spindex.insert(item=item, bbox=item.bbox)

Then when you have a region of interest and you wish to retrieve items from that region, just use the index’s intersect method. This quickly gives you a list of the stored items whose bboxes intersects your region of interests.

overlapbbox = (51,51,86,86)
matches = spindex.intersect(overlapbbox)

There are other things that can be done as well, but that’s it for the main usage!

More Information:


This code is free to share, use, reuse, and modify according to the MIT license, see LICENSE.txt.


Karim Bahgat (2015)

Release History

Release History

This version
History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date (8.8 kB) Copy SHA256 Checksum SHA256 Source Jun 18, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting