## Documentation Center |

Surface area of polygon on sphere or ellipsoid

`area = areaint(lat,lon)area = areaint(lat,lon,ellipsoid)area = areaint(lat,lon,`

`area = areaint(lat,lon)` calculates
the spherical surface area of the polygon specified by the input vectors `lat` and `lon`.
The calculation uses a line integral approach. The output, `area`,
is the fraction of surface area covered by the polygon on a unit sphere.
To supply multiple polygons, separate the polygons by NaNs in the
input vectors. Accuracy of the integration method is inversely proportional
to the distance between lat/lon points.

`area = areaint(lat,lon,ellipsoid)` calculates
the surface area of the polygon on the ellipsoid or sphere defined
by the input `ellipsoid`, which can be a `referenceSphere`, `referenceEllipsoid`, or `oblateSpheroid` object, or a vector
of the form `[semimajor_axis eccentricity]`. The
output, `area`, is in squares units corresponding
to the units of `ellipsoid`.

`area = areaint(lat,lon,units)` uses
the units defined by the input string

`area = areaint(lat,lon,ellipsoid,units)` uses
both the inputs

Consider the area enclosed by a 30º lune from pole to pole
and bounded by the prime meridian and 30ºE. You can use the function `areaquad` to
get an exact solution:

area = areaquad(90,0,-90,30) area = 0.0833

This is 1/12 the spherical area. The more points used to define
this polygon, the more integration steps `areaint` takes,
improving the estimate. This first attempt takes a point every 30º
of latitude:

lats = [-90:30:90,60:-30:-60]'; lons = [zeros(1,7), 30*ones(1,5)]'; area = areaint(lats,lons) area = 0.0792

Now, calculate a better estimate, with one point every 1º of latitude:

lats = [-90:1:90,89:-1:-89]'; lons = [zeros(1,181), 30*ones(1,179)]'; area = areaint(lats,lons) area = 0.0833

Was this topic helpful?