Project

General

Profile

How to convert data with forecast_initial_time and forecast_hour into just time

Added by Michelle Irizarry 10 months ago

Hi! I have a netCDF file for ERA5 from NCAR (https://rda.ucar.edu/datasets/ds633.0/dataaccess/) that does not have a time dimension (see attached file temp.nc), but instead has a forecast_initial_time and a forecast_hour dimension. I would like to combine those dimensions into just time which is forecast_initial_time + (forecast_hour-1) in the appropriate units. Then I'd have to change the dimensions of all the variables to remove forecast_initial_time and forecast_hour and replace with just time. I know how to do it easily in R using RNetCDF or ncdf4 packages for example, but I do not want to do it in R since it would not be computationally efficient.

Can cdo and/or nco do this somehow?

temp.nc (6.08 MB) temp.nc

Replies (4)

RE: How to convert data with forecast_initial_time and forecast_hour into just time - Added by Yvonne Rhodes 9 months ago

Michelle Irizarry wrote:

Hi! I have a netCDF file for ERA5 from NCAR (https://rda.ucar.edu/datasets/ds633.0/dataaccess/) that does not have a time dimension (see attached file temp.nc), but instead has a forecast_initial_time and a forecast_hour dimension. I would like to combine those dimensions into just time which is forecast_initial_time + (https://www.my-milestonecard.com/forecast_hour-1) in the appropriate units. Then I'd have to change the dimensions of all the variables to remove forecast_initial_time and forecast_hour and replace with just time. I know how to do it easily in R using RNetCDF or ncdf4 packages for example, but I do not want to do it in R since it would not be computationally efficient.

Can cdo and/or nco do this somehow?

Hello,

Hello! It’s great to hear that you’re working with netCDF data. To combine the forecast_initial_time and forecast_hour dimensions into a single time dimension, you can indeed use command-line tools like CDO (Climate Data Operators) or NCO (NetCDF Operators), which are designed for processing and analyzing climate and forecast model data.

Here’s how you can achieve this using CDO:

First, you would create a new time variable that combines the forecast_initial_time and forecast_hour by using the settaxis function in CDO to set the correct time axis.
Then, you can use the chname function to change the name of the dimensions from forecast_initial_time and forecast_hour to time.
Finally, you would use the merge function to merge the modified variables back into your dataset.
The general syntax for these operations in CDO would look something like this:

cdo settaxis,<start-date>,<start-time>,<timestep> input.nc output.nc
cdo chname,forecast_initial_time,time,forecast_hour,time input.nc output.nc
cdo merge input1.nc input2.nc output.nc

Please replace <start-date>, <start-time>, and <timestep> with the appropriate values for your dataset.

For NCO, you would use ncap2 to create a new time variable and ncks to rename dimensions and variables. The commands would be more complex and would require scripting to loop over the dimensions and variables to rename them.

I hope the information may helps you.

Best regards,
Yvonne Rhodes

RE: How to convert data with forecast_initial_time and forecast_hour into just time - Added by Michelle Irizarry 9 months ago

Hi Yvonne,

Thanks so much for your response. I will try it with CDO soon.

Thanks, Michelle

RE: How to convert data with forecast_initial_time and forecast_hour into just time - Added by David Cannon 8 months ago

Hello!

Did you have any luck with this solution? I'm having the same issue and can't figure out a way to combine time dimensions. When I use the example script, I am unable to change the name of forecast_initial_time (chname: variable not found warning). Example file attached.

Thanks!

    (1-4/4)