Skip to main content

worldgeo

World geohash index

A simple, easy to use python package to get a country by a given geohash or raw coordinates.

Getting started

Installation

pip install worldgeo

Usage

Import the Index class and load an index file (we'll discuss how to get one later on)

from worldgeo import Index
i = Index.load("world5.idx")

Now you can resolve a geohash

In [3]: i.find_by_hash("9smk")
Out[3]: 'MEX'

or coordinates

In [4]: i.find_by_coord(49.2827, -123.1207) # Vancouver
Out[4]: 'CAN'

Using a pre-built index

There are pre-built indexes based on https://github.com/johan/world.geo.json/blob/master/countries.geo.json . Given that, you don't really need to build indexes yourself, as there are ready to use files built by GitHub CI.

Pre-built indexes have various precision, check out the contents of prebuilt folder of this repo. Precision 6 means accuracy up to 1.2x1.2 km, which must be enough given the source might be even less accurate. Since more accurate index take much more disk and memory space, you might want to use precision 4 or 5 (39km or 5km correspondingly) as these take only a few Mb. Higher precision (7 and above) gives an index that is too large to fit in a default github repo, thus ShardedIndex was introduced. ShardedIndex splits the data into multiple files and can load them in parallel using multiprocessing.

Pre-built indexes can be loaded with a short-cut method load_prebuilt that takes an index name and a precision value. Available index names are world and vatsim. The world one resolves to a country alpha3 code and vatsim resolves to a region ICAO.

from worldgeo import Index

i = Index.load_prebuilt("vatsim", 5)
print(i.find_by_hash("ez656"))

The code above would resolve into LPPC-E which represents Lisboa FIR.

Building a new index

In case you still want to build a more (or less) precise index, you can do so by running

build-geoidx -o <output filename> -p <precision> [-t <num threads>] [-m] [-s]

and load the resulting file later on with Index.load(filename)

Metadata

Release files for worldgeo 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for worldgeo 1.3.2
File Size Uploaded
worldgeo-1.3.2.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for worldgeo 1.3.2
File Interpreter ABI Platform
worldgeo-1.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 16.7 kB

Release files / worldgeo-1.3.2.tar.gz

Download URL worldgeo-1.3.2.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
13fb99bc714ac7a10442e61d63a421170cb2156fbe86005aa5fc6e05b07b1fa5
BLAKE2b-256 checksum
How to use checksums
32a1f54eaeb302def677eb6f36d6461f6ecf499ac36a0f86a653b181badc9b60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.8

Release files / worldgeo-1.3.2-py3-none-any.whl

Download URL worldgeo-1.3.2-py3-none-any.whl
Size 8.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ccf96273e443050a70084c8965bea893ae0c12358d7c07b341f314dc6c4c814
BLAKE2b-256 checksum
How to use checksums
d626675ea0bfe67e864486f70cac9660b7cef62dc8ae00976a5e797a977ad669
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.8

Release history Release notifications | RSS feed

This release

1.3.2 This release

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page