exponenta event banner

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-by-N. Как правило, latz и lonz массивы M-by-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