我正在使用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厘米]
我试图以指定的方向移动,直到一直穿过网格并以每厘米的间隔移动(或者更多,我不太在乎间隔是否不同,我只是想让概念正确)要检查网格框,以便我可以将网格框乘以指定网格框内的平均二氧化氮含量。
所以基本上,我想找到一个
position_final = [dxf dyf dz_cm]
进入其中,然后多多少少该网格框中的2号
no2_moleccm3(?,?,?,12)
经过1厘米的距离。
希望这很有道理!
我很困惑,我已经尝试了一段时间了。
如果有人可以单独帮助我,我知道使用if语句可以很容易地在z方向上识别图层,也许这可以减少这里的难度?
谢谢
泰勒