areamat

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

Синтаксис

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

Описание

A = areamat(BW,R) возвращает площадь поверхности, покрытую элементами бинарной обычной сетки данных BW, которые содержат значение 1 (true). BW может быть результат логического выражения, такого как BW = (topo > 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,refvec,ellipsoid) вычисляет площадь поверхности на эллипсоид или сферу, заданную входом ellipsoid, который может быть referenceSphere, referenceEllipsoid, или oblateSpheroid объект или вектор формы [semimajor_axis eccentricity]. Модули выхода, A, квадрат единиц длины, в которых обеспечивается полуглавная ось. Например, если ellipsoid заменяется wgs84Ellipsoid('kilometers'), затем A находится в квадратных километрах.

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

Примеры

load topo
area = areamat((topo>127),topolegend)

area =
    0.2411

Приблизительно 24% Земли имеют высоту, больше, чем 127 метров. Площадь поверхности этого фрагмента Земли в квадратных километрах, если сферический эллипсоид:

earth = referenceSphere('earth', 'km');
area = areamat((topo>127),topolegend,earth)

area =
   1.2299e+08

Проиллюстрировать cellarea выведите, рассмотрите меньшую карту:

BW = ones(9,18);
refvec = [.05 90 0] % each cell 20x20 degrees
[area,cellarea] = areamat(BW,refvec)

area =
    1.0000
cellarea =
    0.0017
    0.0048
    0.0074
    0.0091
    0.0096
    0.0091
    0.0074
    0.0048
    0.0017

Каждая запись cellarea представляет фрагмент общей площади сферы единичного радиуса ячейка в той строке BW способствовал бы. Поскольку столбец расширяет от полюса до полюса в этом случае, это симметрично.

Советы

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

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

Смотрите также

|

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