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!