Project

General

Profile

struggling to convert sea current NetCDF to grb

Added by Thomas Goerlich 11 days ago

Hi all,
for a re-analysis project I pulled current data from the "Atlantic- European North West Shelf- Ocean Physics Reanalysis" using the Datalayer cmems_mod_nws_phy_uv_my_7km-2D_PT1H-i (Example attached as input_ex.nc).

First, I replace "NaN" with zero:
$ cdo setmisstoc,0 input_ex.nc input_ex.0.nc

Then I convert to grib:
$ cdo -f -grb copy input_ex.0.nc output_ex.grb

"cdo map" tells me there are values included, however my grib viewer displays the file as "pressure". Geography and time are correct, though.
How do I define the values as current in my grib file?

$ cdo partab input_ex.0.nc
&parameter
name = _default_
datatype = F32
/
&parameter
name = uo
standard_name = eastward_sea_water_velocity
long_name = "Eastward Current Velocity in the Water Column"
units = "m s-1"
chunkType = grid
/
&parameter
name = vo
standard_name = northward_sea_water_velocity
long_name = "Northward Current Velocity in the Water Column"
units = "m s-1"
chunkType = grid
/

many thanks for your advice
Thomas

input_ex.nc (774 KB) input_ex.nc original data retrieved from copernicus
output.ex.grb (384 KB) output.ex.grb converted to grib
input_ex.0.nc (791 KB) input_ex.0.nc changed "NaN" to 0

Replies (2)

RE: struggling to convert sea current NetCDF to grb - Added by Thomas Goerlich 11 days ago

$ grib_set -s table2Version=151 output_ex.1.grb output_ex.2.grb
$ grib_set -s indicatorOfParameter=131 -w  indicatorOfParameter=1 output_ex.2.grb output_ex.3.grb
$ grib_set -s indicatorOfParameter=132 -w  indicatorOfParameter=2 output_ex.3.grb output_ex.4.grb

ncdump tells me
#==============   MESSAGE 47 ( length=8184 )               ==============
GRIB {
  editionNumber = 1;
 * table2Version = 151;*
  # Absent (common/c-1.table)
  centre = 0;
  generatingProcessIdentifier = 0;
  # Unknown code table entry ()
  *indicatorOfParameter = 131;*
  # Surface (of the Earth, which includes sea surface)  (grib1/3.table)
  indicatorOfTypeOfLevel = 1;
  level = 0;
  # P1 occupies octets 19 and 20; product valid at reference time + P1 (grib1/5.table)
  timeRangeIndicator = 10;
  # Unknown code table entry ()
  subCentre = 0;
  paramId = 151131;
  #-READ ONLY- cfName = *eastward_sea_water_velocity;*
  #-READ ONLY- cfVarName = *uoe;*
  #-READ ONLY- units = m s**-1;
  #-READ ONLY- name = Eastward sea water velocity;
  decimalScaleFactor = 0;
  dataDate = 20150601;
  dataTime = 2300;
  # Hour (stepUnits.table)
  stepUnits = 1;
  stepRange = 0;
  startStep = 0;
  endStep = 0;
  #-READ ONLY- marsParam = 131.151;
  shortName = ocu;

that looks promising to me... however, if I open that in my viewer, it is now interpeted as "Surface lifted index".
So I was able to change the parameter, but not how I wanted. What am I missing here?
thanks
Thomas

RE: struggling to convert sea current NetCDF to grb - Added by Thomas Goerlich 11 days ago

fixed it... table2version=3, indicatorOfParameter=49 / 50 does the trick

    (1-2/2)