Project

General

Profile

GEWEX Data on CDO?

Added by Regan Murray about 4 years ago

Hello all,

I am trying to perform some analysis on GEWEX data, requiring me to regrid the files. I am trying to do this with CDO to save some time, however it seems that GEWEX uses a "generic grid" which is not supported by CDO. Has anyone had any success with this in the past? Or have any recommendations? Let me know and thanks.

Regan


Replies (5)

RE: GEWEX Data on CDO? - Added by Regan Murray about 4 years ago

Here is the file if anyone wants to take a look. griddes returns: #
  1. gridID 1 #
    gridtype = generic
    gridsize = 41252
    xsize = 41252 #
  2. gridID 2 #
    gridtype = generic
    gridsize = 330016
    xsize = 41252
    ysize = 8
    yname = aerosol_nm
    ylongname = "Aerosol wavelength"
    yunits = "nm"
    yvals = 350 450 550 650 1000 160 2200 3000 #
  3. gridID 3 #
    gridtype = generic
    gridsize = 123756
    xsize = 41252
    ysize = 3 #
  4. gridID 4 #
    gridtype = generic
    gridsize = 742536
    xsize = 41252
    ysize = 18

RE: GEWEX Data on CDO? - Added by Ralf Mueller about 4 years ago

hi!

your input is on an general unstructured grid, but the link from the coordinates (lon lat) to the data variables is missing. In other words: it's not CF-compliant. All data variables miss the coordinates attribute. I added them with this command:

for v in $(cdo -s showname -delname,lon,lat GEWEX_Integrated_Product_2000_01_01_00.nc); do \
  echo $v; \
  ncatted -a coordinates,${v},c,c,'lon lat' GEWEX_Integrated_Product_2000_01_01_00.nc; \
done
After this operation, CDO can link coordinates and data correctly:
cdo sinfov `lf`
Warning (cdfCheckVars): Unsupported data type (char/string), skipped variable cloud_irtype_label!
Warning (cdfCheckVars): Unsupported data type (char/string), skipped variable cloud_type_label!
   File format : NetCDF
    -1 : Institut Source   T Steptype Levels Num    Points Num Dtype : Parameter name
     1 : unknown  unknown  c instant       1   1     41252   1  F32  : precip        
     2 : unknown  unknown  c instant       1   1     41252   1  F32  : ocn_sh_flux   
     3 : unknown  unknown  c instant       1   1     41252   1  F32  : lnd_sh_flux   
     4 : unknown  unknown  c instant       1   1     41252   1  F32  : ocn_lh_flux   
     5 : unknown  unknown  c instant       1   1     41252   1  F32  : gleam_lnd_lh_flux
     6 : unknown  unknown  c instant       1   1     41252   1  F32  : pmmu_lnd_lh_flux
     7 : unknown  unknown  c instant       1   1     41252   1  F32  : ptjpl_lnd_lh_flux
     8 : unknown  unknown  c instant       1   1     41252   1  F32  : lnd_e         
     9 : unknown  unknown  c instant       1   1     41252   1  F32  : merra2_lnd_sh_flux
    10 : unknown  unknown  c instant       1   1     41252   1  F32  : merra2_lnd_lh_flux
    11 : unknown  unknown  c instant       1   1     41252   1  F32  : sw_up_sfc     
    12 : unknown  unknown  c instant       1   1     41252   1  F32  : sw_down_sfc   
    13 : unknown  unknown  c instant       1   1     41252   1  F32  : lw_up_sfc     
    14 : unknown  unknown  c instant       1   1     41252   1  F32  : lw_down_sfc   
    15 : unknown  unknown  c instant       1   1     41252   1  F32  : sw_up_toa     
    16 : unknown  unknown  c instant       1   1     41252   1  F32  : sw_down_toa   
    17 : unknown  unknown  c instant       1   1     41252   1  F32  : lw_up_toa     
    18 : unknown  unknown  c instant       1   1     41252   1  F32  : merra2_lw_up_sfc
    19 : unknown  unknown  c instant       1   1     41252   1  F32  : merra2_lw_down_sfc
    20 : unknown  unknown  c instant       1   1     41252   1  F32  : merra2_lw_up_toa
    21 : unknown  unknown  c instant       8   2     41252   1  F32  : aod           
    22 : unknown  unknown  c instant       1   1     41252   1  I16  : n_total       
    23 : unknown  unknown  c instant       1   1     41252   1  I16  : n_cloudy      
    24 : unknown  unknown  c instant       1   1     41252   1  I16  : n_irmarg_cloudy
    25 : unknown  unknown  c instant       3   3     41252   1  I16  : n_irtype      
    26 : unknown  unknown  c instant      18   4     41252   1  I16  : n_type        
    27 : unknown  unknown  c instant       1   1     41252   1  I16  : pc            
    28 : unknown  unknown  c instant       1   1     41252   1  I16  : tc            
    29 : unknown  unknown  c instant       1   1     41252   1  I16  : tau           
    30 : unknown  unknown  c instant       1   1     41252   1  I16  : wp            
    31 : unknown  unknown  c instant      18   4     41252   1  I16  : pc_type       
    32 : unknown  unknown  c instant      18   4     41252   1  I16  : tc_type       
    33 : unknown  unknown  c instant      18   4     41252   1  I16  : tau_type      
    34 : unknown  unknown  c instant      18   4     41252   1  I16  : wp_type       
    35 : unknown  unknown  c instant       1   1     41252   1  I16  : snoice        
    36 : unknown  unknown  c instant       1   1     41252   1  I16  : ts_clrsky     
    37 : unknown  unknown  c instant       1   1     41252   1  I16  : rs_clrsky     
    38 : unknown  unknown  c instant       1   1     41252   1  I16  : airtemp       
    39 : unknown  unknown  c instant      16   5     41252   1  I16  : temp_profile  
    40 : unknown  unknown  c instant       1   1     41252   1  I16  : tmax          
    41 : unknown  unknown  c instant       1   1     41252   1  I16  : ttrop         
    42 : unknown  unknown  c instant       1   1     41252   1  I16  : psurf         
    43 : unknown  unknown  c instant       1   1     41252   1  I16  : pmaxt         
    44 : unknown  unknown  c instant       1   1     41252   1  I16  : ptrop         
    45 : unknown  unknown  c instant       1   1     41252   1  I16  : rh_nearsurf   
    46 : unknown  unknown  c instant      16   6     41252   1  I16  : rh_profile    
    47 : unknown  unknown  c instant       1   1     41252   1  I16  : rhmaxt        
    48 : unknown  unknown  c instant       1   1     41252   1  I16  : rhtrop        
    49 : unknown  unknown  c instant       1   1     41252   1  I16  : ozone         
    50 : unknown  unknown  c instant       1   1     41252   1  F32  : t2m           
    51 : unknown  unknown  c instant       1   1     41252   1  F32  : sknt          
    52 : unknown  unknown  c instant       1   1     41252   1  F32  : tcwv          
    53 : unknown  unknown  c instant       1   1     41252   1  F32  : z             
    54 : unknown  unknown  c instant       1   1     41252   1  F32  : divq          
    55 : unknown  unknown  c instant       1   1     41252   1  F32  : cape          
   Grid coordinates :
     1 : unstructured             : points=41252
                              lat : -89.5 to 89.5 degrees_east
                              lon : 0.5 to 359.5 degrees_north
   Vertical coordinates :
     1 : surface                  : levels=1
     2 : generic                  : levels=8
                       aerosol_nm : 350 to 3000 nm
     3 : generic                  : levels=3
     4 : generic                  : levels=18
     5 : pressure                 : levels=16
                           levtmp : 900 to 10 hPa
     6 : pressure                 : levels=16
                            levrh : 900 to 10 hPa
cdo    sinfon: Processed 55 variables [0.01s 45MB].
Only the remaining char variables are still not CF-complient.

Please note, that there are no coordinated bounds provided, so conservative remapping is not possible. Also bi-linear remapping does not work on unstructured grids.

cheers
ralf

RE: GEWEX Data on CDO? - Added by Regan Murray about 4 years ago

Hi Ralf,

Thank you for your reply, that is extremely helpful. Do you have any recommendations for interpolating the graph to a 1x1 degree grid? My original thought was to go off what is recommended in the documentation (remapbil), but I understand that this dataset is not compatible with that function. Thank you again for your help.

Regan

RE: GEWEX Data on CDO? - Added by Ralf Mueller about 4 years ago

you can only use distance-weighted interpolation (remapdis) or nearest-neighbour (remapnn)

RE: GEWEX Data on CDO? - Added by Ralf Mueller about 4 years ago

I would try to get the coordinated bounds of this grid from the creators of the data. this would allow proper conservative remapping. but conservation properties might not be needed by your processing, idk

cheers
ralf

    (1-5/5)