findm

Широты и долготы ненулевых элементов сетки данных

Синтаксис

[lat,lon] = findm(Z,R)
[lat,lon] = findm(latz,lonz,Z)
[lat,lon,val] = findm(...)
mat = findm(...)

Описание

[lat,lon] = findm(Z,R) вычисляет широты и долготы ненулевых элементов массива регулярной сетки данных, Z. R может быть географическим объектом растровой привязки, ссылочным вектором или матрицей привязки.

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

Если 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. Все углы указаны в единицах степеней.

[lat,lon] = findm(latz,lonz,Z) возвращает широты и долготы ненулевых элементов массива геолокированной сетки данных Z, который является M-на-N логическим или числовым массивом. Как правило latz и lonz являются M-на-N массивами широта-долгота, но latz может быть вектором широты длины M и lonz может быть вектором долготы длины N.

[lat,lon,val] = findm(...) возвращает значения ненулевых элементов Z, в дополнение к их местонахождению.

mat = findm(...) возвращает один выход, где mat = [lat lon].

Эта функция работает в двух режимах: с регулярной сеткой данных и с геолокированной сеткой данных.

Примеры

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

load topo60c
[lat,lon] = findm((topo60c > 5500),topo60cR);
[lat lon]
ans =
   34.5000   79.5000
   34.5000   80.5000
   30.5000   84.5000
   28.5000   86.5000

Эти точки находятся в Гималаях. Найдите значения сетки в этих местоположениях с помощью geographicToDiscrete и sub2ind функций.

[row,col] = geographicToDiscrete(topo60cR,lat,lon);
indx = sub2ind(size(topo60c),row,col);
heights = topo60c(indx)
heights =
        5559
        5515
        5523
        5731

См. также

|

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