Skip to main content
Journal of Imaging logoLink to Journal of Imaging
. 2022 Jul 5;8(7):184. doi: 10.3390/jimaging8070184

Detecting Cocircular Subsets of a Spherical Set of Points

Basel Ibrahim 1, Nahum Kiryati 1,*
Editors: Daniel Meneveaux1, Gianmarco Cherchi1
PMCID: PMC9315820  PMID: 35877628

Abstract

Given a spherical set of points, we consider the detection of cocircular subsets of the data. We distinguish great circles from small circles, and develop algorithms for detecting cocircularities of both types. The suggested approach is an extension of the Hough transform. We address the unique parameter-space quantization issues arising due to the spherical geometry, present quantization schemes, and evaluate the quantization-induced errors. We demonstrate the proposed algorithms by detecting cocircular cities and airports on Earth’s spherical surface. These results facilitate the detection of great and small circles in spherical images.

Keywords: hough transform, spherical point set, circle detection, great circle, small circle

1. Introduction

Given a spherical set of points, consider the problem of detecting the largest subset of cocircular points, i.e., the largest subset of points lying on the same circle on the sphere. One brute-force solution, related to RANSAC [1], is to examine all possible triplets of points in the point set. Note that each triplet (if not colinear) defines a plane, the intersection of the plane with the sphere defines a circle, and each point in the triplet clearly lies on the circle. The point set can then be searched for additional points lying on that circle. This O(N4) procedure, where N is the cardinality of the point set, is prohibitive for sizable point sets.

A cocircular subset of a spherical set of points is obviously coplanar. In special cases, the plane passes through the center of the sphere. In such cases, the intersection of the plane and the sphere is referred to as a great circle; see the green circle in Figure 1 (right). In the general case, when the plane does not pass through the center of the sphere, the intersection of the plane and the sphere is referred to as a small circle; see the blue and red circles in Figure 1 (right).

Figure 1.

Figure 1

(Left) The angular coordinates θi and φi of a point. (Right) The intersection of the sphere with a plane associated with the primary point P is a circle. The intersection of the sphere with each of the associated parallel planes is a different circle with a different radius. For example, the red plane of which the normal direction is determined by point P intersects the sphere at the red circle. The parallel plane that passes through the origin of the sphere is a great circle (green).

In the classical Hough transform [2], the problem of finding colinear points in the plane is replaced by the dual problem of finding concurrent lines or curves in a parameter space, often referred to as the Hough space. In practice, the parameter space is quantized and represented by an accumulator array, a voting process takes place, and finding the intersection of lines or curves in the parameter space is implemented as a search for the maximum. The Hough transform is fundamentally robust with respect to outliers, and has been formally associated with the M-estimation methodology for robust regression [3]. The Hough transform has also been related to conformal geometric algebra [4]. The time-complexity of the classical Hough transform is linear in the cardinality N of the dataset. Thus, when looking for the largest co-linear subset in a planar set of points, the Hough transform reduces the computational load from O(N3) (the cost of checking each possible pair of points in the data; determining the line that connects the pair; and, for each other data-point, testing whether it lies on that line) to O(N).

The suggested approach to finding the largest subset of cocircular points in a spherical set of points is inspired by the Hough transform. Specifically, we characterize the circles (on the sphere) passing through a given point in the spherical set. The characterization is in the form of an equation constraining the parameters of the circles. We then search for the largest intersection of such equations, i.e., for the parameters specifying the circle passing through the largest possible number of points in the set.

As in the classical Hough transform, once the best-supported circle, i.e., the circle passing through the largest possible number of points, has been determined, finding the second-best-supported circle is straightforward. This can be reliably accomplished by identifying the data-points supporting the best circle, removing them from the dataset, and eliminating their contribution to the accumulator array (“unvoting”) [5,6,7]. Circle detection and unvoting can be iterated until all circles are found.

The precise function of the Hough transform is the detection of a geometric primitive, such as a straight line or circle, common to the largest possible subset of points in the dataset. Identifying the relevant points themselves can then be easily accomplished [5], but is not always necessary. Note that it is commonly said that the Hough transform detects geometric primitives in a digital image, but accomplishing this task in an actual image requires edge detection as a preprocessing step.

Images acquired using omnidirectional cameras can be represented as spherical images. Straight line segments in the scene are then transformed to great circle arcs in the spherical image. This has led to some interest in the detection of great circles in spherical images. With this motivation, Vasseur and Mouaddib [8] and Torii and Imiya [9] outlined a Hough algorithm and a randomized Hough algorithm, respectively, for great-circle detection on a sphere. These ideas have modern applications, such as road-line detection in driver-assistance systems [10].

In the detection of vanishing points, the search for convergence points in the image plane can be usefully replaced by the intersection of great circles on the Gaussian sphere [11]. This important task has been addressed using specialized Hough algorithms, leading to developments in spherical tessellation and discretization schemes [12,13] that are also useful in great-circle detection [14,15].

In geophysics, interest in great and small circle fitting arises in the context of volcano distribution analysis [16,17]. In these studies, specialized map projections transform great circles into an exact (gonomonic projection [17]) or approximate (UTM [16]) straight lines, allowing the use of the straight-line Hough transform [2] for great-circle detection. In the context of plate tectonics, Wessel [18] outlined the principles of a Hough transform for great-circle detection in the true spherical domain and sketched its generalization to small-circle detection. Wessel’s insightful concepts [18] have so far received surprisingly little attention.

In this paper, we present comprehensive solutions for the detection of cocircular subsets of a spherical set of points. We describe a geometric framework that supports both great- and small-circle detection and provide algorithms for both cases. We address the unique parameter-space quantization issues arising due to the spherical geometry, present quantization schemes, and evaluate the quantization-induced errors. We demonstrate the proposed algorithms by detecting cocircular cities and airports on Earth’s spherical surface.

2. Fundamentals

In this article, given a set of N>>1 co-spherical points, we present a way to detect the circle that passes through the largest possible number of points in the set. It is easy to show that the circle itself necessarily lies on the sphere.

A point in 3D space can be defined by its spherical coordinates, consisting of the radial distance R from the origin, the polar angle θ, and the azimuthal angle φ; see Figure 1 (left). Assuming co-spherical points, point i is determined by the angular coordinates θi and φi alone.

Given an anchor point in 3D space and a normal direction, one can determine a plane that passes through the anchor point and fits the normal direction. By itself, a normal direction defines a set of parallel planes.

Viewing the angular coordinates of a (primary) point on the sphere as a normal direction therefore associates a set of parallel planes with that point. The intersection of each such plane with the sphere is a (primary) circle, as shown in Figure 1 (right).

Any (secondary) point on a primary circle of radius r (point S1 in Figure 2), viewed as a normal direction, defines a secondary circle of radius r passing through the primary point (point P in Figure 2). Thus, given a primary point and a radius r, each secondary point is the center of a circle of radius r passing through the primary point.

Figure 2.

Figure 2

Each primary point (blue point P) defines a primary circle of radius r (blue). Each secondary point, such as the red point S1 on the primary circle, defines a secondary circle of radius r (red) passing through the primary point.

Since this property holds for any secondary point on a primary circle, a set of primary circles for primary points located on the same circle will intersect at a specific secondary point, which is the center of the circle passing through all the primary points. This is illustrated in Figure 3, where the red, blue, and green points are primary points on the same (black) circle of radius r. The corresponding primary circles of radius r intersect at the black secondary dot S, which defines the secondary circle (black) passing through all the primary points.

Figure 3.

Figure 3

The red, green, and blue points (P1,P2,P3) are primary points located on the same circle (black). Each primary point defines a primary circle. All the primary circles intersect at a secondary point (black point S). That point defines a secondary circle (black) passing through the primary points.

Now, given a set of unit co-spherical points, i.e., a set of points S={(θi,φi)} located on the unit sphere, we look for the normal direction (θ,φ) that determines the circle of (pre-defined) radius r passing through the largest possible subset of points in S. The problem amounts to finding the largest co-circular (with given radius r) subset of S. We approach it by viewing each point (θi,φi) as a primary point corresponding to a primary circle of radius r. We view (θ,φ) as a secondary point corresponding to a secondary circle on which a point (θi,φi) lies. We select (θ,φ), compatible with the largest possible number of primary points (θi,φi). In other words, we select (θ,φ), which is the largest intersection of primary circles.

As just presented, the problem and its solution strategy can be regarded as a generalization of the classical Hough transform for circles of known radius in the plane. In principle, one might indeed solve the problem by allocating a memory array on a spherical surface and incrementing memory cells on the primary circles corresponding to the data-set S={(θi,φi)} (voting). The memory cell with the largest accumulation will then correspond to (θ,φ), which is the largest intersection of primary circles, i.e., the normal direction defining the circle of radius r passing through the largest possible subset of points in S.

In practice, working with spherical memory arrays is highly inconvenient. We therefore carry out the computation using a planar memory array, where the orthogonal planar axes are θ and φ. Note, however, that the mapping of the conceptual spherical memory array to a planar array is non-trivial in both theory and practice, as is the drafting of planar maps of planet Earth [19]. As will be seen, this difficulty reveals itself in the context of the parameter-space quantization.

We can summarize these concepts as follows: Given a (unit) sphere and a radius r,

Property 1.

A primary point (θi,φi) on the sphere corresponds to a curve in the (θ,φ) parameter plane. The curve can be viewed as the mapping of the primary circle associated with the primary point from the sphere to the (θ,φ) plane.

Property 2.

A point in the (θ,φ) parameter plane corresponds to a secondary circle of radius r on the sphere.

Property 3.

Primary points lying on the same circle of radius r on the sphere correspond to curves through a common point in the (θ,φ) parameter plane.

In the next section, we determine θ as a function of φ (or φ as a function of θ ). This is the voting pattern associated with a data point (θi,φi)S.

3. The Voting Pattern

3.1. Derivation of the Voting Pattern

Consider a primary point (Xi,Yi,Zi) on a unit sphere. We proceed to express the equation of the corresponding family of primary circles lying on parallel planes, as illustrated in Figure 1 (right). Generally, the equation of a plane in 3D space is of the form

ax+by+cz=d (1)

Note that (a,b,c) is the normal to the plane, and if it is normalized such that a2+b2+c2=1, then d is the distance of the plane from the origin.

Using Pythagoras’ theorem, for a unit sphere, the relation between d and the radius r of the circle is (see Figure 4):

r=1d2 (2)

Figure 4.

Figure 4

The relation between d and the circle radius r. P is a primary point on a unit sphere. The blue circle is the primary circle of radius r defined by P. The triangle CFO is right-angled.

In Equation (1), (a,b,c) is the normal to the plane. Here the normal is defined by the primary point. In terms of its angular coordinates (θi,φi),

n=abc=XiYiZi=sinθicosφisinθisinφicosθi (3)

Thus, the equation of the plane containing the primary circle is:

sinθicosφisinθisinφicosθixyz=d (4)

The primary circle itself is the intersection of this plane with the unit sphere. In spherical coordinates, a point (x,y,z) on the unit sphere is

xyz=sinθcosφsinθsinφcosθ (5)

Substituting in the plane Equation (4) we obtain

sinθicosφisinθisinφicosθisinθcosφsinθsinφcosθ=d (6)

Rearranging this, we obtain a relation between the angular coordinates θ,φ of secondary points on the primary circle.

cosθcosθi+sinθcosφsinθicosφi+sinθsinφsinθisinφi=d
cosθcosθi+sinθsinθi(cosφcosφi+sinφsinφi)=d
cosθcosθi+sinθsinθicos(φφi)=d
cos(φφi)=dsinθsinθicotθcotθi (7)
φI=2πn+cos1(dsinθsinθicotθcotθi)+φiφII=2πncos1(dsinθsinθicotθcotθi)+φinZ (8)

For a given primary point (θi,φi) and a plane distance d, Equation (8) determines the azimuthal angle φ of a secondary point in terms of the polar angle θ. The two solutions reflect the fact that a circle of latitude (defined by θ) that intersects a primary circle (excluding the two circles of latitude that osculate the primary circle) intersects the primary circle at two points; see Figure 2 and Figure 3. The dependence on n is due to the periodicity of φ. Figure 5 shows the locus of {θ,φ} pairs for selected values of θi, φi, and d.

Figure 5.

Figure 5

Figure 5

The locus of {θ,φ} pairs for selected values of θi, φi, and d. (a,b) The case of d=0. (a): for two primary points with θi=70; blue: φi=120, red: φi=0. (b): for three primary points with φi=45; blue: θi=60, red: θi=30, green: θi=150. (c,d) Same as (a,b) but for d=0.5. (e) Illustrating the dependence on r=r(d). Here the primary point is φi=180,θi=70.

As shown in Figure 5 (top), for the case of a great circle (d=0), we can express θ as a single-valued function of φ. Substituting d=0 in Equation (7),

cos(φφi)=cotθcotθi (9)

Solving for θ,

θ=πncot1(cos(φφi)tanθi)nZ (10)

3.2. Domain and Range of the Voting Pattern

We have so far seen that for a given primary point (θi,φi), the φ coordinate of a secondary point (θ,φ) is obtained by substituting the θ coordinate in Equation (8). In this subsection, we proceed to show the dependence of the domain and the range of φ as a function of θ, as represented by Equation (8), on the primary point coordinates (θi,φi) and the distance d.

As shown in Figure 4, for a given distance d>0, each (spherical) circle of radius r (Equation (2)) on a unit sphere is uniquely defined by one (spherical) point on the unit sphere. Any such spherical point can be represented by the spherical coordinates θ[0,π) and φ[0,2π). Therefore, any spherical circle with radius r<1 is uniquely defined by θ[0,π) and φ[0,2π).

In the case of great circles, d=0, the points (θ,φ) and (πθ,π+φ) (red points in Figure 6) define the same plane. In other words, each great circle (red) is represented by two spherical points, one at each hemisphere. Consider the subset of spherical points in the range θ[0,π) and φ[0,π). There is a bijective transformation from this subset to the set of great circles on the unit sphere. To conclude, each spherical point with θ[0,π) and φ[0,π) uniquely defines a great circle.

Figure 6.

Figure 6

In the case of the great circles, d=0, two antipodal spherical points (red), one at each hemisphere, define the same great circle.

Returning to the general case, for a given primary point (θi,φi), the spherical points (θ,φ) that satisfy Equation (8) represent the secondary circles on which the primary point lies. We are interested in secondary points with φ[0,2π), so n is selected such that φI,φII[0,2π).

Given a primary point and d, the domain of Equation (8) consists of θ coordinates of the secondary points. The θ value of the secondary points are such that the argument of the inverse cosine function satisfies

dsinθsinθicotθcotθi[1,1]
|dsinθsinθicotθcotθi|1
dcosθcosθisinθsinθi1 (11)

Denote by θlimI,II the limiting values of θ, i.e., the values corresponding to the two circles of latitude osculating the primary circle:

dcosθlimI,IIcosθisinθlimI,IIsinθi=±1
dcosθlimI,IIcosθi=±sinθlimI,IIsinθi
cos(θlimI,IIθi)=d
θlimI,II=2πn±cos1(d)±θi (12)

We choose n such that θlimI,II[0,π). Therefore, given a primary point and a distance d, the θ coordinate of any point on the secondary circle lies between θlimI[0,π) and θlimII[0,π). Note that the largest difference between θi (of the primary point) and θ of a secondary point is obtained for any of the limiting values θ=θlimI,II. The difference is the angle between the radius vectors pointing to the primary point and to either of the two points of osculation, and this angle is equal to cos1d.

3.3. Sphere of Radius R

The result expressed by Equations (8) and (10) can be easily generalized from the unit sphere to a sphere of radius R. The vector representing a point on the sphere (Equation (5)) is multiplied by R. Substituting in Equation (4), we obtain

R(cosθcosθi+sinθsinθicos(φφi))=d

where, generalizing Equation (2), d is now related to the radius of the circle by d=R2r2. Thus, Equations (6) and (8) will hold if d is replaced by dR, where

dR=dR=R2r2R=1(rR)2

So, technically, an algorithm to search for circles of radius r on a unit sphere can be readily applied to spheres of radius R by normalizing the circle radius r by R.

4. Algorithm for Great-Circle Detection

In this section, we present an algorithm for finding great circles on a sphere. More accurately, given a set S={(θi,φi)} of N co-spherical points, we find the great circle that passes through the largest subset of S. Specifically, the (secondary) great circle passing through the largest possible subset of (primary) points is defined by the (secondary) point (φmax,θmax). The algorithm belongs to the Hough transform family, since it is based on voting in a quantized parameter space.

The parameter plane is (φ,θ) is limited to the rectangle φ[0,π) θ[0,π) and tessellated by rectangular cells. Note that, in the case of great circles, Equation (10) specifies θ as a function of φ, hence the parameterization is expressed as (φ,θ). In the general case, where Equation (8) determines φ as a function of θ, the parametrization will be written as (θ,φ). Each cell represents a subset of (secondary) spherical points, and is of the form φ[φ˜Δφ2,φ˜+Δφ2] and θ[θ˜Δθ2,θ˜+Δθ2], where (φ˜,θ˜) is the center of the cell. In common Hough algorithms, the cells are of uniform shape and size, their centers form a set of rectangular grid points, and each cell is represented by an accumulator M(i,j) in a memory array, referred to as the accumulator array.

For each (primary) point in the data-set, we compute θ as a function of φ (Equation (10)) and increment the accumulators M(i,j) corresponding to cells along the θ(φ) curve. The accumulation stage of the algorithm can be visualized as drawing the discretized curves θ(φ) in the (φ,θ) parameter plane for all primary points. Eventually, the indices (imax,jmax) of the accumulator with the maximal reading represent the parameters (φmax,θmax) of the great circle. Rather than determining all the cells that the curve θ(φ) passes through, the common Hough transform practice is to approximate the process by sampling the argument (φ) and quantizing the function (θ). This leads in our case to Algorithm 1:

Algorithm 1: great-circle detection
Initialize the matrix (accumulator array) M with zeros.
For each primary point 1 to N
        For each φ[0,π) step Δφ
               Calculate θ(φ) by Equation (10).
               Round each θ(φ) to the nearest integer multiple of Δθ.
               Increment the accumulator of M corresponding to (φ,θ).
Find φmax and θmax corresponding to the entry with the largest accumulation in M.

The computational complexity of the algorithm is linear in the number of primary points N. With rectangular tessellation of the parameter plane, the computational load also depends on the number of discrete φ values, Nφ=π/Δφ, and on the number of discrete θ values, Nθ=π/Δθ. Specifically, the computational complexity of the voting stage is O(N·Nφ) and that of the search stage is O(Nφ·Nθ).

Note that the approximation, sampling θ and quantizing φ rather than determining the cells that the curve θ(φ) passes through, leads to a pitfall. Since the magnitude of the slope of θ(φ) can be large, the discretized θ(φ) curves may not be digitally connected [20]. Thus, they may not intersect in the digital domain even though they do intersect in the continuous domain. This hazard may not be apparent in cases where N is large and intersections are dense, but may manifest itself in cases where N is small. This may then lead to peak-spreading in the parameter plane, and consequently to misdetection and poor localization of peaks. In contrast, if the approximation is discarded and the cells intersected by the curve are incremented, the discretization of the curve amounts to the classical square quantization scheme [21], and the discretized curve is digitally connected.

5. Algorithm for General (Radius r) Circle Detection on a Sphere

We now consider the more general problem—detecting circles of any given radius r on the sphere. Here, the given circle radius may not coincide with the radius of the sphere; hence, the circles to be detected are not necessarily great circles. Formally, given a set S={(θi,φi)} of co-spherical points and a circle radius r, we find the circle of radius r passing through the largest subset of S. In this case, the parameter plane is limited to a larger rectangle θ[0,π) φ[0,2π). We compute φI and φII as a function of θ for each primary point using Equation (8), and increment the accumulators corresponding to cells intersected by the φI,II(θ) curves. Approximating the process by sampling the argument θ and quantizing the functions φI,II leads to Algorithm 2:

Algorithm 2: General (any given radius r) circle detection on a sphere

Initialize the matrix (accumulator array) M with zeros.

Normalize the radius r by the sphere radius R.

Calculate d by Equation (2).

For each primary point 1 to N

      For each θ[0,π) step Δθ

            If θ satisfies Equation (11) then

                  Calculate φI(θ) and φII(θ) by Equation (8).

                  Round φI,II(θ)[0,2π) to the nearest integer multiples of Δφ.

                  Increment the accumulators of M corresponding to (θ,φI,II).

Find θmax and φmax corresponding to the entry with the largest accumulation in M.

Here the computational complexity of the voting stage is O(N·Nθ) and that of the search stage is again O(Nθ·Nφ), where in this case Nθ=2π/Δθ. The accumulation stage of Algorithm 2 can be visualized as drawing the discretized φI,II(θ) curves in the (θ,φ) parameter plane for all primary points. As discussed in Section 4, care should again be taken when considering the use of the voting approximation (sampling the argument θ and quantizing the functions φI,II rather than determining the cells that the curves pass through).

6. Parameter-Space Quantization and Error Analysis

6.1. Preliminaries and Motivation

In Hough transform algorithms [2], a data (image) point is mapped into a space of parameters for a class of geometric primitives (such as straight lines). The parameter space is quantized into cells and represented by an array of accumulators. The mapping is carried out by incrementation of the relevant accumulators (voting). Once all data points have voted, a search for the maximum in the accumulator array reveals the parameters of the geometric primitive instance that are best supported by the data.

Parameter space quantization is an essential element of the Hough transform. On the one hand, it determines the resolution of the output parameters. On the other hand, it reflects the tolerance of the algorithm to location errors in the data. Thus, coarse quantization leads to poor output resolution, but quantization that is too fine may lead, in the presence of data location errors, to peak-spreading in the accumulator array and consequent detection errors.

In the Hough transform for straight lines using the normal parameterization, uniform quantization of the (ρ,θ) parameter space into cells of equal size implies an equal (translation- and rotation-invariant) measure of the infinite set of straight lines represented by each cell [2,22,23]. In the proposed algorithms for great- and small-circle detection on a sphere, the parameter space is (in principle) an isomorphic spherical parameter space. This is analogous to the isomorphism between the image space and the parameter space in the Hough transform for circles of known radius [2]. Note that the area of a cell in the spherical parameter space is, due to rotational symmetry, a rotation-invariant measure of the infinite set of the spherical circles represented by the cell. We therefore wish to quantizate the spherical parameter space into cells of similar area.

6.2. Towards Uniform Spherical Quantization

Working with spherical memory arrays is currently impractical. We therefore carry out the computation using a planar memory array, where the orthogonal planar axes are θ and φ. Nevertheless, mapping the conceptual spherical array to a planar array is problematic [19]. Specifically, in the context of parameter-space quantization, uniform (rectangular) quantization in the plane, via uniform quantization of the individual angular coordinates θ and φ, corresponds to cells of non-uniform area on the sphere. Assuming small quantization steps Δθ and Δφ in the plane, the spherical surface area of the corresponding cell at θ and φ is approximately

ΔSΔθΔφsinθ (13)

where ΔS is largest at the equator, where θ=π/2, and equal to ΔθΔφ. For non unit spheres, ΔS is scaled by R2 where R is the radius.

Cells of non-uniform area imply biased voting. One way to handle bias is by normalizing each accumulator count by the area of the corresponding cell. Note, however, that the normalization is associated with singularity at the poles. Lutton et al. [13] suggested using almost-equal-sized cell quantization, letting Δφ depend on θ; see Figure 7. In our case, almost-equal-sized cell quantization is obtained by letting

Δφn=ΔSΔθsinθn (14)

where the layer number n is obtained by rounding θ/Δθ to the nearest integer, θn=nΔθ, and ΔS is the almost uniform cell size (spherical surface area).

Figure 7.

Figure 7

(Left) Uniform rectangular quantization of the parameter plane, i.e., uniform quantization of the angular coordinates θ and φ, corresponds to cells of non-uniform area on the sphere. Cells are small near the poles and large near the equator. (Right) Almost-equal-sized cell quantization.

When voting into the (non-uniform) planar array corresponding to almost-equal-sized cells on the sphere, we again need to decide whether to increment all cells through which the continuous voting curve passes, or to employ the approximation—sampling θ and quantizing φ in the context of general circles. The two options are illustrated in Figure 8. Incrementing all cells through which the continuous voting curve passes means voting for both the blue and green cells. In contrast, sampling θ and quantizing φ generates (the centers of) the green cells alone.

Figure 8.

Figure 8

Incrementing all cells through which the continuous voting curve passes means voting for both the blue and green cells. In contrast, sampling θ and quantizing φ generates the centers of the green cells alone.

In our analysis and experiments, the first option is followed, i.e., the approximation is not employed and all cells through which the continuous voting curve passes are incremented. Technically, referring to Figure 9, at layer θn we increment the accumulator(s) between A and B inclusively.

Figure 9.

Figure 9

At layer θn we increment the accumulator(s) between A and B inclusively. On the sphere, these points are the intersections of the primary circle with the upper and lower boundaries of the θn layer. In the respective planar array, the points A and B are the intersections of the voting curve corresponding to the primary circle with the θn layer. Had the approximation been employed, only the green cell would have been incremented, as its center is the closest (in terms of φ) to the intersection of the curve with the sampled value of θ.

6.3. The Distance of Primary Points from the Common Secondary Circle

Consider the cell centered at (θmax,φmax) that received the largest number of votes from primary points. In other words, the cell centered at (θmax,φmax) is the one intersected by the largest number of primary circles centered at primary points. Due to primary points’ location errors, and due to the finite (i.e., not infinitesimal) cell size, the primary circles intersecting the cell do not usually intersect at a single point within the cell themselves. Thus, typically, the primary points that have voted for the cell are only roughly co-circular. The common secondary circle passing near these primary points is defined by the approximate secondary point (θmax,φmax), i.e., by the center of the cell.

What is the maximum distance of the primary points contributing to the cell from the secondary circle defined by (θmax,φmax)? Furthermore, how does this depend on the finite cell size? This distance determines, on the one hand, the resolution of the algorithm and, on the other hand, its tolerance to noise (errors) in the location of the data (primary) points. To answer these questions, we calculate the distance between the common secondary circle (the black circle in Figure 10) and the circles defined by the four corners of the cell. The coordinates of the four corners are

(θmax+Δθ2,φmax+Δφk2)(θmax+Δθ2,φmaxΔφk2)(θmaxΔθ2,φmax+Δφk2)(θmaxΔθ2,φmaxΔφk2)

where Δφk is the layer-dependent quantization step (Equation (14)) at θk=θmax, and the corresponding circles are shown blue in Figure 10.

Figure 10.

Figure 10

A cell centered at (θmax,φmax). The black circle is the common secondary circle defined by the center of this cell. The four blue circles are the circles defined by the corners of the cell.

Given one of the (corner) circles defined by a corner point (the blue circle in Figure 11), the largest distance from the common secondary circle is achieved by two critical points (red points in Figure 11) on the corner circle. One critical point is closer than the common secondary circle to the cell center, whereas the other critical point is more distant than the common secondary circle from the cell center.

Figure 11.

Figure 11

A secondary circle (black) and a corner circle (blue). The maximum distance of a point on the corner circle to the secondary circle is achieved by the two critical points (red).

Consider any of the two critical points and its respective closest point on the secondary circle. Viewing the critical point and its closest point as (spherical) radius vectors, let γ denote the angle between them. Let a denote the radius vector corresponding to the secondary point (θmax,φmax), and let b denote the radius vector associated with the corner point. Referring to Figure 12 (left), we observe that, since a is normal to the secondary circle and b is normal to the corner circle, γ is also the angle between a and b. Assuming a unit sphere,

γ=cos1(a·b) (15)

Figure 12.

Figure 12

(Left) The angle γ between the (red) radius vector pointing at a critical point and its respective closest point on the common secondary circle (black) is equal to the angle between the radius vector (black) corresponding to the secondary point at the center of the cell (θmax,φmax) and the radius vector (blue) associated with a corner point. (Right) The common secondary circle (black) and one of the critical circles (red). The spherical radius vector defined by the angular coordinates (θmax,φmax) of the secondary point passes through the centers of the common secondary circle and the two critical circles, and this radius vector is perpendicular to the planes containing the circles. d and dlower are the distances of the common secondary circle and the (lower) critical circle from the origin of the sphere, respectively.

The angle γ can be viewed as an angular distance measure between the cell center (θmax,φmax) and one of its corners. With almost-equal-sized cell quantization, γ is similar between cells and between corner points of a particular cell.

Cells have four corner points. Each corner point is associated with two critical points, one closer to and one more distant from the cell center. The eight critical points can be divided into two subsets, each with four critical points. One subset contains the four critical points, shown red in Figure 13 (left), closer to the cell center, whereas the other subset contains the four critical points more distant from the cell center, shown in red in Figure 13 (right). The angular distance γ between any of the eight critical points and its closest point on the common secondary circle is similar. This means that the four critical points in each of the two subsets are nearly co-circular. The two circles, shown in red in Figure 13, each defined by the four critical points in each of the two subsets, are referred to as lower and higher critical circles. They are on planes parallel to each other and also to the secondary circle plane, where the lower critical circle is closer to the origin and the higher is more distant from the origin. Specifically, their distances from the origin are

dlower=cos(cos1d+γ)dhigher=cos(cos1dγ) (16)

Figure 13.

Figure 13

(Left) The four critical points (red) closer to the cell center and the (higher) critical circle they define. (Right) The four critical points (red) more distant from the cell center and the (lower) critical circle they define.

The spherical radius vector defined by the angular coordinates (θmax,φmax) of the secondary point passes through the centers of the secondary circle and the two critical circles, and is perpendicular to (the planes containing) them; see Figure 12 (right).

Referring to Figure 14, let P be a primary point of which the primary circle (blue point and blue circle) votes for a cell centered at (θmax,φmax). In other words, the primary circle defined by the primary point P intersects the cell (θmax,φmax). This implies that the coordinates of any point on the primary circle within the cell, i.e., any secondary point S in the cell (green point), are bounded between θ=(θmaxΔθ/2,θmax+Δθ/2] and φ=(φmaxΔφk/2,φmax+Δφk/2]. Consider the common secondary circle defined by the cell center (black circle) and the nearby secondary circle associated with any other secondary point within the cell (green circle). The nearby secondary circle passes through the primary point P, whereas the common secondary circle generally passes just near P.

Figure 14.

Figure 14

The primary point P (blue) with the corresponding primary circle (blue), which votes for the cell with the maximum count. The secondary point S on the primary circle and inside the cell defines a secondary circle (green) passing exactly through the primary point P. The primary point P is located within a spherical segment associated with the cell. The black circle is the common secondary circle defined by the center of the cell, and the red circles are the lower and higher critical circles.

The angle between the radius-vector pointing at the cell center and the radius vector pointing at the nearby secondary point is less than or equal to γ, and equality to γ is achieved when the nearby secondary point coincides with one of the corner points of the cell. The radius vectors are normals of the planes containing these circles. So, the angle between the plane containing the common secondary circle and the plane containing the nearby secondary circle is less than γ. The critical circles are defined such that the angle between the radius vector pointing to a point on the critical circle and the radius vector pointing to its closest point on the common secondary circle is γ. So, the nearby secondary circle lies on a spherical segment (see Figure 15) containing the common secondary circle and delimited by the two critical circles (red circles in Figure 14 and Figure 15). In other words, the angle between the radius vector pointing to the primary point P and the radius vector pointing to its closest point on the common secondary circle is less than γ. Hence, the orthodromic distance (great circle distance) of the primary point P to each point on the common secondary circle is upper-bounded by R·γ, where R is the radius of the sphere.

Figure 15.

Figure 15

Spherical segment defined by the lower and higher critical circles (red). The black circle is the common secondary circle.

As shown in Appendix A, γ can be readily expressed in terms of the almost-equal-sized cellquantization parameters, ΔS and Δθ. For a unit sphere

γ12(Δθ)2+ΔSΔθ2 (17)

In this case γ is approximately half of the diagonal of the almost-equal-sized cell. For a sphere of radius R, ΔS in Equation (17) should be scaled down by R2.

To conclude, the primary point of which the primary circle votes for a cell centered at (θmax,φmax) is located on the spherical segment defined by the cell center. The orthodromic distance between the primary point and the common secondary circle (defined by the cell center) is upper-bounded by R·γ, where R is the sphere radius and γ is the central angle between the radius vector (θmax,φmax) and one of the radius vectors (θmax±Δθ/2,φmax±Δφk/2) pointing at the cell corners, expressible in terms of the almost-equal-sized cell area.

6.4. Improved Algorithm for General (Radius r) Circle Detection on a Sphere

Consider the problem of general (any given radius r) circle detection on a sphere, as presented in Section 5. We now apply the almost-equal-sized cell quantization scheme, and vote for all cells intersected by the voting curve. For each primary point in the dataset, the algorithm first calculates the limiting values of θ, and loops over all multiples of Δθ between the limiting values θlimI,II. For each θ, it computes the φ[0,2π) coordinates of the points A and B by substituting θ±Δθ/2 in Equation (8). It then increments all the accumulators which correspond to the discrete points with θ and φ[φA, φB]. Finally, the accumulator (θmax,φmax) with the maximal reading indicates the spherical circle of radius r passing through the largest subset of (primary) points in the data-set. This leads to Algorithm 3:

Note that the accumulator array M in this algorithm is no longer a rectangular matrix. The azimuthal step between adjacent accumulators in the θi layer is θ-dependent and equals Δφi. Therefore, the number of accumulators in each θi is different. Figure 16 (left) shows the accumulator array in the θφ plane. In Figure 16 (right), the accumulators are represented by identical rectangles, where the i axis represents the nearest integer multiple of Δθ and the j axis represents the nearest integer multiple of Δφi.

Algorithm 3: Improved general circle detection on a sphere

Initialize the accumulator array M with zeros.

Normalize the radius r by the sphere radius R.

Calculate d by Equation (2).

For each primary point 1 to N

      Calculate θlimI,II[0,π) by Equation (12).

      For each θ=i·Δθ (iZ) from min{θlimI,II} until max{θlimI,II}:

            For both φI and φII in Equation (8):

                  1. Calculate Δφi by Equation (14).

                  2. Calculate φAI and φBII by substituting θ±Δθ2 in Equation (8).

                  3. Choose n such that φA=φAI,II[0,2π) and φB=φBI,II[0,2π)

                  4. Round φA and φB to the nearest integer multiples of Δφi.

                  5. Increment the accumulators from to (φA,θ) to (φB,θ)

Find θmax and φmax corresponding to the entry with the largest accumulation in M.

Figure 16.

Figure 16

Two illustrations of the accumulator array M with almost-equal-sized cell quantization. Left: The accumulators tessellating the θφ plane. Right: Accumulators represented by identical rectangles, where the i axis represents the nearest integer multiple of Δθ and the j axis represents the nearest integer multiple of Δφi.

7. Great Circle Examples

What is the great circle on planet Earth that passes through the largest number of airports? Furthermore, what is the great circle that passes through the largest number of cities? We answer these questions using the proposed algorithms, relying on city [24] and airport [25] databases.

7.1. Uniform Quantization in the Plane (Algorithm 1) Examples

  • (1)

    We execute Algorithm 1, taking the world’s major airports (red dots in Figure 17) as input primary points (a total of 617 points). The parameter space is discretized with Δφ=Δθ=0.5. The great circle that passes through the maximum number of airports (blue circle in Figure 17) is on the great circle plane with normal θmax=55.25,φmax=151.25 and visits 29 airports, listed in Appendix B. Note that here and in the following, the number of digits after the decimal point in θmax and φmax relates to the location of the cell center. Obviously, the accuracy of the detected circle parameters follows from the cell size, i.e., from Δθ and Δφ. In order to find the circle passing through the largest number of remaining airports (excluding the 29 airports associated with the first maximum), we identify all primary points of which the voting contributed to the first maximum and remove their votes (unvote [5,6,7]). The new maximum represents the great circle passing through the largest subset of remaining (primary) points in the data-set. It lies on the great circle plane with normal θmax2=54.75,φmax2=157.75 and visits 28 different airports.

  • (2)

    We again execute Algorithm 1, this time taking 12,960 world cities (red dots in Figure 18) as input primary points. The parameter space is discretized with Δφ=Δθ=0.25. The great circle (blue circle in Figure 18) that passes through the maximum number of cities is on the great circle plane with normal θmax=53.625,φmax=156.375 and visits 397 different cities. The great circle that passes through the maximum number of remaining cities (i.e., the maximum after unvoting) is on the great circle plane with normal θmax2=72.875,φmax2=18.375 and visits 321 cities.

  • (3)

    We execute the algorithm in order to find the great circle that passes through a specific airport and the maximum number of other airports. Instead of searching for the maximum value in all the accumulators, we search only in accumulators along the θ(φ) curve corresponding to the specific airport. This reduces the computation time, since we search in Nφ instead of Nφ·Nθ accumulators.

    Taking Cape Town International Airport as the specific airport, the great circle that passes through Cape Town International Airport and through the maximum number of other airports is defined by the normal direction θmax=84.25,φmax=104.75 (blue circle in Figure 19) and visits 16 different airports, listed in Appendix C. In this case, the discretization of the parameter space is Δφ=Δθ=0.5. The great circle that passes through Cape Town International Airport and through the maximum number of remaining airports (the maximum after unvoting, i.e., excluding the airports associated with the first maximum) is on the great circle plane with normal θmax2=37.75,φmax2=48.75 and visits 13 different airports.

Figure 17.

Figure 17

Executing Algorithm 1 on the airport database. (Left) The blue great circle passes through the maximum number of airports (red dots). The red great circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.

Figure 18.

Figure 18

Executing Algorithm 1 on the city database. (Left) The blue great circle passes through the maximum number of cities (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.

Figure 19.

Figure 19

(Left) Detecting the great circle (blue) passing through Cape Town International Airport and through the maximum number of other airports, using uniform quantization in the plane. The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M along the θ(φ) curve corresponding to Cape Town airport, showing the parameters of the two great circles.

7.2. Almost-Equal-Sized Cell Quantization Examples

We now address the same great-circle detection tasks using almost-equal-sized cell quantization. To achieve this, we apply Algorithm 3 (general circle detection) with r=R hence d=0.

  • (1)

    We execute Algorithm 3 with d=0, taking the world’s major airports as primary input points. We set Δθ=0.5 and ΔS=π360·π360=π2129,600[Rad2], which yields accuracy similar to the worst-case accuracy (at θ=π/2) in the above uniform quantization example. The great circle (the blue circle in Figure 20) that passes through the maximum number of airports is on the great circle plane with normal θmax=53.75, φmax=156.4544. It visits 30 different airports, listed in Appendix D. The great circle that passes through the largest number of remaining airports (the maximum after unvoting) is on the great circle plane with θmax2=124.25,φmax2=331.8655 and visits 27 airports.

  • (2)

    We execute Algorithm 3 with d=0, taking 12,960 world cities (red dots in Figure 18) as input primary points. We set Δθ=0.25 and ΔS=π720·π720=π2518,400[Rad2]. The great circle (the blue circle in Figure 21) that passes through the maximum number of cities is on the great circle plane with normal θmax=53.625,φmax=156.3934 and visits 425 cities. The great circle that passes through the maximum number of remaining cities (the maximum after unvoting) is on the great circle plane with normal θmax2=72.375,φmax2=18.7609 and visits 335 cities.

  • (3)

    We execute Algorithm 3 with d=0 in order to find the great circle that passes through a specific airport and through the maximum number of other airports. Instead of searching for the maximum value in all the accumulators, we search only in accumulators along the θ(φ) curve corresponding to the specific airport. We again take Cape Town International Airport as the specific airport, now with Δθ=0.5 and ΔS=π360·π360=π2129,600[Rad2]. The great circle (the blue circle in Figure 22) that passes through Cape Town International Airport and through the maximum number of other airports is defined by the normal direction θmax=37.75,φmax=49.3878, and visits 15 different airports listed in Appendix E. The great circle that passes through the Cape Town International Airport and through the maximum number of remaining airports (the maximum after unvoting, i.e., excluding the airports associated with the first maximum) is on the great circle plane with normal θmax2=84.25,φmax2=104.8324 and visits 14 different airports.

Figure 20.

Figure 20

Executing Algorithm 3 on the airport database: (Left) The blue great circle passes through the maximum number of airports (red dots). The red great circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.

Figure 21.

Figure 21

Executing Algorithm 3 on the city database. (Left) The blue great circle passes through the maximum number of cities (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two great circles.

Figure 22.

Figure 22

(Left) Detecting the great circle (blue) passing through Cape Town International Airport and passing through the maximum number of other airports, using almost-equal-sized cell quantization. The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M along the θ(φ) curve corresponding to Cape Town airport, showing the parameters of the two great circles.

The number of data points (airports or cities) associated with the great circle detected depends on the size of the parameter-space quantization cells, i.e., on the quantization level. For the examples in this subsection (almost-equal-sized cell quantization), the dependence is presented in Appendix F.

The differences between the results obtained with uniform quantization in the plane and the those achieved using almost-equal-sized cell quantization are due to the non-equal cell sizes on the sphere yielded by uniform quantization in the plane. Referring to Figure 23, with uniform quantization in the plane (Figure 23 (left)), cells that are close to the equator are larger than cells close to the poles. In contrast, with almost-equal-sized cell quantization (Figure 23 (right)), all cells have approximately the same size. In the above experiments, we chose ΔS such that the smallest Δφk in the almost-equal-sized quantization scheme was equal to Δφ used in uniform quantization in the plane. Thus, with almost-equal-sized quantization, the size of the cell on the sphere is larger or equal to that obtained using uniform quantization in the plane. In other words, given cell coordinates θmax and φmax on the sphere, the cell at these coordinates using almost-equal-sized cell quantization is larger or equal in area to the cell at the same coordinates using uniform quantization in the plane. Thus, although the great circle on planet Earth that passes through the largest number of cities is about θmax=53.625,φmax=156.125 using both quantization schemes, with uniform quantization in the plane it is associated with 397 cities, whereas with almost-equal-sized cell quantization the number of cities is 425.

Figure 23.

Figure 23

(Left) Cells corresponding to uniform quantization in the plane; cells close to the equator are larger than cells close to the poles. Corner circles (red) of cells closer to the pole are closer to each other than corner circles of cells closer to the equator. (Right) Almost-equal-sized cell quantization: all cells are of approximately the same size, so the spherical segments between the upper and lower critical circles (blue) cover similar areas.

8. General (Small) Circle Examples

In the previous section we found great circles on planet Earth passing through the largest possible number of airports or cities. In this section, we detect small circles of a given radius r that visit as many airports or cities as possible. We use algorithm 3 (almost-equal-sized cell quantization). We normalize the radius of the sphere (planet earth) to R=1; hence, 0<r<1.

  • (1)

    We execute algorithm 3 with r=0.25 (d0.968), taking the world’s largest airports as input primary points. We set Δθ=0.5 and ΔS=π360·π360=π2129,600[Rad2]. The circle of radius r=0.25 that passes through the maximum number of airports (the blue circle in Figure 24) is on the circle plane with normal θmax=47.75,φmax=256.998 and visits 20 large airports. The circle of radius r=0.25 that passes through the largest number of remaining airports (red circle in Figure 24, corresponding to the maximum after unvoting) is on the circle plane with normal θmax2=40.75, φmax2=269.2340 and visits 19 different airports.

  • (2)

    We now execute algorithm 3 with r=0.5 (d0.866), again taking the world’s largest airports as input primary points. We set Δθ=0.5 and ΔS=π360·π360=π2129,600[Rad2]. The circle of radius r=0.5 that passes through the maximum number of airports (the blue circle in Figure 25) is on the circle plane with normal θmax=27.25, φmax=313.6364 and visits 20 large airports. The circle of radius r=0.5 that passes through the largest number of remaining airports (red circle in Figure 25, corresponding to the maximum after unvoting) is on the circle plane with normal θmax2=45.25,φmax2=313.8552 and visits 19 different airports.

  • (3)

    We execute algorithm 3 with r=0.125 (d0.992), this time taking the input primary points from the city database. We set Δθ=0.5 and ΔS=π360·π360=π2129,600[Rad2]. The circle of radius r=0.125 that passes through the maximum number of cities (the blue circle in Figure 26) is on the circle plane with normal θmax=43.7500, φmax=280.1205 and visits 616 cities. The circle of radius r=0.125 that passes through the largest number of remaining cities (the black circle in Figure 26, corresponding to the maximum after unvoting) is on the circle plane with normal θmax2=52.7500,φmax2=270.4712 and visits 386 cities.

  • (4)

    We execute algorithm 3, now with r=0.5 (d0.866), taking the input primary points from the city database. We set Δθ=0.5 and ΔS=π360·π360=π2129,600[Rad2]. The circle of radius r=0.5 that passes through the maximum number of cities (the blue circle in Figure 27) is on the circle plane with normal θmax=26.7500, φmax=251.6667 and visits 568 cities. The circle of radius r=0.5 that passes through the largest number of remaining cities (the black circle in Figure 26, corresponding to the maximum after unvoting) is on the circle plane with normal θmax2=72.2500,φmax2=251.6327 and visits 523 cities.

Figure 24.

Figure 24

Executing Algorithm 3 with r=0.25 on the airport database. (Left) The blue circle passes through the maximum number of airports (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.

Figure 25.

Figure 25

Executing Algorithm 3 with r=0.5 on the airport database. (Left) The blue circle passes through the maximum number of airports (red dots). The red circle corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.

Figure 26.

Figure 26

Executing Algorithm 3 with r=0.125 on the city database. (Left) The blue circle passes through the maximum number (616) of cities (red dots). The black circle, passing through 386 cities, corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.

Figure 27.

Figure 27

Executing Algorithm 3 with r=0.5 on the city database. (Left) The blue circle passes through the maximum number (568) of cities (red dots). The red circle, passing through 523 cities, corresponds to the second maximum, following the unvoting process. (Right) Heat plot of the accumulator array M, showing the parameters of the two circles.

The experimental results in Section 7 and Section 8 were obtained using Matlab on a low-end personal computer with i5-8265U 1.6GHz CPU and 8.00 GB RAM. The Matlab computing time for the various experiments is summarized in Table 1. As expected, computing time was roughly proportional to the number of data points, and increased as the parameter space quantization was refined.

Table 1.

Total computing time and computing time per-point (msec) using Matlab on a low-end PC. Results are reported for great-circle detection (r=1) and small-circle detection (r<1) and for different parameter-space resolution values (Δθ and Δφ for Algorithm 1, Δθ and ΔS for Algorithm 3).

Dataset Algorithm 1 Algorithm 3
Δθ Δφ Computing
Time (ms)
Δθ ΔS Computing
Time (ms)
Total
Time
Avg. per
Point
Total
Time
Avg. per
Point
Airports 2 2 366 0.43 2 (π90)2 595 0.93
r=1 1 1 531 0.71 1 (π180)2 791 1.33
0.5 0.5 1298 1.98 0.5 (π360)2 1777 3.02
(616 pts.) 0.25 0.25 3321 5.16 0.25 (π720)2 3668 5.96
Cities 2 2 3644 0.29 2 (π90)2 6755 0.53
r=1 1 1 6174 0.47 1 (π180)2 10,225 0.75
0.5 0.5 22,779 1.64 0.5 (π360)2 26,231 2.07
(12,959 pts.) 0.25 0.25 64,385 5.02 0.25 (π720)2 72,061 5.56
Cities - - - - 2 (π90)2 5972 0.48
r=0.5 - - - - 1 (π180)2 8343 0.70
- - - - 0.5 (π360)2 23,403 1.98
(12,959 pts.) - - - - 0.25 (π720)2 64,078 4.97
Cities - - - - 2 (π90)2 5562 0.43
r=0.125 - - - - 1 (π180)2 7630 0.57
- - - - 0.5 (π360)2 22,423 1.71
(12,959 pts.) - - - - 0.25 (π720)2 58,805 4.53

9. Conclusions

In this paper we present the first comprehensive solution to the problem of detecting circles, great and small, in a spherical set of points. The suggested approach follows the Hough transform methodology and addresses the fundamental issues associated with Hough algorithms, including parameterization, parameter-space quantization, and analysis of the quantization-induced error. The time-complexity of the proposed algorithms is linear in the number of data-points. The required memory size is simply the number of cells in the accumulator array, which is bounded and two-dimensional in the case of great circles and in the case of small circles of known radius.

Potential applications for this research arise in cases where the data are naturally spherical and where circular features need to be detected. The planetary and geophysical sciences provide numerous examples, including crater and volcano detection. Computer vision applications arise in omnidirectional image analysis, including fisheye image analysis, where spherical image representations are ubiquitous.

The proposed method can be readily extended to the detection of circles of unknown radius in a spherical set of points. The additional unknown can be accommodated either by sequentially applying the known-radius algorithm with different radii, or by adding a dimension representing the unknown radius to the accumulator array.

Appendix A. Expressing the Angle γ in Terms of ΔS and Δθ

In this appendix we express the angle γ between the radius vector pointing at the cell center (θmax,φmax) and that pointing to any of its corners, such as (θmax+Δθ/2,φmax+Δφk/2).

Assuming a unit sphere, the chord length between the two vector tips is

C=(Δx)2+(Δy)2+(Δz)2

where

Δx=sinθcosφsin(θ+Δθ2)cos(φ+Δφk2)Δy=sinθsinφsin(θ+Δθ2)sin(φ+Δφk2)Δz=cosθcos(θ+Δθ2)

Applying the first-order Taylor series approximation to sin(θ+Δθ2) and cos(φ+Δφk2),

ΔxΔθ2cosθcosφ+Δφk2sinθsinφ+ΔφkΔθ4cosθsinφΔyΔθ2cosθsinφΔφk2sinθcosφ+ΔφkΔθ4cosθcosφΔz+Δθ2sinθ

The third terms in Δx and Δy are negligible (second-order) compared to the other (first-order) terms. Substituting Equation (14),

ΔxΔθ2cosθcosφ+ΔS2ΔθsinφΔyΔθ2cosθsinφΔS2ΔθcosφΔz+Δθ2sinθ

Squaring, we obtain

(Δx)2(Δθ)24cos2θcos2φ+(ΔS)24(Δθ)2sin2φΔS4cosθcosφsinφ(Δy)2(Δθ)24cos2θsin2φ+(ΔS)24(Δθ)2cos2φ+ΔS4cosθsinφcosφ(Δz)2(Δθ)24sin2θ

Substituting in the definition of C,

C(Δθ)24cos2θ(cos2φ+sin2φ)+sin2θ+(ΔS)24(Δθ)2sin2φ+cos2φ12(Δθ)2+ΔSΔθ2

Thus, the central angle γ between the two vectors is

γ=arcsinCC12(Δθ)2+ΔSΔθ2

Appendix B. The 29 Airports Located on the Great Circle That Passes through the Maximum Number of Airports—Uniform Quantization

Airport Name Latitude Longitude Δγ[O]
1 Prishtina International Airport 42.572800 21.035801 0.289202
2 Pierre Elliott Trudeau Airport (Montreal) 45.470600 −73.740799 0.066198
3 Brussels South Charleroi Airport 50.459202 4.453820 0.108124
4 Stuttgart Airport 48.689899 9.221960 0.032867
5 Karlsruhe Baden-Baden Airport 48.779400 8.080500 0.265290
6 Luton Airport (London) 51.874699 −0.368333 0.120182
7 Heathrow Airport (London) 51.470600 −0.461941 0.274561
8 Stansted Airport (London) 51.884998 0.235000 0.276526
9 RAF (Brize Norton) 51.750000 −1.583620 0.282675
10 Findel International Airport (Luxembourg) 49.623333 6.204444 0.116230
11 Ramstein Air Base 49.436901 7.600280 0.153979
12 Buffalo Niagara International Airport 42.940498 −78.732201 0.087453
13 John Glenn Columbus International Airport 39.998001 −82.891899 0.134049
14 Corpus Christi International Airport 27.770399 −97.501198 0.120094
15 Cincinnati Northern Kentucky Airport 39.048801 −84.667801 0.086447
16 Erie International Tom Ridge Field 42.083127 −80.173867 0.101441
17 William P Hobby Airport (Houston) 29.645399 −95.278900 0.141916
18 George Bush Intercontinental Airport (Houston) 29.984400 −95.341400 0.121704
19 Rickenbacker International Airport (Columbus) 39.813801 −82.927803 0.253096
20 Memphis International Airport 35.042400 −89.976700 0.199325
21 Monroe Regional Airport 32.510899 −92.037697 0.292742
22 Greater Rochester International Airport 43.118900 −77.672401 0.256870
23 Louisville International Standiford Field 38.174400 −85.736000 0.020793
24 Paphos International Airport 34.717999 32.485699 0.020407
25 RAF (Akrotiri) 34.590401 32.987900 0.189568
26 Zagreb Airport 45.742901 16.068800 0.085825
27 Joe Punik Airport (Ljubljana) 46.223701 14.457600 0.158587
28 Don Miguel International Airport (Guadalajara) 20.521799 −103.310997 0.288277
29 Queen Alia International Airport (Amman) 31.722601 35.993198 0.086299

Appendix C. The 16 Airports Located on the Great Circle That Passes through Cape Town and the Maximum Number of Other Airports—Uniform Quantization

Airport Name Latitude Longitude Δγ[O]
1 Cape Town International Airport −33.964802 18.601700 0.030981
2 Tunis Carthage International Airport 36.851002 10.227200 0.154490
3 Munster Osnabrck Airport 52.134602 7.684830 0.227835
4 Cologne Bonn Airport 50.865898 7.142740 0.310424
5 Dortmund Airport 51.518299 7.612240 0.085782
6 Karlsruhe Baden-Baden Airport 48.779400 8.080500 0.045184
7 Bergen Airport Flesland 60.293400 5.218140 0.307745
8 Stavanger Airport Sola 58.876701 5.637780 0.247560
9 Ramstein Air Base 49.436901 7.600280 0.253077
10 Hosea Kutako Airport (Windhoek) −22.479900 17.470900 0.305683
11 Ndjili International Airport (Kinshasa) −4.385750 15.444600 0.250095
12 Malpensa International Airport (Milan) 45.630600 8.728110 0.078630
13 Genoa Cristoforo Colombo Airport (Genova) 44.413300 8.837500 0.177389
14 Milano Linate Airport (Milan) 45.445099 9.276740 0.275585
15 Zurich Airport (Zurich) 47.464699 8.549170 0.067036
16 Hammamet International Airport (Enfidha) 36.075833 10.438611 0.083588

Appendix D. The 30 Airports Located on the Great Circle That Passes through the Maximum Number of Airports—Almost-Equal-Sized Cell Quantization

Airport Name Latitude Longitude Δγ[O]
1 South Charleroi Airport (Brussels) 50.459202 4.453820 0.154079
2 Munich Airport 48.353802 11.786100 0.267122
3 Stuttgart Airport 48.689899 9.221960 0.199825
4 Gatwick Airport (London) 51.148102 −0.190278 0.226057
5 Heathrow Airport (London) 51.470600 −0.461941 0.025712
6 RAF (Fairford) 51.682201 −1.790030 0.026802
7 RAF (Brize Norton) 51.750000 −1.583620 0.076266
8 Shannon Airport 52.702000 −8.924820 0.141270
9 Findel International Airport (Luxembourg) 49.623333 6.204444 0.177932
10 Ramstein Air Base 49.436901 7.600280 0.022154
11 Joint Base Andrews (Camp Springs) 38.810799 −76.866997 0.272409
12 Hartsfield Jackson Airport (Atlanta) 33.636700 −84.428101 0.047392
13 Asheville Regional Airport 35.436199 −82.541801 0.251562
14 Bradley International Airport (Hartford) 41.938900 −72.683197 0.156189
15 General Edward Logan Airport (Boston) 42.364300 −71.005203 0.253187
16 Thurgood Marshall Airport (Baltimore) 39.175400 −76.668297 0.093830
17 Ronald Reagan Airport (Washington) 38.852100 −77.037697 0.154835
18 Newark Liberty International Airport 40.692501 −74.168701 0.136928
19 Spartanburg International Airport (Greenville) 34.895699 −82.218903 0.321778
20 Washington Dulles International Airport 38.944500 −77.455803 0.126876
21 La Guardia Airport (New York) 40.777199 −73.872597 0.210181
22 Dobbins Air Reserve Base (Marietta) 33.915401 −84.516296 0.296766
23 Montgomery Regional Airport 32.300598 −86.393997 0.280931
24 Mobile Regional Airport 30.691200 −88.242798 0.310154
25 Philadelphia International Airport 39.871899 −75.241096 0.261567
26 Blacksburg Regional Airport (Roanoke) 37.325500 −79.975403 0.225211
27 Sofia Airport 42.696693 23.411436 0.204411
28 Nikola Tesla Airport (Belgrade) 44.818401 20.309099 0.245757
29 King Khaled International Airport (Riyadh) 24.957600 46.698799 0.135812
30 atl 33.137551 −84.375000 0.338159

Appendix E. The 15 Airports Located on the Same Great Circle That Passes through Cape Town and the Maximum Number of Other Airports—Almost-Equal-Sized Cell Quantization

Airport Name Latitude Longitude Δγ[O]
1 Cape Town International Airport −33.964802 18.601700 0.317152
2 Albuquerque International Sunport 35.040199 −106.609001 0.225185
3 Fort Worth Alliance Airport 32.987598 −97.318802 0.072202
4 Cannon Air Force Base (Clovis) 34.382801 −103.321999 0.143119
5 Dallas Love Field (Dallas) 32.847099 −96.851799 0.072541
6 Dallas Fort Worth International Airport 32.896801 −97.038002 0.066215
7 Hollywood Airport (Fort Lauderdale) 26.072599 −80.152702 0.147474
8 Meacham International Airport (Fort Worth) 32.819801 −97.362396 0.098141
9 Biloxi International Airport (Gulfport) 30.407301 −89.070099 0.286861
10 Metropolitan Oakland International Airport 37.721298 −122.221001 0.268331
11 San Francisco International Airport 37.618999 −122.375000 0.155643
12 Norman Y. Mineta Airport (San Jose) 37.362598 −121.929001 0.067841
13 Sarasota Bradenton International Airport 27.395399 −82.554398 0.029516
14 Lynden Pindling Airport (Nassau) 25.039000 −77.466202 0.112437
15 Luis Munoz Marin Airport (San Juan) 18.439400 −66.001801 0.061461

Appendix F. The Dependence of the Number of Points Associated with the Great Circle Detected on the Parameter Space Quantization Level

Dataset Quantization Number of Points Parameters of the
Level Associated with the Great Circle Detected
(Degrees) Great Circle Detected (Degrees)
Δθ ΔS φmax θmax
Cities 2 (π/90)2 1703 156.2500 53
1 (π/180)2 1177 155.7093 53.5000
0.5 (π/360)2 729 156.4544 53.7500
0.25 (π/720)2 425 156.3934 53.625
0.2 (π/900)2 359 156.4300 53.7000
0.1 (π/1800)2 198 155.7920 53.2500
0.05 (π/3600)2 120 145.0215 48.0750
Airports 2 (π/90)2 78 156.2500 53
1 (π/180)2 50 157.8840 54.5000
0.5 (π/360)2 30 156.4544 53.7500
0.25 (π/720)2 19 150.7367 55.1250
0.166 (π/1080)2 15 154.3911 52.2500
0.125 (π/1440)2 13 155.7198 53.4375
0.1 (π/1800)2 12 151.2559 55.3500
0.05 (π/3600)2 10 154.8403 56.1750
Airports through Cape Town 2 (π/90)2 39 49.3805 39
1 (π/180)2 24 49.3151 37.5000
0.5 (π/360)2 15 49.3878 37.7500
0.25 (π/720)2 10 49.0724 37.8750

Author Contributions

Conceptualization, N.K.; Formal analysis, B.I.; Investigation, B.I.; Methodology, N.K.; Software, B.I.; Supervision, N.K.; Writing—original draft, B.I.; Writing—review and editing, N.K. All authors have read and agreed to the published version of the manuscript.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

Funding Statement

This research received no external funding.

Footnotes

Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

References

  • 1.Fischler M.A., Bolles R.C. Random Sample Consensus: A paradigm for model fitting with applications to image analysis and Automated Cartography. Commun. Assoc. Comput. Mach. ACM. 1981;24:381–396. doi: 10.1145/358669.358692. [DOI] [Google Scholar]
  • 2.Duda R.O., Hart P.E. Use of the Hough transformation to detect lines and curves in pictures. Commun. Assoc. Comput. Mach. ACM. 1972;15:11–15. doi: 10.1145/361237.361242. [DOI] [Google Scholar]
  • 3.Kiryati N., Bruckstein A.M. Heteroscedastic Hough Transform (HtHT): An efficient Method for Robust Line Fittingin the ‘Errors in the Variables’ Problem. Comput. Vis. Image Underst. 2000;78:69–83. doi: 10.1006/cviu.1999.0828. [DOI] [Google Scholar]
  • 4.López-González G., Arana-Daniel N., Bayro-Corrochano E. Conformal Hough Transform for 2D and 3D Cloud Points. In: Ruiz-Shulcloper J., di Baja G.S., editors. Progress in Pattern Recognition, Image Analysis, Computer Vision, and Applications (CIARP 2013), Lecture Notes in Computer Science. Volume 8258 Springer; Berlin/Heidelberg, Germany: 2013. [Google Scholar]
  • 5.Gerig G., Klein F. Fast contour identification through efficient Hough Transform and simplified interpretation strategy; Proceedings of the International Conference on Pattern Recognition (ICPR); Paris, France. 27–31 October 1986; pp. 498–500. [Google Scholar]
  • 6.Gerig G. Linking image-space and accumulator-space: A new approach for object recognition; Proceedings of the 1st International Conference on Computer Vision (ICCV); London, UK. 8–14 June 1987; pp. 112–117. [Google Scholar]
  • 7.Matas J., Galambos C., Kittler J. Progressive Probabilistic Hough Transform; Proceedings of the British Machine Vision Conference (BMVC); Southampton, UK. 14–17 September 1998; pp. 26.1–26.10. [Google Scholar]
  • 8.Vasseur P., Moaddib E.-M. Central Catadioptric Line Detection; Proceedings of the British Machine Vision Conference (BMVC); London, UK. 7–9 September 2004. [Google Scholar]
  • 9.Torii A., Imiya A. The randomized-Hough-transform-based method for great-circle detection on sphere. Pattern Recognit. Lett. 2007;28:1186–1192. doi: 10.1016/j.patrec.2007.02.002. [DOI] [Google Scholar]
  • 10.Boutteau R., Savatier X., Bonardi F., Ertaud J.-Y. Road-line detection and 3D reconstruction using fisheye cameras; Proceedings of the IEEE 16th International Conference on Intelligent Transportation Systems (ITSC); The Hague, The Netherlands. 6–9 October 2013. [Google Scholar]
  • 11.Barnard S.T. Interpreting perspective images. Artif. Intell. 1983;21:435–462. doi: 10.1016/S0004-3702(83)80021-6. [DOI] [Google Scholar]
  • 12.Quan L., Mohr R. Determining persepctive structures using hierarchical Hough transform. Pattern Recognit. Lett. 1989;9:279–286. doi: 10.1016/0167-8655(89)90006-8. [DOI] [Google Scholar]
  • 13.Lutton E., Maitre H., Lopez-Krahe J. Contribution to the determination of vanishing points using Hough transform. IEEE Trans. Pattern Anal. Mach. Intell. 1994;16:430–438. doi: 10.1109/34.277598. [DOI] [Google Scholar]
  • 14.Ying X., Hu Z. Catadioptric line features detection using Hough transform; Proceedings of the 17th International Conference on Pattern Recognition (ICPR); Cambridge, UK. 26 August 2004; pp. 839–842. [Google Scholar]
  • 15.Ericson S., Astrand B. Row-detection on an agricultural field using omnidirectional camera; Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems; Taipei, Taiwan. 18–22 October 2010. [Google Scholar]
  • 16.Pacey A., Macpherson C.G., McCaffrey K.J.W. Linear volcanic segments in the central Sunda Arc, Indonesia, identified using Hough Transform analysis: Implications for arc lithosphere control upon volcano distribution. Earth Planet. Sci. Lett. 2013;369–370:24–33. doi: 10.1016/j.epsl.2013.02.040. [DOI] [Google Scholar]
  • 17.Andikagumi H., Macpherson C.G., McCaffrey K.J.W. Upper plate stress controls the distribution of Mariana arc volcanoes. J. Geophys. Res. Solid Earth. 2020;125:e2019JB017391. doi: 10.1029/2019JB017391. [DOI] [Google Scholar]
  • 18.Wessel P. Hotspotting: Principles and properties of a plate tectonic Hough transform. Geochem. Geophys. Geosyst. 2008;9:Q08004. doi: 10.1029/2008GC002058. [DOI] [Google Scholar]
  • 19.Snyder J.P. Flattening the Earth: Two Thousand Years of Map Projections. The University of Chicago Press; Chicago, IL, USA: 1993. [Google Scholar]
  • 20.Klette R., Rosenfeld A. Digital Geometry: Geometric Methods for Digital Picture Analysis. Elsevier; Amsterdam, The Netherlands: 2004. (Section 1.1.4) [Google Scholar]
  • 21.Koplowitz J. On the performance of chain codes for quantization of line drawings. IEEE Trans. Pattern Anal. Mach. Intell. PAMI. 1981;3:181–185. doi: 10.1109/TPAMI.1981.4767075. [DOI] [PubMed] [Google Scholar]
  • 22.Kiryati N., Lindenbaum M., Bruckstein A.M. Digital or analog Hough transform? Pattern Recognit. Lett. 1991;12:291–297. doi: 10.1016/0167-8655(91)90412-F. [DOI] [Google Scholar]
  • 23.Santalo L. Encyclopedia of Mathematics and Its Applications. Volume 1 Addison-Wesley; Boston, MA, USA: 1976. Integral Geometry and Geometric Probability. [Google Scholar]
  • 24.World Cities Coordinates Data Set. [(accessed on 14 October 2019)]. Available online: https://simplemaps.com/data/world-cities.
  • 25.Airports Coordinates Data Set. [(accessed on 14 October 2019)]. Available online: https://www.partow.net/miscellaneous/airportdatabase/

Associated Data

This section collects any data citations, data availability statements, or supplementary materials included in this article.

Data Availability Statement

Not applicable.


Articles from Journal of Imaging are provided here courtesy of Multidisciplinary Digital Publishing Institute (MDPI)

RESOURCES