Skip to main content

Set of algorithms and structures related to geodesy and geospatial data

Project description

Set of algorithms and structures related to geodesy.

API

geo.sphere

Functions onto sphere

geo.sphere.approximate_distance

def approximate_distance(point1, point2):

Approximate calculation distance (expanding the trigonometric functions around the midpoint)

geo.sphere.haversine_distance

def _haversine_distance(point1, point2):

Calculating haversine distance between two points (see https://en.wikipedia.org/wiki/Haversine_formula, https://www.math.ksu.edu/~dbski/writings/haversine.pdf)

Is numerically better-conditioned for small distances

geo.sphere.distance

def distance(point1, point2):

Calculating great-circle distance (see https://en.wikipedia.org/wiki/Great-circle_distance)

geo.sphere.bearing

def bearing(point1, point2):

Calculating initial bearing between two points (see http://www.movable-type.co.uk/scripts/latlong.html)

geo.sphere.final_bearing

def final_bearing(point1, point2):

Calculating finatl bearing (initial bering + 180) between two points

geo.sphere.destination

def destination(point, distance, bearing):

Given a start point, initial bearing, and distance, this will calculate the destina­tion point and final bearing travelling along a (shortest distance) great circle arc. (see http://www.movable-type.co.uk/scripts/latlong.htm)

geo.sphere.approximate_destination

def approximate_destination(point, distance, theta):

geo.sphere.from4326_to3857

def from4326_to3857(point):

Reproject point from EPSG:4326 (https://epsg.io/4326) to EPSG:3857 (https://epsg.io/3857) (see http://wiki.openstreetmap.org/wiki/Mercator)

Spherical Mercator:

E = R*(λ - λo) N = R*ln(tan(π/4+φ/2))

geo.sphere.from3857_to4326

def from4326_to3857(point):

Reproject point from EPSG:3857 (https://epsg.io/3857) to EPSG:4326 (https://epsg.io/4326) (see http://wiki.openstreetmap.org/wiki/Mercator)

Reverse Spherical Mercator:

λ = E/R + λo φ = π/2 - 2*arctan(exp(-N/R))

geo.ellipsoid

Functions onto ellipsoid

geo.ellipsoid.distance

def distance(point1, point2, ellipsoid=WGS84):

Calculating distance with using vincenty’s formula (see https://en.wikipedia.org/wiki/Vincenty’s_formulae)

geo.ellipsoid.from4326_to3395

def from4326_to3395(point, ellipsoid=WGS84):

Reproject point from EPSG:4326 (https://epsg.io/4326) to EPSG:3395 (https://epsg.io/3395) (see https://en.wikipedia.org/wiki/Mercator_projection#Generalization_to_the_ellipsoid)

Ellipsoidal Mercator:

E = a*(λ - λo) N = a*ln(tan(π/4+φ/2)*((1-e*sin(φ))/(1+e*sin(φ)))**e/2)

geo.ellipsoid.from3395_to4326

def from3395_to4326(point, ellipsoid=WGS84):

Reproject point from EPSG:3395 (https://epsg.io/3395) to EPSG:4326 (https://epsg.io/4326) (see https://en.wikipedia.org/wiki/Mercator_projection#Generalization_to_the_ellipsoid)

Reverse Ellipsoidal Mercator:

λ = E/a + λo φ = π/2 + 2*arctan(exp(-N/a)*((1-e*sin(φ))/(1+e*sin(φ))**e/2))

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

geo-py-0.4.tar.gz (61.3 kB view details)

Uploaded Source

File details

Details for the file geo-py-0.4.tar.gz.

File metadata

  • Download URL: geo-py-0.4.tar.gz
  • Upload date:
  • Size: 61.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for geo-py-0.4.tar.gz
Algorithm Hash digest
SHA256 6ac02e08e24afc99795808f569f25b0075a0b2aa300b2ef3d40c061e02245c04
MD5 d9bc76e5513ad372cf021c53f05d45a7
BLAKE2b-256 ce1f5bdf66402875ef855ada02d12b52544a7905778ad0fe20453b8e3671e313

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page