Project

General

Profile

Need to split a COSMO p file into individual pressure levels

Added by Ashwin D over 5 years ago

Hello,
I am not sure whether CDO is the tool of choice for me to explore but I have a COSMO weather model rotated lat lon grid "p" file written after a single time step. It has data on 22 pressure levels. Is there a CDO command that will enable me to split this file into twenty two separate netCDF files?

Best regards,
Ashwin.


Replies (4)

RE: Need to split a COSMO p file into individual pressure levels - Added by Ashwin D over 5 years ago

The header looks like this

netcdf lfff05000000p {
dimensions:
time = UNLIMITED ; // (1 currently)
bnds = 2 ;
rlon = 401 ;
rlat = 561 ;
srlon = 401 ;
srlat = 561 ;
pressure = 22 ;
variables:
double time(time) ;
time:standard_name = "time" ;
time:long_name = "time" ;
time:units = "seconds since 2018-12-14 00:00:00" ;
time:calendar = "proleptic_gregorian" ;
time:bounds = "time_bnds" ;
double time_bnds(time, bnds) ;
time_bnds:long_name = "time bounds" ;
time_bnds:units = "seconds since 2018-12-14 00:00:00" ;
char rotated_pole ;
rotated_pole:long_name = "coordinates of the rotated North Pole" ;
rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ;
rotated_pole:grid_north_pole_latitude = 90.f ;
rotated_pole:grid_north_pole_longitude = -180.f ;
float rlon(rlon) ;
rlon:standard_name = "grid_longitude" ;
rlon:long_name = "rotated longitude" ;
rlon:units = "degrees" ;
float rlat(rlat) ;
rlat:standard_name = "grid_latitude" ;
rlat:long_name = "rotated latitude" ;
rlat:units = "degrees" ;
float srlon(srlon) ;
srlon:standard_name = "grid_longitude" ;
srlon:long_name = "staggered rotated longitude" ;
srlon:units = "degrees" ;
float srlat(srlat) ;
srlat:standard_name = "grid_latitude" ;
srlat:long_name = "staggered rotated latitude" ;
srlat:units = "degrees" ;
float lon(rlat, rlon) ;
lon:standard_name = "longitude" ;
lon:long_name = "longitude" ;
lon:units = "degrees_east" ;
float lat(rlat, rlon) ;
lat:standard_name = "latitude" ;
lat:long_name = "latitude" ;
lat:units = "degrees_north" ;
float slonu(rlat, srlon) ;
slonu:standard_name = "longitude" ;
slonu:long_name = "staggered U-wind longitude" ;
slonu:units = "degrees_east" ;
float slatu(rlat, srlon) ;
slatu:standard_name = "latitude" ;
slatu:long_name = "staggered U-wind latitude" ;
slatu:units = "degrees_north" ;
float slonv(srlat, rlon) ;
slonv:standard_name = "longitude" ;
slonv:long_name = "staggered V-wind longitude" ;
slonv:units = "degrees_east" ;
float slatv(srlat, rlon) ;
slatv:standard_name = "latitude" ;
slatv:long_name = "staggered V-wind latitude" ;
slatv:units = "degrees_north" ;
float pressure(pressure) ;
pressure:long_name = "pressure" ;
pressure:units = "Pa" ;
pressure:positive = "down" ;
float T(time, pressure, rlat, rlon) ;
T:standard_name = "air_temperature" ;
T:long_name = "temperature" ;
T:units = "K" ;
T:grid_mapping = "rotated_pole" ;
T:coordinates = "lon lat" ;
float RELHUM ;
RELHUM:standard_name = "relative_humidity" ;
RELHUM:long_name = "relative humidity" ;
RELHUM:units = "%" ;
RELHUM:grid_mapping = "rotated_pole" ;
RELHUM:coordinates = "lon lat" ;
float U(time, pressure, rlat, srlon) ;
U:standard_name = "grid_eastward_wind" ;
U:long_name = "U-component of wind" ;
U:units = "m s-1" ;
U:grid_mapping = "rotated_pole" ;
U:coordinates = "slonu slatu" ;
float V(time, pressure, srlat, rlon) ;
V:standard_name = "grid_northward_wind" ;
V:long_name = "V-component of wind" ;
V:units = "m s-1" ;
V:grid_mapping = "rotated_pole" ;
V:coordinates = "slonv slatv" ;
float FI ;
FI:standard_name = "geopotential" ;
FI:long_name = "geopotential" ;
FI:units = "m2 s-2" ;
FI:grid_mapping = "rotated_pole" ;
FI:coordinates = "lon lat" ;
float OMEGA ;
OMEGA:standard_name = "lagrangian_tendency_of_air_pressure" ;
OMEGA:long_name = "omega" ;
OMEGA:units = "Pa s-1" ;
OMEGA:grid_mapping = "rotated_pole" ;
OMEGA:coordinates = "lon lat" ;
float QV ;
QV:standard_name = "specific_humidity" ;
QV:long_name = "specific humidity" ;
QV:units = "kg kg-1" ;
QV:grid_mapping = "rotated_pole" ;
QV:coordinates = "lon lat" ;

// global attributes:
:Conventions = "CF-1.4" ;
:conventionsURL = "http://www.cfconventions.org/" ;
:creation_date = "2018-12-21 11:06:19" ;
data:
pressure = 5000, 10000, 15000, 20000, 25000, 30000, 35000, 40000, 45000,
50000, 55000, 60000, 65000, 70000, 75000, 80000, 85000, 90000, 92500,
100000, 100500, 101000 ;
}

RE: Need to split a COSMO p file into individual pressure levels - Added by Ashwin D over 5 years ago

Hi Karin,
Thanks for your response. Is your sentence incomplete ? I could not follow.

Ashwin.

RE: Need to split a COSMO p file into individual pressure levels - Added by Ashwin D over 5 years ago

Hi Karin,
OK I got your answer now. SPLIT on pressure level. :-)

    (1-4/4)