Page info |
---|
infoType | Modified date |
---|
prefix | Last modified on |
---|
type | Flat |
---|
|
For GRIB:
On Linux you can use the grib_copy tool. This tools comes with ECMWF's ecCodes package:
grib_copy grib_file_1 grib_file_2 ... output_grib_file
...
cat grib_file_1 grib_file_2 ... grib_file_N > output_grib_file
For NetCDF (unsupported by ECMWF)
...
Care needs to be taken when merging NetCDF files, as differences in the structure of the files can cause issue. Other issues such as the total size of the merged files also needs to be considered.
If the files are of similar structure, one A way to merge netcdf files is using CDO merge:
Code Block |
---|
cdo merge infile1 infile2 infile3 outfile |
or if a valid time'
Code Block |
---|
cdo mergetime infile1 infile2 infile3 infile4 outfile |
Another option could be NCO (NetCDF Operators) ncrcat. Be . However, please be sure that the files are 'unpacked' before merging them. The NCO 'ncpdq' command can be used to produce an unpacked version of the files.
Here an example of merging for ERA5 nc NetCDF files from the CDS:
Download the data:
Code Block |
---|
language | py |
---|
title | ERA5 CDS API request |
---|
linenumbers | true |
---|
collapse | true |
---|
|
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 required, as it the dimension to merge the individual files 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 Note that the data are still packed - they need to be unpacked before mergethey can be merged:
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 successfully 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 |
---|
showLabels | false |
---|
max | 5 |
---|
spaces | CKB |
---|
showSpace | false |
---|
sort | modified |
---|
reverse | true |
---|
type | page |
---|
cql | label = "grib" and type = "page" and space = "CKB" |
---|
labels | cams |
---|
|