how to extrapolate a non uniform 3d data?
    6 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
hi
i have a dataset which doesnt have a uniform difference between the lat and lon even though the data resolution is 5.5x3.5km resolution. i have to extrapolate the data into a 1˚x1˚ resolution. i tried using a code however it was showing some error. how do i solve this error? 

the above picture shows the lattitudes.
clear all
close all
clc
data=('D:\Sreeraj\Earthdata tropomi\New folder\S5P_OFFL_L2__NO2___01012021.nc');
% ncdisp(data)
lon_plot=ncread(data,'/PRODUCT/longitude');
lati_plot=ncread(data,'/PRODUCT/latitude');
ak=ncread(data,'/PRODUCT/averaging_kernel');
lat=lati_plot(1,:)';
lon=lon_plot(:,1);
[X,Y]=meshgrid(lon,lat);
%resampling data
[X1,Y1]=meshgrid(lon(1):1:lon(end),lat(1):1: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);
Error in tropomiresample (line 21)
v=interp2(X,Y,ak(:,:,i),X1,Y1);
1 comentario
  Walter Roberson
      
      
 el 18 de Nov. de 2021
				Your latitudes are decreasing in both directions. You need to flipud() and fliplr() your arrays.
Respuestas (1)
  KSSV
      
      
 el 18 de Nov. de 2021
        [X1,Y1]=meshgrid(lon(1):1:lon(end),lat(1):1:lat(end));
Check the dimensions of X1, Y1..they might be empty. You have asked the similiar question here : https://in.mathworks.com/matlabcentral/answers/1586789-how-to-solve-the-error-the-grid-must-be-created-from-grid-vectors-which-are-strictly-monotonically-i?s_tid=prof_contriblnk . 
Check the answer and follow the same. 
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!