Small circles from center and perimeter

`[lat,lon] = scircle2(lat1,lon1,lat2,lon2)`

[lat,lon] = scircle2(lat1,lon1,lat2,lon2,ellipsoid)

[lat,lon] = scircle2(lat1,lon1,lat2,lon2,* units*)

[lat,lon] = scircle2(lat1,lon1,lat2,lon2,ellipsoid,

`units`

[lat,lon] = scircle2(lat1,lon1,lat2,lon2,ellipsoid,

`units`

[lat,lon] = scircle2(

`track`

mat = scircle2(...)

mat = [lat lon]

`[lat,lon] = scircle2(lat1,lon1,lat2,lon2)`

computes
small circles (on a sphere) with centers at the points `lat1,lon1`

and
points on the circles at `lat2,lon2`

. The inputs
can be scalar or column vectors.

`[lat,lon] = scircle2(lat1,lon1,lat2,lon2,ellipsoid)`

computes
the small circle on the ellipsoid defined by the input `ellipsoid`

,
rather than by assuming a sphere. `ellipsoid`

is
a `referenceSphere`

, `referenceEllipsoid`

, or `oblateSpheroid`

object, or a vector
of the form `[semimajor_axis eccentricity]`

. Default
is a unit sphere.

`[lat,lon] = scircle2(lat1,lon1,lat2,lon2,`

and * units*)

`[lat,lon] = scircle2(lat1,lon1,lat2,lon2,ellipsoid,``units`

)

are
valid calling forms, which use the input string `units`

`units`

`'degrees'`

is assumed.`[lat,lon] = scircle2(lat1,lon1,lat2,lon2,ellipsoid,`

uses
the scalar input * units*,npts)

`npts`

to determine the number of
points per track computed. The default value of `npts`

is
100.`[lat,lon] = scircle2(`

uses
the * track*,...)

`track`

`track`

'
= 'gc'

, then small circles are computed. If `track`

=
'rh'

, then circles with radii of constant rhumb line distance
are computed. If the `track`

`'gc'`

is
assumed.`mat = scircle2(...)`

returns a single output
argument where `mat = [lat lon]`

. This is useful
if a single circle is computed.

Multiple circles can be defined from a single center point by
providing scalar `lat1,lon1`

inputs and column vectors
for the points on the circumference, `lat2,lon2`

.

A *small circle* is the locus of all points
an equal surface distance from a given center. For true small circles,
this distance is always calculated in a great circle sense. However,
the `scircle2`

function allows a locus to be calculated
using distances in a rhumb line sense as well. An example of a small
circle is *all points exactly 100 miles from the Washington
Monument*.

Plot the locus of all points the same distance from New Delhi as Kathmandu:

axesm('mercator','MapLatlimit',[0 40],'MapLonLimit',[60 110]); load coast % For reference plotm(lat,long,'k'); % New Delhi lat1 = 29; lon1 = 77.5; % Kathmandu lat2 = 27.6; lon2 = 85.5; % Plot the cities plotm([lat1 lat2],[lon1 lon2],'b*') [latc,lonc] = scircle2(lat1,lon1,lat2,lon2); plotm(latc,lonc,'b')

Was this topic helpful?