areamat

Площадь поверхности, покрытая ненулевыми значениями в двоичной сетке данных

Синтаксис

A = areamat(BW,R)
A = areamat(BW,R,ellipsoid)
[A, cellarea] = areamat(...)

Описание

A = areamat(BW,R) возвращает площадь поверхности, покрытую элементами двоичной регулярной сетки данных BW, которые содержат значение 1 (true). BW может быть результатом логического выражения, такого как BW = (topo60c > 0). R может быть географическим объектом растровой привязки, ссылочным вектором или матрицей привязки.

Если R является географическим объектом растровой привязки, его RasterSize свойство должно быть согласовано с size(BW) и его RasterInterpretation должен быть 'cells'.

Если R является вектором-ссылкой, это должен быть вектор 1 на 3 с элементами:

[cells/degree northern_latitude_limit western_longitude_limit]

Если R является матрицей привязки, она должна быть 3 на 2 и преобразовывать индексы растровой строки и столбца в географические координаты или из них в соответствии с:

[lon lat] = [row col 1] * R

Если R является матрицей привязки, она должна задать (не вращательную, не искаженную) зависимость, в которой каждый столбец сетки данных падает вдоль меридиана, и каждая строка падает вдоль параллели. Интерполяция по ближайшему соседу используется по умолчанию. NaN возвращается для точек, выходящих за пределы сетки или для которых lat или lon содержат NaN. Все углы указаны в единицах степеней.

Область выхода A выражает площадь поверхности как часть площади поверхности сферы единичного радиуса (4 * pi), поэтому результат колеблется от 0 до 1.

A = areamat(BW,R,ellipsoid) вычисляет площадь поверхности эллипсоида или сферы, заданную входным ellipsoid, который может быть referenceSphere, referenceEllipsoid, или oblateSpheroid объект или вектор формы [semimajor_axis eccentricity]. Единицы выходного выхода, A, являются квадратом длины модулей в которой предусмотрена полумаджорная ось. Для примера, если ellipsoid заменяется на wgs84Ellipsoid('kilometers'), затем A находится в квадратных километрах. Если вы не задаете ellipsoid и R является ссылка объекта с непустым GeographicCRS свойство, затем areamat использует эллипсоид, содержащийся в Spheroid свойство geocrs объект в GeographicCRS свойство R.

[A, cellarea] = areamat(...) возвращает вектор, cellarea, описывающий область, охватываемую камерами данных в BW. Поскольку все камеры в данной строке имеют одинаковый размер, для каждой строки требуется только одно значение. Поэтому cellarea имеет размер M-by-1, где M = size(BW,1) количество строк в BW.

Примеры

свернуть все

Найти площадь поверхности в нормированных модулях части местности Земли, которая находится над уровнем моря.

Во-первых повышение загрузите растровые данные и географические камеры ссылки объект. Растр содержит высоты местности относительно среднего уровня моря. Затем создайте логический массив, представляющий рельеф местности над уровнем моря.

load topo60c
topoASL = topo60c > 0;

Найдите площадь поверхности в нормированных модулях измерения элементов массива, которые содержат true.

areamat(topoASL,topo60cR)
ans = 0.2890

Результат означает, что 28,9% земной местности находится над уровнем моря.

Найти площадь поверхности в километрах от части местности Земли, которая находится над уровнем моря.

Во-первых повышение загрузите растровые данные и географические камеры ссылки объект. Растр содержит высоты местности относительно среднего уровня моря. Затем создайте ссылку сферу для Земли и укажите ее модули как километры.

load topo60c
s = referenceSphere('earth','km');

Создайте логический массив, представляющий рельеф местности над уровнем моря.

topoASL = topo60c > 0;

Найдите площадь поверхности в километрах от элементов массива, которые содержат true.

areamat(topoASL,topo60cR,s)
ans = 1.4739e+08

Это результат означает, что приблизительно 147 миллионов квадратных километров земной местности находится над уровнем моря.

Совет

Учитывая регулярную сетку данных, которая является логической матрицей 0-1, areamat функция возвращает область, соответствующую элементам true или 1. Сетка входных данных может быть логическим оператором, таким как (topo60c > 0), что 1 везде, что topo60c больше 0 метров, и 0 везде. Это рисунок этой матрицы:

Этот расчет основан на areaquad функция и, следовательно, ограничена только зернистостью клеточных данных.

См. также

|

Представлено до R2006a