필터 지우기
필터 지우기

The logical indices in position 1 contain a true value outside of the array bounds.

조회 수: 1 (최근 30일)
Hi I want to read and extract the nc file variables within the boundary of my study area which is Latitude (0-14 N) and Longitude (95-126 E). I create te coding, but unable to extract the data within the boundary. I think there is problem is the id = [(Lat>=0&Lat<=14), (Lon>=95&Lon<=126)]; as in the coding. I also attach one of the example file.
clear all
clc
ncfile = 'SM_OPER_MIR_OSUDP2_20230824T210217_20230824T215537_700_001_1.nc' ; % nc file name
% To get information about the nc file
ncinfo(ncfile)
% % to display nc file
ncdisp(ncfile)
% % to read a vriable 'var' exisiting in nc file
SST = ncread(ncfile, 'SST');
SSSanomaly = ncread(ncfile, 'SSS_anom')
SSSuncorrected =ncread(ncfile, 'SSS_uncorr')
SSS = ncread(ncfile,'SSS_corr') ;
Lat = ncread(ncfile, 'Latitude');
Lon = ncread(ncfile, 'Longitude');
% SSS1 = SSS(1:end);
% Lat1 = Lat (1:end);
% Lon1 = Lon (1:end);
Data = [Lat(:),Lon(:),SSS(:)] %SSSuncorrected(:),SSSanomaly(:),SST(:)];
id = [(Lat>=0&Lat<=14), (Lon>=95&Lon<=126)];
Data1 = Data(id,:,:);
save('try.asc','Data1','-ASCII');
%here is the error as in the command window
The logical indices in position 1 contain a true value outside of the array bounds.
Error in SMOS_nc (line 31)
Data1 = Data(id,:,:);
  댓글 수: 1
Walter Roberson
Walter Roberson 2023년 9월 25일
Lat = ncread(ncfile, 'Latitude');
Lon = ncread(ncfile, 'Longitude');
Are those read in as 2D arrays or as vectors?

댓글을 달려면 로그인하십시오.

채택된 답변

Voss
Voss 2023년 9월 25일
id = Lat>=0 & Lat<=14 & Lon>=95 & Lon<=126;
Data1 = Data(id,:);
  댓글 수: 6
Walter Roberson
Walter Roberson 2023년 9월 25일
It is not clear to me at the moment that Lat and Lon are vectors, or if they are 2D instead.
If they are vectors then I would expect that you would need to use separate masks, such as
masklat = Lat>=0 & Lat<=14;
masklon = Lon>=95 & Lon<=126;
Data1 = Data(masklat, masklon); %or maybe Data(masklon, masklat)
MAT NIZAM UTI
MAT NIZAM UTI 2023년 9월 25일
I tried with the delete the entire rows where the third column is NaN is work. I tried with different coding too before and it works well. Thanks Voss and Walter for the help.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by