1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
.. _history:
History of Rtree
------------------------------------------------------------------------------
`Rtree`_ was started by `Sean Gillies`_ as a port of the `libspatialindex`_
linkages that `QGIS`_ maintained to provide on-the-fly indexing support for
GUI operations. A notable feature of `R-trees`_ is the ability to insert data
into the structure without the need for a global partitioning bounds, and this
drove Sean's adoption of this code. `Howard Butler`_ later picked up `Rtree`_
and added a number of features that `libspatialindex`_ provided including disk
serialization and bulk loading by writing a C API for `libspatialindex`_ and
re-writing `Rtree`_ as a `ctypes`_ wrapper to utilize this C API. `Brent
Pedersen`_ came along and added features to support alternative coordinate
ordering, augmentation of the pickle storage, and lots of documentation.
Mattias (http://dr-code.org) added support for custom storage backends to
support using `Rtree`_ as an indexing type in `ZODB`_.
`Rtree`_ has gone through a number of iterations, and at
0.5.0, it was completely refactored to use a new internal architecture (ctypes
+ a C API over `libspatialindex`_). This refactoring has resulted in a number
of new features and much more flexibility. See :ref:`changes` for more detail.
.. note::
A significant bug in the 1.6.1+ `libspatialindex`_ C API was found where
it was using unsigned integers for index entry IDs instead of signed
integers. Because `Rtree`_ appeared to be the only significant user of the
C API at this time, it was corrected immediately. You should update
immediately and re-insert data into new indexes if this is an important
consideration for your application.
Rtree 0.5.0 included a C library that is now the C API for libspatialindex and
is part of that source tree. The code bases are independent from each other
and can now evolve separately. Rtree is pure Python as of 0.6.0+.
.. _`Sean Gillies`: https://sgillies.net
.. _`Howard Butler`: https://hobu.co
.. _`Brent Pedersen`: https://github.com/brentp
.. _`QGIS`: https://qgis.org
.. _`ZODB`: https://zodb.org
.. _`R-trees`: https://en.wikipedia.org/wiki/R-tree
.. _`ctypes`: https://docs.python.org/3/library/ctypes.html
.. _`libspatialindex`: https://libspatialindex.org
.. _`Rtree`: https://rtree.readthedocs.io
|