...
For NetCDF (unsupported by ECMWF)
You can use A way to merge netcdf files is using CDO merge:
...
Code Block | ||||
---|---|---|---|---|
| ||||
cdo merge infile1 infile2 infile3 outfile |
or
Code Block | ||||
---|---|---|---|---|
| ||||
cdo mergetime infile1 infile2 infile3 infile4 outfile |
Another option could be NCO (NetCDF Operators)
...
ncrcat. Be sure that the files are unpacked before merging them. Here an example of merging for ERA5 nc files:
Download the data:
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-single-levels',
{'product_type': 'reanalysis',
'variable': ['surface_latent_heat_flux', 'surface_sensible_heat_flux',],
'year': ['2018'],
'month': ['01'],
'day': ['31'],
'time': ['19:00','20:00','21:00','22:00','23:00'],
'format': 'netcdf',
},
'ERA5_slhf_sshf_01.nc')
c.retrieve( 'reanalysis-era5-single-levels', { 'product_type': 'reanalysis', 'variable': ['surface_latent_heat_flux', 'surface_sensible_heat_flux',],
'year': ['2018'],
'month': ['02'],
'day': ['01'],
'time': ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', ], 'format': 'netcdf', },
'ERA5_slhf_sshf_02.nc')
|
Set record dimension in each file (this is the dimension to merge along):
Code Block |
---|
module load nco ncks --mk_rec_dmn time ERA5_slhf_sshf_01.nc ERA5_slhf_sshf_01_time_rec.nc ncks --mk_rec_dmn time ERA5_slhf_sshf_02.nc ERA5_slhf_sshf_02_time_rec.nc |
Data are still packed - need to be unpacked before merge:
Code Block |
---|
ncpdq -U ERA5_slhf_sshf_01_time_rec.nc ERA5_slhf_sshf_01_time_rec_unpack.nc ncpdq -U ERA5_slhf_sshf_02_time_rec.nc ERA5_slhf_sshf_02_time_rec_unpack.nc |
Then they can be merged:
Code Block |
---|
ncrcat ERA5_slhf_sshf_01_time_rec_unpack.nc ERA5_slhf_sshf_02_time_rec_unpack.nc ERA5_slhf_sshf_0102_time_rec_unpack.nc |
Related articles
Content by Label | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|