Матлабная интерполяция полусферы на более мелкую сетку - PullRequest
0 голосов
/ 03 сентября 2018

Я вычислил данные для этого полушария:

% Compute hemisphere coordinates
segments = 20;                                                              
theta = deg2rad(linspace(-180,0,segments))';                                % Elevation (bottom half of a sphere)
phi = deg2rad(linspace(-180,180,segments));                                 % Azimuth
[phi,theta]=meshgrid(phi,theta);
zObsG = obsRadius.*sin(theta);
xObsG = obsRadius.*cos(theta).*cos(phi);
yObsG = obsRadius.*cos(theta).*sin(phi);

Я хочу теперь интерполировать эти данные в более точную сетку с большим количеством элементов:

segmentsInterp = 100;                                                              
thetaInterp = deg2rad(linspace(-180,0,segmentsInterp))';                                
phiInterp = deg2rad(linspace(-180,180,segmentsInterp));                                
[phiInterp,thetaInterp]=meshgrid(phiInterp,thetaInterp);
zObsGInterp = obsRadius.*sin(thetaInterp);
xObsGInterp = obsRadius.*cos(thetaInterp).*cos(phiInterp);
yObsGInterp = obsRadius.*cos(thetaInterp).*sin(phiInterp);

Мне почему-то трудно использовать функции interp или griddata в Matlab, когда он выводит, например: «Сетка должна быть создана из векторов сетки, которые строго монотонно растут». или «Количество входных координатных массивов не равно количеству измерений (NDIMS) этих массивов». Любые намеки для интерполяции полученных данных в новую сетку?

Заранее большое спасибо!

...