tupu - Fast geodesic distances in Python
This is a personal project centered around geodesic distances. Its goal is to be able to quickly compute, for every coordinate in a list:
- Distances to a given point (e.g. distances from each point to NYC)
- Nearest neighbors: distances to the closest point in another list (e.g. distances from each point to a city), and the identity of such point
- Number of neighbors: number of points of another list within a certain distance or buffer.
Dev Install
After cloning the repo and opening the panflute folder:
python setup.py install
: installs the package locally
python setup.py develop
: installs locally with a symlink so changes are automatically updated
Usage
From Python:
import tupu
# TODO...
From the command line:
tupu some_cities.csv?id=uid --output=augmented.tsv --distance=dist_ny,40.7143,-74.0060
(See also [examples/README.md])
Dependencies:
rtree(wrapper aroundlibspatialindex). Windows binaries herepyproj(wrapper aroundproj4)
Why "tupu"?
Tupu was one of the Inca measures of distance, equivalent to about 130 cm. I would have preferred to use "topo", but it's already a quite popular name on Github, and has other meanings.
Gordon McEwan, "The Incas: New Perspectives", p.179
Jerry D. Moore, "Incidence of Travel: Recent Journeys in Ancient South America", p.208
Why not geopandas, etc.?
Earlier tests deemed them too slow/complicated, but there might be workarounds. EG:
Limitations
- Not parallelized, although that should be trivial
- Not Cython, although most of the heavy load is already in C.
- Only deals with points, not with lines/polygons
- Currently only stores distance to closest city (although allowing more is trivial)
- Currently does not compute number of points within a given distance (although allowing more is trivial)
Release files for tupu 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tupu-0.1.0.tar.gz | 8.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tupu-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
| tupu-0.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size:27.4 kB
Release files / tupu-0.1.0.tar.gz
| Download URL | tupu-0.1.0.tar.gz |
|---|---|
| Size | 8.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eaf634cd3697e2b053311b522589fa1982b4795f7e7570c0c2d3834732308134
|
|
BLAKE2b-256 checksum How to use checksums |
76f836c0cc7994f93a75c53ada950176b69563049eb46225db88cc5a0552048f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0
|
Release files / tupu-0.1.0-py3-none-any.whl
| Download URL | tupu-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
074e469604d7ce4684493c5557a87d52d69b881420a52c11ceb57b96f1d12cca
|
|
BLAKE2b-256 checksum How to use checksums |
0dff5025601c8ea0301d43c0347417c9863a23446381840c59f561f216e8aa8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0
|
Release files / tupu-0.1.0-py2.py3-none-any.whl
| Download URL | tupu-0.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 9.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
54334e46fd57b791c1ced6d19d705c3e9b4e1295afbc48dd2de23a1550939bed
|
|
BLAKE2b-256 checksum How to use checksums |
915494632329ae6bb3f064cf43aacea0a372f17be256f61a7bab883529821691
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.0
|