Reading and visualizing netcdf with vectors of differing lengths
1 view (last 30 days)
Show older comments
This is my first time reading netcdf data. I can read the file and variables of interest as follows:
vardata=ncread('TL__Map1_15C_sand1__20mres_-36.265137N_174.790466','TLdata');
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');
Unfortunately I cannot attach the file because even in Zip format it is greater than 5mb.
>> whos vardata
Name Size Bytes Class Attributes
vardata 91x489x280 49838880 single
I'd like to be able to plot/visualize the data, but when I try to use plot3() it tells me the vectors must be the same length. Is there another way?
My goal is to find the freq value for a specific lat/lon, but in order to do make a selection of positions of interest, I need to look at the positions I have and see how they vary.
0 Comments
Accepted Answer
KSSV
on 23 Nov 2021
Edited: KSSV
on 23 Nov 2021
If you want to attach the file, you can upload in some cloud spaces (google drive) and share the link here without asking the login's credentials.
[p,m,n] = size(vardata) ;
for i = 1:p
pcolor(H_londata,H_latdata,squeeze(vardata(i,:,:))') ;
shading interp
drawnow
end
If you want to extract a series from the (i,j) position
i = 3 ;
j = 4 ;
v = squeeze(vardata(:,j,i)) ;
plot(v)
8 Comments
KSSV
on 23 Nov 2021
i, j should be indices, not lon/ lat values.
Also note that H_londata,H_latdata are not in degrees. If you have fixed i, j as values instead of the indices, Use:
idx = knnsearch([X(:) Y(:)],[i j]) ;
[r,c] = ind2sub(size(X),idx) ;
v = squeeze(vardata(:,r,c)) ;
And thanks is accepting/ voting the answer. :)
More Answers (0)
See Also
Categories
Find more on NetCDF in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!