- Read the time data from netCDF file
- Convert them into datevec, and pick the years you want using ismember or logical indexing.
- Pick the data using those indices.
Picking out a specific time period from a NetCDF file?
2 ビュー (過去 30 日間)
古いコメントを表示
Hi, I have a NetCDF file containing rainfall data for multiple river basins. I only need data for a particular time period (1980-2000) could some body help me pick these out? Thank you.
I have tried the below but I'm met with the error message: The logical indices in position 3 contain a true value outside of the array bounds.
rainfall = double(ncread(fname,'rainfall'));
TIME=double(ncread(fname,'time'));
TIME2 = double(TIME)/24 + datenum('1800-01-01 00:00:00');
TIME3=datestr(TIME2,0);
years=datevec(TIME3);
from_year = 1980; to_year = 2000;
baseline = years(:,1) >= from_year & years(:,1) <= to_year;
baseline_rainfall = rainfall(:, :, baseline);
0 件のコメント
採用された回答
KSSV
2020 年 11 月 4 日
その他の回答 (1 件)
L Chi
2021 年 6 月 22 日
編集済み: L Chi
2021 年 6 月 22 日
You can try this toolbox: https://github.com/HappySpring/Easy_NetCDF
The following command should solve the problem.
[ out_dim, rainfall ] = FUN_nc_varget_enhanced_region_2( fname, 'rainfall', {'time'}, {[datenum(1980,1,1) datenum(2000,12,31,23,59,59)]}, 'time' );
where {'time'}, {[datenum(1980,1,1) datenum(2000,12,31,23,59,59)]} set the limit for time
and the 'time' follows the above codes indicates that the variable named 'time' should be treated as time.
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!