# track1

Geographic track points from starting point, azimuth, and range

## Syntax

``[lattrk,lontrk] = track1(lat0,lon0,az)``
``[lattrk,lontrk] = track1(lat0,lon0,az,arclen)``
``[lattrk,lontrk] = track1(lat0,lon0,az,units)``
``[lattrk,lontrk] = track1(lat0,lon0,az,arclen,units)``
``[lattrk,lontrk] = track1(lat0,lon0,az,arclen,ellipsoid)``
``[lattrk,lontrk] = track1(lat0,lon0,az,arclen,ellipsoid,units)``
``[lattrk,lontrk] = track1(lat0,lon0,az,arclen,ellipsoid,units,npts)``
``[lattrk,lontrk] = track1(method,___)``
``mat = track1(___)``

## Description

### Track Points Along Unit Sphere

````[lattrk,lontrk] = track1(lat0,lon0,az)` finds the latitude and longitude coordinates of track points along the great circle azimuth `az` starting at the point with coordinates `lat0` and `lon0`. This syntax references the coordinates to a unit sphere and assumes that all input arguments are in degrees.```

example

````[lattrk,lontrk] = track1(lat0,lon0,az,arclen)` specifies the length of the track as the spherical distance `arclen`.```
````[lattrk,lontrk] = track1(lat0,lon0,az,units)` specifies the angle units `units` for the inputs and outputs.```
````[lattrk,lontrk] = track1(lat0,lon0,az,arclen,units)` specifies both the length of the track and the angle units.```

### Track Points Along Ellipsoid

example

````[lattrk,lontrk] = track1(lat0,lon0,az,arclen,ellipsoid)` finds track points along a geodesic on the reference ellipsoid `ellipsoid`. In most cases, this syntax assumes that `arclen` is a linear distance in the units of the semimajor axis of the reference ellipsoid.```
````[lattrk,lontrk] = track1(lat0,lon0,az,arclen,ellipsoid,units)` additionally specifies the units for the azimuth and coordinates.```
````[lattrk,lontrk] = track1(lat0,lon0,az,arclen,ellipsoid,units,npts)` additionally specifies the number of track points to find.```

example

````[lattrk,lontrk] = track1(method,___)`, where `method` is `"rh"`, calculates track points along rhumb lines. The default for `method` is `"gc"`, which calculates track points along great circles (for spheres) or geodesics (for ellipsoids).```
````mat = track1(___)` returns the latitude and longitude coordinates of the track points in the matrix `mat`.```

## Examples

collapse all

Find points along a great circle track from London to the point `600` nautical miles northwest of London. A northwest direction has an azimuth of `315` degrees. Convert `600` nautical miles to a spherical distance in degrees by using the `nm2deg` function.

```az = 315; arclen = nm2deg(600); [latgc,longc] = track1(51.5,0,az,arclen);```

Find points along a rhumb line track from London to the same point.

`[latrh,lonrh] = track1("rh",51.5,0,az,arclen);`

Compare the great circle and rhumb line tracks by displaying the track points on a map. Use a blue line for the great circle track and a red line for the rhumb line track.

```geoplot(latgc,longc,"b") hold on geoplot(latrh,lonrh,"r") geobasemap darkwater``` Create a World Geodetic System of 1984 (WGS84) reference ellipsoid with a length unit of nautical miles.

`wgs84 = wgs84Ellipsoid("nm");`

Find points along a geodesic track from London to the point `600` nautical miles northwest of London. When you specify a reference ellipsoid as input to the `track1` function, specify the arc length as a linear distance. A northwest direction has an azimuth of `315` degrees.

```arclen = 600; az = 315; [lattrk,lontrk] = track1(51.5,0,az,arclen,wgs84);```

Display the track points on a map.

```geoplot(lattrk,lontrk) geobasemap darkwater``` ## Input Arguments

collapse all

Latitude of the input point, specified as a scalar or column vector.

The sizes of `lat0` and `lon0` must match.

To find multiple tracks from a single starting point, specify `lat0` and `lon0` as scalars, `az` as a column vector, and `arclen` as a column vector or a two-column matrix.

Data Types: `single` | `double`

Longitude of the input point, specified as a scalar or column vector.

The sizes of `lat0` and `lon0` must match.

To find multiple tracks from a single starting point, specify `lat0` and `lon0` as scalars, `az` as a column vector, and `arclen` as a column vector or a two-column matrix.

Data Types: `single` | `double`

Azimuth measured clockwise from north, specified as a scalar or column vector.

To find multiple tracks from a single starting point, specify `lat0` and `lon0` as scalars, `az` as a column vector, and `arclen` as a column vector or a two-column matrix.

Data Types: `single` | `double`

Length of the track, specified as a scalar, column vector, or two-column matrix.

The units of `arclength` depend on whether you specify the `ellipsoid` argument.

• When you do not specify a reference ellipsoid as input, specify `arclen` as a spherical distance in degrees. You can specify a spherical distance in radians by additionally using the `units` argument.

• In most cases, when you specify a reference ellipsoid as input, specify `arclen` as a linear distance in the units of the semimajor axis of the ellipsoid.

To find track points in a range, specify `arclen` as a two-column matrix. The `track1` function calculates track points between the distance in the first column and the distance in the second column from the starting point.

To find multiple tracks from a single starting point, specify `lat0` and `lon0` as scalars, `az` as a column vector, and `arclen` as a column vector or a two-column matrix.

The default for `arclen` is `[]`, which finds points for the full track.

Data Types: `single` | `double`

Angle unit, specified as one of these options:

• `"degrees"` — Degrees

• `"radians"` — Radians

Data Types: `char` | `string`

Reference ellipsoid, specified as a `referenceSphere` object, a `referenceEllipsoid` object, an `oblateSpheroid` object, or a two-element vector of the form `[semimajor_axis eccentricity]`, where `semimajor_axis` is the length of the semimajor axis and `eccentricity` is the eccentricity. The values `semimajor_axis` and `eccentricity` must be of data type `double`.

The default value of `[1 0]` represents the unit sphere.

In most cases, when you specify the `ellipsoid` argument, the `track1` function assumes that `arclen` is a linear distance in the units of the semimajor axis of the reference ellipsoid. The exceptions are when `ellipsoid` is `[]` or when the semimajor axis is `0`, in which case the `track1` function assumes `arclen` is a spherical distance.

Track method, specified as one of these options:

• `"gc"``az` is a great circle azimuth (for spheres) or a geodesic azimuth (for ellipsoids).

• `"rh"``az` is a rhumb line azimuth.

Data Types: `char` | `string`

Number of track points to include in `lattrk` and `lontrk`, specified as a scalar.

Data Types: `double`

## Output Arguments

collapse all

Latitude coordinates of the track points, returned as a column vector with `npts` elements or a matrix of size `npts`-by-`length(lat0)`. The function returns `lattrk` as a column vector if `lat0` and `lon0` are scalars, and as a matrix if `lat0` and `lon0` are column vectors.

Longitude coordinates of the track points, returned as a column vector with `npts` elements or a matrix of size `npts`-by-`length(lon0)`. The function returns `lontrk` as a column vector if `lat0` and `lon0` are scalars, and as a matrix if `lat0` and `lon0` are column vectors.

Latitude and longitude coordinates of the track points, returned as a matrix equivalent to `[lattrk lontrk]`.

## Version History

Introduced before R2006a