how to solve the error'The grid must be created from grid vectors which are strictly monotonically increasing'.

조회 수: 2 (최근 30일)
hey
i am trying to extrapolate a data from 5.5x3.5 km to 55x55 km resolution. however i keep on getting this error when i run the code. how do i solve this?
file=('D:\Sreeraj\Earthdata tropomi\New folder\S5P_OFFL_L2__NO2___01012021.nc');
% ncdisp(file)
y=ncread(file,'/PRODUCT/latitude');
x=ncread(file,'/PRODUCT/longitude');
lat=y(1,:)';
lon=x(:,1);
vcd=ncread(file,'/PRODUCT/nitrogendioxide_tropospheric_column');
troamf=ncread(file,'/PRODUCT/air_mass_factor_troposphere');
ak=ncread(file,'/PRODUCT/averaging_kernel');
scd=vcd.*troamf;
%resampling data
[X,Y]=meshgrid(lon,lat);
[X1,Y1]=meshgrid(lon(1):0.5:lon(end),lat(1):0.5:lat(end));
for i=1:34
v=interp2(X,Y,ak(:,:,i)',X1,Y1);
v1(:,:,i)=v;
end
Error using griddedInterpolant
The grid must be created from grid vectors which are strictly monotonically increasing.
Error in interp2>makegriddedinterp (line 228)
F = griddedInterpolant(varargin{:});
Error in interp2 (line 136)
F = makegriddedinterp(X, Y, V, method,extrap);

답변 (1개)

KSSV
KSSV 2021년 11월 15일
You code needs lot of changes.
This line:
[X1,Y1]=meshgrid(lon(1):0.5:lon(end),lat(1):0.5:lat(end));
should be replaced with:
[X1,Y1]=meshgrid(lon(1):-0.5:lon(end),lat(1):0.5:lat(end));
And the interpolation line:
v=interp2(X,Y,ak(:,:,i)',X1,Y1);
Should be replaced with:
v=interp2(X,Y,squeeze(ak(i,:,:))',X1,Y1);
Note that, your data i.e. X, Y and ak are scattered data and you cannot use interp2 for this. You should use scatteredInterpolant or griddata.

카테고리

Help CenterFile Exchange에서 Interpolation에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by