Interpolation(?) of 3D array

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.

Antworten (1)

Cris LaPierre
Cris LaPierre am 28 Dez. 2021

0 Stimmen

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);

Kategorien

Mehr zu Interpolation finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2020b

Gefragt:

am 29 Nov. 2021

Beantwortet:

am 28 Dez. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by