Reading and visualizing netcdf with vectors of differing lengths
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
KSSV
2021-11-23
编辑:KSSV
2021-11-23
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 个评论
KSSV
2021-11-23
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. :)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 NetCDF 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!