Решение для наклонного столбца в данных модели сетки - PullRequest
0 голосов
/ 18 февраля 2019

с вашей помощью, я зашел довольно далеко с этой проблемой за последние две недели, поэтому большое спасибо этому замечательному сообществу !!

Прежде всего, я хочу прояснить следующее: я неЯ не ожидаю решения, но мне нужна помощь в поиске модулей (на любом языке программирования), которые могли бы помочь мне приблизиться к желаемому решению.Также, если у вас есть какой-либо математический совет по достижению моего решения, я с радостью приму его!В настоящее время я использую MATLAB, но если есть язык программирования, который лучше подходит для получения желаемого результата, я с радостью его попробую!

Моя проблема заключается в следующем:

ВКороче говоря, я хочу найти количество диоксида азота на пути от земли до «верха атмосферы», учитывая поле данных модели, которое у меня есть.

Моя проблема заключается в том, что для каждой комбинации уровня высоты (назначается как 1-> 27), широты (назначается как точка 1 -> 364) и долготы (назначается как точка 1-> 264) существуетустановленное количество диоксида азота, присутствующего в этом положении.Это означает, что прямоугольники сетки не бесконечно малы, поэтому у меня возникают проблемы с визуализацией и поиском того, как я могу найти количество диоксида азота вдоль линии в пространстве.

Вот некоторые визуализации:

Во-первых, это двумерное сеточное представление.Как вы можете видеть, каждый блок сетки имеет «установленное количество» NO2 внутри каждой комбинации положения и высоты.В настоящее время мой код способен решать, например, общее количество NO2 в столбце B. По сути, я могу определить для NO2 по вертикальной прямой линии!2D Grid Вот второе представление, и то же самое постоянное количество для каждого поля сетки сохраняется и здесь.Основное отличие состоит в том, что это в трех измерениях и является более представительным для продукта, на который я нацеливаюсь.В принципе, я хочу, чтобы количество вещей между точкой один и точкой 2.

3D Grid

В настоящее время мне удалось, по комбинации широты и долготы(игнорируйте четвертое измерение, это просто время. Это измерение, к которому я вернусь с последующим дополнением к этому проекту), сумма для общего количества диоксида азота в атмосфере (также известный как вертикальный столбец) с помощью следующего кода:

av = 6.022140857747*(10^23); % Avogadro's Number 1/mol
R = 82.06; % Gas Constant cm3*atm/(k*mol)

Pres_atm = Pres*(1/101325); % Changes the pressure matrix to units of atm
no2_moleccm3 = no2*(1/(10^6))*av.*Pres_atm*(1/R).*(1/Temp); % Conversion of no2 
to molecules/cm3

% For loop that changes the total height to a difference of heights for
% each altitude layer of 2->27
for index = 2:27
    h(:,:,index,:) = flheight(:,:,index,:) - flheight(:,:,index-1,:);
end

h(:,:,1,:) = flheight(:,:,1,:); % Adding the first altitude layer

% For loop that changes the total mid-layer height to a height difference
% at each altitude 2->27
for index = 2:27
    mh(:,:,index,:) = mlheight(:,:,index,:) - mlheight(:,:,index-1,:);
end

mh(:,:,1,:) = mlheight(:,:,1,:); % Adding the first mid altitude layer 

no2_moleccm2 = no2_moleccm3.*h(:,:,:,:); % Converts no2 to units of molecules 
per unit area.

vcol = sum(no2_moleccm2(1,1,:,12)) % Calculates a vertical column for any 
combination of time, lat, and lon.

Я получаю довольно приличный ответ для количества вертикальных столбцов, в точности то, что я хочу.

Теперь я хочу создать некоторый код, который может найти аналогичныйколичество, но отслеживание (согласно моему коду) «no2_moleccm2» по наклонному столбцу вместо вертикального столбца.Таким образом, в основном, вместо того, чтобы идти от «земли» к точке «наверху атмосферы, находящейся прямо над ней», я хочу перейти от земли к вершине атмосферы с другой комбинацией широты и долготы.

Опять же, я не ожидаю решения, но буду очень признателен за любые советы по этой проблеме!

Бест, Тейлор

...