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!