findm

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

Синтаксис

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

Описание

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

Если 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(...) возвращает один выходной параметр, where mat = [lat lon].

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

Примеры

Сетка данных может быть результатом логической операции. Например, можно найти все местоположения с вертикальными изменениями больше, чем 5 500 метров.

load topo
topoR = refvecToGeoRasterReference(topolegend,size(topo));
[lat,lon] = findm((topo>5500),topoR);
[lat lon]

ans =
   34.5000   79.5000
   34.5000   80.5000
   30.5000   84.5000
   28.5000   86.5000

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

[row,col] = geographicToDiscrete(topoR,lat,lon);
indx = sub2ind(size(topo),row,col);
heights = topo(indx)

heights =
        5559
        5515
        5523
        5731

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

|

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

Для просмотра документации необходимо авторизоваться на сайте