Skip to main content

No project description provided

Project description

Whereabouts

Fast, scalable geocoding for Python using DuckDB. The geocoding algorithms are based on the following papers:

Description

Geocode addresses and reverse geocode coordinates directly from Python in your own environment.

  • No additional database setup required. Uses DuckDB to run all queries
  • No need to send data to an external geocoding API
  • Fast (Geocode 1000s / sec and reverse geocode 200,000s / sec)
  • Robust to typographical errors

Requirements

  • Python 3.8+
  • Poetry (for package management)

Installation

Once Poetry is installed and you are in the project directory:

poetry shell
poetry install

The current process for using Australian data from the GNAF is as follows:

  1. Download the latest version of GNAF core from https://geoscape.com.au/data/g-naf-core/
  2. Update the setup.yml file to point to the location of the GNAF core file
  3. Finally, setup the geocoder. This creates the required reference tables
python setup_geocoder.py

To use address data from another country, the file should have the following columns:

Column name Description
ADDRESS_DETAIL_PID Unique identifier for address
ADDRESS_LABEL The full address
ADDRESS_SITE_NAME Name of the site. This is usually null
LOCALITY_NAME Name of the suburb or locality
POSTCODE Postcode of address
STATE State
LATITUDE Latitude of geocoded address
LONGITUDE Longitude of geocoded address

Note that by default the file should be pipe-separated, i.e., use '|' as the delimitor.

Examples

Geocode a list of addresses

from whereabouts.Matcher import Matcher

matcher = Matcher(db_name='gnaf_au')
matcher.geocode(addresslist, how='standard')

For more accurate geocoding you can use trigram phrases rather than token phrases (note that the trigram option has to have been specified in the setup.yml file as part of the setup)

matcher.geocode(addresslist, how='trigram')

Once a Matcher object is created, the KD-tree for fast geocoding will also be created. A list of latitude, longitude values can then be reverse geocoded as follows

matcher.reverse_geocode(coordinates)

Project details


Download files

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

Source Distribution

whereabouts-0.3.1.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

whereabouts-0.3.1-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file whereabouts-0.3.1.tar.gz.

File metadata

  • Download URL: whereabouts-0.3.1.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/5.14.0-1054-oem

File hashes

Hashes for whereabouts-0.3.1.tar.gz
Algorithm Hash digest
SHA256 f08e45cdec400395eaeaa520f5f49730cfb94e53b7f175874c1c149c1ef2d568
MD5 e7bf88495457281ab3be26b4466ab6de
BLAKE2b-256 f155ec7304be3f7edaf37a53043763b4b1570126879e323311123aa4f283d0c0

See more details on using hashes here.

File details

Details for the file whereabouts-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: whereabouts-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 30.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/5.14.0-1054-oem

File hashes

Hashes for whereabouts-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 453e4264ab16a3f736db149a6b009d10d07ea7e3b95a6fe9f04af93daf541dce
MD5 80ed02060630cd50179f02c5ed4b4ccb
BLAKE2b-256 07d2a74d9594605dd235a813efd282293bf4e0b8f174dad8e6520c4801017ade

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page