Нахождение ближайшего поля сетки к точке в MATLAB - PullRequest
0 голосов
/ 23 февраля 2019

Я использую MATLAB для анализа данных модели.

Сейчас я имею дело с данными о широте, долготе и высоте.Широта и долгота являются матрицами 336 x 264, и их выходные данные выражены в градусах.Мои данные о высоте 3-мерные.Первые два измерения широта и долгота и, следовательно, 336x264.Третьим измерением является высотный слой и, следовательно, число 1-> 27, основанное на высоте в точке.Вывод в метрах, но я преобразовал его в сантиметры и присвоил его переменной "gridh".


Для моего кода я начинаю с начала координат и двигаюсь в направлении один смпока я не достигну вершины атмосферы, вот так:

gridh(:,:,:) = h(:,:,:,12); % Convert to 3d matrix at noon
origin = [lat(168, 132) lon(168, 132) 0];
theta  = 90; % Zenith
theta_rad = degtorad(theta); % Convert to radians
psi = 0 ; % Azimuth
psi_rad = degtorad(psi); % Convert to radians

s = latlonstepcm ;% Degrees % will also be used for altitude, but will convert this back to altitude in cm later.

dx = s*sin(theta_rad)*cos(psi_rad) ;% Change in lon
dy = s*sin(theta_rad)*cos(psi_rad); % Change in lat
dz = s*cos(theta_rad) ;% Change in altitude
dz_cm = dz*(1/(9e-08)) % converting dz to cm cm

dxf = origin(1) + dx;
dyf = origin(2) + dy;
dzf = origin(3) + dz;

position_final = [dxf dyf dz_cm]

Начало координат - это просто некоторая точка в формате [высота над уровнем моря], например: [26,19 градусов, 26,19 градусов 0 см]

Я пытаюсь двигаться с указанными изменениями в направлении до тех пор, пока не пройдет весь путь через сетку и через каждый см-интервал (или больше, мне все равно, если интервал будет другим, я просто хочу, чтобы концепция была правильной)Я хочу установить флажок сетки, чтобы можно было умножить блок сетки на среднее количество № 2 в назначенном блоке сетки.

Итак, я хочу найти поле сетки, которое

    position_final = [dxf dyf dz_cm]

находится в, а затем в сумме количество no2 в этой ячейке сетки

 no2_moleccm3(?,?,?,12)

на расстояние 1 см, пройденное через него.

Надеюсь, это имеет смысл!

Я довольно озадачен, я пытался это некоторое время.


Если бы кто-то мог помочь мне с одним только латоном, я знаю, что используя выражения if, яможно легко определить слой в направлении z, так что, может быть, это уменьшит сложность здесь?

Спасибо

Тейлор

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...