Monday 4 March 2019

spherical geometry - Find tangent point on circle furthest east or west


There are few ways of articulating my question. It starts with a known circle on a sphere, i.e. a point-radius, and one that does not cover a pole. I would like to calculate the point furthest west on this circle and the point furthest east. These points are the tangent points of lines of longitude which encircle the poles and are vertical. These points are opposite each other along the vertical axis so there is one hard problem to solve from which the other is trivially determined. This is highly related to calculating the minimum bounding lat-lon box of a circle. I know how to determine the longitude delta from the center to the edges, which is:


asin( sin( dist_rad / cos(center_lat_rad) ) )


whereas dist_rad is the circle's radial distance is radians, and center_lat_rad is the latitude point of the circle's center in radians. This equation was elusive to me until I discovered it with a wonderful explanation here. It contains a wonderful illustration:


wonderful illustration.


The illustration shows T1 and T2 which are the points I am trying to calculate. What is left to figure out is at what latitude the eastern and western boundary meridians intersect this circle. If the circle is at the equator, then it's zero, and if it's north of the equator, then this latitude is going to be higher than the circle's center latitude.



Answer



Questions like this can often be answered by solving triangles using laws of spherical trigonometry. You can look these up: they are referenced below. Normally, when you know three of the six parts of a spherical triangle, the laws let you find the other three in terms of the sines and cosines of the parts you know. The trick is to draw a useful triangle. When you're dealing with meridians, think of using a pole (which is common to all meridians) as one of the triangle's vertices. This suggests focusing on the triangles N-M-T1 or, equivalently, N-M-T2. Here are the details, a general solution, and a worked example.


Let the point in question be at latitude phi and the circle's radius be r (expressed as an angle, not as a distance. The angle in radians is the radial distance divided by the sphere's radius). We start by finding the difference between the local longitude and the extreme longitudes; let this difference be lambda.


Because the extreme meridians are tangent to the circle, angles M-T1-N and M-T2-N are right angles. This is nice because the sine and cosine of a right angle are easy to find and simple (they equal 1 and 0, respectively). The spherical Law of Sines says


sin(lambda) / sin(r) = sin(90 degrees) / sin(90 - phi) 
= 1 / cos(phi).


Solving this gives


lambda = ArcSin( sin(r) / cos(phi) ).

For example, let r = 45 degrees and phi = -30 degrees. The solution is lambda = 54.7356 degrees.


This much you already found out: it's the formula quoted in the question. Now we can apply the spherical Law of Cosines to relate the latitude phi' of the extremal points T1 and T2 to the radius r: this is what we are looking for.


sin(phi) = sin(phi') cos(r).

The solution for the common latitude of the tangent points is


phi' = ArcSin( sin(phi) / cos(r) )


(for a circle centered at latitude phi of radius r radians.)




The remainder of the reply discusses and illustrates this result.


Notice in particular that when we start at the equator, phi = 0, easily giving phi' = 0 as expected. Otherwise, the sine of phi' is larger (in size) than the sine of phi, implying the solution is closer to the nearest pole, again as expected. In the example, phi' works out to -45 degrees.


Figure


The south pole is near the bottom of this pseudo-3D image of a sphere. The meridians start at the circle's center and go in 15 degree increments to either side, showing +-15, +-30, and +-45 degree longitudinal displacements, then stop at the limiting values of +-54.7356 degrees. The red dots are situated along these limiting meridians at latitudes of -45 degrees.


These formulas work for any circle that does not include either pole.


Figure 2


In this image, the circle's center (black dot) is just north of 60 degrees north latitude. Approximate circles of latitude are shown as dashed curves in 10 degree increments. The radius, equal almost to 30 degrees of arc, takes this circle almost to the north pole (where the meridians are converging at the top). The extremal meridians are therefore spread far apart (lambda is about 70 degrees) and, accordingly, the points of tangency are also close to the north pole, near 80 degrees latitude. This shows why the points of tangency (red dots) are usually closer to the nearest pole than the circle's center is.


No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...