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-1.3.0.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

pygc-1.3.0-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pygc-1.3.0.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pygc-1.3.0.tar.gz
Algorithm Hash digest
SHA256 1c54f6de51172b991d877de6e14375304696abce0c7c3cf7454b267f52f9f715
MD5 55e2d037b7dd5065bc4f907b649f66fd
BLAKE2b-256 d0580fcd331a8eef7724f155887edfc5867d5c3300953b6fe11d11d340b02acc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pygc-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for pygc-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 496b9313a4e6b87f92c3440262647a473c8b9f60f5edf3681f88bc06f7c081ac
MD5 7c5874bebc7ce3eff3e6f83b4a846c20
BLAKE2b-256 44e3df5553194f449867446708e2694132c93b156294f5e9492570f99cc730b1

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