Определить центр бункеров при использовании сетки - PullRequest
0 голосов
/ 10 сентября 2010

Я использую meshm для построения плотностей. Как рассчитать центральную точку для каждой ячейки?Я хочу связать данные в m с центральными точками . Я посмотрел на исходный код meshm и считаю, что решением будет модифицированная версия meshm, которая возвращает широту и долготу центральной точки каждого бина.

meshm вызывает функцию meshgrat, которая возвращает точки широты и долготы сетки, которые будут нанесены на график surfacem.Проблема в том, что матрицы lat и lon не имеют одинаковый размер с m. Мне нужно сопоставить точки широты и долготы с данными плотности в м Я считаю, что мне нужно масштабировать данные на основе GRATSIZE переменной в meshgrat.

ПРИМЕЧАНИЕ: meshm является частью Matlab Mapping Toolbox

ПРИМЕЧАНИЕ ПРИМЕЧАНИЕ. Это дополнительный вопрос к Определить расстояние от береговой линии в Matlab

Ответы [ 2 ]

1 голос
/ 10 сентября 2010

Вы можете получить края сетки, используя MESHGRAT , которая называется meshm, когда она создает сетку для биннинга.

%# create the mesh that is used by meshm
[latgrat,longrat] = meshgrat(m,termaplegend);
%# find the latitudes of the center points
latPts = (latgrat(1:end-1,1:end-1) + latgrat(2:end,1:end-1))/2;
%# find the longitudes of the center points
lonPts = (longrat(1:end-1,1:end-1) + longrat(1:end-1,2:end))/2;

Центркорзина во 2-м ряду, 5-й столбец - [latPts(2,5),lonPts(2,5)].

0 голосов
/ 10 сентября 2010

В meshm просто измените входы на meshgrat:

[lat,lon] = meshgrat(Z, R, gratsize); % original 
[lat, lon] = meshgrat(Z,R); % modification

По умолчанию gratsize = [], который в meshgrat будет возвращать размер сетки по умолчанию 50 X 100. Если размер графа не указан, размер сетки будет такой же, как у Z.

...