Interpolation(?) of 3D array

1 次查看(过去 30 天)
Louise Wilson
Louise Wilson 2021-11-29
I have a 3D array (vardata) which contains sound pressure level data at a series of lat/lon coordinates for 91 different frequencies.
The vardata variable is available here: https://drive.google.com/file/d/1wnIFacUnRgkvSHy0MARsRUe1UBUxVsEr/view?usp=sharing
For each frequency, I would like to extract sound pressure level data at particular coordinates of interest (x2 and y2, attached).
vardata=ncread('TL__Map1_15C_sand1__20mres_-36.265137N_174.790466','TLdata'); %3D array (freq(91)xlongitude(489)xlatitude(280)
ncdisp('TL__Map1_15C_sand1__20mres_-36.265137N_174.790466')
H_latdata=ncread('TL__Map1_15C_sand1__20mres_-36.265137N_174.790466','H_latdata');
H_londata=ncread('TL__Map1_15C_sand1__20mres_-36.265137N_174.790466','H_londata');
H_freqdata=ncread('TL__Map1_15C_sand1__20mres_-36.265137N_174.790466','H_freqdata');
% Plot data for single frequency
for i = 30 %for one frequency
pcolor(H_londata,H_latdata,squeeze(vardata(i,:,:))') ;
shading interp
drawnow
end
colorbar
caxis([0 100])
xlabel('Longitude');
ylabel('Latitude');
ylabel(colorbar,'Sound Pressure Level','FontSize',12,'rotation', 270, 'VerticalAlignment', 'bottom')
The coordinates of interest are x2 and y2. Plotted here:
For each frequency, I would like to store the data at these coordinates of interest.
I considered griddedInterpolant:
freq30=squeeze(vardata(30,:,:)); %extract data for one frequency
F=griddedInterpolant(freq30);
but I am unsure how to then extract the data at the coordinates of interest.
Zooming in on the above figure (without 'shading interpolation'), you can see that the points fall on top of a grid, so I guess the best solution is to take the value of the cell that each point falls within, but I'm not sure how to do that.

回答(1 个)

Cris LaPierre
Cris LaPierre 2021-12-28
Why not use interp2?
Using your code above, the calculation would be
[Lon,Lat] = meshgrid(H_londata,H_latdata);
SP_coi = interp2(Lon,Lat,squeeze(vardata(i,:,:))',x2,y2);

类别

Help CenterFile Exchange 中查找有关 Graphics Performance 的更多信息

产品


版本

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by