Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
edit spelling
Browse files Browse the repository at this point in the history
cyschneck committed Sep 25, 2024
1 parent fbb6318 commit 49fa1da
Showing 6 changed files with 44 additions and 44 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -34,7 +34,7 @@ This cookbook is broken into two main sections:
- Foundations and Terminology
- Working with Great Circles

Where avaiable, this cookbook will demonstrate how to determine the features of a great circle with both existing open-source Python packages and through spherical trigonometry and mathematics
Where available, this cookbook will demonstrate how to determine the features of a great circle with both existing open-source Python packages and through spherical trigonometry and mathematics

### Foundations and Terminology

@@ -66,7 +66,7 @@ Each section will make use of plotting to visually demonstrate concepts with `ma
- Find the intersection of two great circle arcs (if it exists)
- Find the intersection of two great circle paths (always exists)

5. **Angles and Great Cirlces**
5. **Angles and Great Circles**
- Calculate the acute and obtuse angle of two great circle paths
- Calculate the directed angle of two great circle paths based on an intersection point
- Working with Spherical Triangles formed by great circle arcs
4 changes: 2 additions & 2 deletions notebooks/foundations/coordinates.ipynb
Original file line number Diff line number Diff line change
@@ -86,7 +86,7 @@
"source": [
"### Cartesian Coordinates\n",
"\n",
"Cartesian coordinates describe points in space based on perpendicular axis lines that meet at a singlle point of orign, where any point's position is described based on the distance to the orgin along xyz axis\n",
"Cartesian coordinates describe points in space based on perpendicular axis lines that meet at a singlle point of origin, where any point's position is described based on the distance to the origin along xyz axis\n",
"\n",
"**Geodesic to Cartesian Coordinates**\n",
"\n",
@@ -103,7 +103,7 @@
"source": [
"### Spherical Coordinates\n",
"\n",
"Spherical coordinates describe points in space based on three values: radial distance (rho, r) along the radial line between point and the origin, polar angle (theta, θ) between the radial line and the polar axis, and azimuth angle (phi, φ) which is the angle of rotation of the radial line around the polar axis. With a fixed radius, the 3-point coordinates (r, θ, φ) provide a coordiante along a sphere\n",
"Spherical coordinates describe points in space based on three values: radial distance (rho, r) along the radial line between point and the origin, polar angle (theta, θ) between the radial line and the polar axis, and azimuth angle (phi, φ) which is the angle of rotation of the radial line around the polar axis. With a fixed radius, the 3-point coordinates (r, θ, φ) provide a coordinate along a sphere\n",
"\n",
"- Radial distance: distance from center to surface of sphere\n",
"- Polar angle: angle between radial line and polar axis\n",
8 changes: 4 additions & 4 deletions notebooks/foundations/terminology.ipynb
Original file line number Diff line number Diff line change
@@ -34,9 +34,9 @@
"## Overview\n",
"Great Circles are powerful tools used in navigation like ships and planes as well as in geoscience for working with and understnading remote sensing via satellites. Great Circle mathematics make use of spherical geometry, where, rather than lines, shapes on a sphere are formed by the intersection of arcs along the curved surface.\n",
"\n",
"While spherical geoemtry played an important role historically in the fields of astronomy and navigation, its teaching has largely fallen out of favor since the 1950's making finding comphrenshive resources difficult.\n",
"While spherical geometry played an important role historically in the fields of astronomy and navigation, its teaching has largely fallen out of favor since the 1950's making finding comphrenshive resources difficult.\n",
"\n",
"This notebook will cover some of the important and unqiue terminology used when working with Great Circles and spherical geometry\n",
"This notebook will cover some of the important and unique terminology used when working with Great Circles and spherical geometry\n",
"\n",
"1. Spherical Geometry\n",
"1. Great Circles\n",
@@ -247,7 +247,7 @@
"\n",
"<img src=\"https://upload.wikimedia.org/wikipedia/commons/6/6a/Insect_on_a_torus_tracing_out_a_non-trivial_geodesic.gif\" alt=\"Straight Line on a curved surface\" width=400></img>\n",
"\n",
"This is espeically apparent when working with satellite data where the apparent \"straight path\" that a satellite will trace across the the surface of a planet \n",
"This is especially apparent when working with satellite data where the apparent \"straight path\" that a satellite will trace across the the surface of a planet \n",
"\n",
"<img src=\"https://www.earthdata.nasa.gov/s3fs-public/styles/small_third_320px_/public/2021-12/Aqua%20orbit%20resize.jpg?VersionId=jEIj8OggQelV01yl3SaAffu1hOWFbKvt&itok=8JY0VP7Y\" alt=\"Straight Line on a curved surface\" width=400></img>\n",
"\n",
@@ -266,7 +266,7 @@
"- [Ed Williams \"Avitation Formulary\"](https://edwilliams.org/avform147.htm)\n",
"- [Movable Type Scripts](https://www.movable-type.co.uk/scripts/latlong.html)\n",
"- \"Heavenly Mathematics: The Forgotten Art of SPherical Trigonometry\" by Glen Van Brummelen\n",
"- \"SPherical Trigonometry: A Comphrehensive Approach\" by Ira Arevalo Fajardo"
"- \"SPherical Trigonometry: A Comprehensive Approach\" by Ira Arevalo Fajardo"
]
},
{
68 changes: 34 additions & 34 deletions notebooks/tutorials/arc_path.ipynb
Original file line number Diff line number Diff line change
@@ -71,20 +71,20 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd # reading in data for location information from text file\n",
"import numpy as np # working with arrays, vectors, cross/dot products, and radians\n",
"\n",
"from pyproj import Geod # working with the Earth as an ellipsod (WGS-84)\n",
"import geopy.distance # working wtih the Earth as an ellipsod"
"import geopy.distance # working with the Earth as an ellipsod"
]
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 4,
"metadata": {},
"outputs": [
{
@@ -218,7 +218,7 @@
"4 6378137.0 1.481816 1.055020 -0.866469 -0.077303 0.493210 "
]
},
"execution_count": 7,
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -232,7 +232,7 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
@@ -266,7 +266,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
@@ -275,7 +275,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 7,
"metadata": {},
"outputs": [
{
@@ -380,7 +380,7 @@
"boston 0.673788 "
]
},
"execution_count": 21,
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
@@ -391,7 +391,7 @@
},
{
"cell_type": "code",
"execution_count": 24,
"execution_count": 8,
"metadata": {},
"outputs": [
{
@@ -445,14 +445,14 @@
},
{
"cell_type": "code",
"execution_count": 29,
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"foward bearing between coordinates = 73.51048829569024 Degrees\n",
"forward bearing between coordinates = 73.51048829569024 Degrees\n",
"reverse bearing between coordinates = -83.57035585674932 Degrees\n"
]
}
@@ -463,7 +463,7 @@
" location_df.loc[[\"boston\"]][\"longitude\"].iloc[0],\n",
" location_df.loc[[\"boston\"]][\"latitude\"].iloc[0])\n",
"\n",
"print(f\"foward bearing between coordinates = {fwd_bearing} Degrees\")\n",
"print(f\"forward bearing between coordinates = {fwd_bearing} Degrees\")\n",
"print(f\"reverse bearing between coordinates = {rvs_bearing} Degrees\")"
]
},
@@ -495,7 +495,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
@@ -539,7 +539,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
@@ -576,26 +576,26 @@
},
{
"cell_type": "code",
"execution_count": 45,
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Each point will be seperated by 260236.1345376838 meters (260.2361345376838 km)\n"
"Each point will be separated by 260236.1345376838 meters (260.2361345376838 km)\n"
]
}
],
"source": [
"n_total_points = 10 # total points (n points)\n",
"distance_between_points_meter = distance_meter / (n_total_points + 1)\n",
"print(f\"Each point will be seperated by {distance_between_points_meter} meters ({distance_between_points_meter/1000} km)\")"
"print(f\"Each point will be separated by {distance_between_points_meter} meters ({distance_between_points_meter/1000} km)\")"
]
},
{
"cell_type": "code",
"execution_count": 46,
"execution_count": 13,
"metadata": {},
"outputs": [
{
@@ -622,7 +622,7 @@
" (42.3601, -71.0589)]"
]
},
"execution_count": 46,
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
@@ -642,7 +642,7 @@
},
{
"cell_type": "code",
"execution_count": 48,
"execution_count": 14,
"metadata": {},
"outputs": [
{
@@ -670,25 +670,25 @@
},
{
"cell_type": "code",
"execution_count": 52,
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Each point will be seperated by 112000 meters (112.0 km)\n"
"Each point will be separated by 112000 meters (112.0 km)\n"
]
}
],
"source": [
"distance_between_points_meter = 112000\n",
"print(f\"Each point will be seperated by {distance_between_points_meter} meters ({distance_between_points_meter/1000} km)\")"
"print(f\"Each point will be separated by {distance_between_points_meter} meters ({distance_between_points_meter/1000} km)\")"
]
},
{
"cell_type": "code",
"execution_count": 51,
"execution_count": 16,
"metadata": {},
"outputs": [
{
@@ -730,7 +730,7 @@
" (42.3601, -71.0589)]"
]
},
"execution_count": 51,
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
@@ -750,7 +750,7 @@
},
{
"cell_type": "code",
"execution_count": 54,
"execution_count": 17,
"metadata": {},
"outputs": [
{
@@ -780,7 +780,7 @@
},
{
"cell_type": "code",
"execution_count": 62,
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
@@ -821,7 +821,7 @@
},
{
"cell_type": "code",
"execution_count": 72,
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
@@ -848,7 +848,7 @@
},
{
"cell_type": "code",
"execution_count": 63,
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
@@ -864,7 +864,7 @@
},
{
"cell_type": "code",
"execution_count": 77,
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
@@ -904,7 +904,7 @@
},
{
"cell_type": "code",
"execution_count": 78,
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
@@ -914,7 +914,7 @@
},
{
"cell_type": "code",
"execution_count": 83,
"execution_count": 23,
"metadata": {},
"outputs": [
{
@@ -938,7 +938,7 @@
},
{
"cell_type": "code",
"execution_count": 85,
"execution_count": 24,
"metadata": {},
"outputs": [
{
@@ -962,7 +962,7 @@
},
{
"cell_type": "code",
"execution_count": 86,
"execution_count": 25,
"metadata": {},
"outputs": [
{
2 changes: 1 addition & 1 deletion notebooks/tutorials/arc_to_point.ipynb
Original file line number Diff line number Diff line change
@@ -257,7 +257,7 @@
"Cross-Track Distance, sometimes known as cross track error, can also be determined with vectors (typically simpler too)\n",
"\n",
"### Cross Track Distance\n",
"Distance of a poitn to a great circle arc\n",
"Distance of a point to a great circle arc\n",
"\n",
"```\n",
"dxt = asin( sin(δ13) ⋅ sin(θ13−θ12) ) * R\n",
2 changes: 1 addition & 1 deletion notebooks/tutorials/parallels_max_min.ipynb
Original file line number Diff line number Diff line change
@@ -82,7 +82,7 @@
"metadata": {},
"source": [
"## Summary\n",
"Determine the coordinates when a great circle path crosses a specific parallel as well as the maximumn and minimum latitude coordiantes\n",
"Determine the coordinates when a great circle path crosses a specific parallel as well as the maximumn and minimum latitude coordinates\n",
"\n",
"### What's next?\n"
]

0 comments on commit 49fa1da

Please sign in to comment.