Merging Multiple text files
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have multiple text files, each file is data for 1 day with 3 columns, 1 columns for longtitude, 1 columns for latitude and 1 columns for precip value.
It looks like that
108.650 13.950 0.000
108.450 13.383 0.000
105.833 22.150 0.000
106.217 21.300 -99.000
104.283 22.533 0.000
105.717 9.283 0.100
The value of longtitude and latitude is same for all file.
Now, I want to merge all file to 1 netcdf or text file with dimension is 455x455x365 (455 is the number of long and lat, 365 is precip value for each day of a year)
How can I do that?
2 commentaires
Geoff Hayes
le 21 Mai 2019
minh - do you have 365 files (one for each day of the year)? Does each file have 455 rows? Please clarify.
Réponse acceptée
KSSV
le 21 Mai 2019
Modifié(e) : KSSV
le 21 Mai 2019
txtfiles = dir('*.txt') ;
ncfile = 'myfile.nc' ;
N = length(txtfiles) ;
nx = 455 ; ny = 455 ; % number of lat, lon
for i = 1:N
data = importdata(txtfiles(i).name) ;
lon = data(:,1) ;
lat = data(:,2) ;
p = data(:,3) ;
if i == 1
% Do interpolation
idx = boundary(lon,lat) ;
xi = linspace(min(lon),max(lon),nx) ;
yi = linspace(min(lat),max(lat),ny) ;
[X,Y] = meshgrid(xi,yi) ;
idx = inpolygon(X,Y,lon(idx),lat(idx)) ;
Z = griddata(lon,lat,p,X,Y) ;
Z(~idx) = NaN ;
% Longitude
nccreate(ncfile,'lon','Dimensions',{'lon',1,nx}) ;
ncwrite(ncfile,'lon',xi) ;
ncwriteatt(ncfile,'lon','long_name','longitude');
% Latitude
nccreate(ncfile,'lat','Dimensions',{'lat', 1, ny})
ncwrite(ncfile,'lat',yi)
ncwriteatt(ncfile,'lat','long_name','latitude');
% Precipitation
nccreate(ncfile,'time','Dimensions',{'time',1,Inf}) ;
nccreate(ncfile,'p','Dimensions',{'lon',nx,'lat',ny,'time',Inf})
ncwriteatt(ncfile,'p','long_name','precipitation');
ncwrite(ncfile,'time',i,i) ;
ncwrite(ncfile,'p',Z,[1,1,i])
end
Z = griddata(lon,lat,p,X,Y) ;
Z(~idx) = NaN ;
ncwrite(ncfile,'time',i,i) ;
ncwrite(ncfile,'p',Z,[1,1,i])
end
11 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Geodesy and Mapping dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!