exponenta event banner

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