Filter löschen
Filter löschen

Extract data from NetCDF files to text files (For SWAT Model).

6 Ansichten (letzte 30 Tage)
% new code to extract data from netcdf file to SWAT format text file.
data =[];
Files = dir('*.nc');
for k=1:length(Files)
FilesNames = Files(k).name;
for t=1:2
pr = ncread(FilesNames,'rainfall_amount');
long = ncread(FilesNames,'x');
lat = ncread(FilesNames,'y');
end
for j = 716:746(lat);
for i = 328:368(long);
v = pr(i,j,:);
data2 = (v);
data2(isnan(data2)) = -99.0;
outfile =sprintf('%d_%d_PCP.txt',lat(j),long(i));
fopen all
fid = fopen(outfile,'wt');
data = {data;data2};
fprintf(fid,'%5.1f\n',data2);
end
fclose all
end
end
disp([outfile 'created'])
% original code source:
% http://dficklin.weebly.com/netcdf-to-swat-climate-input-files.html
  4 Kommentare
Image Analyst
Image Analyst am 23 Dez. 2018
Please read the link I gave you. I know you haven't yet read it because you have not attached the two data files. So please read it.
shobhit pipil
shobhit pipil am 23 Dez. 2018
Bearbeitet: shobhit pipil am 23 Dez. 2018
outfiles shows 365 days records instead of 730 days, because single netcsd contains 1 year records per lat long.
one can copy the same NetCDF file in same directory and change year from 1890 to 91 for testing the code for two files. Single file size is 4.5 GB so I have uploaded just one.
Thanks

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

shobhit pipil
shobhit pipil am 24 Dez. 2018
Bearbeitet: madhan ravi am 24 Dez. 2018
Now It works for me:-
% new code to extract data from netcdf file to SWAT format text file.
data =[];
Files = dir('*.nc');
for k=1:length(Files)
FilesNames = Files(k).name;
for t=1:2
pr = ncread(FilesNames,'rainfall_amount');
long = ncread(FilesNames,'x');
lat = ncread(FilesNames,'y');
end
for j = 716:746(lat);
for i = 328:368(long);
outfile =sprintf('%d_%d_PCP.txt',lat(j),long(i));
fopen all;
v = pr(i,j,:);
data2 = (v);
data2(isnan(data2)) = -99.0;
% outfile =sprintf('%d_%d_PCP.txt',lat(j),long(i));
% fopen all;
fid = fopen(outfile,'At');
data = {data;data2};
fprintf(fid,'%5.1f\n',data2);
end
fclose all;
end
end
disp([outfile 'created'])
% original code source:
% http://dficklin.weebly.com/netcdf-to-swat-climate-input-files.html

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by