How to regrid from finer to coarser resolution?
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi! I want to regrid a data from 1degree X 1degree to a coarser resolution of 2degree X 5degree. I have used meshgrid and interp2 to change from coarser to finer resolution but I am not getting a way to change from finer to coarser resolution. Can anybody please help?
0 comentarios
Respuestas (1)
Suraj Kumar
el 4 de Mzo. de 2025
Based on my understanding your query is about regridding data from a finer resolution (1-degree by 1-degree) to a coarser resolution (2-degree by 5-degree) in MATLAB. This task involves aggregating or averaging the data over larger grid cells to achieve the desired coarser resolution.
You can refer to the following steps alongwith the attached code snippets for more information:
1. Define the original grid and data on a 1-degree by 1-degree grid.
% Original grid resolution
lat_resolution = 1;
lon_resolution = 1;
lat = -90:lat_resolution:90;
lon = 0:lon_resolution:360;
2. Initialize the coarser grid and define the new grid with 2-degree by 5-degree resolution.
% Define the new grid resolution
new_lat_resolution = 2;
new_lon_resolution = 5;
new_lat = -90:new_lat_resolution:90;
new_lon = 0:new_lon_resolution:360;
new_data = zeros(length(new_lat)-1, length(new_lon)-1);
3. Aggregate data for each cell in the coarser grid, averaging the corresponding cells from the finer grid.
% Regrid the data
for i = 1:length(new_lat)-1
for j = 1:length(new_lon)-1
lat_indices = find(lat >= new_lat(i) & lat < new_lat(i+1));
lon_indices = find(lon >= new_lon(j) & lon < new_lon(j+1));
data_block = data(lat_indices, lon_indices);
new_data(i, j) = mean(data_block(:), 'omitnan');
end
end
Hope this resolves your query!
0 comentarios
Ver también
Categorías
Más información sobre Physical Channels en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!