Skip to main content

Fast Geo Rust functions for Python

Project description

georgio

Fast geo Rust helper functions for Python.

Great Circle

To get the great circle distance between two points in meters, this function will use the IUGG mean Earth radius.

distance_in_meters = georgio.great_circle_distance(lon1, lat1, lon2, lat2)

If you want to provide your own radius in meters, you can use this function instead.

distance_in_meters = georgio.great_circle_distance_with_radius(lon1, lat1, lon2, lat2, radius_in_meters)

Line Of Bearing (LOB)

Returns the destination coordinates based on a starting position, bearing, and distance in meters. Bearing is in degrees, clockwise from north. It uses the IUGG mean Earth radius.

dest_lon, dest_lat = georgio.line_of_bearing(start_lon, start_lat, bearing_in_degrees, distance_in_meters)

If you want to provide your own radius in meters, you can use this function instead.

dest_lon, dest_lat = georgio.line_of_bearing_with_radius(start_lon, start_lat, bearing_in_degrees, distance_in_meters, radius_in_meters)

Bounding Box

This function will return a bounding box that encompasses the specified distance around a center point. Note that the bounding box will never extend across the antimeridian (longitude +/-180), below latitude -90, or above latitude 90.

west, south, east, north = georgio.bounding_box_for_point(lon, lat, distance_in_meters)

Web Mercator

To get the longitude/latitude bounds of a Web Mercator tile, use the following function, which will return the values in west, south, east, north order.

west, south, east, north = georgio.wm_bounds(x, y, z)

To get the upper left corner of a tile in longitude, latitude order, use the following function.

longitude, latitude = georgio.wm_upper_left(x, y, z)

To get a bounding box that surrounds a tile at a certain distance, use the following function. This can be useful when searching for centerpoints of objects that might be outside of the tile, where the object might extend into the tile. Note that the bounding box size is calculated in the WGS-84 projection based on the tile's longitude/latitude bounds, since Web Mercator is notoriously bad for calculating sizes/distances. Also note that the bounding box will never extend across the antimeridian (longitude +/-180), below latitude -90, or above latitude 90.

west, south, east, north = georgio.wm_tile_expanded_bbox(x, y, z, search_distance_in_meters)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

georgio-2024.247.861-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (237.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

georgio-2024.247.861-cp311-none-win_amd64.whl (112.2 kB view details)

Uploaded CPython 3.11Windows x86-64

georgio-2024.247.861-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (237.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

georgio-2024.247.861-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (415.5 kB view details)

Uploaded CPython 3.11macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

georgio-2024.247.861-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (237.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

File details

Details for the file georgio-2024.247.861-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for georgio-2024.247.861-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5d1bd5d7d32628365055ed91fa19ff3e8d63067c74c60eea34236b72b2de19e3
MD5 aaec4c0485e476286bef0e0179392280
BLAKE2b-256 087f97913a7d8749cc074701249765e41795590fe1f49e6ebfe58764f6a12df5

See more details on using hashes here.

File details

Details for the file georgio-2024.247.861-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for georgio-2024.247.861-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 38e0e7567739c946f8e402d47761a86048e49c623698fd606ea02e001572d98f
MD5 d5281106afa66452acec361a124455de
BLAKE2b-256 04a1e88362978ccada3a22c151778b8518829ac72a2d2bf88ee42fc28705af41

See more details on using hashes here.

File details

Details for the file georgio-2024.247.861-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for georgio-2024.247.861-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2d974a8a7fa5c988bcaed7a071468d58e824bd966a9267ce543cd5d884c71a36
MD5 c9b5b97511261c18460e09ec86e31a57
BLAKE2b-256 a1c8c3ca6dac3f5d0a62b19c52daece9b27cf1e6baa73974caec67db8f7b8590

See more details on using hashes here.

File details

Details for the file georgio-2024.247.861-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for georgio-2024.247.861-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 94ef4536fad3ee75132cbc17e3ec88db53db948e08650c7ad834ce914581de44
MD5 33af1502fa569dee3cff02a96b43cf3a
BLAKE2b-256 deb472e99a5c0724c424975ed8c97c775b3aaa3b66cbb868657d22ae06091dc3

See more details on using hashes here.

File details

Details for the file georgio-2024.247.861-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for georgio-2024.247.861-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac00710e605113edc030fec4e6d3b6ad3c3f032a212ef18a639c1cdb67162e29
MD5 0e4440a04b937f580cb6fe612b716819
BLAKE2b-256 fb4612fb6697af3b35e6a8021a95f8fa806cb709419b5cc2a18c8d7fbd4e2f88

See more details on using hashes here.

Supported by

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