Skip to main content

"Great Circle calculations in Python using Vincenty's formulae"

Project description

pygc Tests

Great Circle calculations for Python 2/3 using Vincenty's formulae

Installation

pip pip install pygc

conda conda install -c conda-forge pygc

development pip install git+https://github.com/axiom-data-science/pygc.git

Great Circle

from pygc import great_circle

New point from initial point, distance, and azimuth

great_circle(distance=111000, azimuth=65, latitude=30, longitude=-74)
{'latitude': 30.41900364921926,
'longitude': -72.952930949727573,
'reverse_azimuth': 245.52686122611451}

Three new points in three different angles from an initial point

great_circle(distance=[100000, 200000, 300000], azimuth=[90, 180, -90], latitude=30, longitude=-74)
{'latitude': array([29.99592067, 28.1955554, 29.96329797]),
'longitude': array([-72.96361148, -74., -77.10848799]),
'reverse_azimuth': array([270.51817296, 360., 88.44633085])}

Three point south of three initial points (longitude shouldn't change much)

great_circle(distance=[100000, 200000, 300000], azimuth=180, latitude=30, longitude=[-74, -75, -76])
{'latitude': array([29.09783841, 28.1955554, 27.29315337]),
'longitude': array([-74., -75., -76.]),
'reverse_azimuth': array([360., 360., 360.])}

Three point west of three initial points (latitude shouldn't change much)

great_circle(distance=[100000, 200000, 300000], azimuth=270, latitude=[30, 31, 32], longitude=-74)
{'latitude': array([ 29.99592067, 30.98302388, 31.96029484]),
 'longitude': array([-75.03638852, -76.09390011, -77.17392199]),
 'reverse_azimuth': array([ 89.48182704, 88.92173899, 88.31869938])}

Starburst pattern around a point

great_circle(distance=100000, azimuth=[0, 60, 120, 180, 240, 300], latitude=30, longitude=-74)
{'latitude': array([ 30.90203788, 30.44794729, 29.54590235, 29.09783841, 29.54590235, 30.44794729]),
 'longitude': array([-74., -73.09835956, -73.10647702, -74., -74.89352298, -74.90164044]),
 'reverse_azimuth': array([ 180., 240.45387965, 300.44370186, 360., 59.55629814, 119.54612035])}

Great Distance

Distance between each pair of points is returned in meters.

from pygc import great_distance

Distance and angle between two points

great_distance(start_latitude=30, start_longitude=-74, end_latitude=40, end_longitude=-74)
{'azimuth': 0.0, 'distance': array(1109415.6324018822), 'reverse_azimuth': 180.0}

Distance and angle between two sets of points

great_distance(start_latitude=[30, 35], start_longitude=[-74, -79], end_latitude=[40, 45], end_longitude=[-74, -79])
{'azimuth': array([0., 0.]),
 'distance': array([1109415.63240188, 1110351.47627673]),
 'reverse_azimuth': array([180., 180.])}

Distance and angle between initial point and three end points

great_distance(start_latitude=30, start_longitude=-74, end_latitude=[40, 45, 50], end_longitude=[-74, -74, -74])
{'azimuth': array([0., 0., 0.]),
 'distance': array([1109415.63240188, 1664830.98002662, 2220733.64373152]),
 'reverse_azimuth': array([180., 180., 180.])}

Source

Algrothims from Geocentric Datum of Australia Technical Manual

https://www.icsm.gov.au/sites/default/files/2017-09/gda-v_2.4_0.pdf Computations on the Ellipsoid

There are a number of formulae that are available to calculate accurate geodetic positions, azimuths and distances on the ellipsoid.

Vincenty's formulae (Vincenty, 1975) may be used for lines ranging from a few cm to nearly 20,000 km, with millimetre accuracy. The formulae have been extensively tested for the Australian region, by comparison with results from other formulae (Rainsford, 1955 & Sodano, 1965).

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

pygc-2.0.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

pygc-2.0.0-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file pygc-2.0.0.tar.gz.

File metadata

  • Download URL: pygc-2.0.0.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pygc-2.0.0.tar.gz
Algorithm Hash digest
SHA256 c43130425fb95c049a5fe93dfa007bf0f2dd8a538e1bf699d8e8b05d1f54715e
MD5 9cd0f18e396017051c75549577c1befc
BLAKE2b-256 8d8bd22ba05e58b728954c2dff26365d672b544535c8517740e37d3c603f504a

See more details on using hashes here.

File details

Details for the file pygc-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: pygc-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for pygc-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d19b9f09b690a465250d35c198b4b817c4f6ff9f7a2a949ccb890ba26c1ac4aa
MD5 cb7c8b77f8b7894eb6aa0ef591148e0d
BLAKE2b-256 497caf09d2f53967326c0d605c55a22f2f432b5034ca0c943287375695e743f7

See more details on using hashes here.

Supported by

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